動作保証外のディストリビューションに関する情報Information for Non-Endorsed Distributions

注意

Azure には、リソースの作成と操作に関して、Resource Manager とクラシック の 2 種類のデプロイメント モデルがあります。Azure has two different deployment models for creating and working with resources: Resource Manager and classic. この記事では、両方のモデルについて取り上げていますが、最新のデプロイでは Resource Manager モデルの使用をお勧めします。This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

Azure プラットフォームの SLA は、動作保証済みディストリビューションのいずれか 1 つを使用した場合にのみ、Linux OS を実行する仮想マシンに適用されます。The Azure platform SLA applies to virtual machines running the Linux OS only when one of the endorsed distributions is used. Azure イメージ ギャラリーにあるすべての Linux ディストリビューションは、必須の構成による動作保証済みディストリビューションです。All Linux distributions that are provided in the Azure image gallery are endorsed distributions with the required configuration.

Azure 上で動作するすべてのディストリビューションは、プラットフォーム上で適切に実行できるように、いくつかの前提条件を満たす必要があります。All distributions running on Azure will need to meet a number of prerequisites to have a chance to properly run on the platform. この記事は決して包括的なものではありません。前提条件はディストリビューションによって異なるためです。次に示している条件をすべて満たす場合でも、プラットフォーム上で適切に動作するように Linux システムを微調整する必要があります。This article is by no means comprehensive as every distribution is different; and it is quite possible that even if you meet all the criteria below you will still need to significantly tweak your Linux system to ensure that it properly runs on the platform.

この理由から、できるだけ Azure での動作保証済み Linux ディストリビューション のいずれかで開始することをお勧めします。It is for this reason that we recommend that you start with one of our Linux on Azure Endorsed Distributions when possible. 次の記事では、Azure でサポートされる以下のさまざまな動作保証済み Linux ディストリビューションを準備する方法について説明します。The following articles will guide you through how to prepare the various endorsed Linux distributions that are supported on Azure:

以降では、Azure 上で Linux ディストリビューションを実行するための一般的なガイダンスについて、重点的に説明します。The rest of this article will focus on general guidance for running your Linux distribution on Azure.

Linux のインストールに関する一般的な注記General Linux Installation Notes

  • VHDX 形式は Azure ではサポートされていません。サポートされるのは 固定 VHD のみです。The VHDX format is not supported in Azure, only fixed VHD. Hyper-V マネージャーまたは convert-vhd コマンドレットを使用して、ディスクを VHD 形式に変換できます。You can convert the disk to VHD format using Hyper-V Manager or the convert-vhd cmdlet. VirtualBox を使用する場合は、ディスクの作成時に、既定で動的に割り当てられるサイズではなく、固定サイズを選択することを意味します。If you are using VirtualBox this means selecting Fixed size as opposed to 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. ただし、仮想マシンの世代を変更することはできません。But you can't change a virtual machine's generation. 詳細については、「Should I create a generation 1 or 2 virtual machine in Hyper-V? (Hyper-V で第 1 世代または第 2 世代の仮想マシンを作成する必要はありますか?)」を参照してください。For more information, see Should I create a generation 1 or 2 virtual machine in Hyper-V?
  • VHD のサイズの上限は、1,023 GB です。The maximum size allowed for the VHD is 1,023 GB.
  • Linux システムをインストールする場合は、LVM (通常、多くのインストールで既定) ではなく標準パーティションを使用することをお勧めしますWhen installing the Linux system it is recommended that you use standard partitions rather than LVM (often the default for many installations). これにより、特に OS ディスクをトラブルシューティングのために別の同じ VM に接続する必要がある場合に、LVM 名と複製された VM の競合が回避されます。This will avoid LVM name conflicts with cloned VMs, particularly if an OS disk ever needs to be 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 required. Azure での最初の起動時に、ゲストに接続されている UDF でフォーマットされたメディアを介して、プロビジョニング構成が Linux VM に渡されます。At first boot on Azure the provisioning configuration is passed to the Linux VM via UDF-formatted media that is attached to the guest. Azure Linux エージェントは、その構成を読み取り、VM をプロビジョニングする UDF ファイル システムをマウントできる必要があります。The Azure Linux agent must be able to mount the UDF file system to read its configuration and provision the VM.
  • 2.6.37 未満の Linux カーネル バージョンは、HYPER-V で大きい VM サイズの NUMA をサポートできません。Linux kernel versions below 2.6.37 do not support NUMA on Hyper-V with larger VM sizes. この問題は、主に、アップストリームの Red Hat 2.6.32 カーネルを使用した古いディストリビューションに影響し、RHEL 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 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 ディスクにスワップ パーティションを構成しないでください。Do not 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. このことに関する詳細については、次の手順を参照してください。More information about this can be found in the steps below.
  • すべての VHD のサイズは 1 MB の倍数であることが必要です。All of the VHDs must have sizes that are multiples of 1 MB.

Hyper-V を使用しないカーネル モジュールのインストールInstalling kernel modules without Hyper-V

Azure は、Hyper-V ハイパーバイザーで実行されるため、Linux で Azure を実行するには特定のカーネル モジュールがインストールされている必要があります。Azure runs on the Hyper-V hypervisor, so Linux requires that certain kernel modules are installed in order to run in Azure. Hyper-V 以外で作成された VM を所有している場合、Linux インストーラーは、Linux が Hyper-V 環境を実行していることを検出しない限り、初期 RAM ディスク (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 it detects that it is running an a Hyper-V environment. 別の仮想化システム (Virtualbox、KVM など) を使用して Linux イメージを準備する場合は、少なくとも hv_vmbushv_storvsc のカーネル モジュールを初期 RAM ディスクで確実に使用できるように initrd の再構築が必要になる場合があります。When using a different virtualization system (i.e. Virtualbox, KVM, etc.) to prepare your Linux image, you may need to rebuild the initrd to ensure that at least the hv_vmbus and hv_storvsc kernel modules are available on the initial ramdisk. これは少なくとも、アップ ストリームの Red Hat ディストリビューションに基づくシステムの既知の問題です。This is a known issue at least on systems based on the upstream Red Hat distribution.

initrd または initramfs イメージの再構築のためのメカニズムは、ディストリビューションによって異なる場合があります。The mechanism for rebuilding the initrd or initramfs image may vary depending on the distribution. 適切な手順については、使用しているディストリビューションのドキュメントまたはサポートを参照してください。Please consult your distribution's documentation or support for the proper procedure. 次は、 mkinitrd ユーティリティを使用して initrd を再構築する方法の 1 つの例です。Here is one example for how to rebuild the initrd using the mkinitrd utility:

まず、既存の initrd イメージをバックアップします。First, back up the existing initrd image:

# cd /boot
# sudo cp initrd-`uname -r`.img  initrd-`uname -r`.img.bak

次に、hv_vmbushv_storvsc のカーネル モジュールを使用して initrd を再構築します。Next, 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 イメージは、1 MB に整列された仮想サイズが必要です。VHD images on Azure must have a virtual size aligned to 1MB. 通常、HYPER-V を使用して作成された VHD は既に正しく整列されている必要があります。Typically, VHDs created using Hyper-V should already be aligned correctly. VHD が正しく整列されていない場合は、VHD から イメージ を作成しようとすると、次のようなエラー メッセージが表示される場合があります。If the VHD is not aligned correctly then you may receive an error message similar to the following when you attempt to create an image from your VHD:

"The VHD http://<mystorageaccount>.blob.core.windows.net/vhds/MyLinuxVM.vhd has an unsupported virtual size of 21475270656 bytes. The size must be a whole number (in MBs).”

これを修正するには、HYPER-V マネージャー コンソールまたは Resize-VHD Powershell コマンドレットを使用して、VM のサイズを変更できます。To remedy this you can resize the VM using either the Hyper-V Manager console or the Resize-VHD Powershell cmdlet. Windows 環境で実行していない場合は、qemu-img を使用して変換し (必要な場合)、VHD のサイズを変更することをお勧めします。If you are not running in a Windows environment then it is recommended to use qemu-img to convert (if needed) and resize the VHD.

注意

qemu-img のバージョン 2.2.1 以降には 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. qemu-img 2.2.0 以前を使用するか、2.6 以降に更新することをお勧めします。It is recommended to use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. リファレンス: https://bugs.launchpad.net/qemu/+bug/1490611。Reference: https://bugs.launchpad.net/qemu/+bug/1490611.

  1. qemu-imgvbox-manage などのツールを使用して直接 VHD のサイズを変更すると、VHD が起動できなくなる可能性があります。Resizing the VHD directly using tools such as qemu-img or vbox-manage may result in an unbootable VHD. そのため、最初に VHD を RAW ディスク イメージに変換することをお勧めします。So it is recommended to first convert the VHD to a RAW disk image. 既に VM イメージを RAW ディスク イメージとして作成している場合は (KVM などの一部のハイパーバイザーでは既定)、この手順を省略できます。If the VM image was already created as 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. ディスク イメージの必要なサイズを計算して、仮想サイズが 1 MB に整列されていることを確認します。Calculate the required size of the disk image to ensure that the virtual size is aligned to 1MB. 次の bash シェル スクリプトは、これを行うのに役立ちます。The following bash shell script can assist with this. このスクリプトは "qemu-img info" を使用してディスク イメージの仮想サイズを決定し、次の 1 MB までサイズを計算します。The script uses "qemu-img info" to determine the virtual size of the disk image and then calculates the size to the next 1MB:

    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 in the above script:

    # 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 用の Linux Integration Services (LIS) ドライバーは、アップストリームの 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 (i.e. 3.x) will 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 it is recommended to run an endorsed distribution that will include these fixes and updates.

Red Hat Enterprise Linux バージョン 6.0-6.3の変形を実行する場合は、Hyper-V 用の最新の LIS ドライバーをインストールする必要があります。If you are running a variant of Red Hat Enterprise Linux versions 6.0-6.3, then you will need to install the latest LIS drivers for Hyper-V. 必要なドライバーは この場所で見つかります。The drivers can be found at this location. RHEL 6.4 以上 (および派生版) では、LIS ドライバーは既にカーネルに含まれているため、Azure 上でこれらのシステムを実行するために追加のインストール パッケージは必要ありません。As of RHEL 6.4+ (and derivatives) the LIS drivers are already included with the kernel and so no additional installation packages are needed to run those systems on Azure.

カスタム カーネルが必要な場合は、最新のカーネル バージョン (つまり 3.8 以上) の使用をお勧めします。If a custom kernel is required, it is recommended to use a more recent kernel version (i.e. 3.8+). 独自のカーネルを維持するディストリビューションまたはベンダーの場合は、アップストリームのカーネルの LIS ドライバーをカスタム カーネルに定期的にバックポートするために多少の手間がかかります。For those distributions or vendors who maintain their own kernel, some effort will be required to regularly backport the LIS drivers from the upstream kernel to your custom kernel. 比較的最新のカーネル バージョンを既に実行している場合でも、LIS ドライバーのアップストリームの修正を常に追跡し、必要に応じてパックポートすることを強くお勧めします。Even if you are already running a relatively recent kernel version, it is highly recommended to keep track of any upstream fixes in the LIS drivers and backport those as needed. LIS ドライバーのソース ファイルの場所は、次の Linux カーネルのソース ツリーの MAINTAINERS ファイルに記載されています。The location of the LIS driver source files is available 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/

最低限、以下のパッチが適用されていない場合は、Azure 上で問題が発生することがわかっているため、これらのパッチをカーネルに含める必要があります。At a very minimum, the absence of the following patches have been known to cause problems on Azure and so these must be included in the kernel. この一覧は、すべてのディストリビューションに対して包括的でも完全でもありません。This list is by no means exhaustive or complete for all distributions:

Azure Linux エージェントThe Azure Linux Agent

Azure Linux エージェント (waagent) は、Azure で Linux 仮想マシンを適切にプロビジョニングするために必要です。The Azure Linux Agent (waagent) is required to properly provision a Linux virtual machine in Azure. Linux Agent 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 so in some cases this can be installed and updated with little effort.
  • 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 as a separate package that can be installed.
  • Azure Linux エージェントは NetworkManager と互換性がない場合があります。In some cases the Azure Linux Agent may not be compatible with NetworkManager. ディストリビューションによって提供される多くの RPM/Deb パッケージでは、NetworkManager が waagent パッケージに対する競合として構成されるため、Linux エージェント パッケージをインストールすると NetworkManager がアンインストールされます。Many of the RPM/Deb packages provided by distributions configure NetworkManager as a conflict to the waagent package, and thus will uninstall NetworkManager when you install the Linux agent package.

Linux システムの一般的な要件General Linux System Requirements

  • GRUB または GRUB2 でカーネルのブート行を変更して次のパラメーターを含めます。Modify the kernel boot line in GRUB or GRUB2 to include the following parameters. これにより、すべてのコンソール メッセージが最初のシリアル ポートに送信され、メッセージを Azure での問題のデバッグに利用できるようになります。This will also ensure all console messages are sent to the first serial port, which can assist Azure support with debugging issues:

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

    これにより、すべてのコンソール メッセージが最初のシリアル ポートに送信され、メッセージを Azure での問題のデバッグに利用できるようになります。This will also ensure all console messages are sent to the first serial port, which can assist Azure support with debugging issues.

    上記のほかに、次のパラメーターを 削除 することをお勧めします (ある場合)。In addition to the above, it is recommended to remove the following parameters if they exist:

      rhgb quiet crashkernel=auto
    

    クラウド環境では、すべてのログをシリアル ポートに送信するため、グラフィカル ブートおよびクワイエット ブートは役立ちません。Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. 必要に応じて crashkernel オプションは構成したままにすることができますが、このパラメーターにより、VM 内の使用可能なメモリ量が 128 MB 以上減少するため、比較的小さなサイズの VM では問題となる可能性がある点に注意してください。The crashkernel option may be left configured if desired, but note that this parameter will reduce the amount of available memory in the VM by 128MB or more, which may be problematic on the smaller VM sizes.

  • Azure Linux エージェントをインストールします。Installing 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.

  • SSH サーバーがインストールされており、起動時に開始するように構成されていることを確認します。Ensure that the SSH server is installed and configured to start at boot time. 通常これが既定です。This is usually the default.

  • OS ディスクにスワップ領域を作成しないでください。Do not 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 のプロビジョニングが解除されると空になることに注意してください。Note that the local resource disk is a temporary disk, and might be emptied when the VM is deprovisioned. Azure Linux エージェントのインストール後に (前の手順を参照)、/etc/waagent.conf にある次のパラメーターを適切に変更します。After installing the Azure Linux Agent (see previous step), modify the following parameters in /etc/waagent.conf appropriately:

      ResourceDisk.Format=y
      ResourceDisk.Filesystem=ext4
      ResourceDisk.MountPoint=/mnt/resource
      ResourceDisk.EnableSwap=y
      ResourceDisk.SwapSizeMB=2048    ## NOTE: set this to whatever you need it to be.
    
  • 最後の手順として、次のコマンドを実行して仮想マシンをプロビジョニング解除します。As a final step, run the following commands to deprovision the virtual machine:

      # sudo waagent -force -deprovision
      # export HISTSIZE=0
      # logout
    

    注意

    Virtualbox では、'waagent -force -deprovision' の実行後に次のエラーが表示される場合があります: [Errno 5] Input/output errorOn Virtualbox you may see the following error after running 'waagent -force -deprovision': [Errno 5] Input/output error. このエラー メッセージは重要ではないため、無視してかまいません。This error message is not critical and can be ignored.

  • その後、仮想マシンをシャットダウンし、Azure に VHD をアップロードする必要があります。You will then need to shut down the virtual machine and upload the VHD to Azure.