Guia de administração do ZFS Oracle Solaris

ProcedureComo substituir um disco no pool raiz ZFS

Pode ser necessário substituir um disco no pool raiz pelas seguintes razões:

Em uma configuração de conjunto raiz espelhado, é possível tentar substituir um disco sem inicializar de uma mídia alternativa. É possível substituir um disco falho ao utilizar o comando zpool replace. Ou, se possuir um disco adicional, é possível utilizar o comando zpool attach. Consulte o procedimento nesta seção para um exemplo de anexação de um disco adicional e desanexação de um disco de conjunto raiz.

Alguns softwares necessitam que traga um disco off-line e desconfigure-o antes de tentar a operação zpool replace para substituir um disco falho. Por exemplo:


# 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

Em alguns hardwares, não é necessário trazer o disco on-line ou reconfigurá-lo depois de ser inserido.

É necessário identificar os nomes de caminho do dispositivo de inicialização do disco atual e do disco novo para que seja possível testar uma inicialização de teste a partir do disco substituto e também uma inicialização manual a partir do disco existente, caso o disco substituto falhe. Neste exemplo no procedimento a seguir, o nome do caminho para o atual disco de conjunto raiz (c1t10d0s0) é:


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

O nome do caminho para o disco de inicialização substituto (c1t9d0s0) é:


/pci@8,700000/pci@3/scsi@5/sd@9,0
  1. Conecte fisicamente o disco de substituição (ou novo).

  2. Confirme que o novo disco possui uma legenda SMI e um segmento 0.

    Para obter informações sobre como relegendar um disco reservado para o pool raiz, use o seguinte site:

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

  3. Anexe o novo disco ao pool raiz.

    Por exemplo:


    # zpool attach rpool c1t10d0s0 c1t9d0s0
    
  4. Confirme os status do pool raiz.

    Por exemplo:


    # 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. Depois da conclusão do resilvering, aplique os blocos de inicialização ao novo disco.

    Utilizando uma sintaxe semelhante à seguinte:

    • 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. Verifique se é possível inicializar a partir do novo disco.

    Por exemplo, em um sistema com base em SPARC, seria utilizada uma sintaxe semelhante à seguinte:


    ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0
    
  7. Se o sistema se inicializa a partir do novo disco, desanexe o disco antigo.

    Por exemplo:


    # zpool detach rpool c1t10d0s0
    
  8. Configure o sistema para que se inicialize automaticamente a partir do disco novo, ou usando o comando eeprom , o comando setenv da PROM de inicialização do SPARC, ou reconfigurando a BIOS do PC.