Guía de administración de Oracle Solaris ZFS

Recuperación de la agrupación raíz ZFS o las instantáneas de la agrupación raíz

Las siguientes secciones describen cómo realizar las siguientes tareas:

ProcedureCómo sustituir un disco en la agrupación raíz ZFS

Es posible que necesite sustituir un disco en la agrupación raíz, por los siguientes motivos:

En una configuración de agrupación raíz reflejada, puede intentar una sustitución de discos sin iniciar desde un soporte alternativo. Puede sustituir un disco averiado mediante el comando zpool replace. O, si tiene un disco adicional, puede utilizar el comando zpool attach. Consulte el procedimiento de esta sección para ver un ejemplo de cómo conectar un disco adicional y la desconexión de un disco de agrupación raíz.

Algunos dispositivos de hardware requieren que se desconecte un disco y se desconfigure antes de intentar la operación zpool replace para sustituir un disco averiado. Por ejemplo:


# zpool offline rpool c1t0d0s0
# cfgadm -c unconfigure c1::dsk/c1t0d0
<Physically remove failed disk c1t0d0>
<Physically insert replacement disk c1t0d0>
# cfgadm -c configure c1::dsk/c1t0d0
# zpool replace rpool c1t0d0s0
# zpool online rpool c1t0d0s0
# zpool status rpool
<Let disk resilver before installing the boot blocks>
SPARC# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t0d0s0
x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0

En algunos dispositivos de hardware, no es necesario que el disco de sustitución esté conectado ni reconfigurarlo después de insertarlo.

Debe identificar los nombres de ruta del dispositivo de inicio de los discos nuevo y actual para poder probar el inicio desde el disco de sustitución y también iniciar manualmente desde el disco existente, si el disco de sustitución falla. En el ejemplo que aparece en el siguiente procedimiento, el nombre de la ruta del disco de agrupación raíz actual es (c1t10d0s0):


/pci@8,700000/pci@3/scsi@5/sd@a,0

El nombre de ruta del disco de inicio de sustitución es (c1t9d0s0):


/pci@8,700000/pci@3/scsi@5/sd@9,0
  1. Conecte físicamente el disco de sustitución (o nuevo).

  2. Confirme que el disco nuevo tiene una etiqueta SMI y un segmento 0.

    Para obtener información sobre el reetiquetado de un disco que está diseñado para la agrupación raíz, consulte el sitio siguiente:

    http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

  3. Conecte el nuevo disco a la agrupación raíz.

    Por ejemplo:


    # zpool attach rpool c1t10d0s0 c1t9d0s0
    
  4. Confirme el estado de la agrupación raíz.

    Por ejemplo:


    # zpool status rpool
      pool: rpool
     state: ONLINE
    status: One or more devices is currently being resilvered.  The pool will
            continue to function, possibly in a degraded state.
    action: Wait for the resilver to complete.
     scrub: resilver in progress, 25.47% done, 0h4m to go
    config:
    
            NAME           STATE     READ WRITE CKSUM
            rpool          ONLINE       0     0     0
              mirror-0     ONLINE       0     0     0
                c1t10d0s0  ONLINE       0     0     0
                c1t9d0s0   ONLINE       0     0     0
    
    errors: No known data errors
  5. Cuando se haya completado la creación, aplique los bloques de inicio al nuevo disco.

    Utilizando una sintaxis similar a la siguiente:

    • SPARC:


      # installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t9d0s0
      
    • x86:


      # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0
      
  6. Compruebe que puede iniciar desde el nuevo disco.

    Por ejemplo, en un sistema basado en SPARC, deberá usar una sintaxis similar a la siguiente:


    ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0
    
  7. Si el sistema se inicia desde el nuevo disco, desconecte el disco antiguo.

    Por ejemplo:


    # zpool detach rpool c1t10d0s0
    
  8. Configure el sistema para que se inicie automáticamente desde el nuevo disco, ya sea mediante el comando eeprom, el comando setenv desde la PROM de inicio de SPARC, o bien vuelva a configurar el BIOS del equipo.

ProcedureCómo crear instantáneas de la agrupación raíz

Puede crear instantáneas de la agrupación raíz para las recuperaciones. La forma más recomendable de crear instantáneas de agrupaciones raíz es realizar una instantánea recursiva de la agrupación raíz.

El procedimiento siguiente crea una instantánea de agrupación raíz recursiva y almacena la instantánea como un archivo en una agrupación en un sistema remoto. Si una agrupación raíz falla, el conjunto de datos remoto se puede montar mediante NFS y el archivo de instantánea se puede recibir en la agrupación que se ha vuelto a crear. O bien puede almacenar instantáneas de agrupaciones raíz como las instantáneas reales en una agrupación de un sistema remoto. Enviar y recibir las instantáneas desde un sistema remoto es un poco más complicado porque se debe configurar ssh o utilizar rsh mientras el sistema que hay que reparar se inicia desde la miniraíz del sistema operativo Solaris.

Para obtener información sobre el almacenamiento y la recuperación de forma remota de instantáneas de agrupación raíz, así como la información más actualizada sobre la recuperación de agrupaciones raíz, vaya a este sitio:

http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

La validación de instantáneas almacenadas remotamente como archivos o instantáneas es un paso importante en la recuperación de una agrupación raíz. Con cualquiera de estos métodos, las instantáneas se deben volver a crear de forma rutinaria, como, por ejemplo, cuando la configuración de la agrupación cambia o cuando se actualiza el sistema operativo Solaris.

En el procedimiento siguiente, el sistema se inicia desde el entorno de inicio zfsBE.

  1. Cree una agrupación y un sistema de archivos en un sistema remoto para almacenar las instantáneas.

    Por ejemplo:


    remote# zfs create rpool/snaps
    
  2. Comparta el sistema de archivos con el sistema local.

    Por ejemplo:


    remote# zfs set sharenfs='rw=local-system,root=local-system' rpool/snaps
    # share
    -@rpool/snaps   /rpool/snaps   sec=sys,rw=local-system,root=local-system   "" 
  3. Cree una instantánea recursiva de la agrupación raíz.


    local# zfs snapshot -r rpool@0804
    local# zfs list
    NAME                        USED  AVAIL  REFER  MOUNTPOINT
    rpool                      6.17G  60.8G    98K  /rpool
    rpool@0804                     0      -    98K  -
    rpool/ROOT                 4.67G  60.8G    21K  /rpool/ROOT
    rpool/ROOT@0804                0      -    21K  -
    rpool/ROOT/zfsBE           4.67G  60.8G  4.67G  /
    rpool/ROOT/zfsBE@0804       386K      -  4.67G  -
    rpool/dump                 1.00G  60.8G  1.00G  -
    rpool/dump@0804                0      -  1.00G  -
    rpool/swap                  517M  61.3G    16K  -
    rpool/swap@0804                0      -    16K  -
  4. Envíe las instantáneas de la agrupación raíz al sistema remoto.

    Por ejemplo:


    local# zfs send -Rv rpool@0804 > /net/remote-system/rpool/snaps/rpool.0804
    sending from @ to rpool@0804
    sending from @ to rpool/swap@0804
    sending from @ to rpool/ROOT@0804
    sending from @ to rpool/ROOT/zfsBE@0804
    sending from @ to rpool/dump@0804

ProcedureCómo volver a crear una agrupación raíz ZFS y restaurar instantáneas de agrupaciones raíz

En este procedimiento, suponga las siguientes condiciones:

Todos los pasos se llevan a cabo en el sistema local.

  1. Efectúe el inicio desde el CD/DVD o desde la red.

    • SPARC: seleccione uno de los siguientes métodos de inicio:


      ok boot net -s
      ok boot cdrom -s
      

      Si no utiliza la opción -s, deberá salir del programa de instalación.

    • x86: seleccione la opción para iniciar desde el DVD o desde la red. A continuación, salga del programa de instalación.

  2. Monte el conjunto de datos remoto de instantáneas.

    Por ejemplo:


    # mount -F nfs remote-system:/rpool/snaps /mnt
    

    Si los servicios de red no están configurados, es posible que deba especificar la dirección IP del sistema remoto.

  3. Si se reemplaza el disco de la agrupación raíz y no contiene una etiqueta de disco que sea utilizable por ZFS, deberá etiquetar de nuevo el disco.

    Para obtener más información sobre cómo volver a etiquetar el disco, consulte el sitio siguiente:

    http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

  4. Vuelva a crear la agrupación raíz.

    Por ejemplo:


    # zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=
    /etc/zfs/zpool.cache rpool c1t1d0s0
    
  5. Restaure las instantáneas de agrupaciones raíz.

    Este paso puede tardar algo. Por ejemplo:


    # cat /mnt/rpool.0804 | zfs receive -Fdu rpool
    

    El uso de la opción -u significa que el archivo de almacenamiento restaurado no está montado cuando se completa la operación zfs receive.

  6. Compruebe que los conjuntos de datos de agrupaciones raíz se hayan restaurado.

    Por ejemplo:


    # zfs list
    NAME                        USED  AVAIL  REFER  MOUNTPOINT
    rpool                      6.17G  60.8G    98K  /a/rpool
    rpool@0804                     0      -    98K  -
    rpool/ROOT                 4.67G  60.8G    21K  /legacy
    rpool/ROOT@0804                0      -    21K  -
    rpool/ROOT/zfsBE           4.67G  60.8G  4.67G  /a
    rpool/ROOT/zfsBE@0804       398K      -  4.67G  -
    rpool/dump                 1.00G  60.8G  1.00G  -
    rpool/dump@0804                0      -  1.00G  -
    rpool/swap                  517M  61.3G    16K  -
    rpool/swap@0804                0      -    16K  -
  7. Defina la propiedad bootfs en el entorno de inicio de la agrupación raíz.

    Por ejemplo:


    # zpool set bootfs=rpool/ROOT/zfsBE rpool
    
  8. Instale los bloques de inicio en el nuevo disco.

    SPARC:


    # installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
    

    x86:


    # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
    
  9. Reinicie el sistema.


    # init 6
    

ProcedureCómo deshacer instantáneas de agrupaciones raíz a partir de un inicio a prueba de fallos

Este procedimiento da por hecho que las instantáneas de agrupaciones raíz existentes están disponibles. En el ejemplo, están disponibles en el sistema local.


# zfs snapshot -r rpool@0804
# zfs list
NAME                        USED  AVAIL  REFER  MOUNTPOINT
rpool                      6.17G  60.8G    98K  /rpool
rpool@0804                     0      -    98K  -
rpool/ROOT                 4.67G  60.8G    21K  /rpool/ROOT
rpool/ROOT@0804                0      -    21K  -
rpool/ROOT/zfsBE           4.67G  60.8G  4.67G  /
rpool/ROOT/zfsBE@0804       398K      -  4.67G  -
rpool/dump                 1.00G  60.8G  1.00G  -
rpool/dump@0804                0      -  1.00G  -
rpool/swap                  517M  61.3G    16K  -
rpool/swap@0804                0      -    16K  -
  1. Apague el sistema e inicie en modo de inicio a prueba de fallos.


    ok boot -F failsafe
    ROOT/zfsBE was found on rpool.
    Do you wish to have it mounted read-write on /a? [y,n,?] y
    mounting rpool on /a
    
    Starting shell.
  2. Deshaga cada instantánea de agrupación raíz.


    # zfs rollback rpool@0804
    # zfs rollback rpool/ROOT@0804
    # zfs rollback rpool/ROOT/zfsBE@0804
    
  3. Vuelva a iniciar en modo multiusuario.


    # init 6