O que o mkfs.xfs e o modprobe fazem ao montar uma instância do Amazon EBS?

3

Estou pesquisando este guia de como adicionar um volume do EBS a uma instância do Amazon EC2 , e eu encontrei esta pequena parte das instruções difíceis de seguir:

Create an XFS file system on the EBS volume and mount it as /vol

grep -q xfs /proc/filesystems || sudo modprobe xfs
sudo mkfs.xfs /dev/sdh

echo "/dev/sdh /vol xfs noatime 0 0" | sudo tee -a /etc/fstab
sudo mkdir -m 000 /vol
sudo mount /vol

You now have a 10 GB (or whatever size you specified) EBS volume mounted under /vol with an XFS file system, and it will be automatically mounted if the instance reboots.

Eu não acredito que tenha mkfs.xfs instalado, embora mkfs seja um comando válido. Isso é um pouco demais de sintaxe avançada para mim - estou tentando descobrir como fazer isso funcionar no Ubuntu 10.04 e não estou tendo sorte com isso.

Alguém pode me dizer o que está sendo tentado aqui para que eu possa tentar entendê-lo e fazê-lo funcionar na minha instância do Ubuntu EC2?

atualização

Algumas coisas que descobri:

  • na minha instância, tive que usar /dev/xvdh e não /dev/sdh
  • ainda não tem certeza do que o grep -q xfs /proc/filesystems || sudo modprobe xfs está fazendo, pois a execução de cada um desses comandos não mostra resultados.
  • afaik o fstab é apenas para conectar automaticamente o volume na inicialização
por cwd 03.01.2012 / 21:15

2 respostas

4
grep -q xfs /proc/filesystems || sudo modprobe xfs

/proc/filesystems lista todos os sistemas de arquivos que seu kernel conhece. (Tente cat /proc/filesystems para ver. Na lista resultante, nodev indica que o sistema de arquivos não espera um dispositivo de bloco associado.)

Portanto, grep -q xfs /proc/filesystems está verificando se o seu kernel sabe sobre o XFS. (O -q significa "não imprime nada, apenas defina o status de saída".) Caso contrário, ele executa sudo modprobe xfs para carregar o módulo XFS. (O || significa "executar o próximo comando apenas se o comando anterior saiu diferente de zero" e não tem nada a ver com um único | que cria um pipeline).

sudo mkfs.xfs /dev/sdh

Isso cria um sistema de arquivos XFS vazio no dispositivo de bloco /dev/sdh (ou seja, ele formata a partição). Você pode ter que instalar um pacote de ferramentas XFS (geralmente chamado xfsprogs ) se você não tiver mkfs.xfs .

echo "/dev/sdh /vol xfs noatime 0 0" | sudo tee -a /etc/fstab

Isso acrescenta uma linha a /etc/fstab , para que o volume seja montado automaticamente durante a inicialização. O dispositivo de bloco precisa corresponder ao que você formatou.

sudo mkdir -m 000 /vol

Isso cria o diretório onde o novo volume será montado. Pode ser qualquer coisa que você goste. É criado sem permissões de acesso (modo 000) para que ninguém escreva nada no diretório quando o sistema de arquivos não estiver montado.

sudo mount /vol

Isso monta o volume imediatamente, para que você não precise reinicializar. (Obtém os parâmetros de montagem de /etc/fstab .)

    
por 03.01.2012 / 22:33
2

Se mkfs.xfs não estiver instalado, você ignorou esta etapa no artigo:

sudo apt-get install -y xfsprogs

Você escreveu:

on my instance i had to use /dev/xvdh and not /dev/sdh

Sim, é assim que os volumes anexados e o armazenamento efêmero aparecem nas versões modernas do Ubuntu no EC2. O artigo está um pouco desatualizado com o nome do dispositivo, mas ainda faço todo o resto conforme descrito nele.

Divulgação: eu escrevi esse artigo .

    
por 04.01.2012 / 01:54