Skip to main content
  • »
  • OPENSTACK CLI »
  • Jak przenosić volume danych między maszynami wirtualnymi za pomocą OpenStack CLI na NSIS

Jak przenosić volume danych między maszynami wirtualnymi za pomocą OpenStack CLI na NSIS

Volume są używane do przechowywania danych, a dostęp do nich można uzyskać z maszyny wirtualnej, do której volume jest podłączony. Aby uzyskać dostęp do danych przechowywanych na volume z innej maszyny wirtualnej, należy odłączyć ten volume od maszyny wirtualnej, do której jest aktualnie podłączony, i podłączyć go do innej instancji.

W tym artykule wykorzystano klienta OpenStack CLI do przesyłania volume między maszynami wirtualnymi należącymi do tego samego projektu.

Wymagania wstępne

Nr 1 Hosting

Wymagane jest konto hostingowe NSIS z interfejsem Horizon https://horizon.cloudferro.com.

Nr 2 Klient OpenStack CLI

Aby korzystać z klienta OpenStack CLI, należy go zainstalować. Jeden z tych artykułów powinien pomóc:

Musisz także mieć możliwość uwierzytelnienia się w chmurze:

/accountmanagement/How-to-activate-OpenStack-CLI-access-to-NSIS-Cloud-cloud

Nr 3 Źródłowa maszyna wirtualna i wolumin

Zakładamy, że masz maszynę wirtualną (którą nazwiemy źródłową maszyną wirtualną), do której dołączony jest volume.

Nr 4 Docelowa maszyna wirtualna

Zakładamy również, że chcesz uzyskać dostęp do danych przechowywanych na woluminie wspomnianym w warunku nr 3 z innej instancji, która znajduje się w tym samym projekcie - nazwiemy tę instancję docelową maszyną wirtualną.

Co zostanie omówione?

  • Upewnij się, że transfer jest możliwy

    • Projekty muszą znajdować się w tej samej chmurze

    • Volume nie może być używany do uruchamiania systemu operacyjnego

    • Zgodność z systemem plików

    • Upewnij się, że źródłowa maszyna wirtualna nie próbuje uzyskać dostępu do volume

    • Inne warunki dotyczące pomyślnego transferu woluminu i instancji

  • Uzyskiwanie informacji o woluminie

  • Uzyskiwanie informacji o maszynach wirtualnych

  • Ogólne zasady dotyczące zamykania maszyny wirtualnej

  • Zamykanie źródłowej maszyny wirtualnej przy użyciu interfejsu OpenStack CLI

  • Odłączanie volume

  • Dołączanie volume do docelowej maszyny wirtualnej

Niektóre części zrzutów ekranu w tym artykule są zamazane ze względu na ochronę prywatności.

Upewnij się, że transfer jest możliwy

Przed faktycznym transferem należy sprawdzić stan volume i instancji oraz określić, czy transfer jest możliwy od razu, czy też należy najpierw wykonać inne operacje:

Projekty muszą znajdować się w tej samej chmurze

Jeśli projekty nie znajdują się w tej samej chmurze, nie należy korzystać z tego artykułu, a zamiast tego zapoznać się z jednym z poniższych artykułów:

Volume nie może być używany do uruchamiania systemu operacyjnego

Jeśli volume nie jest używany do uruchamiania systemu operacyjnego na maszynie wirtualnej, wymóg ten jest spełniony.

Jeśli jednak volume jest używany do uruchamiania systemu operacyjnego, można przekonwertować go na zwykły volume.

Konwersja volume rozruchowego do zwykłego volume uratuje sytuację, jeśli system operacyjny na volume zacznie działać nieprawidłowo i konieczne jest przynajmniej zapisanie danych; wystarczy wtedy dołączyć zwykłą wersję tego volume do innej maszyny wirtualnej i skopiować dane.

Jeśli ten volume został przekonwertowany i wszystkie inne warunki wymienione w sekcji ** Upewnienie się, że transfer jest możliwy** są spełnione, nie musisz odłączać volume od maszyny wirtualnej i możesz zignorować części artykułu dotyczące tego procesu.

Zgodność z systemem plików

Aby uzyskać dostęp do danych, system plików na volume musi być zgodny z systemem plików w docelowej maszynie wirtualnej.

Najprostszym przypadkiem jest użycie systemu plików NTFS, ponieważ zarówno Windows, jak i Linux mogą uzyskać dostęp do danych w tym formacie. Nie jest to gwarantowane, więc w celu zapewnienia kompatybilności może być wymagane zainstalowanie dodatkowych sterowników.

Należy również pamiętać, że system Windows domyślnie nie obsługuje formatu ext4, który jest systemem plików powszechnie używanym w systemie Linux.

Upewnij się, że źródłowa maszyna wirtualna nie próbuje uzyskać dostępu do volume

Należy upewnić się, że źródłowa maszyna wirtualna nie próbuje ponownie uzyskać dostępu do volume.

Dokładne kroki będą się różnić w zależności od systemu operacyjnego i wykraczają poza zakres tego artykułu. Mogą one obejmować:

  • usunięcie volume z pliku /etc/fstab

  • usunięcie pliku systemd .mount

i tak dalej.

Inne warunki dotyczące pomyślnego transferu volume i instancji

Wolumin:

  • musi być podłączony do maszyny wirtualnej,

  • musi mieć status in-use, a nie na przykład error lub inny i

  • nie może być używany przez żadną instancję do uruchamiania z niego systemu operacyjnego.

Instancja:

  • musi być włączona lub wyłączona i

  • nie może mieć innego statusu, takiego jak error, shelved lub paused.

Aby dowiedzieć się więcej o różnych stanach, w których może znajdować się maszyna wirtualna, zobacz artykuł Status Power State oraz zależności w rozliczaniu instancji VM na NSIS Cloud

Jeśli wszystkie te warunki są spełnione, poniżej opisano, jak przenieść volume z instancji źródłowej do instancji docelowej w tym samym projekcie.

Uzyskiwanie informacji o woluminie

Wykonaj to polecenie, aby wyświetlić listę volume:

openstack volume list

Dla każdego tomu powinien być widoczny jego identyfikator, nazwa, informacje, do której maszyny wirtualnej jest dołączony i tak dalej:

../_images/how-to-move-data-volume-cli-12_creodias.png

W tym przykładzie widzimy, że volume, który chcemy przenieść, o nazwie volume-to-move, jest dołączony do maszyny wirtualnej o nazwie previous-vm (pomarańczowy prostokąt). Jego identyfikator, oznaczony czerwonym prostokątem, to 851a3a86-d569-44e4-8c17-f3907af88500.

Inne wyświetlane tutaj informacje obejmują status volume (tutaj oznaczony zielonym prostokątem).

Zapisz identyfikator volume, który chcesz przenieść, ponieważ będzie on potrzebny później.

Uzyskiwanie informacji o maszynach wirtualnych

Wykonaj to polecenie, aby wyświetlić listę serwerów:

openstack server list

Powinna zostać wyświetlona lista maszyn wirtualnych:

../_images/how-to-move-data-volume-cli-31_creodias.png

W tym przykładzie chcemy przenieść volume ze źródłowej maszyny wirtualnej, która tutaj nazywa się previous-vm. Jej ID to b9f2017b-d8f2-420d-a0cb-36867228f17e – na zrzucie ekranu jest ona oznaczona czerwonym prostokątem. Docelowa maszyna wirtualna nazywa się newer-vm. Jej ID to 97018102-1706-43e3-933b-60e29b299a73 i jest oznaczona zielonym prostokątem.

Zapisz identyfikatory zarówno źródłowej, jak i docelowej maszyny wirtualnej – będziesz ich potrzebować później.

Sprawdź Status źródłowej maszyny wirtualnej (na zrzucie ekranu jest ona oznaczona pomarańczowym prostokątem). Jeśli jest to SHUTOFF, pomiń sekcję Wyłączanie maszyny wirtualnej i przejdź bezpośrednio do sekcji Odłączanie volume.

Jeśli jednak Status źródłowej maszyny wirtualnej to ACTIVE, jak na powyższym zrzucie ekranu, przejdź do sekcji Wyłączanie maszyny wirtualnej.

Ogólne zasady dotyczące zamykania maszyny wirtualnej

Volume i jego maszyna wirtualna są ze sobą połączone, więc jeśli nagle ją wyłączysz, niektóre dane na volume mogą zostać utracone. Aby zachować bezpieczeństwo, należy najpierw wyłączyć źródłową maszynę wirtualną.

Istnieją dwa sposoby wyłączania maszyny wirtualnej:

Z użyciem z poleceń OpenStack

OpenStack najpierw zażąda wyłączenia maszyny wirtualnej. Jeśli maszyna wirtualna nie wykona tego polecenia, po upływie czasu oczekiwania OpenStack wymusi jej wyłączenie.

Za pomocą systemu operacyjnego maszyny wirtualnej

W rzadkich przypadkach takie wymuszone wyłączenie może prowadzić do utraty danych, więc alternatywą jest użycie natywnych poleceń systemu operacyjnego. Szczegóły techniczne tego zagadnienia jednak poza zakresem tego artykułu.

Zamykanie źródłowej maszyny wirtualnej przy użyciu interfejsu OpenStack CLI

Pomiń tę sekcję, jeśli decydujesz się zamknąć maszynę wirtualną przy użyciu funkcji systemu operacyjnego zainstalowanego na źródłowej maszynie wirtualnej.

Polecenie CLI OpenStack służące do zamknięcia maszyny wirtualnej to

openstack server stop b9f2017b-d8f2-420d-a0cb-36867228f17e

Jest oczywiste, że należy zastąpić b9f2017b-d8f2-420d-a0cb-36867228f17e identyfikatorem źródłowej maszyny wirtualnej.

Dane wyjściowe tego polecenia powinny być puste.

Następnie wyświetl listę serwerów, być może trzeba będzie to zrobić wielokrotnie, aż twoja maszyna wirtualna będzie miała następujący Status SHUTOFF (na poniższym zrzucie ekranu zaznaczony pomarańczowym prostokątem).

openstack server list
../_images/how-to-move-data-volume-cli-32_creodias.png

Odłączanie volume

Aby odłączyć volume, należy wykonać polecenie openstack server remove volume, a następnie podać identyfikator źródłowej maszyny wirtualnej i identyfikator volume. Upewnij się, że te wartości są oddzielone spacjami.

W tym przykładzie będzie to polecenie:

openstack server remove volume b9f2017b-d8f2-420d-a0cb-36867228f17e 851a3a86-d569-44e4-8c17-f3907af88500

Jeśli operacja zakończyła się powodzeniem, dane wyjściowe powinny być puste. Aby to sprawdzić, wykonaj polecenie:

openstack volume list
../_images/how-to-move-data-volume-cli-13_creodias.png

Twój volume powinien mieć następujący Status available (zaznaczony na powyższym zrzucie ekranu czerwonym prostokątem). Ponadto żadna wartość nie powinna być obecna w kolumnie Attached to (to pole zostało oznaczone zielonym prostokątem).

Dołączanie volume do docelowej maszyny wirtualnej

Wykonaj polecenie openstack server add volume –disable-delete-on-termination, a następnie podaj ID docelowej maszyny wirtualnej i ID volume, który chcesz dołączyć. Pamiętaj, aby oddzielić te wartości spacjami.

W tym przykładzie będzie to polecenie:

openstack server add volume --disable-delete-on-termination 97018102-1706-43e3-933b-60e29b299a73 851a3a86-d569-44e4-8c17-f3907af88500

Jeśli operacja zakończyła się powodzeniem, powinny pojawić się dane wyjściowe podobne do tych:

../_images/how-to-move-data-volume-cli-14_creodias.png

Aby to sprawdzić, wykonaj jeszcze raz polecenie openstack volume list:

../_images/how-to-move-data-volume-cli-15_creodias.png

Volume powinien mieć teraz Status in-use, a kolumna Attached to powinna zawierać odpowiednie informacje dotyczące tego, do której maszyny wirtualnej volume został podłączony.

Co można zrobić dalej?

Teraz, gdy volume został podłączony do docelowej maszyny wirtualnej, można zezwolić dostęp do niego z tej maszyny wirtualnej lub uprościć go. Może to obejmować:

  • przypisanie litery dysku do volume (w przypadku systemu Windows)

  • utworzenie punktu montowania i dodanie volume do pliku /etc/fstab (w przypadku systemu Linux)

Volume można również przenieść za pomocą pulpitu Horizon Dashboard:

Jak przenosić wolumeny pomiędzy domenami i projektami przy użyciu dashboardu Horizon na NSIS Cloud.