Montagem automática de fs criptografado com ZFS autocompilado

Montagem automática de fs criptografado com ZFS autocompilado

Atualmente, estou tentando mudar um servidor de despejo de dados executando 19.04 de LUKS+btrfs para ZFS. A unidade do sistema é criptografada por LUKS e pode ser descriptografada via SSH. Ele contém um arquivo chave que supostamente descriptografa os sistemas de arquivos ZFS. Estou na metade do caminho, mas a montagem automática não funciona.

  • Consegui compilar o ZFS 0.8.1 e construir um pacote DKMS seguindo owiki. Ao ler o makefile, descobri que também preciso fazer deb-utils para obter zpool e tal.
  • Criei um pool que suporta criptografia

    zpool create -o ashift=12 dataint /dev/disk/by-id/mydrive zpool set feature@encryption=enabled dataint

  • Eu criei sistemas de arquivos criptografados com o arquivo-chave

    zfs create \ -o encryption=on \ -o keylocation=file:///root/keys/hdd256.key -o keyformat=raw\ dataint/test

  • Eu posso montar isso comzfs mount dataint -l

Os problemas que tenho agora são:

  1. zfs não é carregado na inicialização. Nem mesmo o módulo do kernel e, portanto, certamente não o pool.

  2. Os volumes criptografados são carregados apenas quando o pool é importado ou o sistema de arquivos é montado com a -lopção. Eu acho que isso precisa ser resolvido de alguma forma para o carregamento automático quando 1. for resolvido?

Eu tenho alguns serviços zfs systemd, mas eles estão mascarados. Não tenho certeza se são sobras de uma instalação anterior do gerenciador de pacotes 0.7, que removi.

Responder1

Tente habilitar manualmente todas as peças instaladas.

Para ver quais serviços relacionados ao zfs seu sistema instalou:

sudo systemctl list-unit-files | grep zfs

Em seguida, habilite todos os serviços. Estou sendo prolixo:

sudo modprobe zfs
sudo systemctl enable zfs-import-cache
sudo systemctl enable zfs-import-scan
sudo systemctl enable zfs-import.target
sudo systemctl enable zfs-mount
sudo systemctl enable zfs-share
sudo systemctl enable zfs-zed
sudo systemctl enable zfs.target

Se reclamações sobre itens mascarados aparecerem em seu terminal, force a remoção de todas as máscaras:

sudo systemctl unmask zfs-*

Você provavelmente não precisa disso, mas para completar, alguns sistemas mais antigos têm menos serviços e preferem update-rc.d:

update-rc.d zfs-import enable
update-rc.d zfs-mount enable
update-rc.d zfs-zed enable
update-rc.d zfs-share enable

Responder2

Resolvi totalmente o problema agora, que essencialmente contém muitas partes.

  1. Os serviços systemd devem ser incorporados ao pacote deb. Infelizmente, o pacote wiki vinculado acima é muito desleixado, conforme discutidoaqui no rastreador de problemas.

Resumindo, os comandos de construção para DKMS deb devem ser

$ ./configure
$ make -j1 deb-utils deb-dkms
  1. A instalação antiga precisa ser limpa

Comando:

sudo systemctl unmask zfs*

e os novos serviços precisam ser habilitados e iniciados.

Também descrevi como lidar com conjuntos de dados criptografadosaqui.

informação relacionada