web-dev-qa-db-fra.com

Puis-je changer le périphérique EBS racine de mon instance Amazon EC2?

J'ai une instance Amazon EC2 soutenue par EBS. Je voudrais changer le périphérique racine sur cette instance. Pouvez-vous me conseiller la meilleure façon de procéder?

Je ne trouve que de la documentation sur la modification de plusieurs attributs des périphériques de bloc, mais ils ne semblent pas inclure le paramétrage en tant que périphérique racine. Merci d'avance.

92
cone

Oui, c'est très simple:

  1. Arrêtez l'instance.
  2. Détachez le volume EBS racine.
  3. Attachez le volume EBS alternatif en tant que racine: /dev/sda1
  4. Démarrez l'instance.

Cela suppose que votre autre volume EBS soit amorçable, bien sûr - il doit contenir l'image du système d'exploitation amorçable.

167
Eight-Bit Guru

Je n'ai pas assez de représentant pour ajouter un commentaire à la réponse sélectionnée, mais je tiens à souligner que pour moi, /dev/sda1 n'a pas fonctionné (ne s'est pas attaché en tant que root), mais en utilisant /dev/xvda travaillé (attaché en tant que root). L'instance est l'une des plus récentes t2.micro utilisant HVM.

40
byl83

Pour développer le commentaire de Diomidis Spinellis dans le fil des commentaires de la réponse acceptée, il est important de vérifier l'étiquette du système de fichiers de l'appareil que vous essayez de commuter comme votre nouvel appareil racine. Lors du dépannage de ma propre migration de serveur, j'ai dû procéder comme suit avant que mon instance ne démarre:

Utilisez le e2label commande pour modifier le libellé du système de fichiers ext2/ext3/ext4 que vous avez créé pour votre nouveau périphérique racine.

Tout d'abord, vérifiez l'étiquette du système de fichiers de votre périphérique racine actuel.

$ Sudo e2label /dev/xvda1
cloudimg-rootfs

Définissez le nouveau périphérique pour qu'il ait la même étiquette de système de fichiers.

$ Sudo e2label /dev/xvdg 'cloudimg-rootfs'

Dans mon cas, l'étiquette était cloudimg-rootfs. Parfois, ce sera simplement /.

Il est important de comprendre comment fonctionne e2label; vérifier man e2label sur votre machine ou visitez http://linux.die.net/man/8/e2label pour plus d'informations.

15
Joey

Il s'agit de la solution suggérée par aws. Vous pouvez détacher le volume racine de l'instance d'origine après l'avoir arrêté. Le volume racine est attaché à/dev/sda1. Une fois celui-ci détaché, veuillez l'attacher à la nouvelle instance. Une fois le volume connecté, vous devrez peut-être le monter à partir du système d'exploitation. Une fois qu'il est monté, vous devriez voir les données qu'il contient.

Après avoir ajouté la nouvelle clé, vous pouvez la détacher et l'attacher à l'instance d'origine dans/dev/sda1.

Je suggère de créer un instantané du volume racine avant d'apporter des modifications.

Avant d'essayer des solutions, essayez simplement dans les instances non importantes ou ponctuelles

3
yunus

Si vous souhaitez le faire via CloudFormation, vous devrez effectuer les opérations suivantes:

  1. Créer un instantané à partir du volume racine existant (via la console ou la CLI)
  2. Créez une nouvelle AMI à partir de cet instantané - augmentez la taille du volume racine ici, assurez-vous de sélectionner le temps de virtualisation correct (paravirtuel ou HVM).
  3. Sur votre ressource AWS :: EC2 :: Instance, définissez le paramètre ImageId sur la nouvelle AMI que vous venez de créer

Déployez votre pile. Cela va recréer votre instance, alors assurez-vous que vous utilisez une adresse IP Elastic ou avez un accès DNS.

La raison pour laquelle vous devez effectuer cette solution de contournement est que CF ne vous permettra pas d'ajuster la taille du volume racine sur EC2 BlockDeviceMappings ou d'ajuster SnapshotId du volume racine.

0
Joe Alamo

Lorsque votre volume est monté, il obtient un post-fix avec des nombres, par exemple: quand /dev/sda est monté, son monté comme /dev/sda1, /dev/sda2 selon les partitions que vous faites. Comme nous montons le périphérique racine lui-même, il suppose que le périphérique est déjà monté, nous devons donc donner /dev/sda1 pour monter le volume en tant que périphérique racine. Remarque: aucun volume racine ne doit être connecté.

Suivez ces étapes: 1) Accédez à vos volumes, sélectionnez attacher des volumes dans Action. 2) Sélectionnez votre instance 3) Pour le montage en tant que root, donnez le nom du périphérique comme /dev/sda1 4) Démarrez votre instance.

0
Prashanth