O conjunto do ZFS desaparece após a reinicialização no Debian 8

4

Estou começando com o ZFS e descubro o básico, mas estou com um problema em mantê-lo em execução.

Os pools são criados, as montagens são criadas, eu posso salvar dados e ver a atividade do disco ... as coisas parecem boas. No entanto, após a reinicialização do zpool list relatórios "não há pools disponíveis".

Eu encontrei vários artigos sobre isso no CentOS que falam sobre um script de inicialização para o zfs sendo a correção, mas até agora eu não encontrei nenhum no Debian.

Estou usando o pacote backport zfs-dkms do Debian, cuja dependência inclui libzfs2linux , libzpool2linux , bfs-zed e zfsutils-linux . Eu também estou executando no modo SysV init em vez de systemd .

Eu tentei recriar o pool com /dev/disk/by-id , bem como os padrões /dev/sdx devices; Eu tentei editar /etc/default/zfs e configuração (não todos de uma vez):

ZFS_MOUNT='yes'
ZPOOL_IMPORT_ALL_VISIBLE='yes'
ZPOOL_IMPORT_PATH="/dev/disk/by-vdev:/dev/disk/by-id"
ZPOOL_IMPORT_PATH="/dev"
ZFS_INITRD_POST_MODPROBE_SLEEP='5'

Eu vejo os nomes das minhas configurações de pool em /etc/zfs/zpool.cache ; Posso reimportar tudo manualmente com zpool import <pool-name> e todos os dados estão lá.

Este é um problema de tempo na inicialização? Estou com poucas ideias possíveis e qualquer comentário seria apreciado.

    
por Peter B 08.09.2017 / 18:18

3 respostas

3

Eu me deparei com uma lista de discussão ontem à noite que resolve o mistério aqui. Indica que zfs_autoimport_disable é agora compilado como definido como 1 / true por padrão! Portanto, não importa o que está configurado em /etc/default/zfs , os pools nunca serão importados quando o módulo zfs for carregado.

Então, a solução para mim foi adicionar um arquivo de configuração /etc/modprobe.d/ (chame como quiser) e defina options zfs zfs_autoimport_disable=0 . Agora os pools são importados e os sistemas de arquivos zfs podem ser montados pelo zfs ou no modo herdado.

Eu não entendo essa decisão, mas agora tudo está funcionando como esperado ...

    
por 14.11.2017 / 16:08
1

Primeiro faça o backup do /etc/default/zfs e, em seguida, remova-o.

Eu recomendaria ir para a abordagem legacy . Isso removerá o recurso automount zfs e dependerá de /etc/fstab para informações de montagem. Eu também recomendo usar /dev/disk/by-id sempre como o setuop menos doloroso.

Como não conheço sua configuração (pool / datasets), vou criar um exemplo:

  1. Primeiro, liste seu conjunto de dados desejado: zfs list pegar o conjunto de dados desejado, por exemplo %código%
  2. Desmount seu storagepool/backup zfs se montado. (Você pode verificar via storagepool/backup ou mount | grep zfs )
  3. Liste seus pontos de montagem com zfs mount :
NAME                    PROPERTY    VALUE                   SOURCE
storagepool/backup      mountpoint  /storagepool/backup     default
  1. Altere seu ponto de montagem zfs get mountpoint

  2. Agora você precisa editar zfs set mountpoint=legacy storagepool/backup via /etc/fstab ou sudo Enter segunda linha (a primeira linha está lá para explicar os detalhes)

    <device alias dataset>   <mountpoint>   <filesystem type>  <options> <dump> <fsckorder>
    storagepool/backup       /mnt/backup     zfs               defaults   0      0

Explicação detalhada:

  • O primeiro campo (storagepool / backup) geralmente dispositivo físico / remoto sistema de arquivos que deve ser descrito, no seu caso pool / dataset (NOTA: não há nenhuma barra invertida ('/') para o dataset do zfs !! (me causou muitos problemas))
  • O segundo campo (/ mnt / backup) especifica o ponto de montagem em que o sistema de arquivos será montado.
  • O terceiro campo (zfs) é o tipo de sistema de arquivos no dispositivo da
    o primeiro campo.
  • O quarto campo (noauto, suid, ro, user) é uma lista (padrão) de opções qual montagem deve usar ao montar o sistema de arquivos.
  • O quinto campo (0) para decidir se um sistema de arquivos deve ser submetido a backup. E se zero, em seguida, dump irá ignorar esse sistema de arquivos.
  • O sexto campo (0) é usado pelo fsck (o utilitário de verificação do sistema de arquivos) para determinar a ordem em que os sistemas de arquivos devem ser verificados.

default option means: rw, suid, dev, exec, auto, nouser, and async If you are using SSD, which is unlikely, I recommend using noatime after defaults option.

Agora, quando você reiniciar, o sistema de arquivos zfs deverá ser montado de acordo com o arquivo root .

Nota importante: Se você deseja montar um zfs legacy você precisa usar /etc/fstab em vez de mount -t zfs <dataset> <mountpoint> .

    
por 03.11.2017 / 09:53
0

@ Peter-B Sua solução resolveu meu problema com o zpool não importando na reinicialização. Muito Obrigado. Um pequeno esclarecimento para aqueles que não estão familiarizados com a sintaxe modprobe conf: a opção precisa estar em uma única linha, ie.

options zfs zfs_autoimport_disable=0

    
por 21.09.2018 / 20:32