Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️
W tym artykule założono, że system operacyjny Oracle Linux został już zainstalowany na wirtualnym dysku twardym (VHD). Istnieje wiele narzędzi do tworzenia plików vhd. Przykładem jest rozwiązanie wirtualizacji, takie jak funkcja Hyper-V. Aby uzyskać instrukcje, zobacz Instalowanie roli funkcji Hyper-V i konfigurowanie maszyny wirtualnej.
Informacje o instalacji systemu Oracle Linux
- Aby uzyskać więcej wskazówek dotyczących przygotowywania systemu Linux na platformę Azure, zobacz Ogólne informacje o instalacji systemu Linux.
- Funkcja Hyper-V i pomoc techniczna platformy Azure Oracle Linux z niezniszczalnym jądrem przedsiębiorstwa (UEK) lub jądrem zgodnym z systemem Red Hat.
- Funkcja UEK2 firmy Oracle nie jest obsługiwana w funkcji Hyper-V i na platformie Azure, ponieważ nie obejmuje wymaganych sterowników.
- Format VHDX nie jest obsługiwany na platformie Azure, tylko stały dysk VHD. Dysk można przekonwertować na format VHD przy użyciu Menedżera funkcji Hyper-V lub
convert-vhdpolecenia cmdlet. - Wymagana jest obsługa jądra instalowania systemów plików funkcji zdefiniowanych przez użytkownika (UDF). Podczas pierwszego rozruchu na platformie Azure konfiguracja aprowizacji jest przekazywana do maszyny wirtualnej z systemem Linux za pośrednictwem nośnika sformatowanego przez użytkownika dołączonego do gościa. Agent systemu Linux platformy Azure musi mieć możliwość zainstalowania systemu plików UDF, aby odczytać jego konfigurację i aprowizować maszynę wirtualną.
- Podczas instalowania systemu Linux zaleca się używanie partycji standardowych, a nie menedżera woluminów logicznych (LVM), który jest często domyślny dla wielu instalacji. Te partycje standardowe unikają konfliktów nazw LVM z sklonowanymi maszynami wirtualnymi, szczególnie jeśli podczas rozwiązywania problemów należy dołączyć dysk systemu operacyjnego do innej maszyny wirtualnej. LVM lub RAID można również używać na dyskach danych.
- Wersje jądra systemu Linux starsze niż 2.6.37 nie obsługują biblioteki NUMA w funkcji Hyper-V o większych rozmiarach maszyn wirtualnych. Ten problem dotyczy głównie starszych dystrybucji korzystających z nadrzędnego jądra Red Hat 2.6.32 i został rozwiązany w systemie Oracle Linux 6.6 lub nowszym.
- Nie konfiguruj partycji wymiany na dysku systemu operacyjnego.
- Wszystkie wirtualne dyski twarde na platformie Azure muszą mieć rozmiar wirtualny wyrównany do 1 MB. Podczas konwertowania z dysku nieprzetworzonego na dysk VHD należy upewnić się, że rozmiar nieprzetworzonego dysku to wielokrotność 1 MB przed konwersją. Aby uzyskać więcej informacji, zobacz Informacje o instalacji systemu Linux.
- Upewnij się, że
Addonsrepozytorium jest włączone. Edytuj plik/etc/yum.repos.d/public-yum-ol6.repo(Oracle Linux 6) lub/etc/yum.repos.d/public-yum-ol7.repo(Oracle Linux 7). Zmień wierszenabled=0naenabled=1[ol6_addons] lub [ol7_addons] w tym pliku.
Oracle Linux 6.X
Ważne
Pamiętaj, że system Oracle Linux 6.x jest już na koniec życia. System Oracle Linux w wersji 6.10 ma dostępną rozszerzoną pomoc techniczną dotyczącą cyklu życia, która kończy się w lipcu 2024 r.
Aby maszyna wirtualna została uruchomiona na platformie Azure, należy wykonać określone kroki konfiguracji w systemie operacyjnym.
W środkowym okienku Menedżera funkcji Hyper-V wybierz maszynę wirtualną.
Wybierz pozycję Połącz , aby otworzyć okno dla maszyny wirtualnej.
Odinstaluj
NetworkManager:sudo rpm -e --nodeps NetworkManagerUwaga
Jeśli pakiet nie został jeszcze zainstalowany, to polecenie kończy się niepowodzeniem z komunikatem o błędzie. Ten komunikat jest oczekiwany.
Utwórz plik o nazwie network w
/etc/sysconfig/katalogu zawierającym następujący tekst:NETWORKING=yes HOSTNAME=localhost.localdomainUtwórz plik o nazwie ifcfg-eth0 w
/etc/sysconfig/network-scripts/katalogu zawierającym następujący tekst:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=noZmodyfikuj reguły udev, aby uniknąć generowania reguł statycznych dla interfejsów Ethernet. Te reguły mogą powodować problemy podczas klonowania maszyny wirtualnej na platformie Azure lub funkcji Hyper-V:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules sudo rm -f /etc/udev/rules.d/70-persistent-net.rulesUpewnij się, że usługa sieciowa jest uruchamiana w czasie rozruchu:
sudo chkconfig network onZainstaluj program
python-pyasn1:sudo yum install python-pyasn1Zmodyfikuj wiersz rozruchu jądra w konfiguracji grub, aby uwzględnić więcej parametrów jądra dla platformy Azure. Aby wykonać ten krok, otwórz
/boot/grub/menu.lstplik w edytorze tekstów i upewnij się, że jądro zawiera następujące parametry:console=ttyS0 earlyprintk=ttyS0To ustawienie zapewnia, że wszystkie komunikaty konsoli są wysyłane do pierwszego portu szeregowego, co może pomóc pomoc techniczna platformy Azure w przypadku problemów z debugowaniem.
Oprócz powyższych kroków zalecamy usunięcie następujących parametrów:
rhgb quiet crashkernel=autoRozruch graficzny i cichy nie jest przydatny w środowisku chmury, w którym wszystkie dzienniki mają być wysyłane do portu szeregowego.
Jeśli
crashkernelchcesz, można pozostawić opcję skonfigurowaną. Ten parametr zmniejsza ilość dostępnej pamięci na maszynie wirtualnej o 128 MB lub więcej, co może być problemem dla mniejszych rozmiarów maszyn wirtualnych.Upewnij się, że serwer SSH jest zainstalowany i skonfigurowany do uruchamiania w czasie rozruchu. To ustawienie jest zwykle ustawieniem domyślnym.
Zainstaluj agenta systemu Linux platformy Azure, uruchamiając następujące polecenie. Najnowsza wersja to 2.0.15.
sudo yum install WALinuxAgentWALinuxAgentZainstalowanie pakietu spowoduje usunięcieNetworkManagerpakietów iNetworkManager-gnome, jeśli nie zostały jeszcze usunięte, zgodnie z opisem w kroku 2.Nie twórz miejsca wymiany na dysku systemu operacyjnego.
Agent systemu Linux platformy Azure może automatycznie skonfigurować miejsce wymiany przy użyciu lokalnego dysku zasobów dołączonego do maszyny wirtualnej po aprowizacji na platformie Azure. Dysk zasobów lokalnych jest dyskiem tymczasowym i może zostać opróżniony po anulowaniu aprowizacji maszyny wirtualnej. Po zainstalowaniu agenta systemu Linux platformy Azure (zobacz poprzedni krok) zmodyfikuj odpowiednio następujące parametry
/etc/waagent.conf:ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.Anulowanie aprowizacji maszyny wirtualnej i przygotowanie jej do aprowizacji na platformie Azure:
sudo waagent -force -deprovision sudo export HISTSIZE=0 sudo logoutWybierz pozycję Akcja>Zamknij w Menedżerze funkcji Hyper-V. Wirtualny dysk twardy systemu Linux jest teraz gotowy do przekazania na platformę Azure.
Oracle Linux 7.0 lub nowszy
Wykonaj kroki opisane w następnych sekcjach, jeśli używasz programu Oracle Linux 7.0 lub nowszego.
Zmiany w systemie Oracle Linux 7
Przygotowywanie maszyny wirtualnej z systemem Oracle Linux 7 dla platformy Azure jest podobne do systemu Oracle Linux 6, ale warto zauważyć kilka różnic:
- pomoc techniczna platformy Azure Oracle Linux z niezłamanym jądrem przedsiębiorstwa (UEK) lub jądrem zgodnym z systemem Red Hat. Zalecamy używanie systemu Oracle Linux z UEK.
- Pakiet
NetworkManagernie powoduje już konfliktów z agentem systemu Linux platformy Azure. Ten pakiet jest instalowany domyślnie i zalecamy, aby go nie usuwać. - Program GRUB2 jest teraz używany jako domyślny moduł ładujący, więc procedura edytowania parametrów jądra została zmieniona. (Zobacz sekcję "Kroki konfiguracji".
- System plików XFS jest teraz domyślnym systemem plików. Jeśli chcesz, system plików ext4 nadal może być używany.
Kroki w konfiguracji
W Menedżerze funkcji Hyper-V wybierz maszynę wirtualną.
Wybierz pozycję Połącz, aby otworzyć okno konsoli dla maszyny wirtualnej.
Utwórz plik o nazwie network w
/etc/sysconfig/katalogu zawierającym następujący tekst:NETWORKING=yes HOSTNAME=localhost.localdomainUtwórz plik o nazwie ifcfg-eth0 w
/etc/sysconfig/network-scripts/katalogu zawierającym następujący tekst:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=noZmodyfikuj reguły udev, aby uniknąć generowania reguł statycznych dla interfejsów Ethernet. Te reguły mogą powodować problemy podczas klonowania maszyny wirtualnej na platformie Azure lub funkcji Hyper-V:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rulesUpewnij się, że usługa sieciowa jest uruchamiana w czasie rozruchu:
sudo chkconfig network onpython-pyasn1Zainstaluj pakiet:sudo yum install python3-pyasn1Wyczyść bieżące metadane yum i zainstaluj wszystkie aktualizacje:
sudo yum clean all sudo yum -y updateZmodyfikuj wiersz rozruchu jądra w konfiguracji grub, aby uwzględnić więcej parametrów jądra dla platformy Azure. Aby wykonać ten krok, otwórz
/etc/default/grubplik w edytorze tekstów i edytujGRUB_CMDLINE_LINUXparametr . Na przykład:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"Ta modyfikacja gwarantuje również, że wszystkie komunikaty konsoli są wysyłane do pierwszego portu szeregowego, co może pomóc pomoc techniczna platformy Azure w przypadku problemów z debugowaniem. Wyłącza również konwencje nazewnictwa kart interfejsów sieciowych w systemie Oracle Linux 7 za pomocą klucza UEK. Zalecamy również usunięcie następujących parametrów:
rhgb quiet crashkernel=autoRozruch graficzny i cichy nie jest przydatny w środowisku chmury, w którym wszystkie dzienniki mają być wysyłane do portu szeregowego.
Jeśli
crashkernelchcesz, można pozostawić opcję skonfigurowaną. Ten parametr zmniejsza ilość dostępnej pamięci na maszynie wirtualnej o 128 MB lub więcej, co może być problemem dla mniejszych rozmiarów maszyn wirtualnych.Po zakończeniu edytowania
/etc/default/grubponownie skompiluj konfigurację grub:sudo grub2-mkconfig -o /boot/grub2/grub.cfgUpewnij się, że serwer SSH jest zainstalowany i skonfigurowany do uruchamiania w czasie rozruchu. To ustawienie jest zwykle ustawieniem domyślnym.
Zainstaluj agenta i zależności systemu Linux platformy Azure:
sudo yum install WALinuxAgent sudo systemctl enable waagentZainstaluj w
cloud-initcelu obsługi aprowizacji:sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemonsSkonfiguruj
waagentdla programucloud-init:sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.confsudo echo "Adding mounts and disk_setup to init stage" sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfgecho "Allow only Azure datasource, disable fetching network setting via IMDS"sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOF if [[ -f /mnt/resource/swapfile ]]; then echo Removing swapfile - Oracle Linux uses a swapfile by default swapoff /mnt/swapfile rm /mnt/swapfile -f fi echo "Add console log file" cat >> /etc/cloud/cloud.cfg.d/05_logging.cfg <<EOF # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'} EOFKonfiguracja zamiany:
Nie twórz miejsca wymiany na dysku systemu operacyjnego.
Wcześniej agent platformy Azure z systemem Linux był używany automatycznie do konfigurowania miejsca wymiany przy użyciu lokalnego dysku zasobów dołączonego do maszyny wirtualnej po aprowizacji maszyny wirtualnej na platformie Azure.
cloud-initJednak teraz obsługuje ten krok. Nie można używać agenta systemu Linux do formatowania dysku zasobu w celu utworzenia pliku wymiany. Zmodyfikuj odpowiednio następujące parametry/etc/waagent.conf:sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.confJeśli chcesz zainstalować, sformatować i utworzyć zamianę, możesz wykonać następujące czynności:
- Przekaż ten kod jako konfigurację
cloud-initza każdym razem, gdy tworzysz maszynę wirtualną. - Aby wykonać ten krok za każdym razem, gdy maszyna wirtualna jest tworzona, użyj dyrektywy zapiętej
cloud-initdo obrazu:
echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF #cloud-config # Generated by Azure cloud image build disk_setup: ephemeral0: table_type: mbr layout: [66, [33, 82]] overwrite: True fs_setup: - device: ephemeral0.1 filesystem: ext4 - device: ephemeral0.2 filesystem: swap mounts: - ["ephemeral0.1", "/mnt/resource"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF- Przekaż ten kod jako konfigurację
Anulowanie aprowizacji maszyny wirtualnej i przygotowanie jej do aprowizacji na platformie Azure:
sudo cloud-init clean sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision sudo rm -f ~/.bash_history sudo export HISTSIZE=0Uwaga
Jeśli migrujesz określoną maszynę wirtualną i nie chcesz tworzyć uogólnionego obrazu, pomiń krok anulowania aprowizacji.
Wybierz pozycję Akcja>Zamknij w Menedżerze funkcji Hyper-V. Wirtualny dysk twardy systemu Linux jest teraz gotowy do przekazania na platformę Azure.
Powiązana zawartość
Teraz możesz przystąpić do tworzenia nowych maszyn wirtualnych na platformie Azure przy użyciu pliku vhd systemu Oracle Linux. Jeśli po raz pierwszy przekazujesz plik vhd na platformę Azure, zobacz Tworzenie maszyny wirtualnej z systemem Linux na podstawie dysku niestandardowego.