Libvirtとは仮想マシンの制御を抽象化したライブラリです。
簡単に言うと様々な仮想化技術を操るためのフロントエンドといったところでしょうか。。。
Libvirt for LDoms 1.0.1 はその名の通り、LDoms を操作するための Libvirt です。当然、LDoms に精通されている方は ldm コマンドを駆使して何でもできるので Libvirt は必要ないです。ただ、Xen やら他の仮想化技術の知識が既にある方にとっては、LDoms を一から習得するのも面倒ですよね。そんな方のための Libvirt for LDoms なわけです。
Libvirt for LDoms 1.0.1 には以下の図の青色になっている部分が含まれています。LDoms Manager は含まれていませんので、あらかじめインストールしておきます。残念ですが、GUIで簡単に操作できるvirt-managerは現バージョンではまだ含まれていません。
以下の Logical Domains Manager 1.0.1 のダウンロードサイトから入手できます。
最近では Logical Domains Manager ソフトウェアと同じアーカイブの中に入っていますので、1.0.2 以降をダウンロードした方は、パッケージのディレクトリの中で SUNWldlibvirt.v や SUNWldvirtinst.v を見つけてください。
⇒ Logical Domains Manager 1.0.1 のダウンロード
以下のように Libvirt_LDoms-1_0_1.zip を展開し、パッケージをインストールするだけです。
primary# ls Libvirt_LDoms-1_0_1.zip primary# unzip Libvirt_LDoms-1_0_1.zip Archive: Libvirt_LDoms-1_0_1.zip creating: Libvirt_LDoms-1_0_1/ creating: Libvirt_LDoms-1_0_1/Legal/ inflating: Libvirt_LDoms-1_0_1/Legal/LGPLDisclaimer.txt inflating: Libvirt_LDoms-1_0_1/Legal/THIRDPARTYREADME(20071220).txt ... inflating: Libvirt_LDoms-1_0_1/README primary# cd Libvirt_LDoms-1_0_1 primary# ls Legal Product README primary# cd Product primary# ls SUNWldlibvirt.v SUNWldvirtinst.v primary# pkgadd -d . SUNWldlibvirt.v </var/tmp/Libvirt_LDoms-1_0_1/Product> 中のパッケージインスタンス <SUNWldlibvirt.v> を処理中です。 Libvirt for Logical Domains 1.0.1(sparc.sun4v) 1.0,REV=2007.12.20.16.53 Copyright 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. </> をパッケージのベースディレクトリとして使用します。 ## パッケージ情報を処理中です。 ## システム情報を処理中です。 6 個のパッケージパス名がすでに正しくインストールされています。 ## パッケージの依存関係を検査しています。 ## ディスク領域の要件を確認中です。 ## すでにインストール済みのパッケージとの重複を確認中で## すでにインストール済みのパッケージとの重複を確認中です。 ## setuid/setgid を行うプログラムを検査中です。 このパッケージには、パッケージのインストール処理中にスーパーユーザーの アクセス権で実行するスクリプトが含まれています。 <SUNWldlibvirt> のインスト��ルを継続しますか [y,n,?] y Libvirt for Logical Domains 1.0.1 を <SUNWldlibvirt> としてインストール中です。 ## 1/1 部分をインストールしています。 /usr/bin/virsh /usr/include/libvirt/libvirt.h /usr/include/libvirt/virterror.h /usr/lib/libvirt.so <シンボリックリンク> /usr/lib/libvirt.so.0 <シンボリックリンク> /usr/lib/libvirt.so.0.3.2 /usr/lib/python2.4/vendor-packages/libvirt.py /usr/lib/python2.4/vendor-packages/libvirtmod.so [ クラスインストールは以上で終わりです。を検査しています ] ## postinstall スクリプトを実行中です。 <SUNWldlibvirt> のインストールに成功しました。 primary# pkgadd -d . SUNWldvirtinst.v </var/tmp/Libvirt_LDoms-1_0_1/Product> 中のパッケージインスタンス <SUNWldvirtinst.v> を処理中です。 Virtual install for Logical Domains 1.0.1(sparc.sun4v) 1.0,REV=2007.12.19.11.26 Copyright 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. </> をパッケージのベースディレクトリとして使用します。 ## パッケージ情報を処理中です。 ## システム情報を処理中です。 5 個のパッケージパス名がすでに正しくインストールされています。 ## パッケージの依存関係を検査しています。 ## ディスク領域の要件を確認中です。 ## すでにインストール済みのパッケージとの重複を確認中です。 ## setuid/setgid を行うプログラムを検査中です。 Virtual install for Logical Domains 1.0.1 を <SUNWldvirtinst> としてインストール中です。 ## 1/1 部分をインストールしています。 /usr/lib/python2.4/vendor-packages/urlgrabber/__init__.py /usr/lib/python2.4/vendor-packages/urlgrabber/byterange.py /usr/lib/python2.4/vendor-packages/urlgrabber/grabber.py /usr/lib/python2.4/vendor-packages/urlgrabber/keepalive.py /usr/lib/python2.4/vendor-packages/urlgrabber/mirror.py /usr/lib/python2.4/vendor-packages/urlgrabber/progress.py /usr/lib/python2.4/vendor-packages/urlgrabber/sslfactory.py /usr/lib/python2.4/vendor-packages/virtinst/DistroManager.py /usr/lib/python2.4/vendor-packages/virtinst/FullVirtGuest.py /usr/lib/python2.4/vendor-packages/virtinst/Guest.py /usr/lib/python2.4/vendor-packages/virtinst/Makefile /usr/lib/python2.4/vendor-packages/virtinst/ParaVirtGuest.py /usr/lib/python2.4/vendor-packages/virtinst/__init__.py /usr/lib/python2.4/vendor-packages/virtinst/util.py /usr/sbin/virt-install [ クラス <none> を検査しています ] <SUNWldvirtinst> のインストールに成功しました。
virsh コマンドは以下の場所にインストールされます。
primary# which virsh /usr/bin/virshLDoms を virsh コマンドで操作するには以下のように実行します。
primary# virsh -c ldoms:///default vshInit() LDOMS enabled vshInit() LDOMS DEBUG NOT enabled Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit以下のように virsh プロンプトが表示されるので、help と入力して利用できるサブコマンドを表示します。
virsh # help Commands: help print help console connect to the guest console create create a domain from an XML file destroy destroy a domain define define (but don't start) a domain from an XML file domid convert a domain name or UUID to domain id dominfo domain information domname convert a domain id or UUID to domain name domstate domain state domuuid convert a domain name or id to domain UUID dumpxml domain information in XML hostname print the hypervisor hostname list list domains nodeinfo node information quit quit this interactive terminal setmem change memory allocation setvcpus change number of virtual CPUs shutdown gracefully shutdown a domain start start an inactive or bound domain undefine undefine an inactive domain vcpuinfo domain vcpu information version show version■ ノード情報の表示
virsh # nodeinfo CPU model: SPARC CPU(s): 24 CPU frequency: 1000 MHz CPU socket(s): 1 Core(s) per socket: 8 Thread(s) per core: 4 NUMA cell(s): 1 Memory size: 8257536 kB■ 仮想CPUの表示
virsh # vcpuinfo primary Jun 5 09:51:47 t2000-1 genunix: NOTICE: core_log: virsh[1310] core dumped: /var/core/core_t2000-1_virsh_0_0_1212627106_1310 セグメント例外 (core dumped)■ バージョン情報の表示
virsh # version Compiled against library: libvir 0.3.2 Using library: libvir 0.3.2 Using API: LDoms 1.0.1 Running hypervisor: LDoms 1.5.2■ virsh コマンドの終了
virsh # quit
virt-install スクリプトを使用してゲストドメインの作成やゲストへのリソースの追加を行う前に、LDoms 制御 (primary) ドメインで次のことを確認してください。
virt-install は以下の場所にインストールされています。
primary# which virt-install /usr/sbin/virt-installLDoms のゲストドメインをインストールするには以下のように行います。
primary# virt-install --connect=ldoms:///default Traceback (most recent call last): File "/usr/sbin/virt-install", line 24, in ? import libxml2 File "/usr/lib/python2.4/vendor-packages/libxml2.py", line 215 pass ^ TabError: inconsistent use of tabs and spaces in indentationっと、さっそくエラーで止まってしまいました。が、ご安心を。
気を取り直して以下のようにもう一度実行します。
primary# virt-install --connect=ldoms:///default What is the name of your virtual machine? ldom3 How much RAM should be allocated (in megabytes)? 1900 What would you like to use as the disk (path)? /test/ldom3root How large would you like the disk (/test/ldom3root) to be (in gigabytes)? 8
上記設定では、
論理ドメイン名:ldom3
メモリサイズ:1900MB
仮想ディスク(インストール用):/test/ldom3root
仮想ディスクのサイズ:8GB
ということになります。
この対話モードでは仮想CPUの数が聞かれないので、デフォルトの1に設定されてしまいます。複数CPUを割り当てる場合は、--vcpus=4 などのオプションを付けて実行します。まぁインストール後にすぐ変更できますので、リソースに関しては大した問題ではないですね。
設定を終わると以下のように自動的に必要なファイル(仮想ディスク用)などを作成してインストールが始まろうとします。
Starting install... libvir: LDoms error : Domain not found: no domain name match Creating the virtual disk file /test/ldom3root... It might take a few minutes to complete. LDom ldom3 started MAC address 00:14:4f:f9:5f:bd is used for a virtual network device vnet1 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Connecting to console "ldom3" in group "ldom3" .... Press ~? for control options .. ok
ここで ldom3 のネットワークインタフェース vnet1 が使用する MACアドレス(00:14:4f:f9:5f:bd)が上記のようにわかるので、JumpStartサーバーの/etc/ethersに登録しておきます。
ちなみに以下のように設定されているエイリアスを確認するとvdisk1やらvnet1やらが既に定義されています。
ok devalias vdisk1 /virtual-devices@100/channel-devices@200/disk@0 vnet1 /virtual-devices@100/channel-devices@200/network@0 virtual-console /virtual-devices/console@1 net /pci@780/network@1,1 disk /pci@7c0/scsi@1/disk@0 scsi /pci@7c0/scsi@1 ttyb /virtual-devices/console@4 nvram /virtual-devices/nvram@3 ttya /virtual-devices/console@1 vdisk /virtual-devices/disk@0 name aliasesあとは普通にJumpStartインストールをするだけです。
ok boot vnet1 - install Boot device: /virtual-devices@100/channel-devices@200/network@0 File and args: - install Requesting Internet Address for 0:14:4f:f9:5f:bd SunOS Release 5.10 Version Generic_120011-14 64-bit Copyright 1983-2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. ...
あとは待っていればインストールが完了して、ゲストドメインにコンソールログインができる状態まで自動的に上がってきます。
インストールでコケちゃう場合は、インストールサーバー側やネットワークの問題だと思いますので、再度確認してみてください。
Solaris 11.2 システムハンドブック![]() |
Oracle Solaris 11 試験対策本(OCA)![]() |