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 com
zfs mount dataint -l
Os problemas que tenho agora são:
zfs não é carregado na inicialização. Nem mesmo o módulo do kernel e, portanto, certamente não o pool.
Os volumes criptografados são carregados apenas quando o pool é importado ou o sistema de arquivos é montado com a
-l
opçã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.
- 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
- 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.