oVirt w 2 godziny. Część 2. Instalacja menedżera i hostów

Ten artykuł jest kolejnym w cyklu dotyczącym oVirt, wprowadzenie tutaj.

Artykuły

  1. Wprowadzenie
  2. Instalacja menedżera (ovirt-engine) i hipernadzorców (hosts) – Jesteśmy tutaj
  3. Dodatkowe ustawienia

Zatem rozważmy kwestie początkowej instalacji komponentów ovirt-engine i ovirt-host.

Dokładniejsze informacje o procesach instalacji można zawsze znaleźć w dokumentacji.

Spis treści

  1. Instalacja ovirt-engine
  2. Instalacja ovirt-host
  3. Dodawanie węzła do oVirtN
  4. Konfiguracja interfejsu sieciowego
  5. Konfiguracja FC
  6. Konfiguracja FCoE
  7. Magazyn obrazów ISO
  8. Pierwsza VM

Instalacja ovirt-engine

Dla Engine minimalne wymagania to 2 rdzenie / 4 GiB RAM / 25 GiB pamięci. Zalecane to od 4 rdzeni / 16 GiB RAM / 50 GiB pamięci. Używamy opcji Standalone Manager, kiedy engine działa na dedykowanej maszynie fizycznej lub wirtualnej poza zarządzanym klastrem. Do naszej instalacji weźmiemy na przykład maszynę wirtualną na oddzielnym ESXi*. Warto korzystać z narzędzi do automatyzacji wdrażania lub klonowania z wcześniej przygotowanego szablonu lub instalacji kickstart.

*Uwaga: dla systemu produkcyjnego to zły pomysł, ponieważ menedżer działa bez zapasów i staje się wąskim gardłem. W takim przypadku lepiej rozważyć opcję Self-hosted Engine.

W razie potrzeby, procedura konwersji z Standalone na Self Hosted jest szczegółowo opisana w dokumentacji. W szczególności, należy wydać polecenie reinstall z obsługą Hosted Engine dla hosta.

Na VM instalujemy CentOS 7 w minimalnej konfiguracji, następnie aktualizujemy i restartujemy system:

$ sudo yum update -y && sudo reboot

Dla maszyny wirtualnej warto zainstalować agenta gościa:

$ sudo yum install open-vm-tools

dla hostów VMware ESXi lub dla oVirt:

$ sudo yum install ovirt-guest-agent

Podłączamy repozytorium i instalujemy menedżera:

$ sudo yum install https://resources.ovirt.org/pub/yum-repo/ovirt-release43.rpm
$ sudo yum install ovirt-engine

Podstawowa konfiguracja:

$ sudo engine-setup

W większości przypadków ustawienia domyślne są wystarczające, aby je automatycznie wykorzystać, można uruchomić konfigurację z kluczem:

$ sudo engine-setup --accept-defaults

Teraz możemy połączyć się z naszym nowym engine pod adresem ovirt.lab.example.com. Tutaj jest jeszcze pustawo, więc przechodzimy do instalacji hipernadzorców.

Instalacja ovirt-host

Na fizycznym hoście instalujemy CentOS 7 w minimalnej konfiguracji, następnie podłączamy repozytorium, aktualizujemy i restartujemy system:

$ sudo yum install https://resources.ovirt.org/pub/yum-repo/ovirt-release43.rpm
$ sudo yum update -y && sudo reboot

Uwaga: do instalacji warto używać narzędzi do automatyzacji wdrażania lub instalacji kickstart.

Przykład pliku kickstart
Uwaga! Istniejące partycje są automatycznie usuwane! Bądź ostrożny!

# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us','ru' --switch='grp:alt_shift_toggle'
# System language
lang ru_RU.UTF-8

# Network information
network  --bootproto=dhcp --device=ens192 --ipv6=auto --activate
network  --hostname=kvm01.lab.example.com

# Root password 'monteV1DE0'
rootpw --iscrypted $6$6oPcf0GW9VdmJe5w$6WBucrUPRdCAP.aBVnUfvaEu9ozkXq9M1TXiwOm41Y58DEerG8b3Ulme2YtxAgNHr6DGIJ02eFgVuEmYsOo7./
# User password 'metroP0!is'
user --name=mgmt --groups=wheel --iscrypted --password=$6$883g2lyXdkDLbKYR$B3yWx1aQZmYYi.aO10W2Bvw0Jpkl1upzgjhZr6lmITTrGaPupa5iC3kZAOvwDonZ/6ogNJe/59GN5U8Okp.qx.
# System services
services --enabled="chronyd"
# System timezone
timezone Europe/Moscow --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype xfs --size=1024 --ondisk=sda  --label=boot
part pv.01 --size=45056 --grow
volgroup HostVG pv.01 --reserved-percent=20
logvol swap --vgname=HostVG --name=lv_swap --fstype=swap --recommended
logvol none --vgname=HostVG --name=HostPool --thinpool --size=40960 --grow
logvol / --vgname=HostVG --name=lv_root --thin --fstype=ext4 --label="root" --poolname=HostPool --fsoptions="defaults,discard" --size=6144 --grow
logvol /var --vgname=HostVG --name=lv_var --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=16536
logvol /var/crash --vgname=HostVG --name=lv_var_crash --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=10240
logvol /var/log --vgname=HostVG --name=lv_var_log --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=8192
logvol /var/log/audit --vgname=HostVG --name=lv_var_audit --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=2048
logvol /home --vgname=HostVG --name=lv_home --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=1024
logvol /tmp --vgname=HostVG --name=lv_tmp --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=1024

%packages
@^minimal
@core
chrony
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
# Reboot when the install is finished.
reboot --eject

Zapisz ten plik, na przykład na ftp.example.com/pub/labkvm.cfg. Aby użyć skryptu podczas uruchamiania instalacji systemu operacyjnego, należy wybrać opcję ‘Install CentOS 7’, włączyć tryb edycji parametrów (klawisz Tab) i na końcu (z odstępem, bez cudzysłowów) dodać

' inst.ks=ftp://ftp.example.com/pub/labkvm.cfg'

.
Skrypt instalacyjny usuwa istniejące partycje na /dev/sda, tworzy nowe według zalecenia programisty (można je sprawdzić po instalacji poleceniem lsblk). Nazwa hosta jest ustawiana jako kvm01.lab.example.com (po instalacji można ją zmienić poleceniem hostnamectl set-hostname kvm03.lab.example.com), adres IP jest uzyskiwany automatycznie, strefa czasowa to moskiewska, dodano wsparcie dla języka rosyjskiego.

Hasło użytkownika root: monteV1DE0, hasło użytkownika mgmt: metroP0!is.
Uwaga! Istniejące partycje są usuwane automatycznie! Bądź ostrożny!

Powtarzamy (lub wykonujemy równocześnie) na wszystkich hostach. Od włączenia „pustego” serwera do stanu gotowości, biorąc pod uwagę 2 długie uruchomienia, potrzeba około 20 minut.

Dodawanie węzła do oVirt

Wykonuje się bardzo prosto:

Compute → Hosts → New →…

W kreatorze wymagane są pola Name (nazwa wyświetlana, np. kvm03), Hostname (FQDN, np. kvm03.lab.example.com) oraz sekcja Authentication — użytkownik root (niezmiennie) — hasło lub klucz publiczny SSH.

Po naciśnięciu przycisku Ok Otrzymasz komunikat «Nie skonfigurowałeś zarządzania zasilaniem dla tego hosta. Czy na pewno chcesz kontynuować?». To normalne — zarządzanie zasilaniem zbadamy później, po udanym podłączeniu hosta. Jednakże, jeśli maszyny, na których zainstalowane są hosty, nie obsługują zarządzania (IPMI, iLO, DRAC itd.), zalecam, aby je wyłączyć: Compute → Clusters → Default → Edit → Fencing Policy → Enable fencing, odznaczyć.

Jeśli na hoście nie został podłączony repozytorium oVirt, instalacja zakończy się niepowodzeniem, ale nie ma tragedii — należy go dodać, a następnie kliknąć Install -> Reinstall.

Podłączenie hosta zajmuje nie więcej niż 5-10 minut.

Konfiguracja interfejsu sieciowego

Ponieważ budujemy system odporny na awarie, połączenie sieciowe również powinno zapewniać połączenie zapasowe, co realizowane jest na zakładce Compute → Hosts → HOST → Network Interfaces — Setup Host Networks.

W zależności od możliwości Twojego sprzętu sieciowego oraz podejść architektonicznych, istnieją różne opcje. Najlepszym rozwiązaniem jest podłączenie się do top-of-rack switchy, aby w przypadku awarii jednego urządzenia dostępność sieciowa nie została przerwana. Rozważmy to na przykładzie połączenia agregowanego LACP. Aby skonfigurować połączenie agregowane, „złap” myszką 2-gi nieużywany adapter i „przeciągnij” go do 1-go. Otworzy się okno Utwórz nowe połączenie, gdzie LACP (Tryb 4, Dynamiczne agregowanie linków, 802.3ad) jest wybierany domyślnie. Po stronie switchy wykonuje się standardową konfigurację grupy LACP. Jeśli nie ma możliwości zbudowania stosu switchy, można użyć trybu Active-Backup (Tryb 1). Ustawienia VLAN omówimy w następnej artykule, a bardziej szczegółowe zalecenia dotyczące konfiguracji sieci znajdziesz w dokumencie Przewodnik po planowaniu i wymaganiach wstępnych.

Konfiguracja FC

Fibre Channel (FC) jest wspierany „od ręki”, jego użycie nie sprawia trudności. Nie będziemy omawiać konfiguracji sieci magazynowej, obejmującej konfigurację systemów pamięci masowej i strefowanie switchy fabric w ramach konfiguracji oVirt.

Konfiguracja FCoE

FCoE moim zdaniem nie zdobył szerokiego uznania w sieciach magazynowych, ale często znajduje zastosowanie na serwerach jako „ostatnia mila”, np. w HPE Virtual Connect.

Konfiguracja FCoE wymaga dodatkowych, nieskomplikowanych kroków.

Skonfiguruj silnik FCoE

Artykuł na stronie Red Hat B.3. Jak skonfigurować Menedżera Wirtualizacji Red Hat, aby używał FCoE
Na Menedżerze
, następującą komendą dodajemy klucz do menedżera i uruchamiamy go ponownie:


$ sudo engine-config -s UserDefinedNetworkCustomProperties='fcoe=^((enable|dcb|auto_vlan)=(yes|no),?)*$'
$ sudo systemctl restart ovirt-engine.service

Skonfiguruj węzeł FCoE

Na hostach oVirt należy zainstalować

$ sudo yum install vdsm-hook-fcoe

Następnie zwykła konfiguracja FCoE, artykuł na Red Hat: 25.5. Konfigurowanie interfejsu Fibre Channel over Ethernet.

Dla adapterów Broadcom CNA dodatkowo patrzymy na Podręcznik użytkownika konfiguracji FCoE dla adapterów opartych na Broadcomie.

Upewnij się, że pakiety są zainstalowane (są już w minimalnej wersji):

$ sudo yum install fcoe-utils lldpad

Następnie sama konfiguracja (zamiast ens3f2 i ens3f3 wstawiamy nazwy CNA podłączone do sieci magazynowej):

$ sudo cp /etc/fcoe/cfg-ethx /etc/fcoe/cfg-ens3f2
$ sudo cp /etc/fcoe/cfg-ethx /etc/fcoe/cfg-ens3f3
$ sudo vim /etc/fcoe/cfg-ens3f2
$ sudo vim /etc/fcoe/cfg-ens3f3

Ważne: jeśli interfejs sieciowy wspiera sprzętowo DCB/DCBX, parametr DCB_REQUIRED powinien być ustawiony na no.

DCB_REQUIRED=„yes” → #DCB_REQUIRED=„yes”

Następnie należy upewnić się, że adminStatus jest wyłączony na wszystkich interfejsach, także tych bez włączonego FCoE:

$ sudo lldptool set-lldp -i ens3f0 adminStatus=disabled
...
$ sudo lldptool set-lldp -i ens3f3 adminStatus=disabled

Jeśli są inne interfejsy sieciowe, można włączyć LLDP:

$ sudo systemctl start lldpad
$ sudo systemctl enable lldpad

Jak wspomniano wcześniej, jeśli używasz sprzętowego DCB/DCBX, należy włączyć ustawienie DCB_REQUIRED w no a ten krok może zostać pominięty.

$ sudo dcbtool sc ens3f2 dcb on
$ sudo dcbtool sc ens3f3 dcb on
$ sudo dcbtool sc ens3f2 app:fcoe e:1
$ sudo dcbtool sc ens3f3 app:fcoe e:1
$ sudo ip link set dev ens3f2 up
$ sudo ip link set dev ens3f3 up
$ sudo systemctl start fcoe
$ sudo systemctl enable fcoe

Dla interfejsów sieciowych sprawdź, czy autostart jest włączony:

$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens3f2
$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens3f3

ONBOOT=yes

Sprawdzenie skonfigurowanych interfejsów FCoE, wynik polecenia nie powinien być pusty.

$ sudo fcoeadm -i

Dalsza konfiguracja FCoE przebiega jak w przypadku zwykłego FC.

Następnie należy skonfigurować systemy i sieci pamięci masowej — zonowanie, hosty SAN, tworzenie i prezentacja wolumenów/LUNów, po czym pamięć można podłączyć do hostów oVirt: Storage → Domains → New Domain.

Funkcję domeny pozostawiamy Data, typ pamięci — Fibre Channel, host — dowolny, nazwa — np. storNN-volMM.

Na pewno twój system pamięci masowej umożliwia nie tylko rezerwację ścieżek, ale także równoważenie obciążenia. Wiele nowoczesnych systemów potrafi transmitować dane po wszystkich ścieżkach w sposób optymalny (ALUA active/active).

Aby włączyć wszystkie ścieżki w aktywnym stanie, należy skonfigurować multi-pathing, o tym w kolejnych artykułach.

Konfiguracja NFS i iSCSI przebiega w podobny sposób.

Magazyn obrazów ISO

Aby zainstalować system operacyjny, potrzebne będą pliki instalacyjne, najczęściej dostępne w postaci obrazów ISO. Można użyć wbudowanej ścieżki, ale do pracy z obrazami w oVirt stworzono specjalny typ pamięci — ISO, którą można wskazać na serwer NFS. Dodajemy to:

Storage → Domains → New Domain,
Funkcja domeny → ISO,
Ścieżka eksportu — np. mynfs01.example.com:/exports/ovirt-iso (w momencie podłączenia folder ma być pusty, menedżer musi mieć możliwość zapisu w nim),
Nazwa — np. mynfs01-iso.

Aby przechować obrazy, menedżer stworzy strukturę
/exports/ovirt-iso/<some UUID>/images/11111111-1111-1111-1111-111111111111/

Jeśli na naszym serwerze NFS obrazy ISO już istnieją, dla oszczędności miejsca wygodnie jest nie kopiować plików, lecz przyłączyć je do tego folderu.

Pierwsza VM

Na tym etapie można już stworzyć pierwszą maszynę wirtualną, zainstalować na niej system operacyjny i oprogramowanie aplikacyjne.

Compute → Virtual Machines → New

Dla nowej maszyny należy podać nazwę (Name), stworzyć dysk (Instance Images → Create) i podłączyć interfejs sieciowy (Instantiate VM network interfaces by picking a vNIC profile → wybierz z listy jak na razie jedyny ovirtmgmt).

Po stronie klienta potrzebna jest nowoczesna przeglądarka i klient SPICE do interakcji z konsolą.

Pierwsza maszyna została pomyślnie uruchomiona. Jednak dla pełnej funkcjonalności systemu konieczne jest dokonanie dodatkowych ustawień, o czym będziemy kontynuować w następnych artykułach.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster