¿Cómo actualizar una matriz ZFS RAID-Z a discos más grandes en OpenSolaris?

11

Estoy planeando instalar OpenSolaris en mi servidor doméstico (en este momento tiene Linux) y me gustaría saber cómo prepararme para actualizar el servidor para tener discos duros más grandes en el futuro. Ahora el servidor tiene 4 unidades SATA de 400 GB y yo instalaría OpenSolaris con ZFS RAID-Z en ellas. Algún tiempo después, este año o el próximo, voy a actualizar las unidades a quizás unidades SATA de 4x 1TB.

¿Cómo puedo actualizar y aumentar el tamaño de la partición con ZFS? ¿Es una operación simple e indolora (por ejemplo, reemplace una unidad a la vez y ZFS se redimensionará automáticamente para usar todo el espacio), o se requieren algunos pasos especiales? ¿Se puede hacer sin apagar el sistema?

Esko Luontola
fuente

Respuestas:

17
  1. Unidad sin conexión # 1.
  2. Reemplace el disco viejo con el disco más nuevo de alta capacidad.
  3. zpool reemplace la unidad.
  4. Espere a que se reconstruya el reemplazo.
  5. Vaya al paso 1 y repita para cada unidad sucesiva en la matriz.

Es posible que deba exportar e importar el zpool una vez que se complete este procedimiento; la piscina mostrará el tamaño aumentado. No se requiere tiempo de inactividad, pero si una unidad se dirige hacia el sur mientras está actualizando su matriz, perderá todo, ya que con cuatro discos en total probablemente tenga una configuración 3 + 1. (Las probabilidades no son tan altas, pero Murphy nunca duerme).

La fuente oficial: "Reemplazo de dispositivos en un grupo de almacenamiento" en la Guía de administración de ZFS . La Guía de mejores prácticas de ZFS también es útil.

Brad Ackerman
fuente
+1 para "Es posible que deba exportar e importar el zpool una vez que se complete este procedimiento": el procedimiento de reemplazo no funcionó para mí hasta que tomé esta acción.
Josh
No es necesario volver a importarlo si la autoexpandopción está configurada onpara el grupo.
bahamat
15

Me gustaría agregar que reemplazar una unidad no defectuosa hace que la incursión sea menos a prueba de fallas. En realidad, puede llenar la unidad de reemplazo primero con datos antes de sacar la unidad más pequeña. Entonces el orden se hará.

  • Adjunte una unidad más grande (incluso puede ser a través de usb)
  • zpool replace smallerdrive biggerdrive
  • Espere
  • cuando termine, saque un disco más pequeño, o lo que sea que necesite hacer.
  • repetir
  • y al final puede que tengas que correr zpool set autoexpand=on pool

Ahora murphy es un problema menor

Josh
fuente
Para las personas que hacen esto en Linux: reemplacé cada unidad con éxito, pero no aumentaría el espacio cuando se ejecuta autoexpand=on. Necesitaba ejecutar zpool online -e poolname devicenamepara cada dispositivo, y luego funcionó. Importar / exportar no hizo nada.
Peterdk