É seguro criar links simbólicos para toda a máquina?

É seguro criar links simbólicos para toda a máquina?

Tenho uma máquina virtual com quantidade limitada de armazenamento que se tornou um problema. Tenho meu diretório inicial vinculado ao armazenamento NFS em um servidor e ele está funcionando sem problemas. Mas agora preciso vincular toda a minha máquina ao NFS e estou constantemente com pouco armazenamento!

Só estou me perguntando se é seguro vincular a máquina inteira (ou seja, toda:/) para o NFS?

Quero usar os seguintes comandos para fazer isso:

/storage/nfsé basicamente meu NFS montado.

$ mkdir /storage/nfs/myvmroot
$ sudo cp -rp /* /storage/nfs/myvmroot
$ sudo mv /* /old-root
$ sudo ln -s /storage/nfs/myvmroot /

Responder1

Você não pode fazer /um link simbólico. Simplesmente não é possível. /tem que ser um diretório. Se /fosse um link simbólico, ele apontaria para algum caminho - e para resolver esse caminho, o sistema passaria por /, que é um link simbólico, então precisa ser resolvido... Um link simbólico que aponta para baixo sempre causará um erro quando for desreferenciado, mas em qualquer caso, você não poderá criar /um link simbólico, pois já é um diretório existente.

O que você pode fazer, e conseguirá o efeito desejado, émontarum sistema de arquivos NFS como sistema de arquivos raiz, em vez de montar um sistema de arquivos local como normalmente é feito. Isso é possível e suportado pelo Ubuntu.Há um tutorial no wiki da comunidade Ubuntu(abrange uma instalação completa sem disco, você pode pular as partes sobre TFTP se mantiver /bootlocalmente). Mover um sistema existente é um pouco diferente de fazer a instalação inicial, então não espere seguir o tutorial à risca.

Você precisa garantir que oinitramfscontém os drivers necessários. O initramfs é gerado pelo comandoupdate-initramfscom base na configuração atual do sistema e nos arquivos de configuração em /etc/initramfs-tools. Você precisará adicionar explicitamente as configurações do NFS ao/etc/initramfs-tools/initramfs.conf, pelo menos adicione uma linha BOOT=nfs(acho que os outros parâmetros podem ser especificados no momento da inicialização, mas BOOT=nfssão necessários para incluir os drivers NFS e DEVICE=…também podem ser necessários para incluir o driver Ethernet). Depois de modificar /etc/initramfs-tools/initramfs.conf, execute update-initramfs.

Eu recomendo mantê-la /bootcomo uma partição local, separada de /, se ainda não estiver.

Não use cp -rp /* /storage/nfs/myvmrootpara copiar arquivos, isso não funcionaria. Você precisa excluir os sistemas de arquivos montados da cópia. Passe a -xopção. Além disso, use -aem vez de -rp, existem atributos que -rpnão são preservados.

cp -ax /* /storage/nfs/myvmroot

ou, caso a cópia seja interrompida

rsync -axAX / /storage/nfs/myvmroot

Outra opção, provavelmente mais fácil, é manter o sistema de arquivos raiz local e mover apenas parte dele. Geralmente, você obterá desempenho e confiabilidade significativamente melhores com um sistema de arquivos local do que com o NFS, mesmo com um servidor rápido e uma rede rápida.

Você não pode simplesmente cortar em qualquer lugar: o que você coloca remotamente não deve ser necessário muito cedo no processo de inicialização. Acho que cortar /usrnão é oficialmente suportado pelo Ubuntu atualmente, mas é pela distribuição pai do Ubuntu, Debian, então tem uma chance de funcionar. Outro lugar que tem boas chances de funcionar é /usr/share. Eu não recomendo /var, é provável que seja um incômodo se alguma coisa quebrar, já que é onde os registros são mantidos. (Se o cliente NFS estiver insatisfeito com alguma coisa e tentar gravar logs, /var/logmas /varnão responder, boa sorte ao diagnosticar a falha.)

Responder2

Não. Isso tornaria sua máquina virtual não inicializável. O sistema NFS é carregado em um determinado ponto do processo de inicialização. Antes deste ponto, nenhum arquivo no NFS estará acessível. Isso significa que a máquina não conseguirá acessar os arquivos necessários para inicializar. Estes incluem (mas não estão limitados a) o próprio kernel, o shell padrão /bin/she tudo /bino que inclui os comandos necessários para montar o compartilhamento NFS.

Então não, isso não é uma boa ideia. Mais importante ainda, não é necessário. A maioria dos diretórios /não são muito grandes. Basta identificar aquele que está ocupando o espaço e colocá-lo lá. Você deve ser capaz de mover qualquer um dos seguintes itens sem maiores problemas:

  • /var/cache
  • /usr/local
  • /usrem si também geralmente pode ser movido, mas certifique-se de que não haja nada essencial no arquivo /usr/local/bin. Provavelmente não será, mas verifique.

Provavelmente são esses que ocupam o espaço de qualquer maneira.

informação relacionada