第10章 ハイパーバイザーおよび仮想マシンの登録

Red Hat Enterprise Linux 6 および 7 では、すべてのゲストに同じレベルのサブスクリプションサービスが割り当てられるようにすべてのゲスト仮想マシンが特定のハイパーバイザーにマップされる必要があります。これを実行するには、インストールおよび登録済みの各 KVM ハイパーバイザー上のすべてのゲスト仮想マシン (VM) を自動検出するサブスクリプションエージェントをインストールする必要があります。これにより、ホスト上に置かれるマッピングファイルが作成されます。このマッピングファイルにより、すべてのゲスト仮想マシンに以下の利点が提供されます。
  • 仮想システムに固有のサブスクリプションはすぐに利用可能となり、関連付けられた仮想マシンすべてに適用できます。
  • ハイパーバイザーから継承できるサブスクリプションの利点すべてはすぐに利用可能となり、関連付けられた仮想マシンすべてに適用できます。

注記

本章で提供される情報は Red Hat Enterprise Linux サブスクリプションのみに該当します。Red Hat Virtualization サブスクリプションまたは Red Hat Satellite サブスクリプションをお持ちの場合には、それらのサブスクリプションで提供されている virt-who の情報も参照してください。Red Hat Subscription Management についての詳細は、カスタマーポータルから入手できる Red Hat Subscription Management に関するガイドも参照してください。

10.1. ホスト物理マシンへの virt-who のインストール

  1. KVM ハイパーバイザーを登録します。

    KVM ハイパーバイザーは、ホスト物理マシンのターミナルで root ユーザーとして subscription-manager register [options] コマンドを実行して登録します。# subscription-manager register --help メニューを使用するとさらに多くのオプションを利用できます。ユーザー名とパスワードを使用する場合には、サブスクリションマネージャーが認識する認証情報を使用します。サブスクリプションの初回使用時でユーザーアカウントがない場合には、カスタマーサポートにお問い合わせください。たとえば、「admin」としてパスワード「secret」を使用して仮想マシンを登録する場合は以下のコマンドを入力します。
    [root@rhel-server ~]# subscription-manager register --username=admin --password=secret --auto-attach --type=hypervisor
  2. virt-who パッケージをインストールします。

    ホスト物理マシンで以下のコマンドを実行することで virt-who パッケージをインストールします。
    # yum install virt-who
  3. virt-who 設定ファイルを作成します。

    各ハイパーバイザーの /etc/virt-who.d/ ディレクトリーに設定ファイルを追加します。最低でも、ファイルには次のスニペットが含まれている必要があります。
    [libvirt]
    type=libvirt
    virt-who の設定に関する詳細は、virt-who の設定」 を参照してください。
  4. virt-who サービスを起動します。

    ホスト物理マシンで以下のコマンドを実行することで virt-who サービスを起動します。
    # systemctl start virt-who.service
    # systemctl enable virt-who.service
  5. virt-who サービスがゲスト情報を受信していることを確認します。

    この時点で、virt-who サービスはホストからドメインの一覧の取得を開始します。ホスト物理マシンで /var/log/rhsm/rhsm.log ファイルをチェックし、ファイルにゲスト仮想マシンの一覧が含まれることを確認します。例を以下に示します。
    2015-05-28 12:33:31,424 DEBUG: Libvirt domains found: [{'guestId': '58d59128-cfbb-4f2c-93de-230307db2ce0', 'attributes': {'active': 0, 'virtWhoType': 'libvirt', 'hypervisorType': 'QEMU'}, 'state': 5}]

手順10.1 カスタマーポータルでのサブスクリプション管理

  1. ハイパーバイザーのサブスクライブ

    仮想マシンはハイパーバイザーと同じサブスクリプションの利点を受けることができるため、ハイパーバイザーに有効なサブスクリプションがあることを確認し、そのサブスクリプションを仮想マシンが使用できることを確認するのは重要です。
    1. カスタマーポータルにログインします。

      https://access.redhat.com/ の Red Hat カスタマーポータルにログインし、ページの上部にある サブスクリプション ボタンをクリックします。
    2. 「システム」のリンクをクリックします。

      サブスクリプション管理の システム リンクをクリックします。
    3. ハイパーバイザーを選択します。

      「システム」ページには、サブスクライブ済みシステムの一覧が表示されます。ハイパーバイザーの名前 (例: localhost.localdomain) をクリックします。サブスクリプションのアタッチ をクリックし、一覧表示されたサブスクリプションをすべて選択します。選択項目のアタッチ をクリックします。これにより、ホストの物理サブスクリプションがハイパーバイザーに割り当てられ、ゲストがサブスクリプションを利用できるようになります。
  2. ゲスト仮想マシンのサブスクライブ: 初回時の使用

    このステップは、新規サブスクリプションを持つが、一度もゲスト仮想マシンをサブスクライブしたことのない場合に適用できます。仮想マシンを追加する場合にはこのステップを省略してください。virt-who サービスを実行するマシン上でハイパーバイザープロファイルに割り当てられたサブスクリプションを消費するには、ゲスト仮想マシンのターミナルで root で以下のコマンドを実行して自動サブスクライブを実行します。
    [root@virt-who ~]# subscription-manager attach --auto
  3. 追加ゲスト仮想マシンのサブスクライブ

    サブスクライブを初めて実行した場合にはこのステップを省略してください。仮想マシンを追加する場合は、このコマンドを実行しても、必ずしも同じサブスクリプションがゲスト仮想マシンに再アタッチされる訳ではないことに注意してください。これは、特定のゲスト仮想マシンに必要な分を解決するためにすべてのサブスクリプションを削除してから自動アタッチを許可することで、以前と異なるサブスクリプションが消費される可能性があるためです。お使いのシステムには影響しない場合もありますが、この点には留意する必要があります。以下に説明していませんが、アタッチの手動の手順に従って仮想マシンをアタッチする場合、自動アタッチが機能しないため、それらの仮想マシンを手動で再アタッチする必要があります。以下のコマンドを使用して、古いゲストのサブスクリプションを削除してから自動アタッチを使用してサブスクリプションをすべてのゲストにアタッチします。ゲスト仮想マシンで以下のコマンドを実行します。
    [root@virt-who ~]# subscription-manager remove --all
    [root@virt-who ~]# subscription-manager attach --auto
  4. サブスクリプションがアタッチされていることを確認します。

    ゲスト仮想マシンで以下のコマンドを実行して、サブスクリプションがハイパーバイザーに割り当てられていることを確認します。
    [root@virt-who ~]# subscription-manager list --consumed
    以下のような出力が表示されます。サブスクリプションの詳細に注意してください。「Subscription is current」と記載されているはずです。
    [root@virt-who ~]#  subscription-manager list --consumed
    +-------------------------------------------+
       Consumed Subscriptions
    +-------------------------------------------+
    Subscription Name:	Awesome OS with unlimited virtual guests
    Provides: 		Awesome OS Server Bits
    SKU: 			awesomeos-virt-unlimited
    Contract: 		0
    Account: 		######### Your account number #####
    Serial: 		######### Your serial number ######
    Pool ID: 		XYZ123                                             1
    Provides Management: 	No
    Active: 		True
    Quantity Used: 		1
    Service Level:
    Service Type:
    Status Details:		Subscription is current                       2
    Subscription Type:
    Starts: 		01/01/2015
    Ends: 			12/31/2015
    System Type: 		Virtual

    1

    システムにアタッチするサブスクリプションの ID がここに表示されます。ID は手動でサブスクリプションをアタッチする場合に必要になります。

    2

    サブスクリプションが最新であるかどうかを示します。サブスクリプションが最新でない場合、エラーメッセージが表示されます。この例の 1 つが、ゲストがどのホストでも報告されず、一時的なマップされていないゲストのサブスクリプションを使用している場合です。この場合、ゲストをサブスクライブする必要があります。その他の場合は 「サブスクリプションステータスでエラーが出ました。どうすればよいですか?」 に記載されている情報を参照してください。
  5. 追加ゲストの登録

    ハイパーバイザーに新規のゲスト仮想マシンをインストールする場合、ゲスト仮想マシンで以下のコマンドを実行して新規の仮想マシンを登録し、ハイパーバイザーにアタッチされているサブスクリプションを使用する必要があります。
    # subscription-manager register
    # subscription-manager attach --auto
    # subscription-manager list --consumed

10.1.1. virt-who の設定

virt-who サービスは、以下のファイルを使用して設定されます。
  • /etc/virt-who.conf - 接続されているハイパーバイザーの変更を確認する間隔など、一般的な設定情報が含まれています。
  • /etc/virt-who.d/hypervisor_name.conf - 特定のハイパーバイザーの設定情報が含まれています。
Web ベースのウィザードは、ハイパーバイザーの設定ファイルと、virt-who.conf に必要なスニペットを生成するために提供されます。カスタマーポータルの Red Hat Virtualization Agent (virt-who) Configuration Helper でウィザードを実行できます。
ウィザードの 2 ページ目で、次のオプションを選択します。
  • Where does your virt-who report to?: Subscription Asset Manager
  • Hypervisor Type: libvirt
ウィザードにしたがって設定を完了します。設定が正しく行われた場合、virt-who は指定のハイパーバイザーで既存および将来的なゲストに選択されたサブスクリプションを自動的に提供します。
ハイパーバイザーの設定ファイルの詳細は、virt-who-config man ページを参照してください。