Rädda filer från kraschad VMFS-volym

23 Feb 2020

Plötsligt händer det som inte får hända: min primära lagringsenhet la sig på rygg och “dog”. Bidragande kan ha varit att jag tömde en av LUN:en på disk, raderade den gamla volymen tog ut de gamla diskarna
och stoppade i dubbelt så stora diskar (2TB styck), vilket SAN:et enligt dokumentationen ska klara. Jag byggde en ny volym och började packa tillbaka data som skulle ligga på den. Det borde den väl klara?

Det gjorde det inte.

Den nya volymen la sig på rygg mitt under kopieringen av data från en tillfällig lagringsenhet till SAN:et. Givetvis ballade VMware också ur och efter omstart så såg det ut så här:

promise foo

De två andra volymerna, båda med mindre diskar, gick utmärkt att montera i VMware och tömma på data men den stora volymen gick inte att komma åt. Jag testade en bunt olika kommandon
och kom snart fram till att eftersom volymen inte hade fått ett UUID så kunde jag inte forcera en montering via kommandoradsläget i ESXi.

[root@vh02:/vmfs/volumes] esxcfg-scsidevs -l
eui.22030001556fa704
Device Type: Direct-Access
Size: 11444091 MB
Display Name: Promise Fibre Channel Disk (eui.22030001556fa704)
Multipath Plugin: NMP
Console Device: /vmfs/devices/disks/eui.22030001556fa704
Devfs Path: /vmfs/devices/disks/eui.22030001556fa704
Vendor: Promise Model: VTrak E610f Revis: 0336
SCSI Level: 5 Is Pseudo: false Status: degraded
Is RDM Capable: true Is Removable: false
Is Local: false Is SSD: false
Other Names:

vml.01000000003439353334353230303030303030303030303030303030303841413643384544363733424546565472616b20
VAAI Status: unknown

Kort sagt, ESXi vägrade röra diskvolymen. Nu var goda råd dyra eftersom jag till varje pris var tvungen att få bort all data från volymen innan den la sig på rygg igen.

Jag installerade upp CentOS 7 på en server, anslöt den via fibre channel till SAN:et och jodå, volymen listades som en disk:

Disk /dev/sdb: 12000.0 GB, 11999999950848 bytes, 23437499904 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
Disk identifier: EC06325E-4EF9-48D2-A139-A3A1898A77CC

Start End Size Type Name
1 2048 23437498367 10.9T unknown
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Eftersom volymen är formatterad med VMFS så kan inte Linux montera disken hur som helst, men via ett projekt som heter VMFS-Fuse så gick det faktiskt. Det finns två varianter av detta projekt – orginalet som är en äldre version och som inte klarar VMFS6 och en nyare som gör det.

Installera de dependencies som behövs för att VMFS-Fuse ska starta och sen är det bara att montera upp disken och hämta ut dina data på följande sätt där /dev/sdxx är FC-disken och /fc01 är mountpoint:

vmfs-fuse /dev/sdc1 /fc01/

Inte det roligaste projektet att behöva göra när man är helt sänkt av en influensa men det var ändå förhållandevis enkelt att lösa.