Jak przenosić volume między domenami i projektami za pomocą klienta OpenStack CLI na NSIS
W OpenStack volume mogą być używane do przechowywania danych. Są one widoczne dla maszyn wirtualnych jako dyski.
Taki volume jest zwykle dostępny tylko dla projektu, w którym został utworzony. Przenoszenie przechowywanych na nim danych między projektami może zająć dużo czasu, zwłaszcza jeśli taki wolumin zawiera dużo danych, na przykład setki lub tysiące gigabajtów (lub nawet więcej).
Ten artykuł dotyczy zmiany przypisania volume do projektu. Pozwala to na przeniesienie volume bezpośrednio z jednego projektu (który nazwiemy źródłowym) do innego (który nazwiemy docelowym) za pomocą OpenStack CLI w sposób, który nie wymaga fizycznego przeniesienia danych.
Projekt źródłowy i projekt docelowy muszą znajdować się w tej samej chmurze (na przykład WAW3-2). Mogą (ale nie muszą) należeć do różnych użytkowników z różnych domen i organizacji.
Co zostanie omówione?
Inicjowanie transferu volume
Akceptowanie transferu volume
Anulowanie transferu volume
Wymagania wstępne
Nr 1 Konto
Jest wymagane konto hostingowe NSIS z dostępem do interfejsu Horizon: https://horizon.cloudferro.com
Nr 2 Klient OpenStack CLI
Aby korzystać z klienta OpenStack CLI, należy go zainstalować. Aby dowiedzieć się, jak to zrobić, zobacz jeden z poniższych artykułów:
Jak zainstalować OpenStackClient GitBash dla Windows na NSIS.
/openstackcli/How-to-install-OpenStackClient-for-Linux-on-NSIS.
Po zainstalowaniu będziesz mieć dostęp do polecenia openstack i będziesz w stanie komunikować się z chmurą OpenStack:
/accountmanagement/How-to-activate-OpenStack-CLI-access-to-NSIS-Cloud-cloud
Nr 3 Volume
Musisz mieć volume, który chcesz zmigrować.
Taki volume nie może być podłączony do maszyny wirtualnej. Musi mieć również Status****Available.
Status volume można sprawdzić, wykonując następujące polecenie:
openstack volume list
W tym przykładzie volume, który chcemy przenieść na nazwę my-other-volume. Jego status, oznaczony na powyższym zrzucie ekranu niebieskim prostokątem, to available.
Nr 4 Możliwość wykonywania operacji zarówno w projekcie źródłowym, jak i docelowym
Aby transfer się powiódł, należy najpierw zainicjować go z projektu źródłowego, a następnie zaakceptować go z projektu źródłowego.
Jeśli projekt źródłowy i/lub docelowy nie są zarządzane przez ciebie, konieczne może być uzyskanie odpowiednich uprawnień do wykonania takiej operacji.
Aby uzyskać bezpośredni dostęp do każdego z tych projektów (jeśli to możliwe), należy pobrać odpowiedni plik RC. Jeśli nie masz bezpośredniego dostępu do żadnego z tych projektów, prawdopodobnie możesz poprosić ich członków o wykonanie poleceń wymienionych w tym artykule.
Krok 1: Rozpoczęcie transferu volume
Wykonaj ten krok w projekcie źródłowym.
Wykonaj następujące polecenie:
openstack volume list
Zapisz identyfikator volume, który chcesz przenieść. W tym przykładzie chcemy przenieść volume o nazwie my-other-volume. Jego identyfkator, oznaczony na powyższym zrzucie ekranu zielonym prostokątem, to 7624dc4e-2fd1-48a7-985a-338ab887979e.
Po uzyskaniu identyfikatora wykonaj poniższe polecenie, ale zamień jego części zgodnie z instrukcjami:
openstack volume transfer request create --name my-transfer 7624dc4e-2fd1-48a7-985a-338ab887979e
W tym poleceniu należy zastąpić:
my-transfer nazwą wybranego transferu (upewnij się, że jest ona poprawnie przekazywana do powłoki, uważaj na wszelkie znaki specjalne, takie jak podwójne cudzysłowy lub spacje).
7624dc4e-2fd1-48a7-985a-338ab887979e identyfikatorem volume, który chcesz przenieść
Jeśli operacja zakończyła się powodzeniem, powinny pojawić się dane wyjściowe podobne do tych:
Zapisz identyfikator transferu (wartość dla id) i klucz autoryzacji (wartość dla auth_key).
Na powyższym zrzucie ekranu identyfikator transferu to f944ce3262f0a6b3, a klucz autoryzacji to 3b2b9168-cf4b-4fc2-af4d-7ebe795be48b.
Należy pamiętać, że po zainicjowaniu transferu nie można podłączyć volume do żadnej maszyny wirtualnej, dopóki transfer nie zostanie zaakceptowany lub anulowany. Aby dowiedzieć się, jak anulować transfer (jeśli na przykład został wybrany przypadkowo niewłaściwy volume), zobacz sekcję Anulowanie przeniesienia volume na końcu artykułu.
Krok 2: Akceptowanie przeniesienia volume
Wykonaj ten krok w projekcie docelowym.
Wykonaj poniższe polecenie. Zastąp w nim f944ce3262f0a6b3 kluczem autoryzacji, a 3b2b9168-cf4b-4fc2-af4d-7ebe795be48b identyfikatorem transferu. Te dwie wartości należy uzyskać, wykonując krok 1.
openstack volume transfer request accept --auth-key f944ce3262f0a6b3 3b2b9168-cf4b-4fc2-af4d-7ebe795be48b
Jeśli operacja zakończyła się powodzeniem, powinny pojawić się dane wyjściowe podobne do tych:
Aby sprawdzić, czy volume rzeczywiście został przeniesiony do nowego projektu, wykonaj to polecenie:
openstack volume list
Przeniesiony volume powinien znajdować się na liście:
Anulowanie transferu volume
Jeśli, powiedzmy, transfer został przypadkowo zainicjowany dla niewłaściwego volume i nikt nie zaakceptował tego transferu, można go anulować.
W tym przykładzie załóżmy, że chcieliśmy przenieść volume o nazwie my-volume, jednak omyłkowo zainicjowaliśmy transfer dla volume my-other-volume.
Sprawdzenie statusów volume za pomocą polecenia openstack volume list wykaże, że my-volume ma teraz status awaiting-transfer:
Volume o takim statusie nie może zostać podłączony do maszyny wirtualnej.
Aby anulować transfer volume, wykonaj poniższe polecenie (zastąp 3b2b9168-cf4b-4fc2-af4d-7ebe795be48b identyfikatorem transferu uzyskanym w kroku 1):
openstack volume transfer requested delete 3b2b9168-cf4b-4fc2-af4d-7ebe795be48b
Jeśli operacja zakończyła się powodzeniem, dane wyjściowe polecenia powinny być puste.
Ponowne wykonanie polecenia openstack volume list powinno poinformować, że volume ponownie ma status Available:
Co można zrobić dalej?
Teraz, gdy volume został przeniesiony, możesz chcieć podłączyć go do maszyny wirtualnej. Informacje, jak to zrobić zawiera artykuł Jak przenosić volume danych między maszynami wirtualnymi za pomocą OpenStack CLI na NSIS.
Przepływ pracy opisany w tym artykule można również wykonać za pomocą pulpitu Horizon Dashboard. Więcej informacji można znaleźć w artykule Jak przenosić wolumeny pomiędzy domenami i projektami przy użyciu dashboardu Horizon na NSIS Cloud.