Forçando zpool a usar / dev / disk / by-id no Ubuntu Xenial

10

Estou dando uma chance ao OpenZFS no Ubuntu 16.04 Xenial.

Ao criar pools, eu sempre referencio drives por suas séries em /dev/disk/by-id/ (ou /dev/disk/gpt no FreeBSD) para resiliência. As unidades nem sempre estão na mesma ordem em /dev quando uma máquina é reinicializada e, se você tiver outras unidades na máquina, o pool poderá não ser montado corretamente.

Por exemplo, executando zpool status em uma caixa 14.04, recebo isto:

NAME                                  STATE     READ WRITE CKSUM
tank                                  ONLINE       0     0     0
  raidz1-0                            ONLINE       0     0     0
    ata-Hitachi_HDS722020ALA330_[..]  ONLINE       0     0     0
    ata-Hitachi_HDS722020ALA330_[..]  ONLINE       0     0     0
    ata-Hitachi_HDS722020ALA330_[..]  ONLINE       0     0     0
    ata-Hitachi_HUA722020ALA330_[..]  ONLINE       0     0     0

Mas quando eu criar um novo pool no 16.04 com este (abreviado):

zpool create pool raidz \
    /dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
    /dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
    /dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
    /dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..]

Eu recebo isso com zpool status :

NAME        STATE     READ WRITE CKSUM
tank        ONLINE       0     0     0
  raidz1-0  ONLINE       0     0     0
    sdf     ONLINE       0     0     0
    sde     ONLINE       0     0     0
    sdd     ONLINE       0     0     0
    sda     ONLINE       0     0     0

Parece que zpool seguiu os links simbólicos, em vez de fazer referência a eles.

Existe uma maneira de forçar o zpool no 16.04 a respeitar as referências da minha unidade ao criar um pool? Ou, alternativamente, são minhas dúvidas sobre o que está fazendo aqui extraviado?

Atualização: solução alternativa

Eu encontrei um tópico para o zfsonlinux no Github que sugeria uma solução alternativa. Crie seu zpool com /dev/sdX devices primeiro e faça o seguinte:

$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN

Eu ainda preferiria fazer isso com o zpool create inicial, se possível.

    
por Ruben Schade 09.06.2016 / 06:45

1 resposta

-1

De vez em quando, o zpool import -d / dev / disk / by-id não funciona. Eu notei isso em mais de um ambiente. Eu tenho um script de importação que, além de também fazer alguma lógica mágica e mostrar dispositivos ZFS fisicamente conectados, também faz basicamente isto:

Importação de zpool -d / dev / disk / by-id POOL zpool export POOL zpool import POOL

A segunda vez, mesmo sem a opção -d, importa pelo ID do dispositivo, mesmo que não tenha sido a primeira vez com o comando explícito.

É possível que isso tenha ocorrido devido a um bug do ZFS durante um período de algumas semanas ou meses (um ano ou dois atrás) e isso não é mais necessário. Eu suponho que eu deveria ter preenchido um relatório de bug, mas era trivial para contornar.

    
por 30.08.2018 / 05:18

Tags