
ich suche nach einer Möglichkeit, meine Festplatte auf eine SSD zu klonen, ohne Daten oder das Linux-System selbst zu verlieren. Das Problem ist, dass die aktuelle Festplatte 1 TB groß ist und die SSD, die wir haben, 480 GB hat. Ich kann also nicht direkt klonen, da die Festplattengröße unterschiedlich ist. Ich weiß aber, dass die Festplatte nicht vollständig genutzt wird, also könnte sie vermutlich mit einem externen Tool oder über die Befehlszeile auf dem Server verkleinert werden. Jetzt habe ich 2 Festplatten mit jeweils 1 TB an den Server angeschlossen und weiß nicht, wie ich sie durch diese kleineren und schnelleren SSDs ersetzen kann. Für jede Hilfe wäre ich sehr dankbar.
#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931G 0 disk
├─sda1 8:1 0 953M 0 part /boot/efi
├─sda2 8:2 0 953M 0 part /boot
└─sda3 8:3 0 929.1G 0 part
├─rl-root 253:0 0 18.6G 0 lvm /
├─rl-swap 253:1 0 29.8G 0 lvm [SWAP]
├─rl-usr 253:2 0 10G 0 lvm /usr
├─rl-var_lib_docker 253:3 0 93.1G 0 lvm /var/lib/docker
├─rl-opt 253:4 0 93.1G 0 lvm /opt
├─rl-var_log_audit 253:5 0 4.7G 0 lvm /var/log/audit
├─rl-var 253:6 0 9.3G 0 lvm /var
├─rl-home 253:7 0 1.9G 0 lvm /home
├─rl-var_log 253:8 0 4.7G 0 lvm /var/log
├─rl-tmp 253:9 0 4.7G 0 lvm /tmp
└─rl-var_tmp 253:10 0 4.7G 0 lvm /var/tmp
# fdisk -l /dev/sd?
Disk /dev/sda: 931 GiB, 999653638144 bytes, 1952448512 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
Disklabel type: gpt
Disk identifier: 0219246B-336B-4D22-96A3-FD679EDA66DE
Device Start End Sectors Size Type
/dev/sda1 2048 1953791 1951744 953M EFI System
/dev/sda2 1953792 3905535 1951744 953M Linux filesystem
/dev/sda3 3905536 1952448478 1948542943 929.1G Linux LVM
# df -h | grep -v docker
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.5G 0 7.5G 0% /dev
tmpfs 7.5G 0 7.5G 0% /dev/shm
tmpfs 7.5G 95M 7.5G 2% /run
tmpfs 7.5G 0 7.5G 0% /sys/fs/cgroup
/dev/mapper/rl-root 19G 232M 19G 2% /
/dev/mapper/rl-usr 10G 4.8G 5.3G 48% /usr
/dev/mapper/rl-tmp 4.7G 99M 4.6G 3% /tmp
/dev/mapper/rl-home 1.9G 1014M 885M 54% /home
/dev/mapper/rl-var 9.4G 3.0G 6.4G 32% /var
/dev/sda2 949M 276M 674M 30% /boot
/dev/sda1 952M 5.8M 946M 1% /boot/efi
/dev/mapper/rl-var_tmp 4.7G 66M 4.6G 2% /var/tmp
/dev/mapper/rl-var_log 4.7G 1.3G 3.5G 27% /var/log
/dev/mapper/rl-opt 94G 7.6G 86G 9% /opt
/dev/mapper/rl-var_log_audit 4.7G 106M 4.6G 3% /var/log/audit
tmpfs 1.5G 0 1.5G 0% /run/user/0
# lshw
*-raid
description: RAID bus controller
product: MegaRAID SAS-3 3008 [Fury]
vendor: Broadcom / LSI
physical id: 0
bus info: pci@0000:02:00.0
logical name: scsi0
version: 02
width: 64 bits
clock: 33MHz
capabilities: raid pm pciexpress msi msix bus_master cap_list rom
configuration: driver=megaraid_sas latency=0
resources: irq:17 ioport:5000(size=256) memory:91c00000-91c0ffff memory:91b00000-91bfffff memory:91a00000-91afffff
*-disk
description: SCSI Disk
product: PRAID CP400i
vendor: FTS
physical id: 2.0.0
bus info: scsi@0:2.0.0
logical name: /dev/sda
version: 4.68
serial: 004f93e10b84d6222c40f6200004000e
size: 931GiB (999GB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration: ansiversion=5 guid=0219246b-336b-4d22-96a3-fd679eda66de logicalsectorsize=512 sectorsize=4096
*-volume:0
description: Windows FAT volume
vendor: mkfs.fat
physical id: 1
bus info: scsi@0:2.0.0,1
logical name: /dev/sda1
logical name: /boot/efi
version: FAT32
serial: cbe6-07f6
size: 951MiB
capacity: 952MiB
capabilities: boot fat initialized
configuration: FATs=2 filesystem=fat mount.fstype=vfat mount.options=rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro name=EFI System Partition state=mounted
*-volume:1
description: EFI partition
physical id: 2
bus info: scsi@0:2.0.0,2
logical name: /dev/sda2
logical name: /boot
serial: 7ca4eedb-7995-4a39-b1c8-676c006e7c83
capacity: 952MiB
configuration: mount.fstype=xfs mount.options=rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,sunit=128,swidth=128,noquota state=mounted
*-volume:2
description: LVM Physical Volume
vendor: Linux
physical id: 3
bus info: scsi@0:2.0.0,3
logical name: /dev/sda3
serial: gE8t7L-MEtM-wxjh-VGNz-19ch-dDXX-NQKV7n
size: 269GiB
capacity: 929GiB
capabilities: multi lvm2
# lspci | grep RAID
02:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS-3 3008 [Fury] (rev 02)
@Nikita, ich habe physischen und auch über das Internet Zugriff darauf, glaube, die RAID-Konfiguration ist eine Software.
Antwort1
Auf dem System, das im Hinblick auf mögliche Umstellungen gebaut wurde, könnte dies so einfach sein wie das Anschließen anderer Geräte, deren Initialisierung, das Migrieren von Volumes und die Neuinstallation des Bootloaders. Dies könnte sogar möglich sein, ohne dass die Dienste zum Absturz gebracht werden.
Ich habe gute Neuigkeiten für Sie: Ihr Layout stimmt damit überein. Sie verwenden LVM, nicht der gesamte Speicherplatz in der Volume-Gruppe ist zugewiesen. Alle logischen Volumes zusammen scheinen weniger Speicherplatz zu belegen als der Speicherplatz, der normalerweise auf der 480 GB SSD verfügbar ist, was bedeutet, dass Sie keine Dateisystemgrößen ändern müssen. Ich denke, alles ist möglich, auch ohne dass der Dienst angehalten wird.
Auch wenn es nicht auf diesen speziellen Fall zutrifft, sollten Sie bedenken, dass es nicht immer darauf hinausläuft, die Dateisysteme zu verkleinern und dann zu klonen. In vielen Fällen können Sie einfach neue Dateisysteme erstellen und Dateien kopieren.
Sie haben ein Broadcom HW RAID, allgemein bekannt als "LSI MegaRAID SAS", ein modernes RAID, das verwaltet wird mitdas storcli
Programm. Um es von der Broadcom-Website herunterzuladen, müssen Sie das Kartenmodell kennen. Derzeit wissen wir, dass ein 3008-Controllerchip verwendet wird. Leider reicht das nicht aus, um Sie auf die Original-Downloadseite zu leiten.
Mit dem Dienstprogramm können Sie Ihr RAID innerhalb des Betriebssystems bearbeiten und überwachen.diese Fähigkeit ist ein Muss! Ich habe jedoch nicht genug Erfahrung damit. Früher hatte ich megacli
, das mittlerweile veraltet ist und wahrscheinlich keine gute Idee ist, es mit Ihrer neueren Karte zu verwenden. Alternativ können Sie neu starten und das Boot-Dienstprogramm mit einer Tastenkombination aufrufen und von dort aus eine neue logische Festplatte erstellen.
Nachdem Sie aus Ihrem neuen Mediensatz das neue RAID-Array und die neue logische Festplatte erstellt haben, müssen Sie diese wie diese partitionieren und ein ähnliches Layout erstellen, wobei nur die letzte Partition kleiner sein muss.
Wenn Sie zur Migration eine Remote-Verbindung verwenden, empfehle ich, alle Vorgänge im screen
oder auszuführen tmux
, damit die Shell-Sitzung bestehen bleibt und Sie eine Verbindung herstellen können, selbst wenn die Verbindung aufgrund von Netzwerkproblemen verloren geht. Wenn Sie am Terminal sitzen oder einen KVM-König (iLO, iDRAC, xClarity usw.) verwenden, ist dies nicht wichtig.
/dev/sdb
Nehmen wir an, die neue virtuelle RAID-Festplatte wurde zufällig im Betriebssystem aufgerufen .Stellen Sie sicher, dass Sie das richtige Gerät verwenden, da es sonst schwierig ist, Ihre Daten wiederherzustellen.:
- Laufen
fdisk /dev/sdb
- Drücken Sie
g
, um eine GPT-Partitionstabelle zu erstellen (und dem Löschen zuzustimmen). - Erstellen Sie eine EFI-Systempartition (ESP), indem Sie eine neue Partition derselben Größe erstellen:
n
Wählen Sie Typ 1 „ESP“ und verwenden Sie die Größe953M
(M steht für MiB, das ist die genaue Größe Ihrer vorhandenen ESP). - Bootpartition erstellen:
n
„Linux-Dateisystem“ auswählen (ich weiß nicht mehr, welcher Nummer es entspricht) und953M
erneut die Größe verwenden. - LVM-Partition erstellen:
n
Wählen Sie „Linux LVM“ (31, wenn ich mich nicht irre) und akzeptieren Sie die Vorschläge, um den gesamten verbleibenden Speicherplatz auszufüllen. - Änderungen akzeptieren und beenden:
w
.
Klonen Sie dann Dateisysteme, die nicht LVM sind. Dazu:
- Unmounten Sie ESP- und /boot-Partitionen:
umount /boot/efi /boot
- Klonen Sie deren Inhalt:
dd if=/dev/sda1 of=/dev/sdb1
unddd if=/dev/sda2 of=/dev/sdb2
. Wenn in dieser Phase Fehler auftreten, fahren Sie nicht fort, bis Sie diese behoben haben! Eine Ursache könnten falsche Größen sein. - Da Sie XFS für /boot verwenden, müssen Sie jetzt die UUID des Klons ändern, sonst können Sie Folgendes nicht mounten:
xfs_admin -U generate /dev/sdb2
. Vergessen Sie nicht,/etc/fstab
mit der neuen UUID zu aktualisieren (sofern UUIDs zum Mounten verwendet werden, was der Fall sein sollte). - Mounten Sie neue /boot- und ESP-Partitionen:
mount /dev/sdb2 /boot
undmount /dev/sdb1 /boot/efi
.
Erstellen Sie nun aus der verbleibenden großen Partition ein PV und fügen Sie es der vorhandenen Volume-Gruppe hinzu:
pvcreate /dev/sdb3
vgextend r1 /dev/sdb3
Bereiten Sie sich nun auf den zeitaufwändigsten Vorgang vor: Verschieben Sie die Daten vom physischen Festplattenlaufwerk:
pvmove -vi 5 /dev/sda3
Entfernen Sie abschließend das logische HDD-Laufwerk aus der Datenträgergruppe und entfernen Sie die LVM-Bezeichnungen:
vgreduce r1 /dev/sda3
pvremove /dev/sda3
Wenn es fertig ist, ist es Zeit, das Booten vom neuen RAID neu zu konfigurieren. Möglicherweise müssen Sie Ihre RAID-Karte so einrichten, dass dieses neue Volume das primäre Boot-Volume ist. Dies ist für den EFI-Boot normalerweise nicht erforderlich, schadet aber nicht, also tun Sie es.
Richten Sie den Firmware-Booteintrag ein, um vom neuen RAID zu booten. Verwenden Sie das von Ihrer Betriebssystemversion bereitgestellte Tool oder führen Sie es manuell mit aus. Die efibootmgr
konkreten Befehle hängen in jedem Fall von der von Ihnen verwendeten Distribution ab.