Sistema de arquivos raiz NFS

Sistema de arquivos raiz NFS

Estou tentando fazer com que um sistema de arquivos NFS raiz (e inicialização) remoto funcione corretamente e estou atingindo os limites do meu conhecimento. Gostaria de saber se alguém pode me indicar a direção certa.

Servidor

Tanto o TFTP quanto o NFS são servidos por um roteador Linksys WRT 1900 ACS executando o OpenWRT 19.07. Este dispositivo também possui um SSD externo que é usado como sistema de arquivos raiz de sobreposição.

https://openwrt.org/docs/guide-user/additional-software/extroot_configuration.

Cada cliente possui um arquivo de sistema raiz neste diretório (Ubuntu 21.04)

/nfs/exports/tftp/

e um diretório de inicialização em

/tftp/tftpboot/

E aqui está o conteúdo de /etc/exports:

/overlay/upper/nfs/exports/ *(rw,sync,no_subtree_check,no_root_squash) /overlay/upper/tftp/tftpboot/ *(rw,sync,no_subtree_check,no_root_squash)

Se eu não adicionar o prefixo /overlay/upper/ então não poderei montar o diretório exportado

Clientes

Os clientes inicializam com sucesso o PXE e carregam o sistema operacional (Ubuntu 21.04), posso fazer login, SSH etc. No entanto, isso não acontece sem ver erros durante a inicialização ou se eu tentar fazer uma atualização do apt-get.

O primeiro erro que vejo durante a inicialização é este:

[Failed] Failed to start Remount Root and Kernel File System

então mais tarde eu vejo

[Failed] Failed to mount /boot

ainda assim, uma vez logado, /boot parece estar montado.

Aqui está o fstab de um cliente

10.1.0.1:/overlay/upper/nfs/exports/tftp/68fe97e5 / nfs defaults,_netdev,nfsvers=4.1,proto=tcp 0 0

10.1.0.1:/overlay/upper/tftp/tftpboot/68fe97e5 /boot nfs defaults,_netdev,nfsvers=4.1,proto=tcp 0 0

tmpfs /tmp tmpfs defaults 0 0

tmpfs /var/tmp tmpfs defaults 0 0

tmpfs /var/run tmpfs defaults 0 0

(desculpe pela formatação)

E /boot/cmdline.txt

net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=10.1.0.1:/overlay/upper/nfs/exports/tftp/68fe97e5,tcp ip=dhcp elevator=deadline rootwait fixrtc rw cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory

Quando olho para systemctl systemd-remount-fs.service vejo esta linha

May 27 15:10:08 rdg-clust-01 systemd-remount-fs[317]: mount.nfs: an incorrect mount option was specified

Alguém pode apontar qual opção estou errando?

Responder1

Veja como isso funciona no KickStart, JumpStart ou no antigo RoboInstaller. A imagem do kernel miniroot é servida por TFTP e o sistema de arquivos é servido por NFS. Era também assim que os clientes UNIX sem disco funcionavam antigamente. Tenho certeza de que você não pode servir um sistema de arquivos inteiro com TFTP. Simplesmente não é assim que o protocolo é projetado.

Há vários documentos on-line que podem ajudar a orientá-lo para uma configuração bem-sucedida do sistema sem disco:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_storage_devices/setting-up-a-remote-diskless-system_managing-storage-devices

https://www.xmodulo.com/diskless-boot-linux-machine.html

http://mirror.internode.on.net/pub/ldp/en/Diskless-root-NFS-HOWTO/Diskless-root-NFS-HOWTO.pdf

informação relacionada