PowerPath: Så här expanderar du ett Linux-filsystem trots att det inte finns någon partitionstabell på en PowerPath LUN
Summary: PowerPath: Så här utökar du ett Linux-filsystem trots att det inte finns någon partitionstabell på en PowerPath LUN.
Symptoms
Kunden försökte utöka två i inbyggt Linux LVM-filsystem SAN LUNS som är mappat i inbyggt Linux LVM men det misslyckades.
Ett VNX5500 som betjänar flera LUN via PowerPath 5.3 SP 1 (build 111) till RHEL5- och RHEL6-servrar som kör Linux 2.6.18-128.el5
Kunden hade redan utökat användarkapaciteten för dessa två LUN på VNX.
Den tidigare kapaciteten var 82 GB och 60 GB och den har utökats till 136 GB respektive 90 GB.
Kunden följde proceduren:
lvdisplay -v /dev/[volgroup]/[logicalvolume]- för att identifiera fysisk enhetfdisk -l /dev/[device]- för att verifiera partitionstabellendf -h /[mountpoint]- för att verifiera befintlig kapacitetgrep mpt /sys/class/scsi_host/host?/proc_name- För att identifiera SCSI-bussen som ska skannas igenecho "- - -" > /sys/class/scsi_host/hostX/scan- för att skanna enheten "hostX" igenpvs /dev/[device]- för att kontrollera den fysiska volymens storlekpvresize /dev/[device]- för att utöka den fysiska volymen till den nya LUN-storlekenpvs /dev/[device]- för att kontrollera ny fysisk volymstorlekvgscan- för att återskapa volymgruppscachervgs [volgroup]- för att verifiera volymgruppsinformationlvextend -l +100%FREE /dev/[volgroup]/[logicalvolume]- för att utöka den logiska volymen så att den fyller diskenresize2fs /dev/[volgroup]/[logicalvolume]- för att ändra storlek på filsystemet på den logiska volymendf -h /[mountpoint]- för att verifiera ny kapacitet
De PowerPath-monterade LUN verkar inte ha en giltig partitionstabell:
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
De första 512 byten i /dev/emcpowercb är följande:
hexdump -Cn512 /dev/emcpowercb 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200
Ändå är LUN monterade och är tillgängliga för systemet (till exempel):
df -h /DCCDBUNIX/data01 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg2dccdbnx2pd01-lvdccdbnxd01 84G 67G 13G 84% /DCCDBUNIX/data01
Ovanstående exempel är för följande PowerPath-mappade LUN:
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
Försöker du utöka Linux-filsystemet trots att det inte finns någon partitionstabell på PowerPath LUN?
Resolution
Enligt Red Hat är det korrekt att använda kommandot för att visa den fysiska volymen.
pvs -o+pv_used /dev/[pseudo_device]
När du sedan lägger till en disk i ett system och utökar volymgruppen i en stripe över den tillagda disken.
För att visa det oanvända rådatadiskutrymmet när det ursprungliga LUN expanderades.
pvs -av /dev/[pseudo_device]
Förutom att genomsöka enheten från värden fungerar blockdev-kommandona för alla PowerPath-inbyggda enheter som avsett:
blockdev --rereadpt /dev/sds blockdev --rereadpt /dev/sdbr blockdev --rereadpt /dev/sddq
Kommandot nedan som upprepar jokertecknen till /sys/class/scsi_host/hostX/scan så att det inte gick att använda värden för att söka igenom hela HBA:n igen för att uppdatera LUN-enheten.
echo "1" >/sys/block/sds/device/rescan echo "1" >/sys/block/sdbr/device/rescan echo "1" >/sys/block/sddq/device/rescan
Att sedan expandera LUN i Unisphere som ett sista steg, måste vara i roten för att det ska fungera.
# 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
Ett annat alternativ är att starta om, vilket också fungerar, eftersom det skapar en fullständig omskanning.