Conversion du volume EBS d'Amazon EC2 ext4 en système de fichiers XFS

8

J'ai besoin de convertir mon système de fichiers Amazon EC2 ext4 en un système XFS afin de pouvoir prendre des instantanés cohérents et les envoyer à S3. J'utilise une petite image personnalisée du serveur Ubuntu 10.10 avec une architecture i686 aux États-Unis. Le problème est que je n'utilise qu'un seul lecteur EBS pour tous les fichiers et maintenant cela me donne des maux de tête, car je ne peux pas vraiment démonter, formater ou vraiment faire quoi que ce soit sur le lecteur lorsque je suis connecté à l'instance à partir de ssh. Je suppose que je dois en quelque sorte diviser le volume EBS en 2 et déplacer / var / www et / var / lib vers le deuxième volume EBS et le convertir en XFS à la place. J'utilise apache2, mysql, ispconfig, bind, postfix, courier, pureftp ( http://www.howtoforge.com/perfect-server-ubuntu-10.10-maverick-meerkat-ispconfig-3 )

Je vous remercie.

jaz
la source

Réponses:

9

Vous pouvez convertir votre volume racine en XFS ou créer un deuxième volume. Personnellement, je privilégierais ce dernier car il offre plus de flexibilité.

Option 1: convertir le volume racine en XFS

  1. Arrêtez votre instance (ne terminez pas) (appelons-la instance A)
  2. Démarrer une nouvelle instance (appelons-la instance B)
  3. Détachez le volume racine de l'instance A et attachez-le à l'instance B
  4. Créez un deuxième volume EBS, attachez-le à l'instance B
  5. Formatez le nouveau volume EBS en XFS (installez xfsprogssi ce n'est pas déjà fait)
  6. Copiez toutes les données du premier volume vers le nouveau (par exemple en utilisant rsync -aHAXxSP /source /target)
  7. Détachez le nouveau volume de l'instance B et attachez-le en tant que volume racine de l'instance A
  8. Démarrer l'instance A
  9. Terminez l'instance B (le volume racine d'origine doit persister, gardez-le jusqu'à ce que les choses fonctionnent à votre goût).

La raison pour attacher le volume racine à une autre instance est d'atteindre la cohérence, ce qui serait difficile avec le volume utilisé.

Option 2: déplacer les données vers un deuxième volume EBS

  1. Créez un deuxième volume EBS et attachez-le à votre instance; formatez-le en XFS et montez-le
  2. Identifiez les répertoires que vous souhaitez déplacer vers le nouveau volume (certains à considérer incluent: / var / log, / var / lib / mysql, / var / www, / var / spool / mail, / var / vmail)
  3. Arrêtez autant de services que possible pour supprimer les verrous en écriture
  4. Utilisez lsof | grep /path/to/dirpour vérifier les verrous d'écriture restants
  5. Déplacer le répertoire vers le nouveau volume EBS
  6. Montez lier le nouveau répertoire à son ancien emplacement (ie mount -o bind /mnt/path/to/dir /orig/path/to/dir)
  7. Répétez l'opération pour chaque répertoire
  8. Démarrez vos services pour vous assurer que tout fonctionne
  9. Modifiez votre /etc/fstabfichier pour rendre les points de montage permanents; par exemple:/mnt/path/to/dir /orig/path/to/dir bind defaults,noatime,bind 0 0

Redémarrez pour vous assurer que tout persiste et fonctionne comme il se doit. Vous pouvez également envisager de réduire un peu votre volume racine car, espérons-le, il ne devrait pas augmenter (ou changer) beaucoup avec toutes les données supprimées.

(À titre de mention, il peut être possible de geler un système de fichiers ext4 en utilisant fsfreeze, qui est inclus dans util-linux-ng).

cyberx86
la source
Merci, j'irai avec la 1ère option car je ne suis pas sûr de pouvoir restaurer à partir de la sauvegarde avec la deuxième méthode, en cas de problème.
2011
Vous pouvez restaurer chaque volume EBS indépendamment - vous pouvez conserver des instantanés des deux volumes séparément, en restaurant celui dont vous avez besoin. Les instantanés EBS d'Amazon sont différentiels et compressés, donc l'espace total utilisé ne devrait pas être très différent avec les données sur deux volumes par opposition à un.
cyberx86
1
Pour l'option 1: les versions récentes d'ubuntu ne démarreront pas car le libellé "cloudimg-rootfs" est trop long pour XFS. Vous devez résoudre ce problème en raccourcissant l'étiquette qu'il utilise; ces étapes à partir du lien ci-dessous: Étiqueter / dev / xvdf device comme '/'. Exécutez simplement: xfs_admin -L \ / / dev / xvdf Montez / dev / xvdf dans le répertoire / xfs. Modifiez le fichier fstab associé au nouveau volume XFS (/ xfs / etc / fstab) et assurez-vous que / est associé au volume étiqueté / et que le système de fichiers xfs est configuré pour le point de montage racine D'ici: jsianes.blogspot.com/2014/06/…
JaredBroad