Zpool noch zu retten?

Jenz

New Member
Hallo Kollegen,

ich hoffe auf eure Hilfe, komme nicht mehr weiter und habe natürlich auch kein Backup.
Kein Backup - keine Gnade :-(

Ich betreibe seit 2014 ein ZFS Pool mit 16 Platten auf Freebsd 11.3. RaidZ2
Ich habe in neue Hardware bekommen und habe das System erfolgreich umgezogen, also export des ZFS Pools vom alten System.
Installation von FreeBSD 12 auf dem neuem Server Pool importiert, Upgrade durchgeführt und resilvert.
Alles toll, aber ich habe dann einen Abstecher in das Bios vom Raidcontroller gemacht.
Es handelt sich um einen asr-71605 welcher im Modus RAID: Expose RAW eingestellt war, in diesem Modus leitet er die Platten als Paththroug dann durch wenn kein Array erstellt wird, so hat er es auch getan. Ich war der Meinung ich stelle ihn nun in den Modus HBA. Laut dem Dokument von adaptec kein Problem.


Nach einem Reboot war der ganze pool degraded und im dmesg erhalte ich die Fehlermeldung
Code:
GEOM: diskid/DISK-WD-WMC300033578: corrupt or invalid GPT detected.
GEOM: diskid/DISK-WD-WMC300033578: GPT rejected -- may not be recoverable.
Im Anschluss habe ich alles wieder im Bios umgestellt aber das Disaster ist immer noch vorhanden.

Schaue ich mir das System mit Gdisk an, sehe ich folgendes.
Code:
root@castor:~ # gdisk /dev/da1
GPT fdisk (gdisk) version 1.0.4

Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present

Creating new GPT entries in memory.

Command (? for help): i
No partitions

Command (? for help): p
Disk /dev/da1: 3907029168 sectors, 1.8 TiB
Sector size (logical): 512 bytes
Disk identifier (GUID): 222061DC-4D53-4B94-A3E2-7245FEC56346
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 3907029134
Partitions will be aligned on 2048-sector boundaries
Total free space is 3907029101 sectors (1.8 TiB)

Number Start (sector) End (sector) Size Code Name
zdb spricht folgendes auf den ersten beiden platten
Code:
root@castor:~ # zdb -l /dev/da0
------------------------------------
LABEL 0
------------------------------------
failed to unpack label 0
------------------------------------
LABEL 1
------------------------------------
failed to unpack label 1
------------------------------------
LABEL 2
------------------------------------
version: 5000
name: 'Storage'
state: 0
txg: 39
pool_guid: 9982131470648287908
hostname: 'lucy'
top_guid: 10799481239905619071
guid: 13308286758891230642
vdev_children: 1
vdev_tree:
type: 'raidz'
id: 0
guid: 10799481239905619071
nparity: 1
metaslab_array: 34
metaslab_shift: 34
ashift: 12
asize: 1991818346496
is_log: 0
create_txg: 4
children[0]:
type: 'disk'
id: 0
guid: 6874939737376970087
path: '/dev/ada0p3'
phys_path: '/dev/ada0p3'
whole_disk: 1
create_txg: 4
children[1]:
type: 'disk'
id: 1
guid: 13308286758891230642
path: '/dev/ada1p3'
phys_path: '/dev/ada1p3'
whole_disk: 1
create_txg: 4
children[2]:
type: 'disk'
id: 2
guid: 3334074266236166235
path: '/dev/ada2p3'
phys_path: '/dev/ada2p3'
whole_disk: 1
create_txg: 4
children[3]:
type: 'disk'
id: 3
guid: 7583283394416999456
path: '/dev/ada3p3'
phys_path: '/dev/ada3p3'
whole_disk: 1
create_txg: 4
features_for_read:
com.delphix:hole_birth
com.delphix:embedded_data
------------------------------------
LABEL 3
------------------------------------
failed to unpack label 3
auf den anderen sieht es so aus.

Code:
root@castor:~ # zdb -l /dev/da2
------------------------------------
LABEL 0
------------------------------------
failed to unpack label 0
------------------------------------
LABEL 1
------------------------------------
failed to unpack label 1
------------------------------------
LABEL 2
------------------------------------
failed to unpack label 2
------------------------------------
LABEL 3
------------------------------------
failed to unpack label 3

Der Hexdump sieht die echten Daten.
Code:
root@castor:~ # hexdump -C /dev/da0 | more
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00103fd0 00 00 00 00 00 00 00 00 11 7a 0c b1 7a da 10 02 |.........z..z...|
00103fe0 3f 2a 6e 7f 80 8f f4 97 fc ce aa 58 16 9f 90 af |?*n........X....|
00103ff0 8b b4 6d ff 57 ea d1 cb ab 5f 46 0d db 92 c6 6e |..m.W...._F....n|
00104000 01 01 00 00 00 00 00 00 00 00 00 01 00 00 00 24 |...............$|
00104010 00 00 00 20 00 00 00 07 76 65 72 73 69 6f 6e 00 |... ....version.|
00104020 00 00 00 08 00 00 00 01 00 00 00 00 00 00 13 88 |................|
00104030 00 00 00 24 00 00 00 20 00 00 00 04 6e 61 6d 65 |...$... ....name|
00104040 00 00 00 09 00 00 00 01 00 00 00 06 63 61 73 74 |............cast|
00104050 6f 72 00 00 00 00 00 24 00 00 00 20 00 00 00 05 |or.....$... ....|
00104060 73 74 61 74 65 00 00 00 00 00 00 08 00 00 00 01 |state...........|
00104070 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 20 |........... ... |
00104080 00 00 00 03 74 78 67 00 00 00 00 08 00 00 00 01 |....txg.........|
00104090 00 00 00 00 00 18 ca 8c 00 00 00 28 00 00 00 28 |...........(...(|
001040a0 00 00 00 09 70 6f 6f 6c 5f 67 75 69 64 00 00 00 |....pool_guid...|
001040b0 00 00 00 08 00 00 00 01 69 d6 13 7d 14 fe 0a 46 |........i..}...F|
001040c0 00 00 00 24 00 00 00 20 00 00 00 06 68 6f 73 74 |...$... ....host|
001040d0 69 64 00 00 00 00 00 08 00 00 00 01 00 00 00 00 |id..............|
001040e0 84 0f b9 3d 00 00 00 28 00 00 00 28 00 00 00 08 |...=...(...(....|
001040f0 68 6f 73 74 6e 61 6d 65 00 00 00 09 00 00 00 01 |hostname........|
00104100 00 00 00 06 63 61 73 74 6f 72 00 00 00 00 00 24 |....castor.....$|
00104110 00 00 00 28 00 00 00 08 74 6f 70 5f 67 75 69 64 |...(....top_guid|
00104120 00 00 00 08 00 00 00 01 00 86 12 5f 4f 7f 9a ae |..........._O...|
00104130 00 00 00 20 00 00 00 20 00 00 00 04 67 75 69 64 |... ... ....guid|
00104140 00 00 00 08 00 00 00 01 34 e1 99 ae 78 9d ac 91 |........4...x...|
00104150 00 00 00 2c 00 00 00 28 00 00 00 0d 76 64 65 76 |...,...(....vdev|
00104160 5f 63 68 69 6c 64 72 65 6e 00 00 00 00 00 00 08 |_children.......|
00104170 00 00 00 01 00 00 00 00 00 00 00 02 00 00 0b c0 |................|
00104180 00 00 00 38 00 00 00 09 76 64 65 76 5f 74 72 65 |...8....vdev_tre|
00104190 65 00 00 00 00 00 00 13 00 00 00 01 00 00 00 00 |e...............|
001041a0 00 00 00 01 00 00 00 24 00 00 00 20 00 00 00 04 |.......$... ....|
001041b0 74 79 70 65 00 00 00 09 00 00 00 01 00 00 00 05 |type............|
001041c0 72 61 69 64 7a 00 00 00 00 00 00 20 00 00 00 20 |raidz...... ... |
001041d0 00 00 00 02 69 64 00 00 00 00 00 08 00 00 00 01 |....id..........|
001041e0 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 20 |........... ... |
001041f0 00 00 00 04 67 75 69 64 00 00 00 08 00 00 00 01 |....guid........|
00104200 00 86 12 5f 4f 7f 9a ae 00 00 00 24 00 00 00 20 |..._O......$... |
00104210 00 00 00 07 6e 70 61 72 69 74 79 00 00 00 00 08 |....nparity.....|
00104220 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 2c |...............,|
00104230 00 00 00 28 00 00 00 0e 6d 65 74 61 73 6c 61 62 |...(....metaslab|
00104240 5f 61 72 72 61 79 00 00 00 00 00 08 00 00 00 01 |_array..........|
00104250 00 00 00 00 00 00 00 22 00 00 00 2c 00 00 00 28 |......."...,...(|
00104260 00 00 00 0e 6d 65 74 61 73 6c 61 62 5f 73 68 69 |....metaslab_shi|
00104270 66 74 00 00 00 00 00 08 00 00 00 01 00 00 00 00 |ft..............|
00104280 00 00 00 25 00 00 00 24 00 00 00 20 00 00 00 06 |...%...$... ....|
00104290 61 73 68 69 66 74 00 00 00 00 00 08 00 00 00 01 |ashift..........|
001042a0 00 00 00 00 00 00 00 0c 00 00 00 24 00 00 00 20 |...........$... |
001042b0 00 00 00 05 61 73 69 7a 65 00 00 00 00 00 00 08 |....asize.......|
001042c0 00 00 00 01 00 00 0e 8d a1 c0 00 00 00 00 00 24 |...............$|
001042d0 00 00 00 20 00 00 00 06 69 73 5f 6c 6f 67 00 00 |... ....is_log..|
001042e0 00 00 00 08 00 00 00 01 00 00 00 00 00 00 00 00 |................|
001042f0 00 00 00 28 00 00 00 28 00 00 00 0a 63 72 65 61 |...(...(....crea|
00104300 74 65 5f 74 78 67 00 00 00 00 00 08 00 00 00 01 |te_txg..........|
00104310 00 00 00 00 00 00 00 04 00 00 0a 1c 00 00 01 20 |............... |
00104320 00 00 00 08 63 68 69 6c 64 72 65 6e 00 00 00 14 |....children....|
00104330 00 00 00 08 00 00 00 00 00 00 00 01 00 00 00 20 |............... |
00104340 00 00 00 20 00 00 00 04 74 79 70 65 00 00 00 09 |... ....type....|
00104350 00 00 00 01 00 00 00 04 64 69 73 6b 00 00 00 20 |........disk... |
00104360 00 00 00 20 00 00 00 02 69 64 00 00 00 00 00 08 |... ....id......|
00104370 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 20 |............... |
00104380 00 00 00 20 00 00 00 04 67 75 69 64 00 00 00 08 |... ....guid....|
00104390 00 00 00 01 34 e1 99 ae 78 9d ac 91 00 00 00 2c |....4...x......,|
001043a0 00 00 00 28 00 00 00 04 70 61 74 68 00 00 00 09 |...(....path....|
001043b0 00 00 00 01 00 00 00 0f 2f 64 65 76 2f 67 70 74 |......../dev/gpt|
001043c0 2f 64 69 73 6b 30 30 00 00 00 00 34 00 00 00 30 |/disk00....4...0|
001043d0 00 00 00 09 70 68 79 73 5f 70 61 74 68 00 00 00 |....phys_path...|
001043e0 00 00 00 09 00 00 00 01 00 00 00 0f 2f 64 65 76 |............/dev|
001043f0 2f 67 70 74 2f 64 69 73 6b 30 30 00 00 00 00 28 |/gpt/disk00....(|
00104400 00 00 00 28 00 00 00 0a 77 68 6f 6c 65 5f 64 69 |...(....whole_di|

Die Daten sind alle noch da, aber ich vermute mir hat es die GPT geschossen, kennt sich einer von euch damit aus?
Ich habe sämtliche zpool imports versucht, Gpart findet leider keine platten.


viele Grüße

Jens
 
Wie hast du die Platten denn in den pool eingebunden?
Du schreibst immer da0 - ohne Partitionsnummer, damit hättest du gar keine GPT auf den Platten.

Rob
 
Und wenn du sicher bist, dass Partitionen da waren und sie irgendwie zerschossen wurden, ist sysutils/testdisk das Mittel der Wahl. Spätestens mit dem (zeitaufwändigen) Deep Scan findet es eigentlich alles an Partitionen wieder. Allerdings sollte man vorher von allen Platten, auf die es angesetzt wird, ein Image erstellen. Um nicht aus Versehen Daten zu überschreiben und alles noch viel schlimmer zu machen.
 
Kannst du noch nen
Code:
zpool status -v [poolname]
machen (und posten) oder funktioniert das schon nicht mehr?
Wäre ggf interessant zu sehen, welche der Disks UNAVAIL sind - bzw DEGRADED

ZFS möchte immer den niedrigstmöglichen Zugriff auf die Platten haben, jegliche Controller-Intelligenz sollte soweit möglich ausgeschalten werden.
 
Hallo,

ich hatte mal ohne nachzudenken mein externen Plattengehäuse (HP VLS9000) mit einem Raidcontroller bestückt, husch waren alle Platten frisch und leer mit MBR versehen. Da hat FreeBSD auch keinen Zpool mehr erkannst beim nächsten boot. Da ich aber noch wusste wie ich die Label erstellt hatte habe ich schnell wieder die Label neu erstellt und alles war wie beim alten. Ein scrub hat weniger als 100k Daten wieder herstellen müssen.

Gruß ré
 
Servus,
danke für eure Hilfe. der Controller hat mir die Platten gehimmelt, ich hatte noch ein vergessenes Backup :-) es sind nur "4 Jahre" weg. Daraus gelernt habe ich, nie wieder Adaptec und Backup auf eine seperate Platte !

viele Grüße

Jens
 
Zurück
Oben