Ich habe gerade Ubuntu 14.04 aktualisiert und hatte zwei ZFS-Pools auf dem Server. Es gab ein kleines Problem mit dem Kampf mit dem ZFS-Treiber und der Kernel-Version, aber das hat jetzt geklappt. Ein Pool ging online und stieg gut an. Der andere tat es nicht. Der Hauptunterschied zwischen dem Tool besteht darin, dass nur ein Pool von Datenträgern (Video- / Musikspeicher) und der andere ein Raidz-Set (Dokumente usw.) war.
Ich habe bereits versucht, den Pool zu exportieren und erneut zu importieren, ohne Erfolg. Beim Versuch zu importieren erhalte ich Folgendes:
root@kyou:/home/matt# zpool import -fFX -d /dev/disk/by-id/
pool: storage
id: 15855792916570596778
state: UNAVAIL
status: One or more devices contains corrupted data.
action: The pool cannot be imported due to damaged devices or data.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
config:
storage UNAVAIL insufficient replicas
raidz1-0 UNAVAIL insufficient replicas
ata-SAMSUNG_HD103SJ_S246J90B134910 UNAVAIL
ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523 UNAVAIL
ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969 UNAVAIL
Die Symlinks für die in /dev/disk/by-id
existieren auch:
root@kyou:/home/matt# ls -l /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910* /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51*
lrwxrwxrwx 1 root root 9 May 27 19:31 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910 -> ../../sdb
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part9 -> ../../sdb9
lrwxrwxrwx 1 root root 9 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523 -> ../../sdd
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part1 -> ../../sdd1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part9 -> ../../sdd9
lrwxrwxrwx 1 root root 9 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969 -> ../../sde
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part1 -> ../../sde1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part9 -> ../../sde9
Wenn Sie die verschiedenen /dev/sd*
aufgelisteten Geräte untersuchen, scheinen sie die richtigen zu sein (die 3 1-TB-Laufwerke, die sich in einem Raidz-Array befanden).
Ich habe zdb -l
auf jedem Laufwerk ausgeführt, es in eine Datei geschrieben und ein Diff ausgeführt. Der einzige Unterschied bei den 3 sind die Guid-Felder (von denen ich annehme, dass sie erwartet werden). Alle 3 Etiketten auf jedem sind grundsätzlich identisch und lauten wie folgt:
version: 5000
name: 'storage'
state: 0
txg: 4
pool_guid: 15855792916570596778
hostname: 'kyou'
top_guid: 1683909657511667860
guid: 8815283814047599968
vdev_children: 1
vdev_tree:
type: 'raidz'
id: 0
guid: 1683909657511667860
nparity: 1
metaslab_array: 33
metaslab_shift: 34
ashift: 9
asize: 3000569954304
is_log: 0
create_txg: 4
children[0]:
type: 'disk'
id: 0
guid: 8815283814047599968
path: '/dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part1'
whole_disk: 1
create_txg: 4
children[1]:
type: 'disk'
id: 1
guid: 18036424618735999728
path: '/dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part1'
whole_disk: 1
create_txg: 4
children[2]:
type: 'disk'
id: 2
guid: 10307555127976192266
path: '/dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part1'
whole_disk: 1
create_txg: 4
features_for_read:
Dummerweise habe ich keine aktuelle Sicherung dieses Pools. Der Pool war jedoch vor dem Neustart in Ordnung, und Linux sieht die Festplatten in Ordnung (ich habe Smartctl jetzt ausgeführt, um es noch einmal zu überprüfen).
Also zusammenfassend:
- Ich habe Ubuntu aktualisiert und den Zugriff auf einen meiner beiden Zpools verloren.
- Der Unterschied zwischen den Pools ist der, der auftauchte, war JBOD, der andere hatte Angst.
- Alle Laufwerke im nicht bereitstellbaren zpool sind mit UNAVAIL gekennzeichnet, ohne Hinweise auf beschädigte Daten
- Die Pools wurden beide mit Datenträgern erstellt, auf die verwiesen wird
/dev/disk/by-id/
. - Symlinks von
/dev/disk/by-id
zu den verschiedenen/dev/sd
Geräten scheinen korrekt zu sein zdb
kann die Etiketten von den Laufwerken lesen.- Es wurde bereits versucht, den Pool zu exportieren / importieren, und er kann nicht erneut importiert werden.
Gibt es eine Art schwarze Magie, die ich über zpool / zfs aufrufen kann, um diese Festplatten wieder in ein vernünftiges Array zu bringen? Kann ich laufen, zpool create zraid ...
ohne meine Daten zu verlieren? Sind meine Daten sowieso weg?
/dev/disk/by-id
für diese Laufwerke, und alle Symlinks für ein Gerät verweisen auf dasselbe/dev/sd*
Laufwerk. Und das, was ich einer Lösung am nächsten kommen kann (zpool replace verwenden), kann ich nicht tun, da ich den Pool nicht erneut importieren kann.