Por que não consigo importar um pool do ZFS sem particionar o disco de dados com o fdisk?

2

Eu tenho uma situação estranha aqui, na qual não consigo importar um pool do ZFS que eu trouxe de outro SO A MENOS QUE eu fdisk o disco do pool. Estou intrigado sobre o porquê isso está acontecendo e esperando obter uma resposta ou um conselho.

O fluxo: Um pool ZFS contendo um único disco de 3TB é criado em um sistema "NAS4Free 9.3.0.2" (FreeBSD). Eu exporto o pool e o conecto a um sistema "NexentaStor 4.0.4" (OpenSolaris). A importação de zpool, em seguida, mostra

root@nexenta:/volumes# zpool import
   pool: tank1
     id: 17717822833491017053
  state: UNAVAIL
 status: One or more devices are missing from the system.
 action: The pool cannot be imported. Attach the missing
        devices and try again.
   see: http://illumos.org/msg/ZFS-8000-3C
 config:

        tank1                      UNAVAIL  insufficient replicas
          c2t50014EE2B5B23B15d0p0  UNAVAIL  cannot open

zdb -l no disco mostra label0 e label1 como esperado, mas

--------------------------------------------
LABEL 2
--------------------------------------------
failed to read label 2
--------------------------------------------
LABEL 3
--------------------------------------------
failed to read label 3

Eu então executo fdisk c2t50014EE2B5B23B15d0p0 . Ele diz que o disco não está inicializado e se oferece para inicializar e criar uma partição Linux. Eu deixo fazer isso. Em seguida, opcionalmente, exclua a nova partição e salve. Neste ponto, um MBR é criado no primeiro setor do disco. O disco como um todo ainda é um dispositivo do zpool. Com o MBR no disco, posso importar o pool e como esperado.

Detalhes importantes: O mesmo processo com um disco de 256GB funciona como esperado sem o envolvimento do fdisk. Eu suspeito que esse problema esteja relacionado a discos com mais de 2 TB.

O que tentei: Veja se o tamanho do disco é detectado corretamente e o mesmo nos diferentes sistemas. Parece que a geometria do disco é diferente para o fdisk no NexentaStor do que para outros sistemas. Não tenho certeza de como verificar.

Por que a criação do MBR em tal disco permite uma leitura adequada dos rótulos do ZFS no final do disco?

    
por Arik Yavilevich 30.09.2015 / 16:10

1 resposta

0

Se o ZFS usar um disco inteiro, ele gravará um rótulo EFI no disco.

Você verificou se há um rótulo EFI presente no disco?

Eu sei que o FreeBSD faz coisas diferentes do Solaris. IIRC, a recomendação é escrever um rótulo EFI manualmente antes de inicializar o ZFS no FreeBSD.

Observe que, com base no tamanho do setor de 512 bytes, o tamanho máximo do disco com rótulos fdisk é de 2 TB.

    
por 30.09.2015 / 16:35