Ho appena aggiornato Ubuntu 14.04 e avevo due pool ZFS sul server. C'è stato un piccolo problema con me che combattevo con il driver ZFS e la versione del kernel, ma ora ha funzionato. Un pool è stato online e montato bene. L'altro no. La differenza principale tra lo strumento è che uno era solo un pool di dischi (archiviazione video / musicale) e l'altro era un set raidz (documenti, ecc.)
Ho già provato a esportare e reimportare il pool, inutilmente, tentare di importare mi dà questo:
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
/dev/disk/by-id
Esistono anche i collegamenti simbolici per quelli in :
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
Ispezionando i vari /dev/sd*
dispositivi elencati, sembrano essere quelli corretti (le 3 unità da 1 TB che erano in un array raidz).
Ho eseguito zdb -l
su ogni unità, scaricandolo su un file e eseguendo un diff. L'unica differenza sui 3 sono i campi guid (che presumo siano previsti). Tutte e 3 le etichette su ciascuna sono sostanzialmente identiche e sono le seguenti:
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:
Stupidamente, non ho un backup recente di questo pool. Tuttavia, il pool andava bene prima del riavvio e Linux vede bene i dischi (ho smartctl in esecuzione ora per ricontrollare)
Quindi, in sintesi:
- Ho aggiornato Ubuntu e ho perso l'accesso a uno dei miei due zpool.
- La differenza tra le piscine è quella che è emersa era JBOD, l'altra aveva paura.
- Tutte le unità nello zpool non montabile sono contrassegnate come UNAVAIL, senza note per i dati danneggiati
- I pool sono stati entrambi creati con dischi a cui fa riferimento
/dev/disk/by-id/
. - I collegamenti simbolici
/dev/disk/by-id
ai vari/dev/sd
dispositivi sembrano essere corretti zdb
può leggere le etichette dalle unità.- Il pool è già stato tentato di essere esportato / importato e non è in grado di importare nuovamente.
Esiste una sorta di magia nera che posso invocare tramite zpool / zfs per riportare questi dischi in un array ragionevole? Posso eseguire zpool create zraid ...
senza perdere i miei dati? I miei dati sono andati comunque?
/dev/disk/by-id
per quelle unità e tutti i collegamenti simbolici per un dispositivo puntano alla stessa/dev/sd*
unità. E la cosa più vicina che riesco a trovare in una soluzione (utilizzare Zpool Sostituisci), non posso fare poiché non riesco a reimportare il pool.