zfs e futura espandibilità


8

Voglio costruire un server usando freebsd 9 e zfs. Ho un vecchio hardware (Intel Quad Core con 8 GB di RAM) in giro, e sono disposto ad acquistare due o tre dischi da 1 TB. Ho anche un server RAID dlink con già due dischi da 1 TB che probabilmente smetterei di usare, quindi quei 2 dischi rigidi sarebbero disponibili per l'uso nel server zfs dopo che avrò spostato i dati su di essi (attualmente circa 300 mb nel raid 1) sul nuovo server.

Questo mi dà 2 o 3 dischi all'inizio, con la possibilità di passare a 4 o 5 dischi dopo aver configurato correttamente il server zfs e aver copiato i dati.

La mia domanda è come configurare al meglio il pool zfs in modo da avere la massima ridondanza e spazio di archiviazione, con la possibilità di passare a 2 o 3 o più unità in futuro quando saranno disponibili. Quindi non mi interessa così tanto la velocità, immagino che la mia Ethernet (anche a 1 gb / s) sarà comunque il fattore determinante nella velocità del sistema ...?

Il mio pensiero attuale è quello di acquistare 2 nuovi dischi, configurarlo utilizzando la modalità striping. Dopo aver copiato tutti i dati dal mio dlink nas, rimuoverei 1 di quelle unità, aggiungendole al pool rendendolo un mirror di una delle nuove unità. Una volta ricostruito l'array, sposterei quindi l'altra unità nel pool in modo che rispecchi la seconda nuova unità ... dopo tutto ciò che dovrei fare, dovrei avere l'equivalente approssimativo di RAID 10, "mirror con striping".

È possibile o esiste un modo migliore per configurarlo?

Ancora una volta, la mia priorità è la massima ridondanza, la manutenzione (sostituzione di vecchie unità con unità più recenti / più grandi e aumento del mio spazio totale della piscina), spazio di archiviazione disponibile e velocità; in questo ordine.

Risposte:


6

Per poter aumentare lo spazio di archiviazione sostituendo solo alcuni dei dischi, è necessario utilizzare vdevs con mirroring, con striping insieme (che equivale a RAID10).

Nel tuo caso, con 4 unità ciò significherebbe lavorare a qualcosa del genere:

    zpool
      mirror
        disk1
        disk2
      mirror
        disk3
        disk4

Ciò fornirebbe 2 TB di spazio di archiviazione (dato che tutti i dischi sono 1 TB) e una buona ridondanza (0% di errore dell'array dopo 1 arresto del disco, solo il 33% di errore dell'array con 2 arresti del disco simultanei).

Ora per arrivarci, comprerei quei 2 nuovi dischi da 1 TB e li metterei nel pool:

zpool create zpool mirror disk1 disk2

Quindi sposta i tuoi contenuti del DLINK nel pool appena creato.

Una volta fatto ciò, è possibile eliminare i dischi DLINK e aggiungerli al pool, per aumentare la memoria:

zpool add zpool mirror disk3 disk4

Se in seguito desideri aumentare ulteriormente lo spazio di archiviazione, puoi farlo aggiungendo più vdev (preferibilmente anche mirror) O sostituendo solo 2 dei 4 dischi. La sostituzione avviene come segue:

zpool offline zpool disk3
# remove physical disk3 at this point
# insert new, bigger disk in place of disk3
zpool online zpool disk3
# wait for resilver
# after resilver, do the same with disk4
# your vdev is now bigger, increasing the size of the pool

Ora diamo un'occhiata all'altra opzione. Se avessi creato 1 raidz vdev in questo modo:

zpool
  raidz
    disk1
    disk2
    disk3
    disk4

Avresti 3 TB di spazio di archiviazione, ma, per aumentare tale spazio di archiviazione semplicemente sostituendo i dischi (e non aggiungendoli), dovresti sostituire TUTTI i 4 dischi (uno per uno ofcourse) per aumentare le dimensioni del pool! Anche questa configurazione ha un errore dell'array del 100% se 2 dischi si bloccano contemporaneamente.

La configurazione raidz sarebbe anche più lenta della configurazione dei mirror con striping. Poiché raidz è più intensivo dal punto di vista computazionale, mentre le strisce + i mirror migliorano effettivamente le prestazioni di lettura e scrittura. Con hard disk "normali" (non SSD) i mirror con striping riempiranno probabilmente la tua connessione gigabit per letture e scritture sequenziali, perché ZFS può combinare la larghezza di banda dei dischi (ricorda che 1 Gb / s è solo ~ 125 MegaBYTES / s, uno standard "normale" l'hard disk ti darà circa 90 Megabyte / s). Non credo che la configurazione raidz sopra sarà in grado di farlo sull'hardware del consumatore.

Per concludere, il punteggio per i mirror con striping / RAID 10 con la quantità di dischi è:

+ max redundancy
+ maintenance
- available storage space
+ speed

Il punteggio per raidz è:

- max redundancy
- maintenance
+ available storage space
- speed

Direi che gli specchi a strisce vincono :)

Un ultimo consiglio: leggi di più su come fare e perché prima di iniziare! Forse anche simulare l'intera procedura in una macchina virtuale. Sto pensando in particolare al passaggio in cui aggiungi il secondo mirror vdev! Se lo fai in modo errato potresti avere una configurazione diversa che avevi sperato e ZFS non perdona molto in quei casi, dal momento che non ti consente di rimuovere vdevs dal pool o dischi da raidz vdevs !! (tuttavia è consentita la rimozione di dischi da mirror vdevs)

Inoltre, sii a prova di futuro ed etichetta e allinea i tuoi dischi, così non avrai problemi con le unità Advanced Format! Per maggiori informazioni sulla complessità delle unità ZFS e 4K, ti suggerisco di leggere questa discussione sul forum di FreeBSD .


3

Ogni gruppo di dischi che aggiungi contemporaneamente ha la propria politica di ridondanza, indipendentemente dall'aggiunta o dalla creazione di un nuovo pool. 2 dischi = mirror, 3 puoi usare RAIDZ (o diventare creativo, non raccomandato). Le prestazioni probabilmente rallenteranno l'Ethernet da 1 GB con unità del genere. Inoltre, lo scambio di unità con unità più grandi in un secondo momento è un po 'una seccatura, sebbene del tutto possibile.

Consiglio vivamente di leggere la Guida all'amministrazione di ZFS dall'inizio alla fine prima di iniziare.

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.