RAID-Z su una singola unità disco fisso è stupido?


18

Ovviamente, se l'intera unità si spegne, RAID-Z su un singolo disco non sarà di aiuto. Ma che dire di altri tipi di errori?

Dalla mia esperienza, a volte ho un file che non riesco a leggere. Su Mac OS X, il sistema si bloccherà per un certo periodo di tempo e poi tornerà con un errore. Sposto il file da qualche parte e presumo che quel file abbia un settore danneggiato o un blocco danneggiato o forse anche un'intera traccia negativa.

Risale ai giorni del floppy disk in cui la gestione manuale dei guasti del disco era solo un'attività comune. Ovviamente sostituiresti il ​​floppy difettoso il prima possibile, ma a volte non puoi farlo immediatamente, quindi la pratica era quella di trovare l'area danneggiata, allocarla in un file e quindi non eliminare mai quel file.

La prima domanda è: come si guastano i dischi rigidi? I miei presupposti sopra sono validi? È vero che un blocco danneggiato si guasta ma l'intero disco è ancora utilizzabile principalmente? In tal caso, sembra che RAID-Z possa riparare il blocco danneggiato o l'area danneggiata del disco usando la parità degli altri blocchi (aree).

Il caso d'uso è per il backup. Se spingo i dati su un'unità da 8 TB una volta alla settimana, sarebbe logico considerarla un'unità di dati da 7 TB più 1 TB di parità nella speranza che la parità aggiuntiva mi aiuti a recuperare da marcescenza bit, settori danneggiati o altri guasti all'unità localizzata?

Se la teoria non è difettosa tecnicamente, allora ZFS può essere configurato per fare questo?

Modifica: ho visto l'altra domanda prima di pubblicare questa domanda. La divisione in partizioni separate in cui ciascuna partizione è raggruppata è un'opzione. Ma in teoria, potrebbe essere possibile avere la mappa a blocchi per le partizioni N intrecciate tra loro in modo che una striscia, mentre logicamente si troverebbe attraverso N partizioni sarebbe fisicamente molto ravvicinata. Questo era l'essenza della mia domanda "ZFS può essere configurato per fare questo?" cioè solo ZFS ... non ZFS con l'inganno delle partizioni.


7
Se si desidera la ridondanza su disco singolo, prendere in considerazione la creazione di archivi par2 . Con ZFS, si potrebbe impostare copies=2, ma vi sará una penale di archiviazione del 50% facendo quello. Inoltre, non sono un esperto di ZFS, ma la mia intuizione (che potrebbe essere errata) mi dice che ZFS non sarebbe soddisfatto della soluzione proposta. PAR2 è una tecnologia matura e flessibile. Usarlo non solo soddisferebbe il tuo requisito di parità, ma ti permetterebbe anche di impostare la quantità di parità in base all'archivio se lo desideri.
EEAA


Le tracce su HDD sono chiamate cilindri (poiché potrebbe esserci più di un piatto).
LawrenceC,

1
Quando le unità si guastano, tende ad essere un processo in accelerazione: il tasso di settori che vanno male aumenta fino a quando l'intera unità non è inutilizzabile. Se l'unità inizia a danneggiarsi e RAID-Z ti sta compensando silenziosamente, potresti avere un backup scritto correttamente ma quando vai a recuperare da esso, è passato il punto di usabilità. Preferirei che il mio dispositivo di backup si guastasse rumorosamente mentre eseguo il backup, non appena inizia a danneggiarsi, quindi posso sostituirlo e continuare a fidarmi che ciò che è stato scritto con successo sia leggibile con fiducia.
Anthony X,

@EEAA - sembra quello che userò. Grazie. E grazie a tutti coloro che hanno commentato.
pedz,

Risposte:


23

Poiché la parità RAID-Z funziona avendo il blocco di parità su un altro dispositivo nel pool, è necessario partizionare il dispositivo su N + 1, N + 2 o N + 3 partizioni di uguali dimensioni, dove N partizioni contiene i dati e 1/2 contiene i bit di parità.

Oltre a queste partizioni, dovresti creare uno zpool, con RAID-Z che hai selezionato, quindi creare un file system su zpool.

Quindi, in teoria, funziona. In pratica ciò renderebbe terribili le prestazioni del filesystem, poiché i conseguenti blocchi nei file si troverebbero in diversi dispositivi ZPool, che si trovano in partizioni diverse. Quindi, dopo aver letto un blocco, l'HDD deve spostarsi in un'altra area dei piatti dell'HDD, leggere il blocco successivo, ecc.

La risposta è: Sì, sarebbe stupido.


2
Che ne dici di fare questo su un SSD?
JFL,

7
@JFL: il flash NAND, utilizzato negli SSD ha esattamente il problema che questa soluzione cerca di risolvere, vale a dire la morte dei singoli blocchi. In effetti, con NAND è un problema così grande che tutti i controller SSD lo gestiscono esplicitamente per te. Di conseguenza, l' errore più comune visibile con SSD è una perdita totale dell'intero dispositivo, probabilmente seguita da un dispositivo che non funziona in sola lettura. Nessuno dei problemi beneficia della soluzione qui prevenuta.
MSalters

6
Inoltre, gli SSD riordinano i blocchi. Una delle ottimizzazioni di livellamento dell'usura applicate è quella di raggruppare le scritture insieme. Scritture consecutive in partizioni diverse finirebbero nello stesso blocco di cancellazione, quindi in caso di errore di un blocco di cancellazione, si perde esattamente il vantaggio di memorizzare gli stessi dati più volte.
liori,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.