3.3. Microsoft Azure のカスタムベースイメージの設定
仮想マシン (VM) のカスタムベースイメージを作成し、Azure で特定の設定を使用して RHEL 8 VM をデプロイすることができます。以下のセクションでは、Azure で必要な追加の設定変更について説明します。
3.3.1. Hyper-V デバイスドライバーのインストール リンクのコピーリンクがクリップボードにコピーされました!
Microsoft は、Linux Integration Services (LIS) for Hyper-V パッケージの一部として、ネットワークおよびストレージデバイスのドライバーを提供しています。Hyper-V デバイスドライバーを Azure 仮想マシン (VM) としてプロビジョニングする前に、仮想マシンイメージへのインストールが必要になる場合があります。lsinitrd | grep hv コマンドを使用して、ドライバーがインストールされていることを確認します。
手順
以下の
grepコマンドを実行して、必要な Hyper-V デバイスドライバーがインストールされているかどうかを確認します。# lsinitrd | grep hv以下の例では、必要なドライバーがすべてインストールされています。
# lsinitrd | grep hv drwxr-xr-x 2 root root 0 Aug 12 14:21 usr/lib/modules/3.10.0-932.el8.x86_64/kernel/drivers/hv -rw-r--r-- 1 root root 31272 Aug 11 08:45 usr/lib/modules/3.10.0-932.el8.x86_64/kernel/drivers/hv/hv_vmbus.ko.xz -rw-r--r-- 1 root root 25132 Aug 11 08:46 usr/lib/modules/3.10.0-932.el8.x86_64/kernel/drivers/net/hyperv/hv_netvsc.ko.xz -rw-r--r-- 1 root root 9796 Aug 11 08:45 usr/lib/modules/3.10.0-932.el8.x86_64/kernel/drivers/scsi/hv_storvsc.ko.xzすべてのドライバーがインストールされていない場合は、残りの手順を完了してください。
注記hv_vmbusドライバーは、すでにこの環境に追加されている可能性があります。このドライバーが存在する場合でも、次の手順を実行してください。-
/etc/dracut.conf.dにhv.confという名前のファイルを作成します。 以下のドライバーパラメーターを
dracut.confファイルに追加します。add_drivers+=" hv_vmbus " add_drivers+=" hv_netvsc " add_drivers+=" hv_storvsc " add_drivers+=" nvme "注記引用符の前後に空白に注意してください (例:
add_drivers+=" hv_VMBus ")。これにより、環境内にその他の Hyper-V ドライバーが存在している場合に、一意のドライバーが読み込まれます。initramfsイメージを再生成します。# dracut -f -v --regenerate-all
検証
- マシンを再起動します。
-
lsinitrd | grep hvコマンドを実行して、ドライバーがインストールされていることを確認します。
3.3.2. Microsoft Azure のデプロイメントに必要な設定変更を行う リンクのコピーリンクがクリップボードにコピーされました!
カスタムベースイメージを Azure にデプロイする前に、追加の設定変更を実行して、仮想マシン (VM) が Azure で適切に動作できるようにする必要があります。
手順
- VMI にログインします。
仮想マシンを登録し、Red Hat Enterprise Linux 8 リポジトリーを有効にします。
# subscription-manager register Installed Product Current Status: Product Name: Red Hat Enterprise Linux for x86_64 Status: Subscribedcloud-initおよびhyperv-daemonsパッケージがインストールされていることを確認します。# yum install cloud-init hyperv-daemons -yAzure サービスとの統合に必要な
cloud-init設定ファイルを作成します。Hyper-V Data Exchange Service (KVP) へのログ記録を有効にするには、
/etc/cloud/cloud.cfg.d/10-azure-kvp.cfg設定ファイルを作成し、そのファイルに次の行を追加します。reporting: logging: type: log telemetry: type: hypervAzure をデータソースとして追加するには、
/etc/cloud/cloud.cfg.d/91-azure_datasource.cfg設定ファイルを作成し、そのファイルに次の行を追加します。datasource_list: [ Azure ] datasource: Azure: apply_network_config: False一時ディスク上のスワップ領域を設定するには、
/etc/cloud/cloud.cfg.d/00-azure-swap.cfg 設定ファイルを作成し、次の行を追加します。重要エフェメラルディスクは一時的なストレージです。したがって、仮想マシンが割り当て解除または移動されると、スワップ領域を含むそこに保存されているデータは失われます。一時ディスクは、スワップ領域などの一時データにのみ使用してください。
#cloud-config disk_setup: ephemeral0: table_type: gpt layout: [66, [33,82]] overwrite: true fs_setup: - device: ephemeral0.1 filesystem: ext4 - device: ephemeral0.2 filesystem: swap mounts: - ["ephemeral0.1", "/mnt"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service", "0", "0"]
特定のカーネルモジュールが自動的にロードされないようにするには、
/etc/modprobe.d/blocklist.confファイルを編集または作成し、そのファイルに次の行を追加します。blacklist nouveau blacklist lbm-nouveau blacklist floppy blacklist amdgpu blacklist skx_edac blacklist intel_cstateudevネットワークデバイスルールを変更します。次の永続的なネットワークデバイスルールが存在する場合は削除します。
# rm -f /etc/udev/rules.d/70-persistent-net.rules # rm -f /etc/udev/rules.d/75-persistent-net-generator.rules # rm -f /etc/udev/rules.d/80-net-name-slot-rulesAzure で Accelerated Networking が意図したとおりに動作するようにするには、新しいネットワークデバイスルール
/etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rulesを作成し、次の行を追加します。SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION=="add", ENV{NM_UNMANAGED}="1"
sshdサービスが自動的に起動するように設定します。# systemctl enable sshd # systemctl is-enabled sshdカーネルブートパラメーターを変更します。
/etc/default/grubファイルを開き、GRUB_TIMEOUT行に次の値があることを確認します。GRUB_TIMEOUT=10次のオプションがある場合は、
GRUB_CMDLINE_LINUX行の末尾から削除します。rhgb quiet/etc/default/grubファイルに、指定されたすべてのオプションを含む次の行が含まれていることを確認します。GRUB_CMDLINE_LINUX="loglevel=3 crashkernel=auto console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300" GRUB_TIMEOUT_STYLE=countdown GRUB_TERMINAL="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"注記HDD 上でワークロードを実行していない場合は、
GRUB_CMDLINE_LINUX行の末尾にelevator=noneを追加します。これにより、I/O スケジューラーがnoneに設定され、SSD ベースのシステムでの I/O パフォーマンスが向上します。grub.cfgファイルを再生成します。BIOS ベースのマシンの場合:
# grub2-mkconfig -o /boot/grub2/grub.cfgUEFI ベースのマシンの場合:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfgシステムが
grub.cfgにデフォルト以外の場所を使用している場合は、それに応じてコマンドを調整してください。
Windows Azure Linux Agent (
WALinuxAgent) を設定します。WALinuxAgentパッケージをインストールして有効にします。# yum install WALinuxAgent -y # systemctl enable waagentWALinuxAgent でスワップ設定を無効にするには (
cloud-initを使用してスワップを管理する場合に必要)、/etc/waagent.confファイルで次の行を編集します。Provisioning.DeleteRootPassword=y ResourceDisk.Format=n ResourceDisk.EnableSwap=n ResourceDisk.SwapSizeMB=0注記WALinuxAgent でスワップを無効にすると、
cloud-init が一時ディスク上のスワップ設定を管理できるようになります。
Azure プロビジョニング用に VM を準備します。
Red Hat Subscription Manager から仮想マシンの登録を解除します。
# subscription-manager unregister既存のプロビジョニングの詳細をクリーンアップします。
# waagent -force -deprovision注記このコマンドは警告を生成しますが、Azure が VM のプロビジョニングを自動的に処理するため、これは想定されています。
シェル履歴をクリーンアップし、仮想マシンをシャットダウンします。
# export HISTSIZE=0 # poweroff