cela peut se faire sans créer un nouveau AMI et sans lancer un nouvelle instance Quand c'est fait, le volume racine d'origine reste attaché à/dev/sda1 (ou à l'endroit où il a été monté à l'origine)/dev/sda1 est la valeur par défaut pour de nombreuses AMI). Le volume racine d'origine ne sera pas monté sur le système de fichiers - vous devrez le faire vous-même via la commande "mount".
La technique nécessite les noyaux Ubuntu récents, ceux qui s'exécutent dans leurs versions 10.04 et 10.10. Découvrez alestic.com pour les ID AMI les plus récents pour ces versions d'Ubuntu. Ces noyaux récents sont configurés pour démarrer à partir de n'importe quel périphérique connecté dont l'étiquette de volume est "uec-rootfs". Si vous utilisez l'un de ces noyaux, tout ce que vous avez à faire est de changer le nom du volume racine du volume actuel (instance-store) en autre chose, changez le nom du volume de la nouvelle racine en uec-rootfs, puis redémarrez. Si vous n'utilisez pas l'un de ces noyaux, vous ne pouvez pas utiliser cette technique.
Voici le code. Mettre cela dans un fichier (reroot.sh) sur l'instance:
#! /bin/bash
device=$1
# change the filesystem labels
e2label /dev/sda1 old-uec-rootfs
e2label $device uec-rootfs
d'abord vous fixer le volume EBS vous souhaitez agir en tant que nouvelle racine à l'un des dispositifs disponibles /dev/sdf../dev/sdp. Cela peut être effectué avec des appels d'API EC2 directs, avec le EC2 Command Line API tools (volume ec2-attach) ou avec une bibliothèque telle que boto ou via l'interface utilisateur d'AWS Management Console.
Ensuite, exécutez le script reroot.sh en tant que root, et fournir l'appareil que vous avez joint le nouveau volume racine, comme suit:
sudo reroot.sh /dev/sdp
Cela va faire le sale boulot.Ensuite, vous redémarrez simplement:
sudo shutdown -r now
Viola.
Pour tester cela, vous devez créer un volume EBS qui démarrera correctement. J'aime faire cela en photographiant le volume racine des AMIs supportées par EBS à partir des AMIs Ubuntu mentionnées ci-dessus. À partir de cet instantané, vous pouvez créer un nouveau volume EBS amorçable dans n'importe quelle zone de disponibilité. Assurez-vous que vous pouvez faire la différence entre le volume racine d'origine de l'instance en cours d'exécution et le nouveau volume racine EBS - avant d'exécuter la procédure de reroot ci-dessus, vous pouvez mettre dans un fichier « marqueur » sur le vieux volume racine:
cd
touch this-is-the-original-root-volume
Ensuite, lorsque vous relancez et redémarrez, si ce fichier existe dans votre répertoire personnel, vous utilisez toujours le volume racine d'origine. Si ce n'est pas le cas, le redémarrage et le redémarrage ont fonctionné.
Voici deux cas d'utilisation par exemple pour cette technique, avec des explications approfondies:
http://shlomoswidler.com/2011/02/play-chicken-with-spot-instances.html
http://shlomoswidler.com/2011/02/recapture-unused-ec2-minutes.html
+1 instructions belles, bien que je ne pense pas que ce soit ce que l'OP veut. – kdgregory
Merci beaucoup pour la réponse complète. C'est génial – Sug
Nous avons fondamentalement fait de même, mais utilisé rsync avec excludes au lieu de dd, a travaillé comme un charme aussi. Encore une chose à prendre en compte (je sais que c'est évident, mais cela arrive encore et encore): lors de la création de votre volume EBS, assurez-vous de vérifier qu'il se trouve dans la même région que l'instance à laquelle vous voulez l'attacher; -) –