Instancje (wirtualne maszyny)

Tworzenie instancji

Instrukcja wideo dostępna na dole strony

KROK 1

Z ekranu Project -> Compute- > Instances należy kliknąć LAUNCH INSTANCE.

pic1

KROK 2

W zakładce Details należy podać nazwę instancji, a także określić ile sztuk takich instancji ma zostać wykreowanych. Dodatkowo można ograniczyć występowanie/działanie instancji do konkretnej strefy dostępności, tzw. Availability Zone (więcej: patrz praktyczne uwagi).

pic2

pic3

KROK 3

W zakładce Source należy wybrać źródło bootowania. Wybór wartości Image pozwala na szybkie uruchomienie maszyny w jednym etapie używając tylko omawianego tu kreatora. Wybór wartości Volume jest bardziej uniwersalnym sposobem, wymaga on jednak uprzedniego utworzenia wolumenu. Patrz również poniżej w rozdziale „Praktyczne uwagi”. Warto również zaznaczyć opcję NO przy „Delete Volume …”, dzięki temu po usunięciu instancji wolumen będzie można ponownie wykorzystać. W przypadku wybrania Image jako źródła bootowania, w sekcji Available należy wybrać obraz systemu poprzez kliknięcie przycisku ze strzałką skierowaną w górę.

pic4

pic5

pic6

KROK 4

W zakładce Flavors należy wybrać (poprzez kliknięcie przycisku z symbolem strzałki w górę) flavor – czyli kombinację liczby vCPU (rdzeni) oraz ilości pamięci operacyjnej RAM.

pic7

KROK 5

W zakładce Networks można przypisać (poprzez kliknięcie przycisku z symbolem strzałki w górę) sieć.

pic8

KROK 6

W zakładce Network Ports można przypisać port (poprzez kliknięcie przycisku z symbolem strzałki w górę). Aby pomyślnie zakończyć tworzenie instancji, jedna z zakładek sieciowych musi zostać uzupełniona: Networks lub Network Ports.

pic9

KROK 7

W zakładce Security Groups należy wybrać pożądaną grupę zabezpieczeń. Domyślny stan zakładki:

pic10

Używając przycisków z symbolami strzałek należy przypisać pożądaną grupę zabezpieczeń:

pic11

pic12

KROK 8

W zakładce Key Pair można ustawić klucze SSH, jeśli życzeniem użytkownika jest logowanie do instancji w ten sposób. Należy wybrać wcześniej stworzony klucz lub utworzyć go uruchamiając + CREATE KEY PAIR lub też importując swój własny klucz (IMPORT KEY PAIR).

pic13

KROK 9

Zakładka Configuration daje możliwość customizacji skryptem. Jedno z praktycznych zastosować polega na ustawieniu hasła dla domyślnego użytkownika (patrz: praktyczne uwagi).

pic14

KROK 10

Zakładki Server Groups, Scheduler Hints oraz Metadata niniejszy przewodnik zostawia do samodzielnej eksploracji bardzo zaawansowanym użytkownikom. Można je pominąć podczas tworzenia instancji. Instancja zostaje wykreowana po kliknięciu na przycisk Launch Instance i pojawia się na liście ekranu Instances.

pic15

Usuwanie instancji

Instancję można usunąć uruchamiając akcję DELETE INSTANCE na wybranej instancji na liście ekranu Project -> Compute -> Instances. Większą liczbę instancji można usunąć zaznaczając instancje przeznaczone do usunięcia na liście a następnie kliknięcie przycisku DELETE INSTANCES.

pic16

Odtworzenie (recreate) maszyny wirtualnej

Aby odtworzyć maszynę wirtualną konieczne jest usunięcie instancji (bez usuwania wolumenu), a następnie utworzenie nowej instancji z użyciem tego samego wolumenu.

1. Usuwanie instancji

Wyświetlamy listę instancji (wybierając z menu pozycję Compute/Instances), klikamy na strzałkę w rozwijanym menu przy wybranej instancji i klikamy na pozycję Terminate Instance.

2. Ponowne utworzenie instancji

Przy wybranym wolumenie, klikamy na strzałkę w rozwijanym menu przy wybranym wolumenie i klikamy na pozycję Launch as Instance. W wyświetlonym oknie określamy nowe parametry maszyny wirtualnej.

Zmiana parametrów RAM i vCPU

Parametry można zmienić poprzez zmianę flavor’a. Na ekranie Project -> Compute -> Instances należy wybrać akcję RESIZE INSTANCE. W kreatorze należy wybrać nowy flavor i zatwierdzić przyciskiem RESIZE. Na liście instancji w polu TASK pojawi się pasek stanu z informacją o zadaniu. Po wykonaniu należy kliknąć CONFIRM RESIZE/MIGRATE.

pic17

pic18

pic19

pic20

Uruchomienie instancji z własnego obrazu ISO

Do wykonania poniższych kroków wymagany jest plik openrc zawierający dane uwierzytelniające do interfejsów API usługi Atman Cloud. W przypadku uwierzytelniania SSO (poprzez portal auth.atman.pl) należy skonfigurować konto API oraz uzupełnić odpowiednie dane w pliku openrc.

Aby zainstalować system z obrazu ISO, należy najpierw przesłać go do rejestru obrazów usługi Atman Cloud. Taką czynność można wykonać poprzez użycie klienta CLI openstack:

openstack image create --private --disk-format iso --container-format bare --file /path/to/iso ImageName

Kiedy obraz się utworzy kopiujemy jego ID:

Property

Value

checksum

e0a43cbb8b991735c1b38e7041019658

container_format

bare

created_at

2019-03-28T09:27:04Z

disk_format

iso

id

3ecfe11c-309d-474d-b16c-1f98afb79d98

min_disk

0

min_ram

0

name

ImageName

owner

1f5c0xx

protected

False

size

306184192

status

active

tags

[]

updated_at

2019-03-28T09:27:18Z

virtual_size

Not available

visibility

private

Następnie tworzymy tymczasową instancję wskazując na ID obrazu:

nova boot \
   --block-device source=image,id=3ecfe11c-309d-474d-b16c-1f98afb79d98,dest=volume,shutdown=preserve,size=1,bootindex=0,bus=ide,type=cdrom \
   --block-device source=blank,dest=volume,size=10,shutdown=preserve,bootindex=1,type=disk,bus=vitrio \
   --nic none \
   --flavor m4.c2 \
InstanceName

Po uruchomieniu instancji możemy zainstalować system z ISO wykorzystując zakładkę Console w panelu Atman Cloud. Podczas instalacji jako dysk systemowy wybieramy wolumen /dev/vda. Kiedy instalacja zakończy się, usuwamy tymczasową instancję i uruchamiamy nową instancję z wolumenu, na którym zainstalowaliśmy wcześniej system.

pic21

Utworzenie instancji z wolumenu na danym zasobie dyskowym

Sposobem na tworzenie instancji na danym typie zasobu dyskowego jest utworzenie wolumenu z obrazu na danym typie storage i utworzenie instancji z wolumenu.

Instancje z zasobami dyskowymi 8000 IOPS/15000 IOPS mogą być utworzone na przykład według poniższego sposobu.

Przechodzimy do zakładki Project -> Compute -> Images.

Następnie w opcjach obrazu którego chcemy użyć do utworzenia instancji wybieramy Create Volume.

pic22

W okienku które się nam otworzy zmieniamy typ na 8000 IOPS i klikamy Create Volume.

pic23

W kolejnym kroku przechodzimy do zakładki Project -> Volumes -> Volumes. Tam odnajdujemy nasz wolumen i w opcjach wybieramy LAUNCH AS INSTANCE.

pic24

Otworzy nam się okienko konfiguracji instancji. Dalsza konfiguracja instancji jest identyczna jak w przypadku zasobów dyskowych 2000 IOPS z jednym wyjątkiem. W zakładce Source zmieniamy opcje Select Boot Source na Volume.

pic25

Następnie z listy wybieramy nasz wolumen.

pic26

Następnie wypełniamy wymagane pola w pozostałych zakładkach i klikamy w ikonę LAUNCH INSTANCE w celu uruchomienia instancji.

Opis stanów instancji

Na liście instancji po prawej stronie ekranu Project -> Compute -> Instances użytkownik ma możliwość wykonania szeregu akcji dotyczących ich stanu. Poniższy opis przedstawia znaczenie stanów.

AKCJA

OPIS

PAUSE INSTANCE

Stan maszyny zapisywany jest w pamięci RAM. Instancja staje się nieaktywna

SUSPEND INSTANCE

Wejście w stan podobny do hibernacji – stan instancji wraz z pamięcią zapisywany jest na dysku, RAM i rdzenie zostają zwolnione – można zaalokować do innych instancji. Instancja zostaje wyłączona

RESUME INSTANCE

Powrót do stanu sprzed akcji SUSPEND lub PAUSE. Instancja zostaje wyłączona, zasoby zwolnione. Stan instancji nie jest zapisywany

UNSHELVE INSTANCE

Tworzy i bootuje instancję od nowa

LOCK INSTANCE

Instancja jest zabezpieczona przed usunięciem

UNLOCK INSTANCE

Instancja jest podatna na usunięcie

SOFT

HARD REBOOT Ponowne uruchomienie instancji

SHUT OFF INSTANCE

Wyłączenie instancji

START INSTANCE

Włączenie instancji

Więcej informacji o stanach maszyn wirtualnych można znaleźć w dokumentacji OpenStack po kliknięciu na link: https://docs.openstack.org/nova/latest/reference/vm-states.html

Stany instancji w rozliczeniu w modelu PAYG (Pay-As-You-Go)

W modelu rozliczenia PAYG koszty związane konsumpcją zasobów w postaci vCPU i RAM generowane są za każdą rozpoczętą godzinę pracy maszyny wirtualnej w poniższych stanach:

  • active,

  • stopped,

  • paused,

  • resized,

  • suspended,

  • migrating.

Niezależnie od stanu maszyny wirtualnej koszty przestrzeni storage na dyskach blokowych jest naliczany w całym czasie istnienia maszyny wirtualnej.

Aby uniknąć kosztów związanych z wykorzystaniem vCPU i RAM kiedy maszyna wirtualna nie będzie używana należy przełączyć maszynę wirtualną w stan SHELVED.

pic27

Praktyczne uwagi

UWAGA 1. Autogenerowanie hasła root.

Hasło administratora generowane jest automatycznie. Aby hasło zostało nadane i było widoczne w logach instancji należy pamiętać, że w przypadku używania siecie wewnętrznej, musi być włączone DHCP – patrz również rozdział „Sieci wewnętrzne”.

UWAGA 2. Strefy dostępności.

Platforma chmurowa w zakresie węzłów obliczeniowych podzielona jest na trzy strefy (AZ – Availability Zones). Każda strefa stanowi osobną grupę szaf węzłów (fizycznych serwerów). Ograniczając instancję do danej strefy użytkownik ma pewność, że instancja (wirtualna maszyna) nie znajdzie się w innej strefie. Taka funkcjonalność umożliwia użytkownikowi – jeśli jest to potrzebne – dodatkową separację od siebie grup instancji.

UWAGA 3. Źródło bootowania.

Wybór wartości Image w źródle bootowania domyślnie stosuje typ przestrzeni dyskowej 2000 IOPS. Jeśli użytkownik potrzebuje uruchomić instancję z dyskiem systemowym o typie 8000 IOPS, powinien uprzednio utworzyć wolumen. Wybór wartości Volume jest bardziej uniwersalnym sposobem – na etapie tworzenia wolumenu można jawnie określić typ: 2000 IOPS lub 8000 IOPS (lub 15000 IOPS jeśli ten typ jest dostępny w środowisku użytkownika).

UWAGA 4. Customization Script.

Dla systemów operacyjnych Linux można w łatwy sposób wygenerować przy tworzeniu maszyny samodzielnie określone hasło dla domyślnego użytkownika. W przypadku systemu Linux Ubuntu domyślnym użytkownikiem jest ubuntu, dla systemu Linux CentOS – użytkownik centos. W polu Customization Script należy wpisać:

#cloud-config
password: mysecret
chpasswd: { expire: False }
ssh_pwauth: True

W przypadku systemu Linux Debian należy takiego użytkownika stworzyć – tu: debian. W polu Customization Script należy wpisać:

#cloud-config
password: mysecret
ssh_pwauth: True
chpasswd: { expire: False }
system_info:
default_user:
    name: debian
    lock_passwd: true
    sudo: ["ALL=(ALL) NOPASSWD:ALL"]
    shell: /bin/bash

Instrukcja wideo

Watch the video

Otwórz ten film na YouTube