centosでkvm
いままで、kvmはすべてdebian系ではしらせていて、centos系でためしたことが
なかったのはひみつです。
土曜日だし、ためしてみるかね。
ってことで、
http://www.server-world.info/query?os=CentOS_5&p=kvm
[root@ml115-cent5-14 ~]# lsmod | grep kvm kvm_amd 67624 0 kvm 224928 2 ksm,kvm_amd [root@ml115-cent5-14 ~]#
なにはなくともカーネルモジュールの状態確認。
[root@ml115-cent5-14 rc.d]# yum erase qemu-img Loaded plugins: fastestmirror Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package qemu-img.x86_64 2:0.10.5-1.el5.2 set to be erased --> Processing Dependency: qemu-img = 2:0.10.5-1.el5.2 for package: qemu --> Running transaction check ---> Package qemu.x86_64 2:0.10.5-1.el5.2 set to be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: qemu-img x86_64 2:0.10.5-1.el5.2 installed 156 k Removing for dependencies: qemu x86_64 2:0.10.5-1.el5.2 installed 0.0 Transaction Summary ================================================================================ Remove 2 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : qemu-img 1/2 Erasing : qemu 2/2 Removed: qemu-img.x86_64 2:0.10.5-1.el5.2 Dependency Removed: qemu.x86_64 2:0.10.5-1.el5.2 Complete! [root@ml115-cent5-14 rc.d]# yum install kvm kmod-kvm kvm-qemu-img libvirt python-virtinst bridge-utils Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.jaist.ac.jp * epel: ftp.jaist.ac.jp * extras: ftp.jaist.ac.jp * rpmforge: fr2.rpmfind.net * updates: ftp.jaist.ac.jp Setting up Install Process Package kvm-83-239.el5.centos.x86_64 already installed and latest version Package kmod-kvm-83-239.el5.centos.x86_64 already installed and latest version Package libvirt-0.8.2-22.el5.x86_64 already installed and latest version Package libvirt-0.8.2-22.el5.i386 already installed and latest version Package python-virtinst-0.400.3-12.el5.noarch already installed and latest version Package bridge-utils-1.1-3.el5.x86_64 already installed and latest version Resolving Dependencies --> Running transaction check ---> Package kvm-qemu-img.x86_64 0:83-239.el5.centos set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: kvm-qemu-img x86_64 83-239.el5.centos base 182 k Transaction Summary ================================================================================ Install 1 Package(s) Upgrade 0 Package(s) Total size: 182 k Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : kvm-qemu-img 1/1 Installed: kvm-qemu-img.x86_64 0:83-239.el5.centos Complete! [root@ml115-cent5-14 rc.d]#
[root@ml115-cent5-14 rc.d]# cd /etc/init.d/ [root@ml115-cent5-14 init.d]# ls -l | grep kvm [root@ml115-cent5-14 init.d]# [root@ml115-cent5-14 init.d]# [root@ml115-cent5-14 init.d]# ls -l | grep lib -rwxr-xr-x 1 root root 8006 7月 22 15:50 libvirt-guests -rwxr-xr-x 1 root root 3024 7月 22 15:50 libvirtd [root@ml115-cent5-14 init.d]# [root@ml115-cent5-14 init.d]# chkconfig --list | grep libvirtd libvirtd 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@ml115-cent5-14 init.d]# [root@ml115-cent5-14 init.d]# /etc/init.d/libvirtd restart Stopping libvirtd daemon: [ OK ] Starting libvirtd daemon: [ OK ] [root@ml115-cent5-14 init.d]#
[root@ml115-cent5-14 network-scripts]# cat ifcfg-br0 # Broadcom Corporation NetXtreme BCM5722 Gigabit Ethernet PCI Express DEVICE=br0 BOOTPROTO=static HWADDR=00:23:7D:61:43:4A ONBOOT=yes NETMASK=255.255.255.0 IPADDR=192.168.1.14 GATEWAY=192.168.1.1 TYPE=Bridge USERCTL=no IPV6INIT=yes PEERDNS=yes [root@ml115-cent5-14 network-scripts]# cat ifcfg-eth0 # Broadcom Corporation NetXtreme BCM5722 Gigabit Ethernet PCI Express DEVICE=eth0 BOOTPROTO=static HWADDR=00:23:7D:61:43:4A ONBOOT=yes NETMASK=255.255.255.0 IPADDR=192.168.1.14 GATEWAY=192.168.1.1 TYPE=Ethernet USERCTL=no IPV6INIT=yes #PEERDNS=yes BRIDGE=br0 [root@ml115-cent5-14 network-scripts]#
[root@ml115-cent5-14 network-scripts]# ifconfig br0 Link encap:Ethernet HWaddr 00:23:7D:61:43:4A inet addr:192.168.1.14 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: 2001:c90:ea4:3011:223:7dff:fe61:434a/64 Scope:Global inet6 addr: fe80::223:7dff:fe61:434a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7991 errors:0 dropped:0 overruns:0 frame:0 TX packets:5920 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:6389414 (6.0 MiB) TX bytes:720266 (703.3 KiB) eth0 Link encap:Ethernet HWaddr 00:23:7D:61:43:4A inet6 addr: fe80::223:7dff:fe61:434a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7996 errors:0 dropped:0 overruns:0 frame:0 TX packets:5949 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6534284 (6.2 MiB) TX bytes:764558 (746.6 KiB) Interrupt:58 Memory:fdff0000-fe000000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2393 errors:0 dropped:0 overruns:0 frame:0 TX packets:2393 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3872013 (3.6 MiB) TX bytes:3872013 (3.6 MiB) virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:53 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:11150 (10.8 KiB) [root@ml115-cent5-14 network-scripts]#
んでこんな感じで実行
[hirasawa@ml115-cent5-14 mnt2]$ cat virt-install.sh virt-install \ -n www \ 仮想マシン名 -r 1024 \ メモリ -f /mnt/mnt2/www.img \ 保管場所 -s 40 \ ディスク容量 --vcpus=2 \ --os-type linux \ --os-variant=rhel5.4 \ --network bridge=br0 \ --nographics \ --location='http://ftp.riken.jp/Linux/centos/5.7/os/x86_64/' \ --extra-args='console=tty0 console=ttyS0,115200n8' [hirasawa@ml115-cent5-14 mnt2]$ [hirasawa@ml115-cent5-14 mnt2]$ ls -ltr | grep virt -rwxr-xr-x 1 root root 271 11月 6 12:41 virt-install.sh [hirasawa@ml115-cent5-14 mnt2]$
rootになって、virt-instll.shを起動すると、ターミナル上,CUIで
インストールが行われる。
インストール自体はいつものとおり。
インストール終了後、rebootすると、インストールされたイメージがおなじ
画面にてたちあがる。(ふーん、
こんな感じ
[root@localhost ~]# ctrl + ] でホストに(telnetとおんなじ?) [root@ml115-cent5-14 mnt2]# virsh console www でゲストに Connected to domain www エスケープ文字は ^] です [root@localhost ~]#
クリーンインストール直後の最小構成のイメージをコピーする場合は、
[root@ml115-cent5-14 mnt2]# pwd /mnt/mnt2 [root@ml115-cent5-14 mnt2]# ls -ltr 合計 4530684 drwx------ 2 root root 16384 4月 1 2011 lost+found -rwxr-xr-x 1 root root 271 11月 6 12:41 virt-install.sh -rwxr-xr-x 1 root root 42949672960 11月 6 17:43 www.img [root@ml115-cent5-14 mnt2]# virt-clone --original www -name template --file /mnt/mnt2/template.img ERROR Domain with devices to clone must be paused or shutoff. [root@ml115-cent5-14 mnt2]#
おう、be paused or shutoff ですか。
どうやってpause すんだ。
#virsh --helpでコマンドの詳細がみえるね
[root@ml115-cent5-14 mnt2]# virsh --help virsh [オプション] [コマンド] オプション: -c | --connect <uri> ハイパーバイザー接続 URI -r | --readonly 読み込みのみで接続 -d | --debug <num> デバッグレベル [0-5] -h | --help 本ヘルプ -q | --quiet 抑止モード -t | --timing タイミング情報を出力 -l | --log <file> ログをファイルへ書き込み -v | --version プログラムバージョン コマンド (非対話式モード): help ヘルプの表示 attach-device XML ファイルからデバイスを追加 attach-disk ディスク装置の接続 attach-interface ネットワークインターフェースを接続します autostart ドメインの自動起動 capabilities 能力情報 cd change the current directory connect ハイパーバイザーに(再)接続 console ゲストのコンソールに接続 cpu-baseline compute baseline CPU cpu-compare compare host CPU with a CPU described by an XML file create XML ファイルからドメインの作成 start (以前に定義した)停止状態のドメインの起動 destroy ドメインの強制停止 detach-device XML ファイルからデバイスを削除 detach-disk ディスク装置の削除 detach-interface ネットワークインターフェースの削除 define XML ファイルからドメインを登録(ただし起動しない) domid ドメイン名または UUID をドメイン id に変換 domuuid ドメイン名または id をドメイン UUID に変換 dominfo ドメインの情報 domjobinfo domain job information domjobabort abort active domain job domname ドメイン id または UUID をドメイン名に変換 domstate ドメインの状態 domblkstat ドメインのデバイスブロックの状態を取得します。 domifstat ドメインのネットワークインターフェースの状態を取得します。 dommemstat get memory statistics for a domain domblkinfo domain block device size information domxml-from-native ネイティブ設定をドメイン XML に変換 domxml-to-native ドメイン XML をネイティブ設定に変換 dumpxml XML 形式のドメイン情報 edit ドメイン用の XML 設定を編集 find-storage-pool-sources 可能なストレージプールソースを見つける find-storage-pool-sources-as 可能なストレージプールソースを探す freecell NUMA 空きメモリー: hostname ハイパーバイザーのホスト名を表示します list ドメインの一覧を表示 migrate 他のホストにドメインを移動させる migrate-setmaxdowntime set maximum tolerable downtime net-autostart ネットワークの自動起動 net-create XML ファイルからネットワークの作成 net-define XML ファイルからネットワークを登録(起動はしない) net-destroy ネットワークの停止 net-dumpxml ネットワークの情報を XML 形式で表示 net-edit ネットワーク用の XML 設定を編集 net-list ネットワークの一覧を表示 net-name ネットワーク UUID をネットワーク名に変換 net-start (事前に登録した)停止状態のネットワークの起動 net-undefine 停止状態のネットワークの登録削除 net-uuid ネットワーク名をネットワーク UUID に変換 iface-list 物理ホストのインターフェイスを一覧表示 iface-name convert an interface MAC address to interface name iface-mac convert an interface name to interface MAC address iface-dumpxml interface information in XML iface-define define (but don't start) a physical host interface from an XML file iface-undefine 物理ホストインターフェイスを定義解除(設定から削除) iface-edit XML 設定を物理ホストインターフェイス用に編集 iface-start 物理ホストインターフェイスを開始( / "if-up" で有効にする) iface-destroy 物理ホストインターフェイスを停止(/ "if-down" で無効にする) managedsave managed save of a domain state nodeinfo ノード情報 nodedev-list enumerate devices on this host nodedev-dumpxml XML 形式のノードデバイス詳細 nodedev-dettach dettach node device from its device driver nodedev-reattach reattach node device to its device driver nodedev-reset reset node device nodedev-create ノード上に XML で定義されるデバイスを作成 nodedev-destroy ノード上のデバイスを停止 nwfilter-define define or update a network filter from an XML file nwfilter-undefine undefine a network filter nwfilter-dumpxml network filter information in XML nwfilter-list list network filters nwfilter-edit edit XML configuration for a network filter pool-autostart プールの自動起動 pool-build プールを構築 pool-create XML ファイルからプールの作成 pool-create-as 引数のセットからプールの作成 pool-define XML ファイルからプールを定義 (ただし起動しない) pool-define-as 引数のセットからプールを定義 pool-destroy プールを破壊 pool-delete プールの削除 pool-dumpxml XML 形式のプール情報 pool-edit ストレージプール用の XML 設定を編集 pool-info ストレージプール情報 pool-list プールの一覧を表示 pool-name プール UUID をプール名に変換 pool-refresh プールをリフレッシュ pool-start (以前に定義した)停止状態のプールの起動 pool-undefine 停止状態プールの定義解除 pool-uuid プール名をプール UUID に変換 secret-define define or modify a secret from an XML file secret-dumpxml XML 形式の秘密属性 secret-set-value 秘密値を設定 secret-get-value 秘密値を出力 secret-undefine undefine a secret secret-list list secrets pwd print the current directory quit 対話式ターミナルの終了 exit 対話式ターミナルの終了 reboot ドメインの再起動 restore ファイルに保存している状態からドメインを復元 resume ドメインの再開 save ドメインの状態をファイルに保存 schedinfo スケジューラーパラメーターを見る/設定する dump 解析のためにドメインのコアをファイルにダンプします shutdown ドメインを穏やかに停止 setmem メモリーサイズの変更 setmaxmem 最大メモリー上限の変更 setvcpus 仮想 CPU 数の変更 suspend ドメインの一時停止 ttyconsole tty コンソール undefine 停止状態のドメインの削除 update-device update device from an XML file uri ハイパーバイザーの標準的な URI を表示します vol-create XML ファイルからボリュームの作成 vol-create-from 別のボリュームを入力として使用して vol を作成 vol-create-as 引数のセットからボリュームの作成 vol-clone ボリュームをクローン vol-delete ボリュームを削除 vol-wipe wipe a vol vol-dumpxml XML 形式のボリューム情報 vol-info ストレージボリューム情報 vol-list ボリュームの一覧を表示 vol-pool returns the storage pool for a given volume key or path vol-path returns the volume path for a given volume name or key vol-name returns the volume name for a given volume key or path vol-key returns the volume key for a given volume name or path vcpuinfo ドメインの vcpu 情報 vcpupin 仮想 CPU アフィニティーの設定 version バージョンの表示 vncdisplay vnc 表示 snapshot-create Create a snapshot snapshot-current Get the current snapshot snapshot-delete Delete a domain snapshot snapshot-dumpxml Dump XML for a domain snapshot snapshot-list List snapshots for a domain snapshot-revert Revert a domain to a snapshot (コマンドに関する詳細は、 help <command> を指定します) [root@ml115-cent5-14 mnt2]#
pauseの仕方わからんw
つぎのようにshutdownしたあとにcloneするとうまくいくかな?
[root@ml115-cent5-14 mnt2]# virsh console www Connected to domain www エスケープ文字は ^] です [root@localhost ~]# shutdown -h now
shutdownしたあとに、ホストから
[root@ml115-cent5-14 mnt2]# pwd /mnt/mnt2 [root@ml115-cent5-14 mnt2]# virt-clone --original www -name template --file /mnt/mnt2/template.img Cloning /mnt/mnt2/www.img | 40 GB 06:05 Clone 'ame' created successfully. [root@ml115-cent5-14 mnt2]# [root@ml115-cent5-14 mnt2]# ls -ltr 合計 7775960 drwx------ 2 root root 16384 4月 1 2011 lost+found -rwxr-xr-x 1 root root 271 11月 6 12:41 virt-install.sh -rwxr-xr-x 1 root root 42949672960 11月 6 17:53 www.img -rwxr-xr-x 1 root root 42949672960 11月 6 18:00 template.img [root@ml115-cent5-14 mnt2]#
ふむ、できた。つーか、ただのcp?
diffとってみたら、おんなじだったけど、
設定ファイルを新規につくっているみたいですな
ame.xmlってのが新規(template.img)のための設定ファイルってことみたい。
ame? ameってなんだ?
[root@ml115-cent5-14 qemu]# pwd /etc/libvirt/qemu [root@ml115-cent5-14 qemu]# diff www.xml ame.xml 2,3c2,3 < <name>www</name> < <uuid>74e7e0fa-e391-f136-39f0-629161bbba70</uuid> --- > <name>ame</name> > <uuid>485cf8b9-0201-2b81-c529-42b846dfb57c</uuid> 26c26 < <source file='/mnt/mnt2/www.img'/> --- > <source file='/mnt/mnt2/template.img'/> 32c32 < <mac address='54:52:00:3b:78:04'/> --- > <mac address='54:52:00:38:e1:ab'/> [root@ml115-cent5-14 qemu]#
今日はここまでにしておきましょう。
祝! せんとでもうごいたよ