비보증 배포에 대한 정보Information for Non-endorsed Distributions

참고

Azure에는 리소스를 만들고 사용하기 위한 Resource Manager 및 클래식이라는 두 가지 배포 모델이 있습니다.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. 이 문서에서는 두 모델을 모두 사용하여 설명하지만 대부분의 새로운 배포에는 리소스 관리자 모델을 사용하는 것이 좋습니다.This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

보증 배포판 중 하나를 사용하는 경우에만 Linux OS를 실행하는 가상 머신에 Azure 플랫폼 SLA가 적용됩니다.The Azure platform SLA applies to virtual machines running the Linux OS only when one of the endorsed distributions is used. 이러한 보증 배포판의 경우 미리 구성된 Linux 이미지가 Azure Marketplace에 제공됩니다.For these endorsed distributions, pre-configured Linux images are provided in the Azure Marketplace.

Azure에서 실행되는 모든 배포에는 여러 가지 필수 구성 요소가 있습니다.All distributions running on Azure have a number of prerequisites. 모든 배포가 다르기 때문에 이 문서는 포괄적일 수 없습니다.This article can't be comprehensive, as every distribution is different. 아래의 모든 조건을 충족하더라도 Linux 시스템이 제대로 작동하려면 Linux 시스템을 크게 조정해야 할 수도 있습니다.Even if you meet all the criteria below, you may need to significantly tweak your Linux system for it to run properly.

Azure의 Linux 보증 배포판 중 하나로 시작하는 것이 좋습니다.We recommend that you start with one of the Linux on Azure Endorsed Distributions. 다음 문서에서는 Azure에서 지원되는 다양한 Linux 보증 배포판을 준비하는 방법을 보여 줍니다.The following articles show you how to prepare the various endorsed Linux distributions that are supported on Azure:

이 문서에서는 Azure에서 Linux 배포판을 실행하기 위한 일반 지침에 대해 중점적으로 설명합니다.This article focuses on general guidance for running your Linux distribution on Azure.

일반 Linux 설치 참고 사항General Linux Installation Notes

  • Azure에서는 고정 VHD만 지원하며, VHDX(Hyper-V 가상 하드 디스크) 형식은 지원하지 않습니다.The Hyper-V virtual hard disk (VHDX) format isn't supported in Azure, only fixed VHD. Hyper-V 관리자 또는 Convert-VHD cmdlet을 사용하여 디스크를 VHD 형식으로 변환할 수 있습니다.You can convert the disk to VHD format using Hyper-V Manager or the Convert-VHD cmdlet. VirtualBox를 사용하는 경우 디스크를 만들 때 기본값(동적 할당) 대신 고정 크기를 선택합니다.If you're using VirtualBox, select Fixed size rather than the default (dynamically allocated) when creating the disk.
  • Azure에서는 1세대 가상 머신만 지원합니다.Azure only supports generation 1 virtual machines. 1세대 가상 머신을 VHDX에서 VHD 파일 형식으로, 그리고 동적 확장에서 고정 크기의 디스크로 변환할 수 있습니다.You can convert a generation 1 virtual machine from VHDX to the VHD file format, and from dynamically expanding to a fixed sized disk. 가상 머신의 세대는 변경할 수 없습니다.You can't change a virtual machine's generation. 자세한 내용은 Hyper-V에 1 또는 2세대 가상 머신을 만들어야 합니까?를 참조하세요.For more information, see Should I create a generation 1 or 2 virtual machine in Hyper-V?
  • VHD에 허용되는 최대 크기는 1,023GB입니다.The maximum size allowed for the VHD is 1,023 GB.
  • Linux 시스템을 설치하는 경우 대부분의 설치에 대한 기본값인 LVM(논리 볼륨 관리자) 대신 표준 파티션을 사용하는 것이 좋습니다.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. 표준 파티션을 사용하면 특히 문제를 해결하기 위해 OS 디스크가 동일한 다른 VM에 연결되는 경우에도 LVM 이름이 복제된 VM과 충돌하지 않습니다.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. 데이터 디스크에서 LVM 또는 RAID를 사용할 수 있습니다.LVM or RAID may be used on data disks.
  • UDF 파일 시스템을 탑재하기 위한 커널 지원이 필요합니다.Kernel support for mounting UDF file systems is necessary. Azure에서 처음 부팅할 때 게스트에 연결된 UDF 형식의 미디어를 사용하여 Linux VM에 프로비전 구성이 전달됩니다.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. Azure Linux 에이전트는 해당 구성을 읽고 VM을 프로비전하기 위해 UDF 파일 시스템을 탑재해야 합니다.The Azure Linux agent must mount the UDF file system to read its configuration and provision the VM.
  • 2.6.37 이전 버전의 Linux 커널은 더 큰 VM 크기의 Hyper-V에서 NUMA를 지원하지 않습니다.Linux kernel versions earlier than 2.6.37 don't support NUMA on Hyper-V with larger VM sizes. 이 문제는 주로 업스트림 Red Hat 2.6.32 커널을 사용하는 이전 배포에 영향을 미치며, RHEL(Red Hat Enterprise Linux) 6.6(kernel-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). 2.6.37 이전의 사용자 지정 커널 또는 2.6.32-504 이전의 RHEL 기반 커널을 실행하는 시스템의 경우 grub.conf의 커널 명령줄에 numa=off 부트 매개 변수를 설정해야 합니다.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. 자세한 내용은 Red Hat KB 436883을 참조하세요.For more information, see Red Hat KB 436883.
  • OS 디스크에 스왑 파티션을 구성하지 않습니다.Don't configure a swap partition on the OS disk. Linux 에이전트는 다음 단계에서 설명한 대로 임시 리소스 디스크에 스왑 파일을 만들도록 구성할 수 있습니다.The Linux agent can be configured to create a swap file on the temporary resource disk, as described in the following steps.
  • Azure의 모든 VHD에는 1MB로 정렬된 가상 크기가 있어야 합니다.All VHDs on Azure must have a virtual size aligned to 1 MB. 원시 디스크에서 VHD로 변환하는 경우 다음 단계에서 설명한 대로 변환하기 전에 먼저 원시 디스크 크기가 1MB의 배수인지 확인해야 합니다.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.

Hyper-V 없이 커널 모듈 설치Installing kernel modules without Hyper-V

Azure는 Hyper-V 하이퍼바이저에서 실행되므로 Linux에는 Azure에서 실행되는 특정 커널 모듈이 필요합니다.Azure runs on the Hyper-V hypervisor, so Linux requires certain kernel modules to run in Azure. Hyper-V 외부에서 만든 VM이 있는 경우 VM이 Hyper-V 환경에서 실행되는 것으로 감지하지 않는 한 Linux 설치 관리자는 초기 ramdisk(initrd 또는 initramfs)에 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. 다른 가상화 시스템(예: Virtualbox, KVM 등)을 사용하여 Linux 이미지를 준비하는 경우 초기 ramdisk에서 적어도 hv_vmbus 및 hv_storvsc 커널 모듈을 사용할 수 있도록 initrd를 다시 작성해야 할 수 있습니다.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. 이와 같이 알려진 문제는 업스트림 Red Hat 배포판을 기반으로 하는 시스템 및 다른 시스템과 관련된 것입니다.This known issue is for systems based on the upstream Red Hat distribution, and possibly others.

initrd 또는 initramfs 이미지를 다시 작성하는 메커니즘은 배포에 따라 다를 수 있습니다.The mechanism for rebuilding the initrd or initramfs image may vary depending on the distribution. 적절한 절차에 대해서는 배포판의 설명서를 참조하거나 고객 지원팀에 문의하세요.Consult your distribution's documentation or support for the proper procedure. 다음은 mkinitrd 유틸리티를 사용하여 initrd를 다시 작성하는 예제입니다.Here is one example for rebuilding the initrd by using the mkinitrd utility:

  1. 먼저 기존 initrd 이미지를 백업합니다.Back up the existing initrd image:

    cd /boot
    sudo cp initrd-`uname -r`.img  initrd-`uname -r`.img.bak
    
  2. hv_vmbus 및 hv_storvsc 커널 모듈을 사용하여 initrd를 다시 작성합니다.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`
    

VHD 크기 조정Resizing VHDs

Azure의 VHD 이미지에는 1MB로 조정된 가상 크기가 있어야 합니다.VHD images on Azure must have a virtual size aligned to 1 MB. 일반적으로 Hyper-V를 사용하여 만든 VHD는 올바르게 정렬되어 있습니다.Typically, VHDs created using Hyper-V are aligned correctly. VHD가 올바르게 정렬되지 않으면 VHD에서 이미지를 만들려고 할 때 다음과 비슷한 오류 메시지가 나타날 수 있습니다.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.

  • Vhd http://mystorageaccount >. MyLinuxVM/vhd/에는 지원 되지 않는 가상 크기 (21475270656 바이트)가 있습니다.<The VHD http://<mystorageaccount>.blob.core.windows.net/vhds/MyLinuxVM.vhd has an unsupported virtual size of 21475270656 bytes. 크기는 정수(MB 단위)여야 합니다.The size must be a whole number (in MBs).

이 경우 Hyper-V 관리자 콘솔 또는 Resize-VHD PowerShell cmdlet을 사용하여 VM 크기를 조정합니다.In this case, resize the VM using either the Hyper-V Manager console or the Resize-VHD PowerShell cmdlet. Windows 환경에서 실행하지 않는 경우 qemu-img를 사용하여 VHD를 변환하고(필요한 경우) 크기를 조정하는 것이 좋습니다.If you aren't running in a Windows environment, we recommend using qemu-img to convert (if needed) and resize the VHD.

참고

2.2.1 이상의 qemu-img 버전에는 VHD 형식이 잘못 지정되는 알려진 버그가 있습니다.There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. 이 문제는 QEMU 2.6에서 해결되었습니다.The issue has been fixed in QEMU 2.6. 2.2.0 이하 또는 2.6 이상의 qemu-img를 사용하는 것이 좋습니다.We recommend using either qemu-img 2.2.0 or lower, or 2.6 or higher.

  1. qemu-img 또는 vbox-manage와 같은 도구를 사용하여 직접 VHD 크기를 조정하면 VHD가 부팅되지 않을 수도 있습니다.Resizing the VHD directly using tools such as qemu-img or vbox-manage may result in an unbootable VHD. 먼저 VHD를 RAW 디스크 이미지로 변환하는 것이 좋습니다.We recommend first converting the VHD to a RAW disk image. VM 이미지가 RAW 디스크 이미지(KVM과 같은 일부 하이퍼바이저의 경우 기본값)로 만들어진 경우에는 이 단계를 건너뛸 수 있습니다.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. 가상 크기가 1MB 단위로 정렬되도록 필요한 디스크 이미지 크기를 계산합니다.Calculate the required size of the disk image so that the virtual size is aligned to 1 MB. 다음 bash 셸 스크립트는 qemu-img info를 사용하여 디스크 이미지의 가상 크기를 확인한 다음, 크기를 다음 1MB로 계산합니다.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. 위에서 설정한 대로 $rounded_size를 사용하여 RAW 디스크의 크기를 조정합니다.Resize the raw disk using $rounded_size as set above.

    qemu-img resize MyLinuxVM.raw $rounded_size
    
  4. 이제 RAW 디스크를 고정 크기 VHD로 다시 변환합니다.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
    

    또는 qemu 버전 2.6 이상인 경우 force_size 옵션을 포함시킵니다.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
    

Linux 커널 요구 사항Linux Kernel Requirements

Hyper-V 및 Azure용 LIS(Linux 통합 서비스) 드라이버는 업스트림 Linux 커널로 직접 제공됩니다.The Linux Integration Services (LIS) drivers for Hyper-V and Azure are contributed directly to the upstream Linux kernel. 최신 Linux 커널 버전(예: 3.x)이 포함된 많은 배포판에서 이러한 드라이버를 이미 사용할 수 있으며, 그렇지 않은 경우 이러한 드라이버의 백 포트 버전이 커널에 제공됩니다.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. 이러한 드라이버는 업스트림 커널에서 새로운 수정과 기능으로 지속적으로 업데이트되므로, 가능한 경우 이러한 수정과 업데이트가 포함된 보증 배포판을 실행하는 것이 좋습니다.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.

Red Hat Enterprise Linux 버전 6.0-6.3의 변형을 실행하는 경우 Hyper-V용 최신 LIS 드라이버를 설치해야 합니다.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. RHEL 6.4 이상(및 파생 버전)부터 LIS 드라이버는 이미 커널에 포함되어 있으므로 추가 설치 패키지는 필요하지 않습니다.Beginning with RHEL 6.4+ (and derivatives) the LIS drivers are already included with the kernel and so no additional installation packages are needed.

사용자 지정 커널이 필요한 경우 최신 커널 버전(예: 3.8 이상)을 사용하는 것이 좋습니다.If a custom kernel is required, we recommend a recent kernel version (such as 3.8+). 자체 커널을 유지 관리하는 배포업체 또는 공급업체의 경우 LIS 드라이버를 업스트림 커널에서 사용자 지정 커널로 정기적으로 백 포팅해야 합니다.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. 비교적 최신의 커널 버전을 이미 실행하고 있는 경우에도 LIS 드라이버의 모든 업스트림 수정을 추적하고 필요에 따라 백 포팅하는 것이 좋습니다.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. LIS 드라이버 원본 파일의 위치는 Linux 커널 원본 트리의 MAINTAINERS 파일에 지정됩니다.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/

커널에 포함되어야 패치는 다음과 같습니다.The following patches must be included in the kernel. 이 목록은 모든 배포에 대해 완전할 수 없습니다.This list can't be complete for all distributions.

Azure Linux 에이전트The Azure Linux Agent

waagent Azure Linux 에이전트는 Azure에서 Linux 가상 머신을 프로비전합니다.The Azure Linux Agent waagent provisions a Linux virtual machine in Azure. Linux 에이전트 GitHub 리포지토리에서 최신 버전을 가져오거나, 문제를 제기하거나, 끌어오기 요청을 제출할 수 있습니다.You can get the latest version, file issues, or submit pull requests at the Linux Agent GitHub repo.

  • Linux 에이전트는 Apache 2.0 라이선스 하에서 릴리스되었습니다.The Linux agent is released under the Apache 2.0 license. 많은 배포판에서 이미 에이전트용 RPM 또는 deb 패키지를 제공하며, 이러한 패키지는 쉽게 설치 및 업데이트할 수 있습니다.Many distributions already provide RPM or deb packages for the agent, and these packages can easily be installed and updated.
  • Azure Linux 에이전트를 사용하려면 Python v2.6 이상이 필요합니다.The Azure Linux Agent requires Python v2.6+.
  • 또한 에이전트에는 python-pyasn1 모듈도 필요합니다.The agent also requires the python-pyasn1 module. 대부분의 배포판에서 이 모듈을 설치할 별도의 패키지로 제공합니다.Most distributions provide this module as a separate package to be installed.
  • 경우에 따라 Azure Linux 에이전트가 NetworkManager와 호환되지 않을 수도 있습니다.In some cases, the Azure Linux Agent may not be compatible with NetworkManager. 배포판에서 제공되는 많은 RPM/Deb 패키지는 NetworkManager를 waagent 패키지와의 충돌로 구성합니다.Many of the RPM/Deb packages provided by distributions configure NetworkManager as a conflict to the waagent package. 이러한 경우 Linux 에이전트 패키지를 설치하면 NetworkManager가 제거됩니다.In these cases, it will uninstall NetworkManager when you install the Linux agent package.
  • Azure Linux 에이전트는 지원되는 최소 버전 이상이어야 합니다.The Azure Linux Agent must be at or above the minimum supported version.

일반 Linux 시스템 요구 사항General Linux System Requirements

  1. 다음 매개 변수를 포함하도록 GRUB 또는 GRUB2의 커널 부팅 줄을 수정하면 모든 콘솔 메시지가 첫 번째 직렬 포트로 전송됩니다.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. 이러한 메시지는 Azure에서 모든 문제를 디버그하는 데 도움이 될 수 있습니다.These messages can assist Azure support with debugging any issues.

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

    또한 다음 매개 변수가 있는 경우 이를 제거하는 것이 좋습니다.We also recommend removing the following parameters if they exist.

    rhgb quiet crashkernel=auto
    

    모든 로그를 직렬 포트로 전송하려는 클라우드 환경에서는 그래픽 및 자동 부팅이 유용하지 않습니다.Graphical and quiet boot isn't useful in a cloud environment, where we want all logs sent to the serial port. crashkernel 옵션은 필요한 경우 구성한 상태로 유지할 수 있지만, 이 매개 변수는 VM에서 사용 가능한 메모리 양을 128MB 이상 줄여주므로 VM 크기가 이 크기보다 작은 경우 문제가 될 수 있습니다.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. Azure Linux 에이전트를 설치합니다.Install the Azure Linux Agent.

    Azure에서 Linux 이미지를 프로비전하려면 Azure Linux 에이전트가 필요합니다.The Azure Linux Agent is required for provisioning a Linux image on Azure. 많은 배포판에서 에이전트를 RPM 또는 Deb 패키지(일반적으로 'WALinuxAgent' 또는 'walinuxagent'라고 함)로 제공합니다.Many distributions provide the agent as an RPM or Deb package (the package is typically called WALinuxAgent or walinuxagent). Linux 에이전트 가이드의 단계를 수행하여 에이전트를 수동으로 설치할 수도 있습니다.The agent can also be installed manually by following the steps in the Linux Agent Guide.

  3. SSH 서버가 설치되어 부팅 시 시작되도록 구성되어 있는지 확인합니다.Ensure that the SSH server is installed, and configured to start at boot time. 일반적으로 이 구성이 기본값입니다.This configuration is usually the default.

  4. OS 디스크에 스왑 공간을 만들지 않습니다.Don't create swap space on the OS disk.

    Azure Linux 에이전트는 Azure에서 프로비전한 후 VM에 연결된 로컬 리소스 디스크를 사용하여 자동으로 스왑 공간을 구성할 수 있습니다.The Azure Linux Agent can automatically configure swap space using the local resource disk that is attached to the VM after provisioning on Azure. 로컬 리소스 디스크는 임시 디스크이며, VM의 프로비전을 해제할 때 비울 수 있습니다.The local resource disk is a temporary disk, and might be emptied when the VM is deprovisioned. Azure Linux 에이전트를 설치한 후(위의 2단계) 필요에 따라 /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. 다음 명령을 실행하여 가상 머신의 프로비전을 해제합니다.Run the following commands to deprovision the virtual machine.

    sudo waagent -force -deprovision
    export HISTSIZE=0
    logout
    

    참고

    Virtualbox에서 [Errno 5] Input/output error라는 waagent -force -deprovision을 실행한 후에 다음 오류가 표시될 수 있습니다.On Virtualbox you may see the following error after running waagent -force -deprovision that says [Errno 5] Input/output error. 이 오류 메시지는 중요하지 않으므로 무시할 수 있습니다.This error message is not critical and can be ignored.

  • 가상 머신을 종료하고 Azure에 VHD를 업로드합니다.Shut down the virtual machine and upload the VHD to Azure.