仮想インスタンスガイド
Red Hat Subscription Management で使用するためのガイド
概要
第1章 概要
デフォルトでは、Red Hat Enterprise Linux インスタンスはカスタマーポータルに登録され、そこからコンテンツを取得するようになっています。
Red Hat Subscription Management で管理する Red Hat Enterprise Linux インスタンスは、代わりにサブスクリプション管理サーバーに登録され、そこから製品サブスクリプションを取得します。
現代の IT インフラストラクチャーは物理ハードウェアと仮想ハードウェアが混在しており、仮想化を活用して、物理ハードウェアでは簡単に実現できないレベルの柔軟性やスケーラビリティーを提供します。
Red Hat のサブスクリプションでは以下を提供します。
- サポートサービスへのアクセス
- コンテンツ配信およびホストされたリポジトリー
- ナレッジベース、フォーラム、ビデオなどのリソースへのアクセス
Red Hat のサブスクリプションモデルでは、物理サーバーを使用する場合はサブスクリプションがソケット数やコア数などのマシンの物理属性に対応している必要があります。ソケットまたはコアのペアに対応するように、サブスクリプションが適用される数は常に 2 つで 1 セットとなります。仮想マシンのサブスクリプションを購入し、仮想 CPU 属性に合わせて適用することもできますが、ホストベースのサブスクリプションの方がより適しています。ハイパーバイザーにはホストベースのサブスクリプションが適用され、それによりハイパーバイザーがその仮想マシンにサブスクリプションを付与できるようになります。ホストベースのサブスクリプションでは、仮想 CPU の構成に関係なく、ゲストごとにサブスクリプションが 1 つ必要です。
1.1. サポートされる仮想化プラットフォーム
Virtual Data Center (VDC) サブスクリプションを適用できる、サポート対象の仮想化プラットフォームは以下のとおりです。
- Red Hat Enterprise Virtualization Manager (RHEV-M)
- Red Hat Enterprise Linux ハイパーバイザー
- VMware vSphere
Microsoft Hyper-V
注記virt-whoデーモンでは、現在、Microsoft System Center 2012 R2 Virtual Machine Manager (SCVMM) はサポートされません。virt-whoが接続する各 Microsoft Hyper-V ホストにそれぞれvirt-whoの設定ファイルが必要です。
VDC サブスクリプションは、ハイパーバイザーそのものではなく、ハイパーバイザーのゲスト仮想マシンにのみ適用されます。Red Hat Enterprise Linux ハイパーバイザーが必要な全仮想化プラットフォームで、そのハイパーバイザー用のサブスクリプションが必要です。
1.2. サブスクリプションの選択
Red Hat は、仮想マシンのプロビジョニング時に柔軟性を高めることができるため、仮想マシンがサブスクリプションを継承できるサブスクリプションを推奨しますが、お使いの環境の要件に適したものを選択してください。どのサブスクリプションがお客様のニーズを満たしているかが不明な場合は、Red Hat アカウントマネージャーにご相談ください。Red Hat サブスクリプションモデルの詳細は、Red Hat Subscription Management の「Red Hat サブスクリプション管理のワークフローの概要」を参照してください。
以下は、継承可能なサブスクリプションを提供する Red Hat のサブスクリプション例です。
- Red Hat Enterprise Linux for Virtual Datacenters
- Red Hat Enterprise Linux with Smart Virtualization and Management
本ガイドでは、すべての例で Red Hat Enterprise Linux for Virtual Datacenters (VDC) サブスクリプションを使用します。継承可能なサブスクリプションに対するワークフローは、すべて同じになっています。
1.2.1. virt-who が必要かどうかの確認
virt-who デーモンが必要かどうかを確認するには、Red Hat Certificate Tool を使用するか、Red Hat サポートにお問い合わせください。Red Hat Certificate Tool (rct) のコマンドラインは、サブスクリプションのマニフェストファイルを読み込み、マニフェストの詳細をプレーンテキストで表示します。Red Hat Certificate Tool は、Red Hat Enterprise Linux 7.3 または Fedora 24 の subscription-manager-1.17.10 (以降) パッケージに含まれています。
Red Hat Certificate Tool でのサブスクリプションマニフェストの検証
- カスタマーポータルからサブスクリプションマニフェストをダウンロードします。
Red Hat Certificate Tool コマンドラインを実行します。
# rct cat-manifest --no-content manifest_file.zip以下の例は OpenShift Enterprise, Premium (1-2 Sockets) サブスクリプションです。
Subscription: Name: OpenShift Enterprise, Premium (1-2 Sockets) Quantity: 50 Created: 2016-09-16T01:47:59.000+0000 Start Date: 2016-07-04T04:00:00.000+0000 End Date: 2017-07-04T03:59:59.000+0000 . . . Virt Limit: unlimited Requires Virt-who: True
rct の出力に Virt Limit: unlimited、Requires Virt-who: True、またはその両方が含まれる場合には、virt-who デーモンが必要です。この例では両方が含まれているため、virt-who デーモンが必要になります。
1.3. 仮想ゲストのサブスクリプションの適用
Virtual Datacenter サブスクリプションは、Red Hat が提供するホストベースのサブスクリプションの一種です。ホストベースのサブスクリプションはホストに適用され、ゲストに継承されます。ホストベースのサブスクリプションには、仮想化マネージャーまたはハイパーバイザーに割り当てるプールと、仮想ゲストがサブスクリプションを継承するプールの 2 つが含まれています。仮想化マネージャーまたはハイパーバイザーのサブスクリプションでは、製品コンテンツへのエンタイトルメントは提供されません。
仮想マシンを正しくプロビジョニングしてサブスクリプションを継承させるには、以下を実行する必要があります。
- ホストベースのサブスクリプションがハイパーバイザーに割り当てられていることを確認します。ホストおよび仮想ホストのプロビジョニングの詳細は、『Red Hat Satellite 6 Provisioning Guide』を参照してください。
-
virt-whoデーモンをインストールし、設定します。本ドキュメントでは、順を追って必要な手順を説明します。
1.4. 仮想マシンのサブスクリプションプロセス
仮想マシンの登録プロセスは以下のようになります。
- 仮想マシンをプロビジョニングします。
- 仮想マシンが、Subscription Manager からサブスクリプションを要求します。
- サブスクリプションマネージャーは、この時点ではこの仮想マシンがどのホストに所属するか把握していないため、最大 24 時間有効である一時的なサブスクリプションが付与されます。
- virt-who デーモンは、仮想マネージャーまたはハイパーバイザーに接続し、ゲストの仮想マシンの詳細を要求します。デフォルトでは、この要求が 1 時間ごとに出されますが、間隔は変更できます。Red Hat は、Red Hat サポートから依頼があった場合を除いて、この値を変更せずデフォルトのままにすることを推奨します。
- 仮想化マネージャーまたはハイパーバイザーは、ゲスト仮想マシンの一覧 (UUID など) を virt-who に返します。
- virt-who デーモンは、ゲストの仮想マシンの一覧を Subscription Manager にレポートします。
- Subscription Manager は、利用可能なサブスクリプションと、仮想マシンが必要とするサブスクリプションを照合します。必要なサブスクリプションが利用できる場合は、仮想マシンに割り当てられ、サブスクリプションが完了します。
1.5. サブスクリプションのステータス
登録した仮想ホストまたは物理ホストには、インストールした製品と割り当てたサブスクリプションをベースにしたサブスクリプションのステータスがあります。
サブスクリプションステータスの説明
赤
- ホストにインストールされている製品に、有効なサブスクリプションがないものがあります。ステータスが 赤 になっているホストは、サブスクリプションの対象外の製品のコンテンツにアクセスできません。このステータスのサブスクリプションは、手動で解決する必要があります。
黄
- ホストのサブスクリプションが十分ではないか、割り当てられているサブスクリプションの数が正しくない (たとえば、2 ソケットのサブスクリプションが 4 ソケットのホストに割り当てられている) か、もしくは仮想マシンをホストしている仮想化マネージャーまたはハイパーバイザーを Satellite が把握しておらず、一時的なサブスクリプションが割り当てられています。サブスクリプションが不足している場合は、手動で解決する必要があります。一時的なサブスクリプションについては、十分な数が割り当てられるように、サブスクリプション管理が自動的に利用可能なサブスクリプションを提供して解決します。
緑
- ホストは正しくサブスクライブされています。
ハイパーバイザーは、正しくサブスクライブされると、そのステータスにかかわらず、常に サブスクリプション管理 Web UI に表示されます。
1.5.1. 一時的なサブスクリプション
初めて仮想マシンを登録した時点では、仮想マシンが割り当てられている仮想化マネージャーまたはホストをサブスクリプション管理が把握していないため、サブスクリプションを割り当てることができません。このような場合には、最大 24 時間有効なサブスクリプションが一時的に付与されます。virt-who デーモンが次に実行したときに、仮想マシンのホストを特定すると、永続的なサブスクリプションが適用され、利用可能で適切なサブスクリプションが提供されます。永続的なサブスクリプションが付与されている場合は、仮想マシンのサブスクリプションステータスが サブスクライブ済 に変わります。一時的なサブスクリプションが付与されたホストは、24 時間を過ぎると、自動的に物理ホスト向けのサブスクリプションを選択し、利用可能なサブスクリプションの数を制限します。24 時間を過ぎても、適切なサブスクリプションを要求できなかった場合には、ホストのステータスが サブスクライブなし に変わります。
仮想マシンに一時的なサブスクリプションが付与されると、以下のようなオプションが利用できるようになります。
virt-who をインストールして待機する
virt-who がインストール、設定されていない場合はそれを行い、virt-who が仮想マシンをホストする仮想化マネージャーまたはハイパーバイザーを特定するまで待機します。利用可能なものから、サブスクリプションが自動的に選択されます。
手動でサブスクリプションを割り当てる
一時的なサブスクリプションの有効期限前にサブスクリプションを割り当てる場合、または特定のサブスクリプションを割り当てる場合は、virt-who をインストールして設定し、手動でサブスクリプションを割り当てます。
なにもしない
前述のとおり、一時的なサブスクリプションを割り当てられた仮想マシンに、物理ホスト向けのサブスクリプションが割り当てられる場合があります。たとえば、CPU が 2 つある仮想マシンに、VDC サブスクリプションが 1 つではなく、2 つ割り当てられる可能性がありますが、サブスクリプションが必要以上に使用されることになるため、この状況は回避する必要があります。
第2章 インストールと設定の概要
仮想 Red Hat Enterprise Linux サーバーが VDC サブスクリプションを要求して、付与されるようにするには、virt-who デーモンが各仮想化マネージャーまたはハイパーバイザーに接続して、ホストされる仮想マシンを Red Hat サブスクリプション管理にレポートするように設定する必要があります。この接続を確立するには、以下のタスクを順に完了してください。
- お使いの環境に適した設定を決定します。
- virt-who デーモンの要件をレビューして、すべてを満たしていることを確認します。
- virt-who を実行するために Red Hat Enterprise Linux のインスタンスをインストールします。
- virt-who デーモンをインストールします。
- virt-who デーモンとハイパーバイザーとの間の接続を確立します。
第3章 設定オプション
virt-who を必要とする最も単純な構成は、ハイパーバイザーまたは仮想化マネージャーが 1 つ、組織が 1 つ、ハイパーバイザー技術が 1 つ、およびサブスクリプション管理サーバーに直接レポートする virt-who インスタンスとなります。組織の多くはこれよりも複雑になるため、以下の変数に対応するように virt-who のインストールと設定を変更できます。
- 複数のハイパーバイザー
- 複数のハイパーバイザー技術
- HTTP プロキシー
3.1. 複数のハイパーバイザー
1 つの virt-who インスタンスを複数のハイパーバイザーに接続して、それぞれがホストする仮想マシンをレポートすることができます。トラブルシューティングが簡単にできるように、ハイパーバイザーまたは仮想化マネージャーごとに個別の設定ファイルを使用することが推奨されます。たとえば、ハイパーバイザーで問題が発生している疑いがある場合に、そのハイパーバイザーの設定ファイルを別のディレクトリーに移動して、virt-from がそのファイルをクエリーしないようにすることで、問題を切り分けることができます。
ハイパーバイザーが複数になると、virt-who は各ハイパーバイザーを並行してクエリーするため、応答しないハイパーバイザーがあっても、virt-who のクエリーが停止したり、遅延したりする確率が減ります。
3.2. 複数のハイパーバイザー技術
1 つの virt-who インスタンスを、サポートされる技術が複数になる仮想化プラットフォームに接続することができます。プラットフォームごとに個別の設定ファイルを使用することが推奨されます。
3.3. HTTP プロキシー
HTTP プロキシーがあると、追加の設定が必要になるというシナリオが複数存在します。お使いの設定がこのようなシナリオの 1 つまたは複数と一致する場合は、それぞれに必要な設定の変更を適用するようにしてください。
- virt-who とハイパーバイザー間に HTTP プロキシーがある場合には、virt-who はそれを考慮した設定にする必要があります。
- サブスクリプション管理サーバーが HTTP プロキシー経由でカスタマーポータルに接続する場合は、virt-who はそのプロキシーを使用するように試行しますが、失敗する可能性が非常に高くなります。詳しい情報および推奨される解決策は「トラブルシューティング」を参照してください。
- サブスクリプション管理サーバーがハイパーバイザーとして同じローカルネットワークにある場合には、HTTP プロキシーはローカルネットワークのトラフィックがこれを通過できるように設定する必要があります。詳しい情報は「トラブルシューティング」を参照してください。
第4章 前提条件
virt-who のインストールに進む前に、以下の前提条件を満たしていることを確認してください。
4.1. 認証要件
VMware vCenter、Red Hat Virtualization Manager、個々のハイパーバイザーなど、 各仮想化マネージャーにアカウントを作成します。このアクセスを使用して、virt-who はゲストの仮想マシンの一覧を取得します。各接続は独立しているため、必要に応じて接続ごとに異なるアカウントを使用できます。一般的に サービスアカウント として知られる各アカウントは、この目的のためだけに使用し、読み取り専用アクセスと、有効期限が設定されていないパスワードを設定するようにしてください。
4.2. ソフトウェア要件
この目的のために virt-who エージェントを Red Hat Enterprise Linux のインスタンスにインストールする必要があります。基礎となるサーバーは物理または仮想のいずれかにすることができます。
4.3. サブスクリプション
サブスクリプションは、組織に固有です。virt-who デーモンが複数の組織をサポートするように設定できますが、組織間でサブスクリプションを共有することはできません。
組織およびハイパーバイザーごとに仮想データセンターのサブスクリプションを 1 つ指定する必要があります。
4.4. virt-who ホストの準備
virt-who デーモンをインストールする前に、Red Hat Enterprise Linux インスタンスを以下のようにインストール、設定する必要があります。
Red Hat Enterprise Linux バージョン 7 (推奨) または 6 をインストールします。
CLI 環境のみが必要です。この手順に関するヘルプ情報は、『Red Hat Enterprise Linux 7 インストールガイド』または『Red Hat Enterprise Linux 6 インストールガイド』を参照してください。
Red Hat Enterprise Linux サーバーを Subscription Management Server に登録します。
# subscription-manager register --username=admin --password=secret --org=organization_label --auto-attach
HTTPS 用のネットワークポートを開きます。
virt-who を有効にしてサブスクリプションサービスと通信するようにするには、TCP ポート 443 を開く必要があります。
Red Hat Enterprise Linux 7 の場合:
# firewall-cmd --add-port="443/tcp" # firewall-cmd --add-port="443/tcp" --permanent
Red Hat Enterprise Linux 6 の場合:
# iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT # service iptables save
4.5. virt-who のインストール
virt-whoパッケージをインストールします。# yum install virt-who
第5章 設定およびサービス
5.1. virt-who 設定ファイル
virt-who サービスには、少なくても以下の 2 つの設定ファイルが必要です。
-
ホストからの全 virt-who 接続に適用する設定が含まれるグローバル設定ファイル (
/etc/sysconfig/virt-who)。 -
サブスクリプション管理を接続する各ハイパーバイザーまたは仮想化マネージャーの個別設定ファイル。これらは、
/etc/virt-who.d/ディレクトリーに保存する必要があります。
仮想化マネージャーまたはハイパーバイザーを追加または削除する場合には、virt-who デーモンの設定を更新する必要があります。
以下は、virt-who で提供される個別の設定ファイル例の抜粋です。各接続の設定オプションは、stanza に含まれます。各設定 stanza のタイトルは一意にする必要があり、virt-who はそれ以外の要件を名前に課しません。個別の設定ファイルにはハイパーバイザーと同じ名前を指定することが推奨されますが、必須ではありません。
#[config name] #type= ; insert one of libvirt/esx/hyperv/rhevm/vdsm/fake #server= ; insert hostname or ip address of the server to connect to #username= ; username for server authentication #password= ; password for server authentication #encrypted_password= ; password encrypted using virt-who-password utility #owner= ; owner for use with SAM, Customer Portal, or Satellite 6 #env= ; environment for use with SAM, Customer Portal, or Satellite 6 #hypervisor_id= ; how will be the hypervisor identified, one of: uuid, hostname, hwuuid
グローバルの設定とハイパーバイザーの接続の設定ファイルは 1 つのファイル (/etc/sysconfig/virt-who) に統合することができ、サポートもされています。ただし、この方法は廃止予定となっています。グローバルの設定ファイルと個別の設定ファイルを分けた方がトラブルシューティングがしやすくなります。
5.1.1. virt-who アクセスの範囲の制限
Red Hat Enterprise Linux や他のオペレーティングシステムを実行する仮想マシンが含まれるハイブリッドの環境を稼働している場合には、virt-who のホストへのアクセス範囲を制限することができます。たとえば、ハイパーバイザーホストが Microsoft Windows Server インスタンスのみをホストする場合は、virt-who エージェントからレポートを受けるハイパーバイザーがあっても利点はありません。
virt-who のホスト (ハイパーバイザー) へのアクセスを制限するには、以下の方法のいずれかまたは両方を使用してください。どちらの方法も目的は同じですが、包含/除外の方法は virt-who のネイティブの機能であるため、デフォルトとみなされます。
- 包含または除外するホストを表示します。
- アクセスを、ホストのサブセットに制限します。
5.1.1.1. 包含または除外するホストの表示
virt-who デーモンからレポートを受けるホストを包含または除外するには、virt-who 設定ファイルに、コンマ区切りで追加します。ホストの名前に特殊文字が含まれる場合には、引用符で囲みます。ホストを 包含する には filter_hosts パラメーターを使用します。ホストを 除外する には exclude_hosts パラメーターを使用します。virt-who の各設定ファイルでは、いずれか の方法を使用できます。
包含または除外するホストを特定する方法は、Satellite Web UI で指定した特定方法と同じにする必要があります。hypervisor_id=hostname を指定した場合は、ホスト名を一覧に記載する必要があります。hypervisor_id=uuid または hypervisor_id=hwuuid を指定した場合には、順にホストの UUID または HWUUID を記載する必要があります。
フィルタリングパラメーター filter_host_uuids と exclude_host_uuids は非推奨になりました。
virt-who からのホストの除外例
[vcenterhost1] type=esx server=vsphere.example.com username=test password=test owner=Default_Organization env=Library hypervisor_id=hostname exclude_hosts=host1.redhat.com,host2.redhat.com
5.1.1.2. 特定のホストへのアクセス制限
virt-who が使用するアカウントに、包含するホストに対する読み取り専用アクセスを設定します。ホストへのアクセス制限をすることで、virt-who デーモンはアクセス可能なホストのみを検索し、取得します。
5.1.2. 設定ソース
本ガイドでは、すべてのサンプルで設定ファイルを使用しますが、virt-who は設定を複数のソースから受け入れることができます。設定ソースの優先順は以下のようになります。virt-who 設定オプションの詳細情報は virt-who-config および virt-who の man ページを参照してください。
設定ファイルに実装する前に設定をテストする場合は、コマンドラインで設定オプションを指定すると便利です。ただし、このオプションは永続せず、virt-who サービスまたは Red Hat Enterprise Linux ホストを再起動すると無効になります。
- コマンドライン
- 環境変数
-
/etc/sysconfig/virt-whoファイル -
/etc/virt-who.d/*ファイル -
/etc/virt-who.confファイル
5.2. virt-who ユーザーの作成
Administratorアクセスのあるサブスクリプション管理ユーザーを作成します。このアカウントを使用すると、virt-who がサブスクリプション管理に接続できるようになります。Red Hat は、この目的の ためだけ にこのアカウントを使用することを推奨します。すでにこの目的のためにサブスクリプション管理ユーザーを作成している場合は、この手順を省略してください。
ユーザーパスワードの暗号化
virt-who アカウントパスワードを暗号化すると、プレーンテキストでパスワードを保存するよりも、セキュリティーが強化されます。暗号化キーは
rootアカウントしか読み取りができないファイルに記述するため、rootアカウントのパスワードは暗号化する必要があります。このような理由から、rootアカウントのみがパスワードを復号できます。virt-who-passwordユーティリティーを実行します。# virt-who-password
アカウントのパスワードを入力してハイパーバイザーに接続します。暗号化形式のパスワードが画面に出力されます。
# virt-who-password Password: <virt who account's password> Use following as value for encrypted_password key in the configuration file: 837a5d6a34203e805c998ce02bf84c03
- 暗号化されたパスワードをメモします。
これは、後で virt-who デーモンを設定する際に使用します。
5.3. virt-who が Red Hat Enterprise Virtualization Hypervisor に接続するように設定する手順
virt-who のこのインスタンスが接続する Red Hat Enterprise Virtualization Hypervisor (RHEV-H) ホストごとにこの手順を繰り返します。
Red Hat Enterprise Virtualization Manager インスタンスに接続する際に使用するアカウントのパスワードを暗号化します。
virt-who-passwordコマンドを使用してパスワードを暗号化します。サンプルについては「virt-who ユーザーの作成」を参照してください。テンプレート設定ファイルを新しいファイルにコピーします。
virt-who ホスト上で以下を実行します。
# cp /etc/virt-who.d/template.conf /etc/virt-who.d/rhevmhost1各ハイパーバイザーの設定ファイルを簡単に指定するには、RHEV-H ホスト名を新規ファイル名として使用します。この例のホスト名は
rhevmhost1です。作成済みの設定ファイルを編集して、サンプルの値は、お使いの環境値に置き換えてください。
[rhevmhost1] 1 type=rhevm 2 hypervisor_id=hostname 3 owner=org_label 4 env=Library 5 server=https://rhevmhost1.example.com:443 6 username=admin@internal 7 encrypted_password=bd257f93d@482B76e6390cc54aec1a4d 8
- 1
- これは、各 virt-who インスタンスごとに一意です。ハイパーバイザーごとの設定ファイルを指定しやすいように、Red Hat Enterprise Virtualization Manager ホストの名前を使用します。
- 2
type=rhevmは、virt-who の Red Hat Virtualization Manager への接続を指定します。- 3
- サブクスクリプション管理 Web UI で、ハイパーバイザーがホスト名で特定されることを指定します。デフォルトでは、ハイパーバイザーの UUID が使用されますが、UUID は (名前に比べ) 分かりやすさに欠けます。
- 4
- 組織のラベル
- 5
- これにより、ホストが配置される環境を指定します。これは、
Libraryで なければなりません。 - 6
- Red Hat Enterprise Virtualization Manager の完全修飾ドメイン名または IP アドレス。デフォルトのポート番号は 8443 ですが、バージョン 3.0 以降では、Red Hat Enterprise Virtualization Manager はポート 443 を使用します。
- 7
- virt-who が Red Hat Enterprise Virtualization Manager インスタンスに接続するアカウント名。
usernameオプションでは、username@domainの形式で入力する必要があります。 - 8
usernameで指定したアカウントのパスワードを暗号化します。
5.4. virt-who が Red Hat Enterprise Linux ハイパーバイザーに接続するように設定する手順
Red Hat Enterprise Linux ハイパーバイザーごとにこの手順を完了してください。
virt-who が Red Hat Enterprise Linux ハイパーバイザーに接続するように設定する手順
Red Hat Enterprise Linux ハイパーバイザーが Subscription Asset Manager インスタンスに登録されるように設定します。
# yum install http://rhsm.example.com/pub/candlepin-cert-consumer.noarch.rpmRed Hat Enterprise Linux ハイパーバイザーを Subscription Asset Manager に登録します。
# subscription-manager register --org="organizational_label"VDC サブスクリプションを Red Hat Enterprise Linux ハイパーバイザーに割り当てます。
# subscription-manager attach --pool=subscription_pool_ID必要なサブスクリプションプール ID を検索するには、利用可能なサブスクリプションをすべて表示します。
# subscription-manager list --available
テンプレート設定ファイルを新しいファイルにコピーします。
各ハイパーバイザーの設定ファイルを簡単に指定するには、ハイパーバイザーのホスト名を新規ファイル名として使用します。この例のホスト名は rhelhost1 です。
cp /etc/virt-who.d/template.conf /etc/virt-who.d/rhelhost1作成済みの設定ファイルを編集して、サンプルの値は、お使いの環境値に置き換えてください。
[rhelhost1.example.com] 1 type=vdsm 2 hypervisor_id=hostname 3
これで、Red Hat Enterprise Linux ハイパーバイザーインスタンスに必要な設定が完了しました。
ゲスト仮想マシンの登録
Red Hat Enterprise Linux ハイパーバイザーでホストされるゲスト仮想マシンを登録する場合には、ハイパーバイザーに割り当てられているサブスクリプションを使用することが重要です。
仮想マシンが Subscription Asset Manager に登録されるように設定します。
# yum install http://_rhsm.example.com_/pub/candlepin-cert-consumer.noarch.rpm
仮想マシンを登録します。
# subscription-manager register --org="organization_label"サブスクリプションを取得します。
# subscription-manager attach --pool=subscription_pool_ID
サブスクリプションプールがハイパーバイザーに使用したものと同じことを確認します。仮想マシンは、Subscription Asset Manager からサブスクリプションを取得します。このプロセスの詳細は「仮想マシンのサブスクリプションプロセス」を参照してください。
5.5. virt-who が VMware vCenter に接続するように設定する手順
virt-who のこのインスタンスが接続する VMware vCenter ホストごとにこの手順を繰り返します。
Red Hat Enterprise Virtualization Manager インスタンスに接続する際に使用するアカウントのパスワードを暗号化します。
virt-who-passwordコマンドを使用してパスワードを暗号化します。サンプルについては「virt-who ユーザーの作成」を参照してください。テンプレート設定ファイルを新しいファイルにコピーします。
各ハイパーバイザーの設定ファイルを簡単に指定するには、VMware vCenter のホスト名を新規ファイル名として使用します。この例のホスト名は
vcenterhost1です。# cp /etc/virt-who.d/template.conf /etc/virt-who.d/vcenterhost1作成済みの設定ファイルを編集して、サンプルの値は、お使いの環境値に置き換えてください。
[vcenterhost1] 1 type=esx 2 hypervisor_id=hostname 3 owner=org_label 4 env=Library 5 server=vcenterhost1.example.com 6 username=corporate\svc-virt-who 7 encrypted_password=bd257f93d@482B76e6390cc54aec1a4d 8
- 1
- これは、各 virt-who インスタンスごとに一意です。VMware vCenter ごとの設定ファイルを指定やすいように、Red Hat Enterprise Virtualization Manager ホストの名前を使用します。
- 2
type=esxパラメーターは、この virt-who が VMware vCenter に接続するように指定します。- 3
- サブクスクリプション管理 Web UI で、ハイパーバイザーがホスト名で特定されることを指定します。デフォルトでは、ハイパーバイザーの UUID が使用されますが、UUID は (名前に比べ) 分かりやすさに欠けます。
- 4
- 組織のラベル
- 5
- これにより、ホストが配置される環境を指定します。これは、
Libraryで なければなりません。 - 6
- VMware vCenter サーバーの完全修飾ホスト名または IP アドレス
- 7
- virt-who がハイパーバイザーに接続するアカウント名 (
domain_name\account_name形式)。domain_nameとaccount_nameの値は、バックスラッシュを 1 つ使用して分割します。ドメインアカウントとグローバルの設定ファイル/etc/sysconfig/virt-whoを使用する場合に必要なバックスラッシュの数は 2 つ です。詳細は、Red Hat ナレッジソリューションの「virt-who で Windows ドメインアカウントを使用する」を参照してください。 - 8
usernameで指定したアカウントのパスワードを暗号化します。
5.6. virt-who が Microsoft Hyper-V に接続するように設定する手順
virt-who デーモンでは、現在、Microsoft System Center 2012 R2 Virtual Machine Manager (SCVMM) ではサポートされません。virt-who が接続する各 Microsoft Hyper-V ホストにそれぞれ virt-who の設定ファイルが必要です。
virt-who のこのインスタンスが接続する各 Microsoft Hyper-V ホストでこの手順を繰り返します。
Windows Remote Management を有効にして、HTTP または HTTPS リスナーが実行中である必要があります。
Microsoft Hyper-V サーバーで以下を実行します。
# winrm quickconfig
Microsoft Hyper-V サーバーでリモート管理を有効にします
Microsoft Hyper-V サーバーで以下を実行します。
# netsh advfirewall firewall set rule group="Remote Administration" new enable=yes
HTTP を使用する場合は、暗号化のない接続を有効にします。
Microsoft Hyper-V サーバーで以下を実行します。
# winrm set winrm/config/service @{AllowUnencrypted="true"}Microsoft Hyper-V サーバーで設定された認証方法が Basic か NTLM を確認します。
Microsoft Hyper-V サーバーで以下を実行します。
# winrm get winrm/config/service/auth
Microsoft Hyper-V サーバーに接続する際に使用するアカウントのパスワードを暗号化します。
virt-who-passwordコマンドを使用してパスワードを暗号化します。サンプルについては「virt-who ユーザーの作成」を参照してください。テンプレート設定ファイルを新しいファイルにコピーします。
各ハイパーバイザーの設定ファイルを簡単に指定するには、Microsoft Hyper-V サーバーのホスト名を新規ファイル名として使用します。この例のホスト名は
hypervhost1です。作成済みの設定ファイルを編集して、サンプルの値は、お使いの環境値に置き換えてください。
[hypervhost1] 1 type=hyperv 2 hypervisor_id=hostname 3 owner=org_label 4 env=Library 5 server=hypervhost1.example.com 6 username=administrator 7 encrypted_password=bd257f93d@482B76e6390cc54aec1a4d 8
- 1
- これは、各 virt-who インスタンスごとに一意です。ハイパーバイザーごとの設定ファイルを指定しやすいように、Microsoft Hyper-V ホストの名前を使用します。
- 2
type=hypervは、virt-who の Microsoft Hyper-V ホストへの接続を指定します。- 3
- サブクスクリプション管理 Web UI で、ハイパーバイザーがホスト名で特定されることを指定します。デフォルトでは、ハイパーバイザーの UUID が使用されますが、UUID は (名前に比べ) 分かりやすさに欠けます。
- 4
- 組織のラベル
- 5
- これにより、ホストが配置される環境を指定します。これは、
Libraryで なければなりません。 - 6
- Microsoft Hyper-V サーバーの完全修飾ホスト名または IP アドレス
- 7
- virt-who がハイパーバイザーに接続するアカウント名。デフォルトは
Administratorです。別のアカウントを使用するには、ユーザーアカウントを作成して、そのアカウントを Hyper-V Administrators と Remote Management Users のグループ (Windows 2012 Server) に割り当てます。 - 8
usernameで指定したアカウントのパスワードを暗号化します。
5.7. virt-who サービスの設定および起動
サブスクリプション管理に virt-who サービスを設定します。
グローバルの
/etc/sysconfig/virt-who設定ファイルを編集して、以下のようにパラメーターを設定します。これにより、virt-who がサブスクリプション管理ホストと通信することを指定します。VIRTWHO_SAM=1
警告デフォルトでは、virt-who は 1 時間ごとに開始されます。間隔は、
VIRTWHO_INTERVALのグローバル設定パラメーターで定義され、秒単位で測定されます。この値は、Red Hat サポートのアドバイスがない限り、変更しないようにしてください。virt-who とゲスト仮想マシンの間の HTTP プロキシーを許可します。
virt-who が実行中のサーバーとハイパーバイザーまたは仮想化マネージャーの間に HTTP プロキシーがある場合には、グローバルの
/etc/sysconfig/virt-who設定ファイルを編集して、以下のようにパラメーターを設定します。http_proxy=http://proxy-ip-or-hostname:port-number
virt-who 設定を確認します。
virt-who --one-shotコマンドを実行すると、全設定ファイルを読み込み、全ソースから仮想マシン一覧を取得し、すぐに終了します。このように、設定ファイル、認証情報、設定済み仮想化プラットフォームへの接続性をテストします。# virt-who --one-shot
ハイパーバイザーとホストされているゲスト仮想マシンの一覧が JSON 形式で出力されます。以下は、VMware vSphere インスタンスからの virt-who の出力の抜粋です。ハイパーバイザーからの出力はすべて、以下のような構成になっています。
{ "guestId": "422f24ed-71f1-8ddf-de53-86da7900df12", "state": 5, "attributes": { "active": 0, "virtWhoType": "esx", "hypervisorType": "vmware" } },virt-who サービスを起動して有効化します。
Red Hat Enterprise Linux 7 の場合:
# systemctl start virt-who.service # systemctl enable virt-who.service
Red Hat Enterprise Linux 6 の場合:
# service virt-who start # chkconfig virt-who on
virt-who サービスが正常に開始されたことを確認します。
Red Hat Enterprise Linux 7 の場合:
# systemctl status virt-who.service
このコマンドからの出力は、以下のようになります。
virt-who.service; enabledの出力でこのサービスが有効であることが確認でき、Active: active (running)でこのサービスが起動していることを確認できます。● virt-who.service - Daemon for reporting virtual guest IDs to subscription-manager Loaded: loaded (/usr/lib/systemd/system/virt-who.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2016-03-11 14:59:05 AEST; 47s ago
Red Hat Enterprise Linux 6 の場合:
# service virt-who status
このコマンドからの出力は、以下のようになります。
virt-who (pid 7474) is running...
5.7.1. virt-who サービスの再起動
1 つまたは複数の virt-who 設定ファイルを変更した場合、またはサブスクリプション管理の設定環境を変更した場合は、virt-who サービスを再起動して変更を適用してください。たとえば、virt-who アカウントのパスワードを変更したり、ハイパーバイザーを新規組織に移動した場合は virt-who を再起動する必要があります。
Red Hat Enterprise Linux 7 の場合:
# systemctl restart virt-who.service
Red Hat Enterprise Linux 6 の場合:
# service virt-who restart
第6章 トラブルシューティング
6.1. デバッグ向けのロギング
デフォルトでは、virt-who はすべてのアクティビティーを /var/log/rhsm/rhsm.log ファイルにロギングします。ログファイルには役立つ情報が含まれている可能性があるため、トラブルシューティングを行う場合はログファイルを確認するようにしてください。詳細のロギングを有効にするには、グローバル設定ファイル /etc/sysconfig/virt-who のデバッグ行を VIRTWHO_DEBUG=1 に変更します。virt-who をサービスとして実行している場合は、再起動して設定を適用する必要があります。 潜在する問題を解決したら、デバッグ行を VIRTWHO_DEBUG=0 に戻し、virt-who を再起動して、診断ロギングを無効にしてください。
6.2. 設定行が重複する場合
グローバルファイルやハイパーバイザー固有のファイルなど、設定ファイルが複数存在する可能性があるため、設定行が重複すると、virt-who が意図したものとは異なる動作をする可能性があります。
virt-who 設定ファイルの重複行を検出するには、以下のコマンドを使用します。このコマンドの出力は、指定ファイルの行を一覧表示し、行頭に重複回数を追加します。2 回以上記載されている行をすべて確認して重複行を削除し、virt-who サービスを再起動します。使用方法は「virt-who サービスの再起動」を参照してください。
cat /etc/sysconfig/virt-who /etc/virt-who.d/* | sort | uniq -c
6.3. 認証情報
認証情報に誤りがあると、virt-who で問題が発生する可能性があります。できる限り、仮想化マネージャーまたはハイパーバイザーにログインして、virt-who が使用するように設定した認証情報をテストするようにしてください。たとえば、VMware vSphere の管理コンソールにログインし、必要なホストが表示され、認証情報が正しいことを確認します。
6.4. 設定オプションのテスト
トラブルシューティング時に問題の根本原因を判断するためには、変更を加えて結果をテストしていくことを必要に応じて繰り返していくのが一般的な方法です。virt-who エージェントは、この手法を使用しやすいようなオプションを提供します。
virt-who --one-shot コマンドを実行すると、全設定ファイルを読み込み、全ソースから仮想マシン一覧を取得し、すぐに終了します。このように、設定ファイル、認証情報、設定済み仮想化プラットフォームへの接続性をテストします。
# virt-who --one-shot
ハイパーバイザーとホストされているゲスト仮想マシンの一覧が JSON 形式で出力されます。以下は、VMware vSphere インスタンスからの virt-who の出力の抜粋です。ハイパーバイザーからの出力はすべて、以下のような構成になっています。
{
"guestId": "422f24ed-71f1-8ddf-de53-86da7900df12",
"state": 5,
"attributes": {
"active": 0,
"virtWhoType": "esx",
"hypervisorType": "vmware"
}
},6.5. シナリオ例
6.5.1. Virt-who が仮想化プラットフォームとの接続に失敗した場合
virt-who が仮想化プラットフォームとの接続に失敗した場合は、Red Hat Subscription Manager のログファイル /var/log/rhsm/rhsm.log を確認します。No route to host メッセージが表示された場合は、ハイパーバイザーが予想したのとは異なるポートをリッスンしていることがその原因として考えられます。たとえば、Red Hat Virtualization Manager には、後方互換用にポート 8443 をデフォルト設定していますが、virt-who のデフォルトはポート 443 です。このような場合は、/etc/virt-who.d/ ディレクトリーのハイパーバイザーの設定を編集して、server 行の値に :443 と追加し、server=https://rhevmhost1.example.com:443 とします。
