Convertendo o volume do ext4 do Amazon EC2 EBS no sistema de arquivos XFS

7

Eu preciso converter meu sistema de arquivos ext4 do Amazon EC2 em um XFS para que eu possa tirar instantâneos consistentes e enviá-los para o S3. Estou usando uma pequena imagem personalizada do servidor Ubuntu 10,10 com a arquitetura i686 em us-east. O problema é que eu estou usando apenas uma unidade EBS para todos os arquivos e agora está me dando dores de cabeça, porque eu não consigo realmente desmontar, formatar ou realmente fazer qualquer coisa na unidade quando logado na instância do ssh. Meu palpite é que, de alguma forma, eu preciso dividir o volume do EBS em 2 e mover / var / www e / var / lib para o segundo volume do EBS e convertê-lo para o XFS. Estou usando o apache2, mysql, ispconfig, bind, postfix, correio, pureftp ( link )

Obrigado.

    
por jaz 12.12.2011 / 08:09

1 resposta

9

Você pode converter seu volume raiz em XFS ou criar um segundo volume. Pessoalmente, gostaria que este último oferecesse mais flexibilidade.

Opção 1: Converter o volume raiz em XFS

  1. Pare sua instância (não termine) (vamos chamá-la de instância A)
  2. Inicie uma nova instância (vamos chamá-la de instância B)
  3. Desanexe o volume raiz da instância A e anexe-o à instância B
  4. Crie um segundo volume do EBS, anexe-o à instância B
  5. Formate o novo volume do EBS como XFS (instale xfsprogs , se ainda não estiver feito)
  6. Copie todos os dados do primeiro volume para o novo (por exemplo, usando rsync -aHAXxSP /source /target )
  7. Desanexe o novo volume da instância B e anexe-o como a raiz volume da instância A
  8. Iniciar instância A
  9. Finalizar a instância B (o volume da raiz original deve persistir, manter até que as coisas funcionem ao seu gosto).

O motivo para anexar o volume raiz a outra instância é obter consistência, o que seria difícil com o volume em uso.

Opção 2: mover dados para um segundo volume de EBS

  1. Crie um segundo volume do EBS e anexe-o à sua instância; formate-o como XFS e montá-lo
  2. Identifique quais diretórios você deseja mover para o novo volume (alguns para considerar incluem: / var / log, / var / lib / mysql, / var / www, / var / spool / mail, / var / vmail)
  3. Pare o máximo de serviços possível para remover bloqueios de gravação
  4. Use lsof | grep /path/to/dir para verificar os bloqueios de gravação restantes
  5. Mova o diretório para o novo volume do EBS
  6. A montagem vincula o novo diretório a seu local antigo (por exemplo, mount -o bind /mnt/path/to/dir /orig/path/to/dir )
  7. Repita para cada diretório
  8. Inicie seus serviços para garantir que tudo esteja funcionando
  9. Edite seu arquivo /etc/fstab para tornar os pontos de montagem permanentes; por exemplo: /mnt/path/to/dir /orig/path/to/dir bind defaults,noatime,bind 0 0

Reinicie para garantir que tudo persista e funcione como deveria. Você também pode considerar diminuir o volume de sua raiz um pouco, já que, esperançosamente, ele não deveria estar crescendo (ou mudando) muito com todos os dados removidos dele.

(Como ponto de referência, pode ser possível congelar um sistema de arquivos ext4 usando fsfreeze , que está incluído em util-linux-ng ).

    
por 12.12.2011 / 09:47