Guia de administração do ZFS Oracle Solaris

Criando um novo conjunto ao dividir um conjunto de armazenamento ZFS espelhado

Um conjunto de armazenamento ZFS espelhado pode ser clonado rapidamente como um conjunto de backup ao utilizar o comando zpool split.

Atualmente, este recurso não pode ser utilizado para dividir um conjunto raiz de espelhado.

É possível utilizar o comando zpool split para desanexar discos de um conjunto de armazenamento ZFS espelhado para criar um novo conjunto com um dos discos desanexados. O novo conjunto possuirá conteúdo idêntico ao conjunto original de armazenamento ZFS espelhado.

Por padrão, uma operação zpool split em um conjunto espelhado desanexa o último disco do conjunto recém criado. Depois da operação de separação, importe o novo conjunto. Por exemplo:


# zpool status tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t2d0  ONLINE       0     0     0

errors: No known data errors
# zpool split tank tank2
# zpool import tank2
# zpool status tank tank2
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          c1t0d0    ONLINE       0     0     0

errors: No known data errors

  pool: tank2
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank2       ONLINE       0     0     0
          c1t2d0    ONLINE       0     0     0

errors: No known data errors

É possível identificar qual disco deve ser utilizado para o conjunto recém criado ao especificá-lo com o comando zpool split. Por exemplo:


# zpool split tank tank2 c1t0d0

Antes que a real operação de divisão ocorra, os dados na memória são descarregados para os discos espelhados. Depois que os dados são esvaziados, o disco é desanexado do conjunto e atribuído a um novo GUID de conjunto. O novo GUID de conjunto é gerado para que o conjunto possa ser importado no mesmo sistema no qual foi dividido.

Se o conjunto a ser dividido possui pontos de montagem não padrões e o novo conjunto é criado no mesmo sistema, então é necessário utilizar a opção zpool split -R para identificar um diretório raiz alternativo para o novo conjunto para que qualquer ponto de montagem existente não entre em conflito. Por exemplo:


# zpool split -R /tank2 tank tank2

Se não utilizar a opção zpool split -R e for possível visualizar que os pontos de montagem entram em conflito quando tentam importar o novo conjunto, importe o novo conjunto com a opção -R. Se o novo conjunto é criado em um sistema diferente, então especificar um diretório raiz alternativo não deve ser necessário a não ser que ocorra um conflito no ponto de montagem.

Revise as considerações a seguir antes de utilizar o recurso zpool split:


Exemplo 4–7 Dividindo um conjunto ZFS espelhado

No exemplo a seguir, um conjunto de armazenamento espelhado chamado trinity, com três discos, c1t0d0, c1t2d0 e c1t3d0, é dividido. Os dois conjuntos resultantes são os conjuntos espelhados trinity, com discos c1t0d0 e c1t2d0, e o novo conjunto, neo, com disco c1t3d0. Cada conjunto possui conteúdo idêntico.


# zpool status trinity
  pool: trinity
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        trinity     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t2d0  ONLINE       0     0     0
            c1t3d0  ONLINE       0     0     0

errors: No known data errors
# zpool split trinity neo
# zpool import neo
# zpool status trinity neo
  pool: neo
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        neo         ONLINE       0     0     0
          c1t3d0    ONLINE       0     0     0

errors: No known data errors

  pool: trinity
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        trinity     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t2d0  ONLINE       0     0     0

errors: No known data errors