Libvirt
[Wikipedia|▼Menu]

libvirt
開発元Red Hat
libvirt community ⇒[1]

最新版6.3.0 / 2020年5月5日 (4年前) (2020-05-05)[1]
リポジトリ

gitlab.com/libvirt/libvirt

プログラミング
言語C
プラットフォームクロスプラットフォーム
種別仮想化管理API
ライセンスLGPL
公式サイト ⇒libvirt.org
テンプレートを表示
libvirtはKVMなどのハイパーバイザをサポートし、virt-managerなどの管理ソリューションをサポートする。

libvirtとは、仮想化管理用の共通APIを提供する、レッドハットを中心としたオープンソースプロジェクトである。
概要

libvirtは仮想機械の制御を抽象化したライブラリである。本ライブラリの特徴は、サポート範囲が広いことである。サポートしている仮想化は、現在XenKVMQEMULXCOpenVZUMLVirtualBoxVMware ESX・GSX・Workstation・Player、Hyper-V、そしてクラスタ管理ソフトOpenNebulaである。更なる対象仮想機械の拡大を目指して例えば、対応やLinux-VServerのサポートをどうするかなどが開発者メーリングリスト上で議論された。また、様々な版数でのサポートも特徴である。たとえば、Xenのリリースされたさまざまな版(例えばXen3.1.0やXen3.0.3など)で動作する。またUnix系オペレーティングシステムだけでなく、Windows上でもMinGWCygwinを使えば動作する。

libvirt自体が多くの種類の仮想化をサポートしていても、必ずしもlibvirtを利用しているアプリケーションが全ての仮想化をサポートしているというわけではなく、KVMやXenなどがlibvirtを利用しているアプリケーションのサポートの中心となっている。

またハードウェアプラットフォームに着目すると、CPUの場合、x86x86-64IA-64POWERなどをサポートしており、ビット (32/64) およびエンディアンを問わない。

このような幅広いサポートを行っているため、仮想機械を制御するインタフェースとしては、事実上の標準の地位を築きつつある。例えば、RHEL5上で仮想機械を管理するためのアプリケーションであるVirtual Machine Managerの実装においても利用されている[2]

本ソフトウェアのライセンスはLGPLで提供されている。このため、GPLで開発されているXenのライブラリ (libxc) に比べてアプリケーション開発者の視点では使い勝手が良い。

標準提供APIはCPythonである。またその他の言語 (Perl, OCaml, Ruby, Java) のAPIもオプションパッケージで提供されている。また、運用管理の標準インタフェースであるCIMへの対応もIBMを中心にCMPI CIM Providerとしてlibvirt-CIMの開発が進んでいる。なお、CMPIは、Common Manageability Programming Interfaceの略である。

セキュリティ拡張として、MACアクセス制御との連携を考えた ⇒sVirtが検討されている。

本プロジェクトのメンテナーは、Daniel Veillard(通称Daniel)、Daniel Berrange(通称Dan)、Richard W.M.Jones(通称Rich)などレッドハットの開発者である。そのほか、レッドハット以外にもIBMやノベル富士通の開発者にソースコードの変更権が与えられている。
ソフトウェア構成

libvirtの実装はlibvirt.cを中心としたソフトウェア構成になっている。libvirtのAPIを利用しているアプリケーションとしては、管理コマンドvirshが提供されている。また、Python Bindingsもlibvirt.cの上位に位置する。

一方、各種仮想機械の制御ドライバは、libvirt.cの下に位置する。例えばXenの制御層の実装では、Xen統合管理層 (xen_unified.c) から、それぞれのXenのモジュールを呼び出す形になっている。ハイパーバイザ直接 (xen_internal.c)、管理ツールであるXend (xend_internal.c)、管理データベースであるxenstore (xs_internal.c) を呼び出している。

また、ネットワーク越しの制御に関するコードは、以下の通りである。クライアント側では、remote_internal.cを介してリクエストを発行する。サーバ側では、libvirtd(コード的には、qemudディレクトリ以下)を介して、libvirtAPIを使って制御を行う。
アクセス制御

libvirtAPIを使う前にクライアント認証を必要とする接続がある。

接続で用いるクライアント認証方法は、管理者が選択できる。

この選択は、libvirtAPIを用いるアプリケーションに依存せず、統一的に適用される。

サーバ設定

UNIXドメインソケットによる伝統的権限管理


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:30 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef