Уменьшение размера диска на сервере Linux RAID 1

Уменьшение размера диска на сервере Linux RAID 1

Я ищу способ клонировать мой HDD на SSD без потери данных или самой системы Linux. Проблема в том, что размер текущего HDD составляет 1 ТБ, а SSD, который мы получили, имеет 480 ГБ, поэтому я не могу клонировать напрямую, потому что размер диска отличается, но я знаю, что диск не полностью используется, поэтому я предполагаю, что это можно уменьшить с помощью внешнего инструмента или через командную строку на сервере. Теперь у меня есть 2 HDD по 1 ТБ каждый, подключенных к серверу, и я не знаю, как заменить их на эти меньшие и более быстрые SSD. Любая помощь была бы высоко оценена.

#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 У меня есть к нему доступ физически, но также и через Интернет, думаю, что конфигурация RAID — это программное обеспечение.

решение1

В системе, которая была создана с учетом возможных перестановок, это может быть так же просто, как подключение других устройств, их инициализация, миграция томов и переустановка загрузчика, и это может быть даже достижимо без остановки служб.

У меня для вас хорошие новости: ваша схема соответствует этому. Вы используете LVM, не все пространство в группе томов выделено. Все логические тома вместе, похоже, занимают меньше места, которое обычно доступно на SSD на 480 ГБ, что означает, что вам не нужно изменять размеры файловой системы. Я думаю, что все возможно сделать даже без остановки службы.

Также, хотя это и не относится к данному конкретному случаю, полезно помнить, что это не всегда сводится к сжатию файловых систем и последующему клонированию. Во многих случаях вы можете просто создать новые файловые системы и скопировать файлы.


У вас есть Broadcom HW RAID, обычно известный как «LSI MegaRAID SAS», современный, который управляется с помощьюпрограммаstorcli. Чтобы получить ее с сайта Broadcom, вам нужно знать модель карты; на данный момент мы знаем, что она использует чип контроллера 3008, чего, к сожалению, недостаточно, чтобы направить вас на подлинную страницу загрузки.

Утилита позволит вам управлять и контролировать ваш RAID из ОС;эта способность является обязательной! Однако у меня недостаточно опыта работы с ним; раньше у меня был megacli, который сейчас устарел, и, вероятно, не очень хорошая идея использовать его с вашей новой картой. В качестве альтернативы вы можете перезагрузиться и вызвать утилиту загрузки с помощью нажатия клавиши, а затем создать новый логический диск оттуда.

После создания нового RAID-массива и нового логического диска из нового набора носителей вам необходимо разбить его на разделы, как показано ниже, и создать аналогичную структуру, только последний раздел должен быть меньше.

Если вы используете удаленное подключение для выполнения миграции, я предлагаю выполнять все операции в screenили tmux, так что даже если вы потеряете соединение из-за сетевых проблем, сеанс оболочки останется, и вы сможете подключиться к нему. Если вы сидите за терминалом или используете какой-нибудь король KVM (iLO, iDRAC, xClarity и т. д.), это не важно.

Предположим, что новый виртуальный диск RAID случайно вызван /dev/sdbв ОС.Убедитесь, что вы используете правильное устройство, иначе восстановить данные будет сложно.:

  1. Бегатьfdisk /dev/sdb
  2. Нажмите g, чтобы создать таблицу разделов GPT (и согласиться с удалением).
  3. Создайте системный раздел EFI (ESP), создав новый раздел того же размера: nвыберите тип 1 «ESP» и используйте размер 953M(M означает МиБ, то есть точный размер вашего существующего ESP)
  4. Создайте загрузочный раздел:, nвыберите «Файловая система Linux» (не помню, какому номеру она соответствует) и 953Mснова используйте size.
  5. Создайте раздел LVM: nвыберите «Linux LVM» (31, если я не ошибаюсь) и, чтобы заполнить все оставшееся пространство, примите все предложенные варианты.
  6. Принять изменения и выйти: w.

Затем клонируйте файловые системы, которые не являются LVM. Для этого:

  1. Размонтируйте разделы ESP и /boot:umount /boot/efi /boot
  2. Клонируйте их содержимое: dd if=/dev/sda1 of=/dev/sdb1и dd if=/dev/sda2 of=/dev/sdb2. Если на этом этапе есть ошибки, не продолжайте, пока не исправите их! Одной из причин может быть неправильный размер.
  3. Поскольку вы используете XFS для /boot, вам нужно изменить UUID для клона сейчас, иначе вы не сможете смонтировать: xfs_admin -U generate /dev/sdb2. Не забудьте обновить его, /etc/fstabуказав новый UUID (если он использует UUID для монтирования, что и должно быть).
  4. Смонтируйте новые разделы /boot и ESP: mount /dev/sdb2 /bootи mount /dev/sdb1 /boot/efi.

Теперь создайте PV из оставшегося большого раздела и добавьте его в существующую группу томов:

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

Теперь приготовьтесь к самой длительной операции: перемещению данных с физического тома жесткого диска:

  1. pvmove -vi 5 /dev/sda3

Наконец, удалите логический диск HDD из группы томов и удалите метки LVM:

  1. vgreduce r1 /dev/sda3
  2. pvremove /dev/sda3

Когда он завершится, настанет время перенастроить загрузку с нового RAID. Возможно, вам придется настроить карту RAID, чтобы сделать этот новый том основным загрузочным; это обычно не требуется для загрузки EFI, но не повредит, так что сделайте это.

Настройте загрузочную запись прошивки для загрузки с нового RAID. Используйте инструмент, предоставленный вашей версией ОС, или сделайте это вручную с помощью efibootmgr; в любом случае, конкретные команды зависят от того, какой дистрибутив вы используете.

Связанный контент