7.4. Hypervisor の自動インストール (高度)

本セクションでは、Red Hat Enterprise Virtualization Hypervisor のカーネルコマンドラインパラメーターについて説明します。これらのパラメーターを使用すると、インストールを自動化することができます。以下に詳しい解説と、自動インストール用のパラメーターストリング例を記載します。
このインストール方法は、対話型インストールの代わりとなる方法です。本章で説明する方法で PXE サーバーを使用したインストールを行う際には、設定を若干調整すると、手動でシステムにアクセスせずに複数の Hypervisor のデプロイメントを行うことができます。
これらのパラメーターがどのように機能し、どのような影響をもたらすか理解しておくことが重要です。システムが PXE を使用して自動的にブートするように設定されている場合に、これらのパラメーターによって既存のシステムのデータが削除される可能性があります。

7.4.1. カーネル引数の仕組み

以下は、RHEV Hypervisor 起動シーケンスについての説明です。自動インストールにともなう問題のデバッグに役立つ場合があります。
  1. ovirt-early サービスにより、/etc/default/ovirt ファイルのストレージ、ネットワーク、および管理パラメーターが設定されます。これらのパラメーターは、起動シーケンス中に Hypervisor に渡されるカーネル引数によって決定します。
  2. /etc/init.d/ovirt-firstboot スクリプトにより、カーネルコマンドラインまたは TUI インストールで設定したパラメーターに基づいて、実行するインストールのタイプが決定されます。

7.4.2. 必須パラメーター

インストールには、少なくとも以下のパラメーターが必要です。
  1. 以下のパラメーターのいずれか (実行するインストールまたは再インストールのタイプによって異なる)
    1. install: インストールを開始します (既存のインストールを検出した場合も含む)。
    2. reinstall: 現在のインストールを削除してクリーン再インストールを開始します。
    3. upgrade: 既存のインストールをアップグレードします。
  2. storage_init パラメーター: ローカルストレージデバイスを初期化します。
  3. BOOTIF: Hypervisor が Manager への接続に使用するネットワークインタフェースを指定します。PXE ブートを使用する場合には、pxelinux により BOOTIF が自動的に提供される可能性があります。
以降のセクションでは、これらのパラメーターの詳細について説明します。
Red Hat Enterprise Virtualization Manager で Red Hat Enterprise Virtualization Hypervisor を使用するには、以下のパラメーターを少なくとも 1 つ渡す必要があります。
adminpw
管理者権限でログインして Red Hat Enterprise Virtualization Hypervisor を設定することができます。
management_server
使用する Red Hat Enterprise Virtualization Manager を指定します。
rhevm_admin_password
Red Hat Enterprise Virtualization Manager でホストを追加するプロセスで使用するパスワードを指定します。

7.4.3. ストレージのパラメーター

以下のパラメーターにより、Hypervisor をインストールするためのローカルストレージデバイスが設定されます。
storage_init
storage_init パラメーターは、自動インストールに必要です。このパラメーターにより、ローカルストレージデバイスが初期化されます。
Hypervisor がローカルインストールで使用するストレージデバイスは 1 つです。初期化の対象およびインストール先となるディスクを定義する方法は複数あります。
  • USB ストレージデバイスの場合には、ディスクタイプに usb パラメーターを選択します。以下はその例です。
    storage_init=usb
  • SCSI ハードドライブの場合には、ディスクタイプに scsi パラメーターを使用します。以下はその例です。
    storage_init=scsi
  • SCSI バスにも表示される可能性のある SATA ハードドライブなど、ATA バス上のハードドライブには、ata パラメーターを使用してディスクタイプを選択します。以下はその例です。
    storage_init=ata
  • または、Linux デバイス名を storage_init パラメーターとして使用して、ストレージデーバイスを指定することもできます。/dev/disk/by-id 形式でのデバイス名の使用はサポートしていません。storage_init には、/dev/mapper/disk または /dev/disk の形式を使用する必要があります。以下の例では、/dev/sda デバイスを指定しています。
    storage_init=/dev/sda
storage_init の値を usbscsiata のいずれかに指定した場合には、シリアル番号を追加して使用するデバイスを明示的に設定することもできます。システムにアタッチされている全ディスクのシリアル番号を確認するには、以下の例のコマンドを実行します。

例7.15 udev シリアル番号の確認

$ for d in /dev/sd?; do echo $d `udevadm info -q env -n $d | egrep 'ID_BUS=|ID_SERIAL='`; done
      /dev/sda ID_SERIAL=ST9500325AS_6VE867X1
ストレージタイプとシリアル番号の両方を指定する場合には、この 2 つの値を必ずコロン (:) で区切るようにしてください。以下はその例です。
storage_init=ata:3600508b100104a3953545233304c0003

注記

システムの再起動後に、デバイス名が同じとなる保証はありません。デバイス名は変更される可能性があります。
storage_vol
storage_vol パラメーターは、storage_init パラメーターで設定されたストレージデバイスのパーティション分割に使用します。storage_vol= の後に、Boot、Swap、Root、Config、Logging、Data のパーティションのサイズ (MB) を指定することができます。
Boot パーティションは常に 50 MB、Red Hat Enterprise Virtualization Hypervisor 7 の Root パーティションは常に8600 MB で、再設定はできません。その他のパーティションについては、以下で説明します。

storage_vol パラメーターで定義したパーティション

Swap
swap パーティションは、頻繁にアクセスされないメモリーページをハードドライブにスワッピングするのに使用します。これにより、RAM 内のメモリーページが解放され、より頻繁にアクセスされるページに使用されるようになり、パフォーマンスが向上します。swap パーティションのデフォルトサイズは、システムにインストールされている RAM の容量とオーバーコミット比 (デフォルトは 0.5) に基づいて計算されます。Hypervisor には、swap パーティションが 1 つ必要です。また、swap パーティションのサイズを 0 に設定して無効にすることはできません。swap パーティションの最小サイズは、8 MB です。
swap パーティションのサイズを確認する方法は https://access.redhat.com/ja/solutions/108483 を参照してください。
上記の Red Hat ナレッジベースソリューションの公式を使用し、オーバーコミット比に対応したストレージを追加してください (RAM × オーバーコミット比)。
推奨 swap + (RAM * オーバーコミット) = swap パーティションサイズ
値を空のままにした場合には、swap パーティションの推奨値が設定されます。
Config
config パーティションには、Hypervisor の設定ファイルが格納されます。config パーティションのデフォルト最小サイズは 8 MB です。
Logging
logging パーティションには Hypervisor の全ログが格納されます。logging パーティションには、最小で 2048 MB のストレージが必要です。ただし、リソースに余裕がある場合には、より大きなサイズのストレージを logging パーティションに割り当てることを推奨します。
Data
data パーティションは、KVM のコアファイルを格納するのに十分なサイズである必要があります。コアファイルは、ゲストの RAM サイズにより異なります。また、data パーティションは、カーネルダンプ (別名: kdump) のファイルを格納するのにも十分なサイズでなければなりません。通常、kdump ファイルは、ホストのシステム RAM と同じサイズです。data パーティションには、Hypervisor のアップグレード用の Hypervisor ISO ファイルも格納されます。
data パーティションには、最小でで 512 MB のストレージが必要です。推奨サイズ、少なくともホストシステムメモリーの 1.5 倍のサイズに 512 MB を加算した容量です。サイズの値を -1 に指定して残りの領域をすべて使用するように設定するか、0 に指定して無効に設定することができます。
パーティションは任意の順序で指定することができます。各パーティションは、size,type という構文で指定します。指定するパーティションは、コロン (:) で区切ってください。256 MB の Swap パーティションと 4096 MB の Logging パーティションを指定する場合には、完全なパラメーターは storage_vol=256,Swap:4096,Logging です。

注記

以前のパーティションサイズの指定方法は、現在も使用することができます。この方法では、パーティションのサイズは、以下のような特定の順序で指定する必要がありました。
storage_vol=BOOT:SWAP:ROOT:CONFIG:LOGGING:DATA
ただし、Boot、Root パーティションの再設定はできないので、それらのパーティションのサイズは省略可能です。以下はその例です。
storage_vol=:SWAP::CONFIG:LOGGING:DATA
サイズの指定がない場合は、パーティションはデフォルトのサイズで作成されます。256 MB の Swap パーティション、4096 MB の Logging パーティションを指定するには、以下が正しい構文となります。
storage_vol=:256:::4096:
storage_vol パラメーターの標準の形式は以下のとおりです。
storage_vol=256,EFI:256,Root:4096,Swap
iscsi_name
iscsi_name パラメーターは、iSCSI イニシエーター名を設定するのに使用します。iSCSI イニシエーター名は、iSCSI Qualified Name (IQN) の形式を取ります。この形式は、RFC 3720 で定義されており、http://tools.ietf.org/html/rfc3720 で入手することができます。
IQN は、以下の要素で構成され、「.」の文字で区切られます。
  • リテラル文字列 iqn
  • ドメインが命名機関の管理下に置かれた日付 (yyyy-mm 形式)
  • 逆順ドメイン名: demo.redhat.comcom.redhat.demo となる
  • オプションとして、命名機関によって指定されたストレージターゲット名: 先頭にコロンが付く

例7.16 iscsi_name

以下の例は、2011年 7 月作成の demo.redhat.com ドメインにアタッチされた iSCSI イニシエーターの IQN を示しています。
iscsi_name=iqn.2011-07.com.redhat.demo

7.4.4. ネットワークのパラメーター

複数のネットワークのオプションが利用可能です。Hypervisor を自動インストールするには、以下のパラメーターを追加する必要があります。
  • IP アドレスまたは DHCP の設定
  • DHCP でホスト名が解決されない場合のホスト名の設定
  • Red Hat Enterprise Virtualization Manager ネットワークのアタッチ先のインターフェース
以下の一覧には、任意および必須の両パラメーターの説明と使用例をまとめています。

ネットワークのパラメーター

BOOTIF
BOOTIF パラメーターは、自動インストールに必要です。
BOOTIF パラメーターにより、Hypervisor が Red Hat Enterprise Virtualization Manager への接続に使用するネットワークインタフェースが指定されます。

重要

PXE を使用して Hypervisor を起動し、IPAPPEND 2 ディレクティブを使用したインストールを行うと、BOOTIF=<MAC> がカーネル引数に自動的に追加されます。IPAPPEND 2 ディレクティブを使用する場合には、BOOTIF パラメーターを使用する必要はありません。
BOOTIF パラメーターは、以下の 3 つのいずれかの形式で引数を取ります。
link
アクティブなリンクが 1 つある 第 1 のインタフェース (カーネルにより列挙される) を使用する場合に指定します。これは、複数のネットワークインタフェースコントローラーがありながらも、1 つしかプラグインできないシステムに有用です。
eth#
カーネルドライバーの初期化順序により決定された NIC を使用する場合に指定します (#NIC の番号)。この番号を確認するには、Hypervisor を起動して Hypervisor Configuration Menu から Shell を選択し、ifconfig | grep eth* のコマンドを使用して、システムに接続されたネットワークインターフェースを一覧表示します。次回の起動時には、そのネットワークインターフェースに同じ eth# マッピングが適用される保証はありません。
BOOTIF=eth0
<MAC>
括弧内に明示的に定義された MAC アドレスを使用する場合に指定します。
ip
ip パラメーターは、BOOTIF パラメーターにより定義されるネットワークインタフェースコントローラーの IP アドレスを設定します。ip パラメーターには、IP アドレス (0.0.0.0の形式)、または dhcp を使用することができます。
ip=192.168.1.1
ip=dhcp
ipv6
ipv6 パラメーターは、ip パラメーターのエイリアスです。指定可能な値は、dhcp または auto です。
netmask
netmask パラメーターは、ip パラメーターにより定義される IP アドレスのサブネットマスクを設定します。
netmask=255.255.255.0
gateway
gateway パラメーターは、インターネットゲートウェイを設定します。
gateway=192.168.1.246
dns
dns パラメーターは、最大 2 台の DNS サーバーのアドレスを設定します。各 DNS サーバーのアドレスは、コンマで区切る必要があります。
dns=192.168.1.243,192.168.1.244
hostname
hostname パラメーターは、ホスト名を設定します。ホスト名は、完全修飾ドメイン名かつ解決可能なドメイン名でなければなりません。
hostname=rhev1.example.com
ntp
ntp パラメーターは、1 台または複数の Network Time Protocol (NTP) サーバーのアドレスを設定します。各 NTP サーバーのアドレスをコンマで区切る必要があります。
ntp=192.168.2.253,192.168.2.254
vlan
vlan パラメーターは、Red Hat Enterprise Virtualization Manager に接続されるネットワークの VLAN 識別子を設定します。VLAN を使用する場合は、このパラメーターを設定する必要があります。
vlan=vlan-id:
vlan=36:
bond
bond パラメーターにより、ボンディングが設定されます。各インターフェース名をコンマで区切る必要があります。
BOOTIF=bond01 bond=bond01:nic1,nic2

7.4.5. Red Hat Network (RHN) のパラメーター

以下のパラメーターは、Hypervisor ホストを Red Hat Network (RHN) に自動的に登録する場合に使用します。少なくとも rhn_activationkey を指定するか、rhn_usernamerhn_password の両方のパラメーターを指定する必要があります。Satellite サーバーに対して登録する場合には、rhn_url パラメーターを必ず指定してください。
rhn_type
このマシンの RHN エンタイトルメントメソッドを設定します。sam を指定すると、エンタイトルメントメソッドは、証明書ベースの RHN に設定され、カスタマーポータル、コンテンツ配信ネットワーク、およびサブスクリプションサービス (サブスクリプション管理) が統合されます。classic を指定すると、エンタイトルメントメソッドは RHN クラシックに設定され、従来のチャンネルエンタイトルメントモデル (チャンネルアクセス) を使用することでコンテンツアクセスのグローバルビューが提供されますが、システムレベルのサブスクリプション使用状況についてのインサイトは提供されません。デフォルト値は sam です。
rhn_username
rhn_username パラメーターは、RHN に接続する際に使用するユーザー名を設定します。
rhn_username=testuser
rhn_password
rhn_password パラメーターは、RHN に接続する際に使用するパスワードを設定します。
rhn_password=testpassword
rhn_activationkey
rhn_activationkey パラメーターは、RHN に接続する際に使用するアクティベーションキーを設定します。アクティベーションキーを使用すると、システムの登録、RHN サービスレベルへのシステムのエンタイトルメント取得、特定のチャンネルやシステムグループへのシステムのサブスクリプションをすべて 1 回の操作で行うことができます。rhn_activationkeyrhn_username の両方を提供した場合には、rhn_activationkey の値が使用されます。
rhn_activationkey=7202f3b7d218cf59b764f9f6e9fa281b
rhn_org
このパラメーターは、SAM のみに使用します。カーネルコマンドラインで rhn_activationkey とともに使用すると、--org org_name --activationkey key_value と同じようにシステムが SAM に登録されます。
rhn_org=org_name
rhn_url
rhn_url パラメーターは、ホストを登録する際に使用する Satellite Server の URL を設定します。
rhn_url=https://satellite.example.com
rhn_ca_cert
rhn_ca_cert パラメーターは、Satellite Server に接続する際に使用する CA 証明書の URL を設定します。この値を指定しない場合のデフォルト値は rhn_url/pub/RHN-ORG-TRUSTED-SSL-CERT です。
rhn_ca_cert=https://satellite.example.com/pub/RHN-ORG-TRUSTED-SSL-CERT
rhn_profile
rhn_profile パラメーターは、RHN に登録される、対象となるホストのプロファイル名を設定します。デフォルト値はシステムのホスト名です。
rhn_profile=testhost

7.4.6. 認証パラメーター

adminpw
adminpw パラメーターは、admin ユーザーのパスワード設定に使用します。指定する値は、ハッシュ化済みである必要があります。シャドウパスワードメカニズムが対応しているハッシュスキームは、すべてサポートされています。パスワードをこのパラメーターで使用できるようにハッシュ化するには、以下のコマンドを実行することを推奨します。
# openssl passwd -1
openssl コマンドは、使用するパスワードの入力を求めるプロンプトを表示します。パスワードのハッシュ表現が返されるので、それを adminpw の値に使用することができます。
rootpw
rootpw パラメーターは、一時的な root パスワードを設定するのに使用します。初めて root でシステムにログオンする際に、パスワードを変更する必要があります。指定する値はハッシュ化を済ませておく必要があります。シャドウパスワードメカニズムでサポートされているハッシュスキームはすべてサポートしています。以下のコマンドを実行することが、このパラメーターと合わせて使用できるようにパスワードをハッシュ化するための推奨の方法です。
# openssl passwd -1
openssl コマンドを実行すると、使用するパスワードの入力が求められ、rootpw の値に使用することができるパスワードのハッシュ表現が返されます。

重要

root パスワードは、デフォルトでは設定されません。また、Red Hat サポートの依頼で有効にした場合を除き、このパスワードはサポートされてません。
rhevm_admin_password
rhevm_admin_password パラメーターは、root パスワードを設定し、SSH パスワード認証を有効化します。指定する値は、ハッシュ化が済んでいる必要があります。シャドウパスワードメカニズムでサポートされているハッシュスキームはすべてサポートしています。以下のコマンドを実行することが、このパラメーターと合わせて使用できるようにパスワードをハッシュ化するための推奨の方法です。
# openssl passwd -1
openssl コマンドを実行すると、使用するパスワードの入力が求められ、rhevm_admin_password の値に使用することができるパスワードのハッシュ表現が返されます。

重要

このパラメーターを設定すると、SSH パスワード認証が有効化されてしまいます。これは、Red Hat サポートの依頼で有効にした場合を除き、サポートされません。初期設定がの完了後に、SSH パスワード認証を無効にすることを推奨します。
ssh_pwauth
ssh_pwauth パラメーターは、SSH 接続でのパスワード認証を有効化するかどうかを選択するのに指定します。許容される値は、0 (無効) および 1 (有効) です。デフォルト値は 0 です。
ssh_pwauth=1

重要

SSH パスワード認証は、デフォルトでは無効になっており、Red Hat サポートの依頼で有効にした場合を除きサポートされません。

7.4.7. その他のパラメーター

firstboot
firstboot パラメーターは、既存のインストールが存在しないものとしてシステムを扱うように指定します。
reinstall パラメーターは、firstboot パラメーターの直接のエイリアスで、firstboot と同様に使用することができます。

警告

システム上のディスクに HostVG という名前のボリュームグループがある場合には、firstboot パラメーターを使用すると、既存のデータが消去されます。firstboot パラメーターを storage_init パラメーターとともに使用した場合にも、storage_init で指定されているディスク上のデータは消去されます。
install
install パラメーターは、既存のインストールが存在しないものとしてシステムを扱う必要がある場合に指定します。install パラメーターは、CD-ROMDVDUSBPXE のいずれかのメディアから起動する際に使用することを目的としています。
cim_enabled
Common Information Model (CIM) 管理インフラストラクチャーの使用を有効にします。
cim_passwd
Common Information Model (CIM) 管理インフラストラクチャーのパスワードを設定します。
disable_aes_ni
AES-NI 暗号化の命令セットを無効にします。許容される値は y または n です。
kdump_nfs
このパラメーターは、kdump 用の NFS サーバーを設定します。このパラメーターの構文は、kdump_nfs=hostname:nfs_share_path です (例: kdump_nfs=nfshost.redhat.com:/path/to/nfs/share)。
local_boot
local_boot パラメーターは、upgrade パラメーターのエイリアスです。
local_boot_trigger
インストールが正常に完了した場合に PXE を確認して無効化するためのターゲット URL を設定し、それ以降はシステムがディスクから起動するようにします。
netconsole
netconsole パラメーターは、カーネルメッセージをロギングする必要のあるサーバーのアドレスを設定します。netconsole パラメーターは、 IP アドレスまたは完全修飾ドメイン名を指定することができます。またオプションでポート (デフォルトのポートは 6666) を指定可能です。
netconsole=rhev.example.com:6666
nfsv4_domain
nfsv4_domain パラメーターは、NFSv4 に使用するドメインを指定します。
nocheck
nocheck パラメーターにより、インストール ISO の MD5 チェックがスキップされます。メディアがリモートに配置されている場合や低速の場合には、MD5 チェックに長時間を要する可能性があります。
management_server
management_server パラメーターは、Red Hat Enterprise Virtualization Manager のアドレスを設定します。management_server パラメーターは IP アドレスまたは完全修飾ドメイン名を指定できます。またオプションでポート (デフォルトのポートは 443) の指定も可能です。
management_server=rhev.example.com:443
mem_overcommit
mem_overcommit パラメーターは、メモリーオーバーコミットをサポートするために、swap の追加に使用する乗数を指定します。デフォルトのオーバーコミット値は 0.5 です。
mem_overcommit=0.7
qemu_pxe
qemu_pxe パラメーターは、仮想マシンで使用するネットワークブートローダーの選択に使用します。指定可能な値は、gpxe および etherboot です。
qemu_pxe=gpxe
reinstall
reinstall パラメーターは、既存のインストールが存在しないものとしてシステムを扱うように指定します。
firstboot パラメーターは、reinstall パラメーターの直接のエイリアスで、reinstall と同様に使用することができます。

警告

システム上のディスクに HostVG という名前のボリュームグループがある場合には、reinstall パラメーターを使用すると、既存のデータが消去されます。reinstall パラメーターを storage_init パラメーターとともに使用した場合にも、storage_init で指定されているディスク上のデータは消去されます。
snmp_password
Simple Network Management Protocol のパスワードを有効化し、設定します。
syslog
rsyslog サーバーを指定のアドレスに設定します。また、ポートを指定することもできます。構文は syslog=hostname[:port] です。
upgrade
upgrade パラメーターにより、既存の Hypervisor イメージが起動メディアによって提供されるバージョンにアップグレードされます。Hypervisor は自動的にアップグレードされ、アップグレードが完了するとリブートします。Hypervisor イメージが未インストールの場合には、storage_init パラメーターで選択したデバイスにイメージがインストールされます。アップグレードの実行時には、以前のブートエントリーは BACKUP として grub.conf に保存されます。アップグレードの手順の後にリブートが失敗した場合は、BACKUP ブートエントリーが新しいデフォルトとして自動的に選択されます。
uninstall
uninstall パラメーターは、既存の Red Hat Enterprise Virtualization インストールを削除します。ホストのボリュームグループが削除され、システムが再起動します。

7.4.8. Hypervisor の自動インストールの例

この例では、Hypervisor の自動インストールのためのカーネルコマンドラインパラメーターを使用しています。

重要

この例は、すべてのシステムで正しく機能しない可能性があります。上記のパラメーターの説明を確認して、デプロイメントを行うシステムに応じて、例を変更する必要があります。
カーネルコマンドパラメーターを使用した Hypervisor のインストールの一般的な例は以下のとおりです。
この例では、Manager は hostname: rhevm.example.com にあり、netconsole サーバーは同じマシン上に配置されています。
:linux storage_init=/dev/sda storage_vol=::::: local_boot BOOTIF=eth0 management_server=rhevm.example.com netconsole=rhevm.example.com

注記

PXE を使用するネットワーク上でブートするゲストには、カーネルパラメーターを自動的に追加することができます。本ガイドでは、PXE からの自動インストールについては、説明していません。