Aktualizacja
AWS włączył tę funkcję w interfejsie API EC2. Jest dostępny jako --virtualization-type
opcja aws ec2 register-image
w nowym awscli opartym na Boto.
Oryginalna odpowiedź
Tak! Niestety nie ma na to bezpośredniego sposobu. Ponadto niektóre instancje PV mogą wymagać modyfikacji jądra i bootloadera.
- Utwórz wolumin z istniejącego PV AMI. Jeśli był to Twój własny PV AMI, możesz zrobić wolumin z migawki. Jeśli jest to interfejs AMI innej firmy, musisz uruchomić instancję i zrobić migawkę.
- Uruchom instancję HVM z dowolnym interfejsem AMI.
- Zatrzymaj to wystąpienie HVM.
- Odłącz wolumin główny od tego wystąpienia.
- Dołącz wolumin PV jako wolumin główny (/ dev / sda1 lub / dev / sda, jeśli został podzielony na partycje) do instancji HVM.
- Uruchom
ec2-create-image
na instancji HVM.
- Uruchom inne instancje za pomocą nowego HVM AMI.
Jeśli to nie zadziała, to przed krokiem 5 musisz dołączyć ten wolumin do działającej instancji, skonfigurować chroot i zainstalować jądro i bootloader dla swojej dystrybucji. Możesz także wyczyścić dzienniki i każdą pamięć podręczną inicjującą chmurę.
aws ec2 register-image
flagę --virtualization-type na migawce obrazu PV. Zobaczaws ec2 register-image help
szczegóły.aws ec2 register-image
. Następnie uruchomiłem nową instancję HVM z tego obrazu. Jednak system nie chce się uruchomić.W moim przypadku musiałem wykonać konwersję ręcznie, ponieważ instancja, którą utworzyłem,
aws ec2 register-image
nie uruchomiła się. Moje rozwiązanie oparte jest na tym poście na forum AWS EC2 .Przygotowanie
SSH na maszynę fotowoltaiczną, z której chcesz przeprowadzić migrację, i zastosuj wszystkie aktualizacje, a następnie wyloguj się.
Przejdź do konsoli AWS i uruchom nową instancję HVM, wybierając ten sam podstawowy AMI, z którego utworzono system PV (w moim przypadku 64-bitowy Amazon AMI dla systemu Linux).
SSH do tego nowego wystąpienia i zastosuj wszystkie aktualizacje, a następnie wyloguj się.
Przejdź do konsoli AWS i zatrzymaj instancję PV. Zrób migawkę urządzenia głównego i utwórz nowy wolumin (
SOURCE VOLUME
) z tej migawki.Zatrzymaj instancję HVM. Zrób migawkę urządzenia głównego w nowej instancji i utwórz nowy wolumin (
TARGET VOLUME
) z tej migawki.Korzystanie z konsoli AWS:
SOURCE VOLUME
do nowej instancji jako/dev/xvdf
.TARGET VOLUME
do nowej instancji jako/dev/xvdg
.Proces konwersji
SSH do nowej instancji i uzyskaj dostęp do konta root:
Zamontuj dyski źródłowy i docelowy.
Kopia zapasowa
/lib/modules/*
(jeśli jądro PV ami różni się od nowej maszyny HVM. Z tego modułu korzystają niektóre usługi AWS.)Usuń wszystko oprócz
/boot
woluminu docelowego:Usuń
/boot
z woluminu źródłowego:Skopiuj dane woluminu źródłowego do woluminu docelowego, zachowując wszystkie atrybuty:
Edytuj
/mnt/target/etc/fstab
dla/
partycji, tak aby odwoływała się doTARGET VOLUME
zamontowanej w jej ostatecznej lokalizacji w kroku (8). Albo używając etykiety, albo po prostu czegoś innego:Następnie przywróć
/lib/modules/
kopię zapasową z kroku 3. (Jeśli jądro PV ami różni się od nowej maszyny HVM).Zatrzymaj system i odłącz wszystkie woluminy za pomocą konsoli AWS. Dołącz w
TARGET VOLUME
nowej instancji jako/dev/xvda
.Uruchom instancję HVM. Powinien być teraz dokładną kopią twojego systemu PV. Jeśli wszystko wygląda dobrze, możesz teraz usunąć również instancję PV
SOURCE VOLUME
.źródło
rm -f /boot
icp -a /mnt/source/boot /mnt/target
?TLDR:
Szczegółowe kroki:
Odpowiedzi na dalsze pytania w oparciu o odpowiedź Jeffa Strunksa w celu uproszczenia czynności i podania nieco więcej szczegółów na temat obrazu rejestru ec2:
Utwórz instancję za pomocą obrazu PV. Wprowadź / zaktualizuj dowolne zmiany.
Utwórz obraz z powyższej instancji.
Znajdź identyfikator migawki używany przez powyższy AMI w EC2> Sklep z elastycznymi blokami> Migawka w konsoli EC2.
lub jeśli masz konfigurację narzędzi interfejsu API ec2:
ec2-opisz-obrazy ami-id_of_above_created_ami
i znajdź identyfikator migawki dla ami
.. Założenia do dalszych kroków: Twoje klucze ec2 i narzędzia API są ustawione i gotowe do użycia:
Zarejestruj nowy interfejs HVM AMI, korzystając z powyższej migawki: przykład:
gdzie
Po więcej informacji:
źródło
Możesz to zrobić z poziomu interfejsu internetowego AWS. Przejdź do migawek , kliknij żądaną migawkę, którą chcesz przekonwertować na hvm, kliknij działania, a następnie utwórz obraz . Z rozwijanego menu w kreatorze tworzenia obrazów wybierz HVM .
źródło
Po wypróbowaniu wszystkich podanych tutaj sugestii, z których żadna nie działała dla mnie, znalazłem doskonały wpis na ten temat na stronie https://www.opswat.com/blog/aws-2015-why-you-need-switch- pv-hvm .
Elementy (szczegóły) procedury to:
Zainstaluj
grub
na instancji PV do migracji (instancja źródłowa).Wykonaj zapobiegawczą migawkę woluminu głównego w instancji źródłowej (wolumin źródłowy, SV).
Utwórz tymczasową instancję HVM, która przeprowadzi migrację woluminu.
Utwórz wolumin docelowy (DV) i dołącz zarówno ten, jak i SV do instancji tymczasowej.
DV powinno być co najmniej tak duże jak SV.
Załącz SV as
/dev/{sd,xvd}f
i DV as/dev/{sd,xvd}g
.Podziel DV na partycje:
parted /dev/xvdg --script 'mklabel msdos mkpart primary 1M -1s print quit'
partprobe /dev/xvdg
udevadm settle
Zmień rozmiar do minimalnej wielkości FS FS i używając
dd
obrazu na DV.Wyczyść FS woluminu źródłowego:
e2fsck -f /dev/xvdf
Minimalizuj to samo:
resize2fs -M /dev/xvdf
Obserwuj dane wyjściowe resize2fs (np.
Resizing the file system on /dev/xvdf to 269020 (4k) blocks
) I zanotuj je w następnym kroku.Duplikat SV na DV:
dd if=/dev/xvdf of=/dev/xvdg1 bs=<block size from previous step, here 4k> count=<use block count from last step, here 269020>
Rozwiń FS na nowej partycji:
resize2fs /dev/xvdg1
Zainstaluj
grub
w bloku rozruchowym DVTymczasowo utwórz pliki urządzenia na DV:
mount /dev/xvdg1 /mnt; cp -a /dev/xvdg /dev/xvdg1 /mnt/dev/
Zainstaluj pliki grub:
rm -f /mnt/boot/grub/*stage*
cp /mnt/usr/*/grub/*/*stage* /mnt/boot/grub/
rm -f /mnt/boot/grub/device.map
cat << ARNIE | chroot /mnt grub --batch
device (hd0) /dev/xvdg
root (hd0,0)
setup (hd0)
ARNIE
Po wprowadzeniu innych drobnych zmian w woluminie docelowym, zrób wolumin i utwórz z niego AMI.
Porządkuj tymczasowe pliki urządzeń:
rm -f /mnt/dev/xvdg /mnt/dev/xvdg1
W
/mnt/boot/grub/grub.conf
, zmianyroot (hd0)
doroot (hd0,0)
, dodać (lub wymienićconsole=*
)console=ttyS0
do linii kernel, a jeśli to konieczne, wymienićroot=*
sięroot=LABEL=/
w linii kernelW
/mnt/etc/fstab
upewnij się, że wiersz głównego systemu FS zawiera odniesienie oznaczone etykietą, npLABEL=/ / ext4 defaults,noatime 1 1
Oznacz nowy root FS za pomocą
e2label /dev/xvdg1 /
Odłącz DV od instancji tymczasowej, odłącz SV i DV od instancji tymczasowej.
Zrób zdjęcie DV i na podstawie tego zdjęcia utwórz obraz AMI.
Uruchom instancję HVM z tego HMI. To jest Twoja migrowana instancja.
źródło