PowerPath: Як розгорнути файлову систему Linux, навіть якщо в PowerPath LUN немає таблиці розділів
Summary: PowerPath: Як розширити файлову систему Linux, навіть якщо в PowerPath LUN немає таблиці розділів.
Symptoms
Замовник намагався розширити дві в рідній файловій системі Linux LVM SAN LUNS, яка відображена в рідному Linux LVM, і це не вдалося.
VNX5500 обслуговування кількох LUN через PowerPath 5.3 SP 1 (збірка 111) до серверів RHEL5 і RHEL6 під керуванням Linux 2.6.18-128.el5
Клієнт вже розширив пропускну здатність для цих двох LUN на VNX.
Попередня ємність становила 82 ГБ і 60 ГБ і була розширена до 136 ГБ і 90 ГБ відповідно.
Порядок дій замовника полягав у наступному:
lvdisplay -v /dev/[volgroup]/[logicalvolume]- для ідентифікації фізичного пристроюfdisk -l /dev/[device]- щоб перевірити таблицю розділівdf -h /[mountpoint]- для перевірки наявних потужностейgrep mpt /sys/class/scsi_host/host?/proc_name- Для ідентифікації шини SCSI для повторного скануванняecho "- - -" > /sys/class/scsi_host/hostX/scan- повторно просканувати пристрій 'hostX'pvs /dev/[device]- для перевірки розміру фізичного об'ємуpvresize /dev/[device]- збільшити фізичний об'єм до нового розміру ЛУНpvs /dev/[device]- щоб перевірити новий розмір фізичного об'ємуvgscan- перебудувати кеш груп томівvgs [volgroup]- для перевірки інформації про групи томівlvextend -l +100%FREE /dev/[volgroup]/[logicalvolume]- для розширення логічного обсягу для заповнення дискаresize2fs /dev/[volgroup]/[logicalvolume]- змінити розмір файлової системи на логічному томіdf -h /[mountpoint]- для перевірки нових потужностей
Схоже, що LUN, змонтовані на PowerPath, не мають коректної таблиці розділів:
fdisk -l /dev/emcpowercb Disk /dev/emcpowercb: 91.2 GB, 91268055040 bytes 255 heads, 63 sectors/track, 11096 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/emcpowercb doesn't contain a valid partition table
Перші 512 байтів /dev/emcpowercb виглядають наступним чином:
hexdump -Cn512 /dev/emcpowercb 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200
При цьому ЛУНи монтуються і доступні системі (наприклад):
df -h /DCCDBUNIX/data01 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg2dccdbnx2pd01-lvdccdbnxd01 84G 67G 13G 84% /DCCDBUNIX/data01
Наведений вище приклад наведено для наступного LUN, відображеного в PowerPath:
vgdisplay -v vg2dccdbnx2pd01 Using volume group(s) on command line Finding volume group "vg2dccdbnx2pd01" --- Volume group --- VG Name vg2dccdbnx2pd01 --- Logical volume --- LV Name /dev/vg2dccdbnx2pd01/lvdccdbnxd01 VG Name vg2dccdbnx2pd01 LV Size 85.00 GB Block device 253:9 --- Physical volumes --- PV Name /dev/emcpowercb Total PE / Free PE 21759 / 0
Cause
Намагаєтеся розширити файлову систему Linux, навіть якщо в PowerPath LUN немає таблиці розділів?
Resolution
За словами Red Hat, використання команди для виявлення фізичного об'єму є правильним.
pvs -o+pv_used /dev/[pseudo_device]
Потім при додаванні диска в систему і розширенні групи томів смугою по доданому диску.
Щоб показати невикористаний необроблений дисковий простір при розгортанні вихідного LUN.
pvs -av /dev/[pseudo_device]
Крім сканування пристрою з хоста, команди blockdev для всіх рідних пристроїв PowerPath ПРАЦЮВАЛИ так, як було задумано:
blockdev --rereadpt /dev/sds blockdev --rereadpt /dev/sdbr blockdev --rereadpt /dev/sddq
Команда нижче, яка повторює символи узагальнення до /sys/class/scsi_host/hostX/scan, щоб використання хоста для повторного сканування всього HBA для оновлення пристрою LUN НЕ СПРАЦЮВАЛО.
echo "1" >/sys/block/sds/device/rescan echo "1" >/sys/block/sdbr/device/rescan echo "1" >/sys/block/sddq/device/rescan
Тоді розширення LUN в Unisphere як останній крок, потрібно бути в корені, щоб він працював.
# powermt display dev=emcpowerai Pseudo name=emcpowerai VNX ID=APMXXXXXXXXXXX [xxxxx] Logical device ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [xxxxx_dccdbnx2i02_RV] state=alive; policy=CLAROpt; queued-IOs=0 Owner: default=SP A, current=SP A Array failover mode: 4 ============================================================================== --------------- Host --------------- - Stor - -- I/O Path -- -- Stats --- ### HW Path I/O Paths Interf. Mode State Q-IOs Errors ============================================================================== 3 lpfc sds SP A5 active alive 0 0 3 lpfc sdbr SP B5 active alive 0 0 4 lpfc sddq SP A4 active alive 0 0 pvs -o+pv_used,dev_size |grep /dev/emcpowerai /dev/emcpowerai vg2dccdbnx2qi01 lvm2 a-- 60.00G 0 60.00G 60.00G umount /DCCDBUNIX/index01 blockdev --rereadpt /dev/sds blockdev --rereadpt /dev/sdbr blockdev --rereadpt /dev/sddq pvs -o+pv_used,dev_size |grep /dev/emcpowerai /dev/emcpowerai vg2dccdbnx2qi01 lvm2 a-- 60.00G 0 60.00G 92.00G pvresize /dev/emcpowerai Physical volume "/dev/emcpowerai" changed 1 physical volume(s) resized / 0 physical volume(s) not resized pvs -o+pv_used,dev_size |grep /dev/emcpowerai /dev/emcpowerai vg2dccdbnx2qi01 lvm2 a-- 92.00G 32.00G 60.00G 92.00G pvscan |grep '/dev/emcpowerai' PV /dev/emcpowerai VG vg2dccdbnx2qi01 lvm2 [92.00 GB / 32.00 GB free] vgscan |grep 'vg2dccdbnx2qi01' Found volume group "vg2dccdbnx2qi01" using metadata type lvm2 vgs |grep vg2dccdbnx2qi01 vg2dccdbnx2qi01 1 1 0 wz--n- 92.00G 32.00G lvextend -l +100%FREE /dev/vg2dccdbnx2qi01/lvdccdbnxi01 lvextend -l +100%FREE /dev/vg2dccdbnx2qi01/lvdccdbnxi01 Extending logical volume lvdccdbnxi01 to 92.00 GB Logical volume lvdccdbnxi01 successfully resized resize2fs /dev/vg2dccdbnx2qi01/lvdccdbnxi01 resize2fs 1.39 (29-May-2006) Please run 'e2fsck -f /dev/vg2dccdbnx2qi01/lvdccdbnxi01' first. e2fsck -f /dev/vg2dccdbnx2qi01/lvdccdbnxi01 e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/vg2dccdbnx2qi01/lvdccdbnxi01: 43/7864320 files (16.3% non-contiguous), 12034277/15727616 blocks resize2fs /dev/vg2dccdbnx2qi01/lvdccdbnxi01 resize2fs 1.39 (29-May-2006) Resizing the filesystem on /dev/vg2dccdbnx2qi01/lvdccdbnxi01 to 24116224 (4k) blocks. The filesystem on /dev/vg2dccdbnx2qi01/lvdccdbnxi01 is now 24116224 blocks long. mount /DCCDBUNIX/index01 df -h /dev/mapper/vg2dccdbnx2qi01-lvdccdbnxi01 91G 45G 41G 53% /DCCDBUNIX/index01
Ще одним варіантом є перезавантаження, яке теж працює, так як створює повне повторне сканування.