¿Cómo puedo agregar un disco a un raidz zpool existente?

21

Tengo un servidor OpenSolaris con un zpool backupzcompuesto por cuatro unidades 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

Quiero agregar una quinta unidad ... pero zpool add backupz raidz c7t4d0no funciona ...

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

¿No puedo tener una configuración raidz con 5 dispositivos? ¿Tengo que agregar dos dispositivos a la vez? o estoy haciendo algo incorrecto por completo aquí?

Josh
fuente

Respuestas:

14

No puede expandir un raidz vdev existente, debe eliminarlo y crearlo nuevamente con las nuevas unidades. Vea la otra respuesta para mejores detalles.

Nota al margen: Alguien realmente resolvió que técnicamente es posible agregar unidades a un raidz, pero la funcionalidad no se ha implementado. Lo mismo es cierto para quitar un disco.

Chris S
fuente
55
UH oh. Si ese es el caso, ¡he tomado una decisión terrible en alguna parte! = o
Josh
2
-1 Por supuesto, un zpool se puede ampliar. ¿Qué crees que hace el zpool addcomando? La limitación con la que se encuentra Josh es que no se puede cambiar la composición de un raidz vdev ("raidz1" en su ejemplo). Puede agregar nuevos dispositivos al grupo en sí. Esta es una de las razones por las que se prefieren los vdevs espejo: serverfault.com/questions/63809/zfs-mirror-vs-raid-z
Wim Coenen
8
@Wim, soy consciente de que puede agregar vdevs adicionales a un grupo. Fue un error menor, y no hay razón para saltar sobre mí de esa manera.
Chris S
¡Genial, no sabía que alguien encontrara una manera de evitar la arquitectura para permitir agregar unidades! ¿Tienes un enlace donde puedo leer más sobre él?
lindhe
31

Vea este hilo de una de las listas de FreeBSD: http://lists.freebsd.org/pipermail/freebsd-fs/2009-June/006327.html

Para citar a Dan Naumov,

Para reiterar, no puede agregar una sola unidad de disco a un grupo raidz1 o raidz2. Esta es una limitación conocida (puede consultar con los documentos de SUN ZFS). Si tiene un raidz existente y DEBE aumentar las capacidades de almacenamiento de ese grupo en particular, tiene 3 opciones:

1) Agregue un raidz de la misma configuración al grupo (piense 3 discos raidz + 3 discos raidz o 5 + 5, por ejemplo)

2) Reemplace cada (y cada) disco en su grupo de raidz uno por uno, dejándolo resistente después de insertar cada disco actualizado

3) Haga una copia de seguridad de sus datos, destruya su grupo y cree un nuevo grupo raidz con una mayor cantidad de discos.

brent
fuente
3
+1: ¡Gracias @brent! Su respuesta fue más detallada que la de Chris, sin embargo, él me estaba proporcionando información detallada en el chat, así que acepté su respuesta. Agradezco la información!
Josh
1
¿Por qué se debe agregar un RAIDZ de la misma configuración y, por ejemplo, no se puede agregar un RAIDZ con 8 discos a uno con 3? ¿No se dividen los datos en todos los VDEV, también conocidos como RAIDZ?
Thorsten Schöning
@Thorsten Schöning La respuesta es rendimiento, ZFS funciona mejor con VDEV del mismo tamaño: serverfault.com/a/564436/333397
Thorsten Schöning