Acessa o dispositivo de bloco iSCSI, configurado como volume ZFS no CentOS7 - não será montado automaticamente na inicialização, trava na reinicialização

1

Estou executando o CentOS7 em uma instância virtual no Softlayer. Existe um dispositivo de armazenamento em bloco disponível para a instância via multipath / iscsi

Eu tive com sucesso este dispositivo de bloco montado como XFS. Eu decidi dar uma chance ao ZFS. Quando eu emito manualmente comandos para 'montar' esse volume do ZFS, ele funciona bem.

zpool import -f zfs-data

Há dois problemas que estou tendo com o ZFS no CentOS7.

  • a.) meu zpool não é montado automaticamente no boot
  • b.) o sistema trava na reinicialização

Eu suspeito que a solução para (a) também possa corrigir (b).

Vamos dar uma olhada em (a) primeiro.

Existe essa discussão na página do github para zfsonlinux CentOS 7. Não montar / importar pool após a reinicialização

Parece que o arquivo / etc / hostid não é criado quando o ZFS é instalado via yum. Então, como sugerido nesta página, eu corro o seguinte comando para criá-lo.

dd if=/dev/urandom of=/etc/hostid bs=4 count=1

Então, de repente, ocorreu-me que ele não pode ser montado automaticamente porque, como a máquina está inicializando, o ZFS está sendo carregado antes do material iSCSI.

do /var/log/boot.log - a primeira coluna é o número da linha

81     Starting Import ZFS pools by cache file...
147    Starting Open-iSCSI...

Como altero a ordem de carregamento?

(b) trava na reinicialização

Se eu importar o pool e não escrever nada nele, posso reinicializá-lo bem. No entanto, assim que os dados forem trocados na montagem, o registro de reinicialização / desligamento conterá essas linhas.

Stopping Import network configuration from initramfs...


[  550.096199] end_request: I/O error, dev dm-0, sector 5514152

^^ repetido dez vezes com números diferentes.

WARNING: Pool 'zfs-data' has encountered an uncorrectable I/O failure and has been suspended
[...]
Unmounting /zfs-data...
[...]
A stop job is running for /zfs-data

Isso nunca termina e uma reinicialização HARD é necessária para voltar à instância.

Qualquer ideia seria apreciada.

    
por anastymous 09.12.2015 / 10:58

1 resposta

0

Boa pergunta ... Não tenho certeza se recomendaria usar o ZFS dessa maneira, especialmente porque espera-se que os dispositivos de bloco estejam presentes na inicialização. No entanto, lembre-se de que há vários serviços associados ao ZFS.

zfs-import-cache.service # Import ZFS pools by cache file
zfs-mount.service # Mount ZFS filesystems
zfs-share.service # ZFS file system shares
zfs.target # ZFS startup target

Você pode modificar o tempo ou as dependências para adequar sua montagem iSCSI atrasada.

[Unit]
Description=Import ZFS pools by cache file
DefaultDependencies=no
Requires=systemd-udev-settle.service
After=systemd-udev-settle.service
After=cryptsetup.target
ConditionPathExists=/etc/zfs/zpool.cache

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/sbin/modprobe zfs
ExecStart=/sbin/zpool import -c /etc/zfs/zpool.cache -aN
    
por 09.12.2015 / 11:09