PowerPath: Erweitern eines Linux-Dateisystems, obwohl keine Partitionstabelle auf einer PowerPath-LUN vorhanden ist
Summary: PowerPath: So erweitern Sie ein Linux-Dateisystem, obwohl keine Partitionstabelle auf einer PowerPath-LUN vorhanden ist.
Symptoms
Der Kunde hat versucht, zwei in nativen Linux LVM-Dateisystem-SAN-LUNs zu erweitern, die in nativem Linux LVM zugeordnet sind, und es ist fehlgeschlagen.
Ein VNX5500 für die Bereitstellung mehrerer LUNs über PowerPath 5.3 SP 1 (Build 111) auf RHEL5- und RHEL6-Servern mit Linux 2.6.18-128.el5
Der Kunde hatte bereits die Nutzerkapazität für diese beiden LUNs auf dem VNX erweitert.
Die vorherige Kapazität lag bei 82 GB und 60 GB und wurde auf 136 GB bzw. 90 GB erweitert.
Das Verfahren des Kunden war folgendermaßen:
lvdisplay -v /dev/[volgroup]/[logicalvolume]- zur Identifizierung physischer Gerätefdisk -l /dev/[device]- um die Partitionstabelle zu überprüfendf -h /[mountpoint]- Überprüfung vorhandener Kapazitätengrep mpt /sys/class/scsi_host/host?/proc_name- Zur Identifizierung des SCSI-Busses, der erneut gescannt werden sollecho "- - -" > /sys/class/scsi_host/hostX/scan- um das Gerät 'hostX' erneut zu scannenpvs /dev/[device]- So überprüfen Sie die Größe des physischen Datenträgerspvresize /dev/[device]- um das physische Volume auf die neue LUN-Größe zu vergrößernpvs /dev/[device]- So überprüfen Sie die Größe des neuen physischen Datenträgersvgscan- um Volume-Gruppen-Caches neu aufzubauenvgs [volgroup]- um Volume-Gruppeninformationen zu überprüfenlvextend -l +100%FREE /dev/[volgroup]/[logicalvolume]- um das logische Volume zu erweitern, um die Festplatte zu füllenresize2fs /dev/[volgroup]/[logicalvolume]- um die Größe des Dateisystems auf dem logischen Volume zu änderndf -h /[mountpoint]- um neue Kapazitäten zu überprüfen
Die von PowerPath gemounteten LUNs scheinen keine gültige Partitionstabelle zu haben:
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
Die ersten 512 Bytes von /dev/emcpowercb lauten wie folgt:
hexdump -Cn512 /dev/emcpowercb 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200
Die LUNs sind jedoch gemountet und für das System zugänglich (beispielsweise):
df -h /DCCDBUNIX/data01 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg2dccdbnx2pd01-lvdccdbnxd01 84G 67G 13G 84% /DCCDBUNIX/data01
Das obige Beispiel gilt für die folgende PowerPath-zugeordnete 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
Versuchen Sie, das Linux-Dateisystem zu erweitern, obwohl keine Partitionstabelle auf der PowerPath-LUN vorhanden ist?
Resolution
Laut Red Hat ist die Verwendung des Befehls zum Anzeigen des physischen Volumes korrekt.
pvs -o+pv_used /dev/[pseudo_device]
Dann, wenn Sie eine Festplatte zu einem System hinzufügen und die Volume-Gruppe in einem Stripe über die hinzugefügte Festplatte erweitern.
Zur Anzeige des ungenutzten Rohspeicherplatzes bei der Erweiterung der ursprünglichen LUN.
pvs -av /dev/[pseudo_device]
Zusätzlich zum Scannen des Geräts vom Host FUNKTIONIERTEN die blockdev-Befehle für alle nativen PowerPath-Geräte wie vorgesehen:
blockdev --rereadpt /dev/sds blockdev --rereadpt /dev/sdbr blockdev --rereadpt /dev/sddq
Der Befehl unten, der die Platzhalter zu /sys/class/scsi_host/hostX/scan wiederholt, so dass die Verwendung des Hosts zum erneuten Scannen des gesamten HBA zum Aktualisieren des LUN-Geräts NICHT FUNKTIONIERTE.
echo "1" >/sys/block/sds/device/rescan echo "1" >/sys/block/sdbr/device/rescan echo "1" >/sys/block/sddq/device/rescan
Beim Erweitern der LUN in Unisphere als letzter Schritt muss sie sich im Root-Verzeichnis befinden, damit sie funktioniert.
# 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
Eine weitere Option ist ein Neustart, der ebenfalls funktioniert, da ein vollständiger erneuter Scan erstellt wird.