można to zrobić bez tworzenia nowego AMI i bez uruchamiania nowa instancja. Kiedy to zrobi, pierwotny wolumin root pozostanie podłączony na/dev/sda1 (lub gdziekolwiek był oryginalnie zamontowany./Dev/sda1 jest domyślnym dla wielu AMI). Pierwotny wolumin główny nie zostanie podłączony do systemu plików - musisz to zrobić samodzielnie za pomocą polecenia "mount".
Technika wymaga najnowszych jąder Ubuntu, tych, które działają w wersjach 10.04 i 10.10. Aby uzyskać najnowsze identyfikatory AMI dla tych wydań Ubuntu, sprawdź numer alestic.com. Te najnowsze jądra są skonfigurowane do uruchamiania z dowolnego podłączonego urządzenia, którego etykieta woluminu to "uec-rootfs". Jeśli używasz jednego z tych jąder, wszystko, co musisz zrobić, to zmienić etykietę woluminu bieżącego (root-store) woluminu root na coś innego, zmienić etykietę woluminu nowego katalogu root na uec-rootfs, a następnie zrestartować komputer. Jeśli nie używasz jednego z tych ziaren, nie możesz użyć tej techniki.
Oto kod. Umieścić to w pliku (reroot.sh) na przykład:
#! /bin/bash
device=$1
# change the filesystem labels
e2label /dev/sda1 old-uec-rootfs
e2label $device uec-rootfs
Pierwszy byś dołączyć głośność EBS chcesz działać jako nowy korzeń jednego z dostępnych urządzeń /dev/sdf../dev/sdp. Można to zrobić za pomocą bezpośrednich wywołań API EC2, z EC2 Command Line API tools (wolumin przyłączenia ec2) lub z biblioteką, taką jak boto lub za pomocą interfejsu użytkownika konsoli zarządzania AWS.
Następnie uruchom reroot.sh skrypt jako root, i dostarczyć urządzenie, do którego dołączony nowy tom głównego w następujący sposób:
sudo reroot.sh /dev/sdp
Będzie to zrobić brudną robotę.Następnie wystarczy ponownie uruchomić komputer:
sudo shutdown -r now
Altówka.
Aby to sprawdzić, należy utworzyć wolumin EBS, o którym wiadomo, że zostanie poprawnie uruchomiony. Lubię to zrobić, snapshotując główny wolumen AMI wspieranych przez EBS z wyżej wymienionych AMI Ubuntu. Z tej migawki można utworzyć nowy, rozruchowy wolumin EBS w dowolnej strefie dostępności. Upewnij się, że można odróżnić pierwotnej objętości głównego uruchomionej instancji i nowego tomu głównego EBS - przed uruchomieniem procedury reroot powyżej można umieścić w „znacznika” pliku na starym objętości root:
cd
touch this-is-the-original-root-volume
Następnie, po ponownym uruchomieniu i ponownym uruchomieniu komputera, jeśli plik ten istnieje w katalogu domowym, nadal działa z oryginalnym woluminem głównym. Jeśli go tam nie ma, uruchomiono ponowne uruchomienie i ponowne uruchomienie.
Oto dwa przypadki użycia tego przykładem techniki, z gruntownych wyjaśnień:
http://shlomoswidler.com/2011/02/play-chicken-with-spot-instances.html
http://shlomoswidler.com/2011/02/recapture-unused-ec2-minutes.html
+1 ładne instrukcje, chociaż nie sądzę, że to, co PO chce. – kdgregory
Dziękuję bardzo za wyczerpującą odpowiedź. To świetnie – Sug
Zasadniczo zrobiliśmy to samo, ale użyliśmy rsync z wykluczeniami zamiast dd, działaliśmy też jak czar. Jeszcze jedna rzecz do załatwienia (wiem, że to oczywiste, ale zdarza się to w kółko): podczas tworzenia woluminu EBS upewnij się, że jest on sprawny w tym samym regionie co instancja, do której chcesz go dołączyć; -) –