.png)
Ich habe versucht, die folgende Anleitung zum Einrichten von RAID1 zu befolgen: https://www.howtoforge.com/raid1-auf-einem-laufenden-lvm-system-einrichten-debian-etch
Ich habe derzeit zwei 6TB-Festplatten, auf einer davon habe ich direkt ein physisches Volume erstellt, die andere ist brandneu und unberührt.
sdc 8:32 0 5.5T 0 disk
├─DATA-user_data 254:0 0 4T 0 lvm
└─DATA-app_data 254:1 0 1T 0 lvm
sdd 8:48 0 5.5T 0 disk
Auf dem sdc
physischen Datenträger befindet sich eine einzelne Datenträgergruppe mit zwei logischen Datenträgern.
root@server:# pvscan
PV /dev/sdc VG DATA lvm2 [5.46 TiB / 469.03 GiB free]
Total: 1 [5.46 TiB] / in use: 1 [5.46 TiB] / in no VG: 0 [0 ]
root@server:# vgscan
Reading volume groups from cache.
Found volume group "DATA" using metadata type lvm2
root@server:# lvscan
ACTIVE '/dev/DATA/user_data' [4.00 TiB] inherit
ACTIVE '/dev/DATA/app_data' [1.00 TiB] inherit
Ich bin in der Anleitung an dem Punkt angelangt, an dem ich die Partitionstabelle von sdc
nach kopieren muss sdd
, aber das ist natürlich nicht möglich, da sdc
darauf keine Partitionstabelle vorhanden ist.
Wie kann ich RAID1 mit sdc
und einrichten sdd
?
Antwort1
Sie können Spiegelvolumes erstellen, indem Sie sdd
zu VG hinzufügen
pvcreate /dev/sdd
vgextend DATA /dev/sdd
und ändern Sie dann die Anzahl der Kopien jedes LV
lvconvert -m1 DATA/user_data
lvconvert -m1 DATA/app_data
(1 bedeutet zwei Kopien der Daten, 0 bedeutet eine Kopie) Sie können den Fortschritt der Spiegelung mit einem Befehl wie dem folgenden überprüfen:
lvs -a -o name,copy_percent,devices DATA
Antwort2
Also, diefaulEine andere Möglichkeit wäre, die aktuelle Konfiguration einfach so hinzunehmen, sie /dev/sdd
so wie sie ist zu LVM hinzuzufügen und LVM selbst das RAID für Sie handhaben zu lassen. Das bedeutet, mdadm
dass es überhaupt nicht beteiligt ist (jedenfalls nicht direkt). Siehe Romeos Antwort, die ist gut.
Wenn Sie verwenden möchten mdadm
, obwohl es nicht unmöglich ist, dies nachträglich zu tun (mithilfe der Metadaten der Version 1.0 am Ende der Festplatte),richtige WegDazu müssen Sie partitionieren /dev/sdd
, RAID auf die Partition setzen mdadm
, LVM auf das RAID setzen und die Daten migrieren. Und sobald Sie bestätigt haben, dass die Kopie gut ist, können Sie auflösen /dev/sdc
, sie auf die gleiche Weise partitionieren und sie dem RAID hinzufügen.
Grob:
# partition step
parted /dev/sdd
(parted) mklabel gpt
(parted) mkpart md0_0 1MiB -1MiB
(parted) print free
(parted) quit
# mdadm step
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdd1 missing
mdadm --detail --scan > /etc/mdadm.conf
# lvm step (rsync variant, two independent copies)
vgcreate RAIDDATA /dev/md0
lvcreate ...
mkfs ...
mount ...
# LV structure and filesystems as you see fit, then copy everything over
rsync -a /mnt/DATA/. /mnt/RAIDDATA/.
# alternative lvm step (pvmove variant, single copy)
vgextend DATA /dev/md0
pvmove /dev/sdc
vgreduce DATA /dev/sdc
Das Migrieren der Dateien rsync
sollte schneller und sicherer sein (wenn etwas schief geht, ist die Originalkopie immer noch da). Gleichzeitig ist es anfällig für Benutzerfehler (es ist schwer zu sagen, ob rsync
etwas übersehen wurde).
Das Migrieren der Daten pvmove
ist langsamer und riskanter (wenn etwas schief geht, ist auch die Originalkopie verloren), aber es geht nichts verloren (auch keine gelöschten Dateien usw.).
An diesem Punkt möchten Sie die UUIDs (wenn Sie mkfs, rsync verwendet haben) in fstab/grub aktualisieren und initramfs aktualisieren. Führen Sie einen Neustart durch und überprüfen Sie, ob alles in Ordnung ist und /dev/sdc
nicht mehr verwendet wird. Dann können Sie es zum RAID hinzufügen.
# partition step
parted /dev/sdc
(parted) mklabel gpt
(parted) mkpart md0_1 1MiB -1MiB
(parted) print free
(parted) quit
# raid resync step
mdadm /dev/md0 --add /dev/sdc1
watch -n 60 cat /proc/mdstat
Und das ist alles ...
Alles in allem erhalten Sie damit das Setup, das die meisten Leute erwarten (Festplatte, Partitionen, RAID, LVM, Dateisysteme). Sie könnten bei der Gelegenheit auch noch Verschlüsselung hinzufügen. ;-)