Автор Тема: CentOS 7 збільшення розміру XFS LUN без втрати даних і перезавантаження  (Прочитано 43 раз)

Оффлайн Mantikor

  • Ветеран
  • ******
  • Сообщений: 5 604
  • Репутация: +129/-1
  • \m/
Пишу інструкцію для себе, і може когось занесе сюди з пошукової системи.
Вхідні дані: є сервер з RedHat/CentOS, до нього примаплений лун(multipath) з СЗД на 2.5ТБ. Файлова система XFS.
Спойлер
# df -h
/dev/mapper/mpathc  2.5T  1.2T  1.4T  47% /folder

# fdisk -l
Disk /dev/sdd: 2748.8 GB, 2748779069440 bytes, 5368709120 sectors
Disk /dev/sdj: 2748.8 GB, 2748779069440 bytes, 5368709120 sectors
Disk /dev/sdi: 2748.8 GB, 2748779069440 bytes, 5368709120 sectors
Disk /dev/sdm: 2748.8 GB, 2748779069440 bytes, 5368709120 sectors
Disk /dev/mapper/mpathc: 2748.8 GB, 2748779069440 bytes, 5368709120 sectors
Задача: збільшити розмір диску до 3.2ТБ.
Також ця інструкція підходить для збільшення розміру дисків на віртуальних машинах, просто потрібно пропустити кусок про multipath.

1. Спочатку потрібно збільшити розмір луна на самій СЗД

2. Відмаплюємо диcк(напевно можна і не відмаплювати, але якщо є можливість - краще це зробити)
# umount /dev/mapper/mpathc
3. Потрібно пересканувати SCSI пристрої, щоб система побачила додане місце.
Для цього спочатку виясняємо імена SCSI пристроїв:
# ls /sys/class/scsi_device/
0:0:0:0  0:1:0:0  1:0:0:0  1:0:0:1  1:0:0:2  1:0:1:0  1:0:1:1  1:0:1:2  3:0:0:0  3:0:0:1  3:0:0:2  3:0:3:0  3:0:3:1  3:0:3:2
Ті що мені потрібно починаються з 1:0:0:0.
Заставляємо систему пересканувати їх:
Спойлер
echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/rescan
echo 1 > /sys/class/scsi_device/1\:0\:0\:1/device/rescan
echo 1 > /sys/class/scsi_device/1\:0\:0\:2/device/rescan
echo 1 > /sys/class/scsi_device/1\:0\:1\:0/device/rescan
echo 1 > /sys/class/scsi_device/1\:0\:1\:1/device/rescan
echo 1 > /sys/class/scsi_device/1\:0\:1\:2/device/rescan
echo 1 > /sys/class/scsi_device/3\:0\:0\:0/device/rescan
echo 1 > /sys/class/scsi_device/3\:0\:0\:1/device/rescan
echo 1 > /sys/class/scsi_device/3\:0\:0\:2/device/rescan
echo 1 > /sys/class/scsi_device/3\:0\:3\:0/device/rescan
echo 1 > /sys/class/scsi_device/3\:0\:3\:2/device/rescan
echo 1 > /sys/class/scsi_device/3\:0\:3\:1/device/rescan
Спойлер
Насправді можна зробити простіше, командою
# multipath -ll
  3600d0230000000000e13955cc3757801 dm-10 WINSYS,SF2372
  size=269G features='0' hwhandler='0' wp=rw
  |-+- policy='round-robin 0' prio=1 status=enabled
  | `- 19:0:0:1 sdc 8:32  active ready  running
  `-+- policy='round-robin 0' prio=1 status=enabled
    `- 18:0:0:1 sdh 8:112 active ready  running
Дізнатись які конкретно пристрої потрібно перескановувати(в даному прикладі це 19:0:0:1 та 18:0:0:1)

Також можна просканувати нові луни:
# echo "- - -" > /sys/class/scsi_host/host[n]/scanSending "- - -" to /sys/class/scsi_host/host[n]/scan is telling the SCSI host adapter to look for new disks on every channel "(-)", every target "(-)", and every lun "(-)". - this is the right thing to do if you add a new disk to the system while it's powered on.

Sending a "1" to /sys/class/block/sdc/device/rescan is telling the SCSI block device to refresh it's information about where it's ending boundary is (among other things) to give the kernel information about it's updated size. - this is the right thing to do if you change the size of an existing disk while it's powered on.
Перевіряємо:
# fdisk -l
Disk /dev/sdd: 3518.4 GB, 3518437208576 bytes, 6871947673 sectors
Disk /dev/sdj: 3518.4 GB, 3518437208576 bytes, 6871947673 sectors
Disk /dev/sdi: 3518.4 GB, 3518437208576 bytes, 6871947673 sectors
Disk /dev/sdm: 3518.4 GB, 3518437208576 bytes, 6871947673 sectors
Disk /dev/mapper/mpathc: 2748.8 GB, 2748779069440 bytes, 5368709120 sectors
Як бачимо, збільшення розміру дисків по 4 шляхам система побачила, але multipath все ще бачить старий розмір.

4. Реконфігурація multipath:
# multipathd -k
multipathd> reconfigure
ok
> > CTRL-D - для виходу
Ця операція не впливає на роботу інших лунів.
Перевіряємо:
# fdisk -l
Disk /dev/sdd: 3518.4 GB, 3518437208576 bytes, 6871947673 sectors
Disk /dev/sdj: 3518.4 GB, 3518437208576 bytes, 6871947673 sectors
Disk /dev/sdi: 3518.4 GB, 3518437208576 bytes, 6871947673 sectors
Disk /dev/sdm: 3518.4 GB, 3518437208576 bytes, 6871947673 sectors
Disk /dev/mapper/mpathc: 3518.4 GB, 3518437208576 bytes, 6871947673 sectors
ОК. Розмір mpathc змінився.

5. Залишилось збільшити розмір самої файлової системи.
В XFS для цього є команда xfs_growfs.
Спочатку примонтовуємо пристрій:
# mount -t xfs -o rw,relatime,seclabel,attr2,inode64,noquota /dev/mapper/mpathc /folder
# df -h
/dev/mapper/mpathc  2.5T  1.2T  1.4T  47% /folder
І збільшуємо розмір ФС:
# xfs_growfs /folder
meta-data=/dev/mapper/mpathc     isize=256    agcount=32, agsize=20971520 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=671088640, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=327680, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 671088640 to 858993459
# df -h
/dev/mapper/mpathc  3.2T  1.2T  2.1T  37% /folder
« Последнее редактирование: 22 Декабря 2017, 14:17:16 от Mantikor »

Форум журнала "Домашний ПК"