Verkleinern/Reduzieren Sie die Festplattengröße auf einem Linux RAID 1-Server

Verkleinern/Reduzieren Sie die Festplattengröße auf einem Linux RAID 1-Server

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 storcliProgramm. 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 screenoder 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/sdbNehmen 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.:

  1. Laufenfdisk /dev/sdb
  2. Drücken Sie g, um eine GPT-Partitionstabelle zu erstellen (und dem Löschen zuzustimmen).
  3. Erstellen Sie eine EFI-Systempartition (ESP), indem Sie eine neue Partition derselben Größe erstellen: nWählen Sie Typ 1 „ESP“ und verwenden Sie die Größe 953M(M steht für MiB, das ist die genaue Größe Ihrer vorhandenen ESP).
  4. Bootpartition erstellen: n„Linux-Dateisystem“ auswählen (ich weiß nicht mehr, welcher Nummer es entspricht) und 953Merneut die Größe verwenden.
  5. LVM-Partition erstellen: nWählen Sie „Linux LVM“ (31, wenn ich mich nicht irre) und akzeptieren Sie die Vorschläge, um den gesamten verbleibenden Speicherplatz auszufüllen.
  6. Änderungen akzeptieren und beenden: w.

Klonen Sie dann Dateisysteme, die nicht LVM sind. Dazu:

  1. Unmounten Sie ESP- und /boot-Partitionen:umount /boot/efi /boot
  2. Klonen Sie deren Inhalt: dd if=/dev/sda1 of=/dev/sdb1und dd 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.
  3. 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/fstabmit der neuen UUID zu aktualisieren (sofern UUIDs zum Mounten verwendet werden, was der Fall sein sollte).
  4. Mounten Sie neue /boot- und ESP-Partitionen: mount /dev/sdb2 /bootund mount /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:

  1. pvcreate /dev/sdb3
  2. vgextend r1 /dev/sdb3

Bereiten Sie sich nun auf den zeitaufwändigsten Vorgang vor: Verschieben Sie die Daten vom physischen Festplattenlaufwerk:

  1. pvmove -vi 5 /dev/sda3

Entfernen Sie abschließend das logische HDD-Laufwerk aus der Datenträgergruppe und entfernen Sie die LVM-Bezeichnungen:

  1. vgreduce r1 /dev/sda3
  2. 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 efibootmgrkonkreten Befehle hängen in jedem Fall von der von Ihnen verwendeten Distribution ab.

verwandte Informationen