Tengo un grupo reflejado ZFS con cuatro unidades totales. Dos de las unidades están destinadas a ser utilizadas para realizar copias de seguridad fuera del sitio. Mi expectativa era que después de la recuperación inicial podría detach
y luego attach
un disco y hacer que solo haga una recuperación incremental; sin embargo, en las pruebas parece realizar una recuperación completa independientemente de si el disco que se está conectando ya contiene casi todo el grupo contenido.
¿Usar un enfoque offline
/ online
me daría el resultado deseado de solo actualizar el disco, en lugar de reconstruirlo por completo? ¿O para que este trabajo funcione como se espera, tendré que hacer algo completamente diferente, como usar cada disco de respaldo como un grupo de 1 disco e send
incorporarle las instantáneas más nuevas cada vez que sea necesario actualizarlo?
zfs send
comando para tomar secuencias de copia de seguridad completas o incrementales guardadas en los discos de copia de seguridad, o usezfs recv
para crear un disco duplicado. Recomiendo encarecidamente utilizar algún tipo de software para administrar este proceso.Respuestas:
No siga el camino de romper la matriz ZFS para "rotar" los discos fuera del sitio. Como ha visto, el tiempo de reconstrucción es alto y el proceso de recuperación leerá / verificará el tamaño utilizado del conjunto de datos.
Si tiene la capacidad, las instantáneas y el envío de datos a un sistema remoto es un enfoque limpio y no intrusivo. Supongo que podría pasar por el proceso de tener un grupo de un solo disco dedicado, copiarlo y exportar / importar zpool ... pero no es muy elegante.
fuente
Después de más experimentación, he encontrado una solución justa, sin embargo, viene con una importante compensación. Los discos que se han
offline
desconectado pero no se pueden desconectar más tarde se pueden volver a poner en línea con solo una operación de recuperación incremental (" Cuando un dispositivo se pone en línea, los datos que se han escrito en el grupo se vuelven a sincronizar con el nuevo dispositivo disponible "). En mis pruebas, esto reduce el tiempo de recuperación para un espejo de 3 discos de 28 horas a poco más de 30 minutos, con aproximadamente 40 GB de datos delta.La compensación es que cualquier grupo con un disco fuera de línea se marcará como degradado. Siempre que haya al menos dos discos en línea (en un grupo reflejado), esto es efectivamente una advertencia: la integridad y la redundancia permanecen intactas.
Como otros mencionaron, este enfoque general dista mucho de ser ideal: enviar instantáneas a un grupo remoto sería mucho más adecuado, pero en mi caso no es factible.
Para resumir, si necesita eliminar un disco de un grupo y luego agregarlo nuevamente sin requerir una recuperación completa, entonces el enfoque que recomendaría es:
zpool offline pool disk
hdparm -Y /dev/thedisk
zpool online pool disk
Y, dado que esto aún no se ha probado, existe el riesgo de que la operación de recuperación delta no sea precisa. El grupo "en vivo" y / o los discos sin conexión pueden experimentar problemas. Actualizaré si eso me sucede, pero por ahora experimentaré con este enfoque.
fuente
Actualización el 15 de octubre de 2015: hoy descubrí el
zpool split
comando, que divide un nuevo grupo (con un nuevo nombre) fuera de un grupo existente.split
es mucho más limpio queoffline
ydetach
, ya que ambos grupos pueden existir (y eliminarse por separado) en el mismo sistema. El nuevo grupo también se puede limpiar (y correctamente)export[ed]
antes de desconectarse del sistema.(Mi publicación original sigue a continuación).
¡Advertencia! Varios comentarios en esta página implican que es (o podría ser) posible a
zpool detach
una unidad, y luego de alguna manera vuelva a conectar la unidad y acceder a los datos que contiene.Sin embargo, de acuerdo con este hilo (y mi propia experimentación)
zpool detach
elimina la "información del grupo" de la unidad separada. En otras palabras, adetach
es como un reformateo rápido de la unidad . Despuésdetach
de que aún haya muchos datos en la unidad, será prácticamente imposible volver a montar la unidad y ver los datos como un sistema de archivos utilizable.En consecuencia, me parece que
detach
es más destructivo quedestroy
, ya que creo quezpool import
puede recuperar las piscinas destruidas.A no
detach
es a , ni a , ni a .umount
zpool export
zpool offline
En mi experimentación, si primero tengo
zpool offline
un dispositivo y luegozpool detach
el mismo dispositivo, el resto del grupo olvida que el dispositivo existió alguna vez. Sin embargo, debido a que el dispositivo en sí estabaoffline[d]
antes de lo que estabadetach[ed]
, nunca se notifica al dispositivodetach
. Por lo tanto, el dispositivo en sí todavía tiene la información de su grupo y se puede mover a otro sistema y luegoimport[ed]
(en un estado degradado).Para mayor protección contra
detach
usted, incluso puede desconectar físicamente el dispositivo después deloffline
comando, pero antes de emitir eldetach
comando.Espero usar esto
offline
, luegodetach
, luegoimport
procesar para hacer una copia de seguridad de mi grupo. Al igual que el póster original, planeo usar cuatro unidades, dos en un espejo constante y dos para copias de seguridad mensuales, rotativas, fuera del sitio (y fuera de línea). Verificaré cada copia de seguridad importándola y limpiándola en un sistema separado, antes de transportarla fuera del sitio. A diferencia del póster original, no me importa reescribir la unidad de copia de seguridad completa cada mes. De hecho, prefiero reescrituras completas para tener bits nuevos.fuente
En la misma máquina, ¿ha intentado crear un nuevo grupo con las 2 unidades en un espejo? A continuación, cree una instantánea en su grupo de trabajo y luego envíe esa instantánea al nuevo grupo, repita, luego el siguiente envío de instantánea será incremental. Esto no es lo mismo con "enviar datos a un sistema remoto" ya que se trata de un grupo dentro del mismo sistema / servidor / máquina. Con esta configuración, aún puede aplicar zpool split / offline / detach / attach pero solo lo hace en el segundo grupo (copia) y no en el grupo fuente.
fuente