Informacje dotyczące dystrybucji niepotwierdzonychInformation for Non-endorsed Distributions

Uwaga

Platforma Azure oferuje dwa różne modele wdrażania związane z tworzeniem zasobów i pracą z nimi: model wdrażania przy użyciu usługi Resource Manager i model klasyczny.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. W tym artykule przedstawiono oba modele, ale firma Microsoft zaleca przeprowadzanie większości nowych wdrożeń z zastosowaniem modelu wdrażania przy użyciu usługi Azure Resource Manager.This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

Umowa SLA platformy Azure ma zastosowanie do maszyn wirtualnych z systemem operacyjnym Linux tylko wtedy, gdy jest używana jedna z poświadczonej dystrybucji .The Azure platform SLA applies to virtual machines running the Linux OS only when one of the endorsed distributions is used. W przypadku tych potwierdzonych dystrybucji wstępnie skonfigurowane obrazy systemu Linux są dostępne w portalu Azure Marketplace.For these endorsed distributions, pre-configured Linux images are provided in the Azure Marketplace.

Wszystkie dystrybucje działające na platformie Azure mają kilka wymagań wstępnych.All distributions running on Azure have a number of prerequisites. Ten artykuł nie może być wyczerpujący, ponieważ każda dystrybucja różni się.This article can't be comprehensive, as every distribution is different. Nawet jeśli spełniasz wszystkie poniższe kryteria, może być konieczne znaczne dostosowanie systemu Linux pod kątem prawidłowego działania.Even if you meet all the criteria below, you may need to significantly tweak your Linux system for it to run properly.

Zalecamy rozpoczęcie od jednego z systemów Linux w ramach wykorzystanych dystrybucji na platformie Azure.We recommend that you start with one of the Linux on Azure Endorsed Distributions. W poniższych artykułach pokazano, jak przygotować różne, zatwierdzone dystrybucje systemu Linux, które są obsługiwane na platformie Azure:The following articles show you how to prepare the various endorsed Linux distributions that are supported on Azure:

Ten artykuł koncentruje się na ogólnych wskazówkach dotyczących uruchamiania dystrybucji systemu Linux na platformie Azure.This article focuses on general guidance for running your Linux distribution on Azure.

Ogólne informacje o instalacji systemu LinuxGeneral Linux Installation Notes

  • Format wirtualnego dysku twardego funkcji Hyper-V (VHDX) nie jest obsługiwany na platformie Azure, tylko stałego dysku VHD.The Hyper-V virtual hard disk (VHDX) format isn't supported in Azure, only fixed VHD. Dysk można przekonwertować na format VHD przy użyciu Menedżera funkcji Hyper-V lub polecenia cmdlet convert-VHD .You can convert the disk to VHD format using Hyper-V Manager or the Convert-VHD cmdlet. Jeśli używasz VirtualBox, wybierz opcję stały rozmiar , a nie wartość domyślną (przydzieloną dynamicznie) podczas tworzenia dysku.If you're using VirtualBox, select Fixed size rather than the default (dynamically allocated) when creating the disk.
  • Platforma Azure obsługuje tylko maszyny wirtualne generacji 1.Azure only supports generation 1 virtual machines. Maszynę wirtualną 1. generacji można przekonwertować z formatu VHDX na format pliku VHD i dynamicznie powiększający się na dysk o stałym rozmiarze.You can convert a generation 1 virtual machine from VHDX to the VHD file format, and from dynamically expanding to a fixed sized disk. Nie można zmienić generacji maszyny wirtualnej.You can't change a virtual machine's generation. Aby uzyskać więcej informacji, zobacz temat czy należy utworzyć maszynę wirtualną generacji 1 lub 2 w funkcji Hyper-V?For more information, see Should I create a generation 1 or 2 virtual machine in Hyper-V?
  • Maksymalny dozwolony rozmiar dysku VHD to 1 023 GB.The maximum size allowed for the VHD is 1,023 GB.
  • W przypadku instalowania systemu Linux zaleca się używanie partycji standardowych zamiast Menedżera woluminów logicznych (LVM), który jest wartością domyślną dla wielu instalacji.When installing the Linux system we recommend that you use standard partitions, rather than Logical Volume Manager (LVM) which is the default for many installations. Użycie partycji standardowych spowoduje uniknięcie konfliktów nazw LVM z sklonowanymi maszynami wirtualnymi, szczególnie jeśli dysk systemu operacyjnego jest kiedykolwiek podłączony do innej identycznej maszyny wirtualnej w celu rozwiązywania problemów.Using standard partitions will avoid LVM name conflicts with cloned VMs, particularly if an OS disk is ever attached to another identical VM for troubleshooting. Na dyskach danych można używać LVM lub RAID .LVM or RAID may be used on data disks.
  • Konieczna jest obsługa jądra do instalowania systemów plików UDF.Kernel support for mounting UDF file systems is necessary. Podczas pierwszego rozruchu na platformie Azure konfiguracja aprowizacji jest przesyłana do maszyny wirtualnej z systemem Linux przy użyciu nośnika sformatowanego w formacie UDF, który jest dołączony do gościa.At first boot on Azure the provisioning configuration is passed to the Linux VM by using UDF-formatted media that is attached to the guest. Aby można było odczytać konfigurację i zainicjować obsługę administracyjną maszyny wirtualnej, Agent systemu Azure Linux musi zainstalować system plików UDF.The Azure Linux agent must mount the UDF file system to read its configuration and provision the VM.
  • Wersje jądra systemu Linux starsze niż 2.6.37 nie obsługują architektury NUMA w funkcji Hyper-V o większych rozmiarach maszyn wirtualnych.Linux kernel versions earlier than 2.6.37 don't support NUMA on Hyper-V with larger VM sizes. Ten problem ma głównie wpływ na starsze dystrybucje przy użyciu wbudowanego jądra Red Hat 2.6.32 i został ustalony w Red Hat Enterprise Linux (RHEL) 6,6 (jądro-2.6.32-504).This issue primarily impacts older distributions using the upstream Red Hat 2.6.32 kernel, and was fixed in Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504). Systemy z uruchomionymi niestandardowymi jądrami starszymi niż 2.6.37 lub jądrem opartym na RHEL starszym niż 2.6.32- numa=off 504 muszą ustawić parametr rozruchu w wierszu polecenia jądra w grub. conf.Systems running custom kernels older than 2.6.37, or RHEL-based kernels older than 2.6.32-504 must set the boot parameter numa=off on the kernel command line in grub.conf. Aby uzyskać więcej informacji, zobacz Red Hat KB 436883.For more information, see Red Hat KB 436883.
  • Nie należy konfigurować partycji wymiany na dysku systemu operacyjnego.Don't configure a swap partition on the OS disk. Agenta systemu Linux można skonfigurować tak, aby utworzył plik wymiany na tymczasowym dysku zasobów, zgodnie z opisem w poniższych krokach.The Linux agent can be configured to create a swap file on the temporary resource disk, as described in the following steps.
  • Wszystkie wirtualne dyski twarde na platformie Azure muszą mieć rozmiar wirtualny wyrównany do 1 MB.All VHDs on Azure must have a virtual size aligned to 1 MB. Podczas konwertowania z dysku surowego na dysk VHD należy upewnić się, że rozmiar dysku surowego jest wielokrotnością 1 MB przed konwersją, zgodnie z opisem w poniższych krokach.When converting from a raw disk to VHD you must ensure that the raw disk size is a multiple of 1 MB before conversion, as described in the following steps.

Instalowanie modułów jądra bez funkcji Hyper-VInstalling kernel modules without Hyper-V

System Azure działa na funkcji hypervisor funkcji Hyper-V, więc system Linux wymaga, aby niektóre moduły jądra działały na platformie Azure.Azure runs on the Hyper-V hypervisor, so Linux requires certain kernel modules to run in Azure. Jeśli masz maszynę wirtualną, która została utworzona poza funkcją Hyper-V, instalatorzy systemu Linux mogą nie zawierać sterowników dla funkcji Hyper-V w początkowym systemie Ramdisk (oryginalnych initrd lub initramfs), chyba że maszyna wirtualna wykryje, że jest uruchomiona w środowisku funkcji Hyper-V.If you have a VM that was created outside of Hyper-V, the Linux installers may not include the drivers for Hyper-V in the initial ramdisk (initrd or initramfs), unless the VM detects that it's running on a Hyper-V environment. W przypadku korzystania z innego systemu wirtualizacji (takiego jak VirtualBox, KVM itd.) w celu przygotowania obrazu systemu Linux może być konieczne odbudowanie oryginalnych initrd, tak aby co najmniej moduły jądra hv_vmbus i hv_storvsc były dostępne w początkowym systemie Ramdisk.When using a different virtualization system (such as Virtualbox, KVM, and so on) to prepare your Linux image, you may need to rebuild the initrd so that at least the hv_vmbus and hv_storvsc kernel modules are available on the initial ramdisk. Ten znany problem dotyczy systemów opartych na nadrzędnym systemie Red Hat i prawdopodobnie innych.This known issue is for systems based on the upstream Red Hat distribution, and possibly others.

Mechanizm odbudowy obrazu oryginalnych initrd lub initramfs może się różnić w zależności od rozkładu.The mechanism for rebuilding the initrd or initramfs image may vary depending on the distribution. Zapoznaj się z dokumentacją dystrybucji lub pomocą techniczną w celu uzyskania odpowiedniej procedury.Consult your distribution's documentation or support for the proper procedure. Oto przykład odbudowy oryginalnych initrd za pomocą mkinitrd narzędzia:Here is one example for rebuilding the initrd by using the mkinitrd utility:

  1. Wykonaj kopię zapasową istniejącego obrazu oryginalnych initrd:Back up the existing initrd image:

    cd /boot
    sudo cp initrd-`uname -r`.img  initrd-`uname -r`.img.bak
    
  2. Skompiluj ponownie oryginalnych initrd z modułami jądra hv_vmbus i hv_storvsc:Rebuild the initrd with the hv_vmbus and hv_storvsc kernel modules:

    sudo mkinitrd --preload=hv_storvsc --preload=hv_vmbus -v -f initrd-`uname -r`.img `uname -r`
    

Zmienianie rozmiarów dysków VHDResizing VHDs

Obrazy VHD na platformie Azure muszą mieć rozmiar wirtualny wyrównany do 1 MB.VHD images on Azure must have a virtual size aligned to 1 MB. Zwykle dyski VHD utworzone przy użyciu funkcji Hyper-V są prawidłowo wyrównane.Typically, VHDs created using Hyper-V are aligned correctly. Jeśli wirtualny dysk twardy nie jest prawidłowo wyrównany, podczas próby utworzenia obrazu z wirtualnego dysku twardego może pojawić się komunikat o błędzie podobny do poniższego.If the VHD isn't aligned correctly, you may receive an error message similar to the following when you try to create an image from your VHD.

  • Plik VHD http://<mojekontomagazynu >. blob. Core. Windows. NET/VHD/MyLinuxVM. VHD ma nieobsługiwany rozmiar wirtualny wynoszący 21475270656 bajtów.The VHD http://<mystorageaccount>.blob.core.windows.net/vhds/MyLinuxVM.vhd has an unsupported virtual size of 21475270656 bytes. Rozmiar musi być liczbą całkowitą (w MB).The size must be a whole number (in MBs).

W takim przypadku należy zmienić rozmiar maszyny wirtualnej przy użyciu konsoli Menedżera funkcji Hyper-V lub polecenia cmdlet programu PowerShell Zmień rozmiar dysku VHD .In this case, resize the VM using either the Hyper-V Manager console or the Resize-VHD PowerShell cmdlet. Jeśli nie Pracujesz w środowisku systemu Windows, zalecamy użycie qemu-img programu do konwersji (w razie potrzeby) i zmiany rozmiaru dysku VHD.If you aren't running in a Windows environment, we recommend using qemu-img to convert (if needed) and resize the VHD.

Uwaga

W wersjach QEMU-IMG występuje znany błąd > = 2.2.1, który powoduje niewłaściwie sformatowany dysk VHD.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. Problem został rozwiązany w QEMU 2,6.The issue has been fixed in QEMU 2.6. Zalecamy użycie qemu-img 2.2.0 lub niższych lub 2,6 lub wyższych.We recommend using either qemu-img 2.2.0 or lower, or 2.6 or higher.

  1. Zmianę rozmiarów wirtualnego dysku twardego bezpośrednio przy użyciu narzędzi qemu-img takich vbox-manage jak lub może spowodować nierozruchowy dysk VHD.Resizing the VHD directly using tools such as qemu-img or vbox-manage may result in an unbootable VHD. Zalecamy najpierw przekonwertowanie dysku VHD na obraz RAW.We recommend first converting the VHD to a RAW disk image. Jeśli obraz maszyny wirtualnej został utworzony jako obraz dysku RAW (domyślnie dla niektórych funkcji hypervisor, takich jak KVM), można pominąć ten krok.If the VM image was created as a RAW disk image (the default for some hypervisors such as KVM), then you may skip this step.

    qemu-img convert -f vpc -O raw MyLinuxVM.vhd MyLinuxVM.raw
    
  2. Oblicz wymagany rozmiar obrazu dysku, aby rozmiar wirtualny był wyrównany do 1 MB.Calculate the required size of the disk image so that the virtual size is aligned to 1 MB. Poniższy skrypt powłoki bash używa qemu-img info do określenia rozmiaru wirtualnego obrazu dysku, a następnie oblicza rozmiar do następnych 1 MB.The following bash shell script uses qemu-img info to determine the virtual size of the disk image, and then calculates the size to the next 1 MB.

    rawdisk="MyLinuxVM.raw"
    vhddisk="MyLinuxVM.vhd"
    
    MB=$((1024*1024))
    size=$(qemu-img info -f raw --output json "$rawdisk" | \
    gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    
    rounded_size=$((($size/$MB + 1)*$MB))
    
    echo "Rounded Size = $rounded_size"
    
  3. Zmień rozmiar dysku nieprzetworzonego, używając $rounded_size zgodnie z powyższym zestawem.Resize the raw disk using $rounded_size as set above.

    qemu-img resize MyLinuxVM.raw $rounded_size
    
  4. Teraz przekonwertuj PIERWOTNy dysk do dysku VHD o stałym rozmiarze.Now, convert the RAW disk back to a fixed-size VHD.

    qemu-img convert -f raw -o subformat=fixed -O vpc MyLinuxVM.raw MyLinuxVM.vhd
    

    Lub, z qemu wersja 2.6 +, należy uwzględnić force_size opcję.Or, with qemu version 2.6+, include the force_size option.

    qemu-img convert -f raw -o subformat=fixed,force_size -O vpc MyLinuxVM.raw MyLinuxVM.vhd
    

Wymagania jądra systemu LinuxLinux Kernel Requirements

Sterowniki systemu Linux Integration Services (LIS) dla funkcji Hyper-V i platformy Azure są bezpośrednio przeznaczone do nadrzędnego jądra systemu Linux.The Linux Integration Services (LIS) drivers for Hyper-V and Azure are contributed directly to the upstream Linux kernel. Wiele dystrybucji, które obejmują ostatnią wersję jądra systemu Linux (np. 3. x), ma już dostępne te sterowniki lub w inny sposób udostępniają w sposób nieaktualne wersje tych sterowników z ich jądrem.Many distributions that include a recent Linux kernel version (such as 3.x) have these drivers available already, or otherwise provide backported versions of these drivers with their kernels. Te sterowniki są stale aktualizowane w jądrze nadrzędnym z nowymi poprawkami i funkcjami, dlatego w przypadku, gdy jest to możliwe, zalecamy uruchomienie rozpowszechnianej dystrybucji zawierającej te poprawki i aktualizacje.These drivers are constantly being updated in the upstream kernel with new fixes and features, so when possible we recommend running an endorsed distribution that includes these fixes and updates.

Jeśli używasz wariantu Red Hat Enterprise Linux wersje 6,0 do 6,3, należy zainstalować najnowsze sterowniki lis dla funkcji Hyper-V.If you're running a variant of Red Hat Enterprise Linux versions 6.0 to 6.3, then you'll need to install the latest LIS drivers for Hyper-V. Począwszy od RHEL 6.4 + (i pochodnych) Sterowniki LIS są już dołączone do jądra i dlatego nie są potrzeby żadne dodatkowe pakiety instalacyjne.Beginning with RHEL 6.4+ (and derivatives) the LIS drivers are already included with the kernel and so no additional installation packages are needed.

Jeśli jest wymagane niestandardowe jądro, zalecamy użycie najnowszej wersji jądra (takiej jak 3.8 +).If a custom kernel is required, we recommend a recent kernel version (such as 3.8+). W przypadku dystrybucji lub dostawców, którzy utrzymują własne jądro, należy regularnie backport sterowniki LIS z jądra nadrzędnego do niestandardowego jądra.For distributions or vendors who maintain their own kernel, you'll need to regularly backport the LIS drivers from the upstream kernel to your custom kernel. Nawet jeśli korzystasz już z stosunkowo najnowszej wersji jądra, zdecydowanie zalecamy śledzenie wszelkich poprawek nadrzędnych w sterownikach LIS i backport je w razie konieczności.Even if you're already running a relatively recent kernel version, we highly recommend keeping track of any upstream fixes in the LIS drivers and backport them as needed. Lokalizacje plików źródłowych sterowników LIS są określone w pliku obsługi w drzewie źródłowym jądra systemu Linux:The locations of the LIS driver source files are specified in the MAINTAINERS file in the Linux kernel source tree:

    F:    arch/x86/include/asm/mshyperv.h
    F:    arch/x86/include/uapi/asm/hyperv.h
    F:    arch/x86/kernel/cpu/mshyperv.c
    F:    drivers/hid/hid-hyperv.c
    F:    drivers/hv/
    F:    drivers/input/serio/hyperv-keyboard.c
    F:    drivers/net/hyperv/
    F:    drivers/scsi/storvsc_drv.c
    F:    drivers/video/fbdev/hyperv_fb.c
    F:    include/linux/hyperv.h
    F:    tools/hv/

W jądrze muszą być zawarte następujące poprawki.The following patches must be included in the kernel. Nie można ukończyć tej listy dla wszystkich dystrybucji.This list can't be complete for all distributions.

Agent platformy Azure dla systemu LinuxThe Azure Linux Agent

Agentwaagent platformy Azure dla systemu Linux inicjuje maszynę wirtualną z systemem Linux na platformie Azure.The Azure Linux Agent waagent provisions a Linux virtual machine in Azure. Możesz uzyskać najnowszą wersję, problemy z plikami lub przesłać żądania ściągnięcia w repozytorium GitHub agenta systemu Linux.You can get the latest version, file issues, or submit pull requests at the Linux Agent GitHub repo.

  • Agent systemu Linux jest wydawany w ramach licencji Apache 2,0.The Linux agent is released under the Apache 2.0 license. Wiele dystrybucji udostępnia już pakiety RPM lub deb dla agenta. te pakiety można łatwo instalować i aktualizować.Many distributions already provide RPM or deb packages for the agent, and these packages can easily be installed and updated.
  • Agent platformy Azure dla systemu Linux wymaga języka Python v 2.6 lub nowszego.The Azure Linux Agent requires Python v2.6+.
  • Agent wymaga również modułu Python-pyasn1.The agent also requires the python-pyasn1 module. Większość dystrybucji dostarcza ten moduł jako osobny pakiet do zainstalowania.Most distributions provide this module as a separate package to be installed.
  • W niektórych przypadkach Agent systemu Azure Linux może być niezgodny z programem NetworkManager.In some cases, the Azure Linux Agent may not be compatible with NetworkManager. Wiele pakietów RPM/DEB dostarczonych przez dystrybucje konfiguruje program NetworkManager jako konflikt z pakietem waagent.Many of the RPM/Deb packages provided by distributions configure NetworkManager as a conflict to the waagent package. W takich przypadkach program NetworkManager zostanie odinstalowany podczas instalacji pakietu agenta systemu Linux.In these cases, it will uninstall NetworkManager when you install the Linux agent package.
  • Agent systemu Azure Linux musi mieć wartość co najmniej minimalnej obsługiwanej wersji.The Azure Linux Agent must be at or above the minimum supported version.

Ogólne wymagania systemowe systemu LinuxGeneral Linux System Requirements

  1. Zmodyfikuj wiersz rozruchowy jądra w GRUB lub GRUB2, aby uwzględnić następujące parametry, aby wszystkie komunikaty konsoli były wysyłane do pierwszego portu szeregowego.Modify the kernel boot line in GRUB or GRUB2 to include the following parameters, so that all console messages are sent to the first serial port. Te komunikaty mogą pomóc w pomocy technicznej platformy Azure w zakresie debugowania wszelkich problemów.These messages can assist Azure support with debugging any issues.

    console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300
    

    Zalecamy również usunięcie następujących parametrów, jeśli istnieją.We also recommend removing the following parameters if they exist.

    rhgb quiet crashkernel=auto
    

    Rozruch graficzny i cichy nie jest przydatny w środowisku chmury, gdzie wszystkie dzienniki są wysyłane do portu szeregowego.Graphical and quiet boot isn't useful in a cloud environment, where we want all logs sent to the serial port. crashkernel Opcja może pozostać skonfigurowana w razie potrzeby, ale należy pamiętać, że ten parametr zmniejsza ilość dostępnej pamięci na maszynie wirtualnej przez co najmniej 128 MB, co może powodować problemy w przypadku mniejszych rozmiarów maszyn wirtualnych.The crashkernel option may be left configured if needed, but note that this parameter reduces the amount of available memory in the VM by at least 128 MB, which may be problematic for smaller VM sizes.

  2. Zainstaluj agenta platformy Azure dla systemu Linux.Install the Azure Linux Agent.

    Agent systemu Azure Linux jest wymagany do aprowizacji obrazu systemu Linux na platformie Azure.The Azure Linux Agent is required for provisioning a Linux image on Azure. Wiele dystrybucji dostarcza agenta jako pakiet RPM lub deb (pakiet jest zwykle nazywany WALinuxAgent lub WALinuxAgent).Many distributions provide the agent as an RPM or Deb package (the package is typically called WALinuxAgent or walinuxagent). Agenta można także zainstalować ręcznie, wykonując czynności opisane w przewodniku po agencie systemu Linux.The agent can also be installed manually by following the steps in the Linux Agent Guide.

  3. Upewnij się, że serwer SSH został zainstalowany i skonfigurowany do uruchamiania w czasie rozruchu.Ensure that the SSH server is installed, and configured to start at boot time. Ta konfiguracja jest zazwyczaj domyślnie.This configuration is usually the default.

  4. Nie należy tworzyć obszaru wymiany na dysku systemu operacyjnego.Don't create swap space on the OS disk.

    Agent systemu Azure Linux może automatycznie skonfigurować miejsce wymiany przy użyciu lokalnego dysku zasobu dołączonego do maszyny wirtualnej po zainicjowaniu obsługi administracyjnej na platformie Azure.The Azure Linux Agent can automatically configure swap space using the local resource disk that is attached to the VM after provisioning on Azure. Lokalny dysk zasobów jest dyskiem tymczasowym i może zostać opróżniony w przypadku anulowania aprowizacji maszyny wirtualnej.The local resource disk is a temporary disk, and might be emptied when the VM is deprovisioned. Po zainstalowaniu agenta systemu Linux platformy Azure (krok 2 powyżej) zmodyfikuj odpowiednio następujące parametry w/etc/waagent.conf.After installing the Azure Linux Agent (step 2 above), modify the following parameters in /etc/waagent.conf as needed.

        ResourceDisk.Format=y
        ResourceDisk.Filesystem=ext4
        ResourceDisk.MountPoint=/mnt/resource
        ResourceDisk.EnableSwap=y
        ResourceDisk.SwapSizeMB=2048    ## NOTE: Set this to your desired size.
    
  5. Uruchom następujące polecenia, aby anulować obsługę administracyjną maszyny wirtualnej.Run the following commands to deprovision the virtual machine.

    sudo waagent -force -deprovision
    export HISTSIZE=0
    logout
    

    Uwaga

    Na VirtualBox może zostać wyświetlony następujący błąd po uruchomieniu waagent -force -deprovision. [Errno 5] Input/output errorOn Virtualbox you may see the following error after running waagent -force -deprovision that says [Errno 5] Input/output error. Ten komunikat o błędzie nie jest krytyczny i można go zignorować.This error message is not critical and can be ignored.

  • Zamknij maszynę wirtualną i przekaż dysk VHD na platformę Azure.Shut down the virtual machine and upload the VHD to Azure.