2x specchi di dimensioni diverse usando ZFS


3

Al momento ho una scatola unRAID di 4 dischi non uniformi. Mi piacerebbe migrare a Ubuntu e ZFS, ma non sono sicuro di cosa sia possibile con ZFS. Mi piacerebbe acquistare 2 unità da 6 TB, da utilizzare in una configurazione con mirroring. Poi, una volta trasferiti i miei dati, vorrei aggiungere 2 delle vecchie unità da 3 TB come un altro mirror.

1) È possibile la seguente configurazione:

d1: 6TB
d2: 6TB mirror of d1
d3: 3TB
d4: 3TB mirror of d3

2) Quando le unità calano nel prezzo, è facile da sostituire d3 e d4 con dischi più grandi?


Lo scenario funziona, ma dovresti sapere che ZFS non ribilancia il contenuto se vdevs viene aggiunto in seguito (dopo che i dati sono stati scritti). Ciò significa che, nel tuo caso, il 100% dei tuoi dati sarà inizialmente sul primo specchio, riducendo le prestazioni da RAID 10 a RAID 1. Solo i dati appena scritti (dati appena aggiunti e dati modificati a causa di CoW) saranno bilanciati i vdevs. Col passare del tempo, le tue prestazioni aumenteranno, a seconda dei tuoi schemi di utilizzo (per sola lettura, non migliorerà mai).
user121391

Sì, questo è un punto valido, ma in questo momento sono meno preoccupato per le prestazioni e più preoccupato di evitare errori silenziosi.
squarefrog

Risposte:


8

Sì, questo è possibile. Se leggi un po 'su ZFS, scoprirai che si tratta fondamentalmente di un pool di cosiddetti "vdev". Il vdev più semplice sarebbe una semplice unità fisica. Potrebbe anche essere uno specchio costituito da due o più unità fisiche. Questo è quello che vuoi.

Andresti per questa struttura:

d1    d2  d3    d4
 \    /    \    /
 mirror    mirror
      \    /
      mypool

Per creare questo zpool, utilizzare il seguente comando:

zpool create mypool mirror d1 d2 mirror d3 d4

Ciò comporterà una capacità utilizzabile di 9 TB. Può tollerare un guasto all'unità per mirror vdev. (A meno che non si aggiungano altri specchi, ovviamente).

Se vuoi aggiungere vdev in seguito, usa questo comando:

zpool add mypool mirror d3 d4

Per estendere la dimensione del pool, prima abilitare il file autoexpand opzione:

zpool set autoexpand=on mypool

Quindi sostituire uno di d3 / d4 con un'unità più grande e attendere che venga ricostruito. Dopo di ciò, sostituisci l'altro. Il pool dovrebbe espandersi automaticamente alla dimensione di unità disponibile.

Potrebbe essere desiderabile spegnere autoexpand dopo che il lavoro è finito.

In alternativa, puoi andartene autoexpand da solo e utilizzare i seguenti comandi dopo aver sostituito entrambe le unità:

zpool online -e mypool d3
zpool online -e mypool d4

Grazie mille. Questo è esattamente quello che dovevo sapere. Leggerò su vdev.
squarefrog

Oh per favore oh per favore oh per favore, non incoraggiare le persone ad accendere ciecamente autoexpand. Usare zpool online -e è molto più sicuro perché quello che fa è in realtà prevedibile .
a CVn

Non vedo come sarebbe imprevedibile, ma di nuovo uso solo intere unità.
Daniel B

Principalmente è imprevedibile se si dimentica di disattivarlo. Utilizzando zpool online -e, l'espansione è un'operazione esplicita e una tantum eseguita manualmente dall'amministratore su un singolo dispositivo. Non sto dicendo che autoexpand = on non abbia il suo posto, ma è una di quelle cose (proprio come zpool add / zpool attach) che potenzialmente può tornare indietro e morderti piuttosto male se non stai attento. Uso ZFS da solo, e lo adoro, ma ci sono alcune aree in cui è ovvio che è stato progettato per le persone che vengono pagate per gestire i sistemi informatici e che è necessario procedere con cautela.
a CVn

1
Buona risposta, vorrei aggiungere che aggiungere vdevs è facile, la rimozione (non la sostituzione) è impossibile. Pertanto è necessario pianificare in anticipo ciò che si vuole fare.
user121391
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.