virt-whoとはなにか

Red Hatの森若です。

RHEL独特のソフトウェアのひとつに、virt-who というものがあります。 virt-whoは購入したサブスクリプションを管理するための仕組みの一部で、2013年ごろに登場しました。

今回はこの紹介をします。なおスライド形式の資料をこの記事末尾に埋め込んでいます。

過去のサブスクリプション管理にあった課題

virt-whoが解決する課題を理解するために、virt-who以前の状況を見てみましょう。

Red Hat Enterprise LinuxをはじめとするRed Hat製品は、利用しているシステムの数を企業全体で数え上げて、必要なだけサブスクリプションを購入する契約になっています。

総数が足りていればよいので、2013年くらいまで主に使われていた古い仕組みでは、製品種別ごとにシステム登録数を数えあげ、所有しているサブスクリプションを積み上げた上限と比較する仕組み(Red Hat Network Classic)でした。登録されたシステムでは yum (またはup2date)によるパッケージ更新などが行えます。

f:id:mrwk:20191009124844p:plain

物理サーバしかなかった頃にはこの方式で問題なかったのですが、1ホスト上で仮想マシンを多数動かせるようになると齟齬がでてきました。

RHELには「1ホスト上であれば仮想マシンを無制限に構築できる」というサブスクリプションがあります。当時はあまりうまい方法がなく、ゲスト数無制限のサブスクリプションを1本買うと、単純に登録できる仮想マシンが100システム増えるという非常におおざっぱな実装になっていました。

f:id:mrwk:20191009125837p:plain

たとえばこの図のように、仮想化クラスタの物理サーバを当初2台で構築し、ハードウェアを1台増設したが該当するサブスクリプションを購入しない場合、契約違反になってしまいます。しかしVMの数を数えているだけでしたので警告すら発生しませんでした。

さらにSOX法やPCI-DSSなどを背景としてサブスクリプション管理(ライセンス管理)を厳密に行い、どのサブスクリプションとどのシステムが対応しているかを厳密に把握したいという顧客側のニーズもありました。

subscription-manager, virt-who, Red Hat Satellite 6登場

2013年にRHELの製品体系が変わり、その後従来より厳密な新しい管理方式(Red Hat Subscription Management)が登場しました。数年の移行期間を経たのち従来の仕組みは廃止され、現在では2020年5月にサポートが終了するRed Hat Satellite 5のユーザを例外として、全て新しい方式で提供されています。新しい管理方式では、subscription-manager で各システムをRed Hat Networkに登録し、virt-whoでハイパーバイザとゲストの対応づけを行います。

f:id:mrwk:20191009141106p:plain

インターネット接続できないなどの理由でRed Hat Networkに接続できない場合には、同じサブスクリプション管理の仕組みを実装したRed Hat Satellite 6を導入します。 (登場直後は、サブスクリプション管理だけを行うRed Hat Subscription Asset Managementが提供されていましたが現在では廃止されています。)

subscription-managerは全てのRHELシステム上で動作し、自分自身を登録します。一方virt-whoは、ハイパーバイザとゲストの対応関係を登録するので、どこに存在してもかまいません。

f:id:mrwk:20191009142255p:plain

仮想マシンは複数のハイパーバイザ間を移動できますので、virt-whoは定期的に情報を取得・更新する必要があります。

virt-whoの設定や利用などに関連するドキュメント等

上記のような RHEL特有のニーズで作成されたものですので、virt-who自体はオープンソースなのですが、関連するドキュメントや知見はRed Hat Customer Portalに集中しています。

virt-who FAQ集

  • yum updateなどを利用しない場合、virt-whoやsubscription-managerを利用してサブスクリプション管理をすることに価値はありますか?

→ソフトウェアの機能としては特にありません。 契約を守るというコンプライアンスの観点で、知らない内に契約違反になってしまうリスクを回避できます。 資産管理の観点から、どの契約がどのシステムに対応しているかの対応を管理することができます。

  • virt-whoによる対応づけは必須ですか?

→いいえ。契約上の必要本数以上サブスクリプションを購入していれば登録も対応づけも必須ではありません。

  • virt-whoによる対応づけをしないとどうなりますか?

→24時間の猶予ののち、各仮想マシンは物理サーバ1台として扱われます。

  • そもそもシステムを登録しないことは可能ですか?

→ 可能です。インストールされたシステムに機能の制約などはありませんが、Customer PortalやSatelliteを利用するyum update等は利用できません。

  • virt-whoのために独立した仮想マシンは必要ですか?

→ 必須ではありません。virt-whoは他のサービスを利用しているシステムに同居できます。 お客様が「サービスを提供しているシステムはvCenterと直接通信できない」という運用ポリシーの場合に、別途構築するケースはあります。

  • virt-whoは対応付けに関連する仮想化環境上で動作する必要がありますか?

→ いいえ。virt-whoは仮想化環境およびサブスクリプション管理システムと適切に通信できればどこで動作してもかまいません。

  • virt-whoを動作させるために必要な仮想化環境などの設定を教えてください

仮想インスタンスガイド をご確認ください。

  • インターネットに接続できません。どうしたらいいですか?

→「システムを登録しない」「Red Hat Satelliteを構築しシステムを登録」の2とおりのオプションがあります

  • virt-whoが動作する仮想マシンからvCenterなど仮想化環境の管理システムへの接続が社内ポリシーなどの都合でできません。どうしたらいいですか?

→ virt-whoを別途物理サーバ等で動作させることが可能です。 どこからも仮想化環境の管理システムに接続できない場合、対応できません。

  • サポート対象外の仮想化環境(Nutanix AHV, Citrix XenServer, OracleVM, VirtualBox, VMware Fusionなど)でvirt-whoは動作しますか?

→ おそらくほとんどの場合に動作しませんがサポート対象外なので回答できません。 動作しなくて困ってもサポート対象外なのでサポート窓口へのお問いあわせもご遠慮ください。 契約上、無制限ゲストの型番を利用すること自体は可能です。ただし、上記のとおり動作しなくてもサポートすることができません。ご注意ください。

virt-who紹介スライド

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません