Come posso aggiungere un disco a un raidz zpool esistente?


21

Ho un server OpenSolaris con uno zpool backupzcomposto da quattro unità SCSI:

-bash-3.2# zpool status backupz
  pool: backupz
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        backupz     ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c7t0d0  ONLINE       0     0     0
            c7t1d0  ONLINE       0     0     0
            c7t2d0  ONLINE       0     0     0
            c7t3d0  ONLINE       0     0     0

errors: No known data errors

Voglio aggiungere una quinta unità ... ma zpool add backupz raidz c7t4d0non funziona ...

-bash-3.2# zpool add backupz raidz c7t4d0
invalid vdev specification: raidz requires at least 2 devices

Non posso avere una configurazione raidz con 5 dispositivi? Devo aggiungere due dispositivi contemporaneamente? o sto facendo qualcosa di sbagliato del tutto qui?

Risposte:


14

Non puoi espandere un raidz vdev esistente, devi spazzarlo via e crearlo di nuovo con le nuove unità. Vedi l'altra risposta per maggiori dettagli.

Nota a margine: qualcuno ha effettivamente scoperto che è tecnicamente possibile aggiungere unità a un raidz, ma la funzionalità non è stata implementata. Lo stesso vale per la rimozione di un disco.


5
Uh Oh. In tal caso, ho preso una decisione terribile da qualche parte! = o
Josh,

2
-1 Naturalmente uno zpool può essere espanso. Cosa pensi che faccia il zpool addcomando? Il limite in cui si imbatte Josh è che non puoi cambiare la composizione di un raidz vdev ("raidz1" nel suo esempio). È possibile aggiungere nuovi dispositivi al pool stesso bene. Questo è uno dei motivi per cui si preferiscono i mirror vdev: serverfault.com/questions/63809/zfs-mirror-vs-raid-z
Wim Coenen,

8
@Wim, sono ben consapevole che è possibile aggiungere altri vdev a un pool. Era un piccolo errore di battitura e non c'è motivo di saltarmi addosso in quel modo.
Chris S,

Bene, non sapevo che qualcuno avesse trovato il modo di aggirare l'architettura per consentire l'aggiunta di unità! Hai un link dove posso leggere di più?
Lindhe

31

Vedi questo thread da uno degli elenchi di FreeBSD: http://lists.freebsd.org/pipermail/freebsd-fs/2009-June/006327.html

Per citare Dan Naumov,

Per ribadire, non puoi semplicemente aggiungere una singola unità disco a un pool raidz1 o raidz2. Questa è una limitazione nota (è possibile verificare con i documenti SUN ZFS). Se hai un raidz esistente e DEVI aumentare le capacità di archiviazione di quel particolare pool, hai 3 opzioni:

1) Aggiungi un raidz della stessa configurazione al pool (pensa ad esempio 3 disk raidz + 3 disk raidz o 5 + 5, per esempio)

2) Sostituisci ogni (e ogni) disco nel tuo pool raidz uno per uno, lasciandolo resilver dopo aver inserito ciascun disco aggiornato

3) Eseguire il backup dei dati, distruggere il pool e creare un nuovo pool raidz con una quantità maggiore di dischi.


3
+1: Grazie @brent! La tua risposta è stata più dettagliata di quella di Chris, tuttavia mi ha fornito informazioni dettagliate in chat, quindi ho accettato la sua risposta. Apprezzo l'informazione!
Josh,

1
Perché è necessario aggiungere un RAIDZ della stessa configurazione e non è possibile ad esempio aggiungere un RAIDZ con 8 dischi a uno con 3? I dati non vengono sottoposti a striping su tutti i VDEV o RAIDZ?
Thorsten Schöning,

@Thorsten Schöning La risposta è la prestazione, ZFS ha le migliori prestazioni con VDEV della stessa dimensione: serverfault.com/a/564436/333397
Thorsten Schöning,
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.