Um die Leistung zu verbessern und gleichzeitig die Redundanz beizubehalten, versuche ich, das Root-Dateisystem eines NAS von einem logischen RAID-5-Volume in ein logisches RAID-10-Volume zu konvertieren und dabei die gleiche Anzahl verwendeter Festplatten beizubehalten.
InDasDer Abschnitt „RAID 10 und RAID 5“ der lvmraid
Manpage besagt, dass eine indirekte Konvertierung möglich sei.
Folgende Übernahmeumwandlungen sind derzeit möglich:
...
- zwischen Striped/Raid0 und Raid5.
...
- zwischen Striped/Raid0 und Raid10.
Wenn ich jedoch den entsprechenden lvconvert
Befehl (auf einem ähnlichen test
LV) ausführe und wiederholt aufgefordert werde, die Zwischenkonvertierungen durchzuführen, erhalte ich im letzten Schritt bei der endgültigen Konvertierung von RAID 0 zu RAID 10 diesen Fehler:
root@nas:~# lvcreate --type raid5 -i 3 -n test -L 100M vg
Using default stripesize 64.00 KiB.
Rounding size 100.00 MiB (25 extents) up to stripe boundary size 108.00 MiB (27 extents).
Logical volume "test" created.
root@nas:~# lvconvert vg/test --type raid10 -m 1 -i 2
Using default stripesize 64.00 KiB.
Replaced LV type raid10 (same as raid10_near) with possible type raid5_n.
Repeat this command to convert to raid10 after an interim conversion has finished.
Converting raid5 (same as raid5_ls) LV vg/test to raid5_n.
Are you sure you want to convert raid5 LV vg/test? [y/n]: y
Logical volume vg/test successfully converted.
root@nas:~# lvconvert vg/test --type raid10 -m 1 -i 2
Using default stripesize 64.00 KiB.
Replaced LV type raid10 (same as raid10_near) with possible type raid0_meta.
Repeat this command to convert to raid10 after an interim conversion has finished.
Are you sure you want to convert raid5_n LV vg/test to raid0_meta type? [y/n]: y
Logical volume vg/test successfully converted.
root@nas:~# lvconvert vg/test --type raid10 -m 1 -i 2
Using default stripesize 64.00 KiB.
Are you sure you want to convert raid0_meta LV vg/test to raid10 type? [y/n]: y
Insufficient suitable allocatable extents for logical volume : 30 more required
root@nas:~#
Selbst wenn ich physische Extents freigebe und die LV-Größe reduziere, erhalte ich den gleichen Fehler. Alle physischen Volumes sind zuweisbar.
Hier ist die vgdisplay
Ausgabe:
--- Volume group ---
VG Name vg
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 333
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 2
Max PV 0
Cur PV 4
Act PV 4
VG Size <3.64 TiB
PE Size 4.00 MiB
Total PE 953864
Alloc PE / Size 943654 / <3.60 TiB
Free PE / Size 10210 / 39.88 GiB
VG UUID PF08Ce-xvsS-7KsA-0Vw6-zkXR-jyUf-ocDWDW
Wie behebe ich diesen Fehler? Ich möchte dieselben PEs für das konvertierte LV verwenden und das Dateisystem nach Bedarf verkleinern.
Antwort1
Für die Zwecke dieser Beschreibung betrachten wirScheibeeine Festplatte, Partition oder einen anderen logischen Container. JederScheibewird als gleich groß angesehen und hält eineEinheitSpeicher (1 GB, 1 TB, was auch immer, es spielt keine Rolle).
- RAID 5 verwendet drei Festplatten für zwei Einheiten nutzbaren Speichers
- RAID 0 verwendet zwei Festplatten für zwei Einheiten nutzbaren Speichers
- RAID 10 verwendet zwei Festplatten für eine Einheit nutzbaren Speichers; typischerweise kann RAID 10 als RAID 1 auf RAID 0 (oder vv) betrachtet werden, so dass Sie vier Festplatten für zwei Einheiten nutzbaren Speichers verwenden würden.
Auch
- Wenn Sie von RAID 5 auf RAID 0 konvertieren, bleibt eine Speichereinheit übrig (d. h. eine Festplatte ist frei).
- Wenn Sie von RAID 0 auf RAID 10 konvertieren, benötigen Sie für jede Einheit, die Sie konvertieren, eine zusätzliche Speichereinheit (also zwei zusätzliche Festplatten zusätzlich zu den beiden, die Sie aktuell verwenden).
Konsequenz: Sie haben mit drei Datenträgern begonnen, Ihnen fehlt also ein Datenträger.
Eine Möglichkeit wäre, zu prüfen, ob Sie Ihr RAID 0-Array von zwei auf eine Festplatte reduzieren können. Dies setzt jedoch voraus, dass Ihr ursprüngliches RAID 5-Array nur halb voll ist. Die andere Möglichkeit besteht darin, eine vierte Festplatte anzuschaffen.