自宅がiDC?

自宅がiDC?

自宅に普通のPCを置いてレンタルサーバ?いえ、iDCです。

自宅がiDC? RSS Feed
 
 
 
 

KVMでサーバ仮想化 インストール編その2

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加


前回GUIから超お手軽のKVMインストールからVMへLinuxのインストールまでをやってみました。

でも、実際運用するにあたってはGUIが必須ではないでしょうし、余分なリソースを使ってしまいます。
何をするにしてもやっぱりCUIが便利でしょうしカスタマイズも手軽でしょう。
ってことで、今回はKVMを使うにあっての概要とVMの作成方法を手順にしたいと思います。

KVMによって仮想化を行い、VMを管理する方法やツールは多種多様です。
いろいろと調べてみましたが実に多くのツールがありました(はっきり言って混乱するぐらいありましたw) 。

自分なりに調べてみた結果、下記の様に管理ツールは分類され代表的なものがあります。

・CUI管理(KVMがインストールされたマシン上にコマンドラインで接続して管理)
qemu-kvm←KVMをパッケージからインストールした時点で使える。
virsh
kvmadm
OpenNebula
Ganeti

・GUI/Desktop管理(KVMがインストールされたマシン上のデスクトップでGUI管理)
Virtual Machine Manager
GKVM
AQemu

・GUI/Web管理(KVMがインストールされたマシン上にブラウザから接続してGUI管理)
Red Hat Enterprise Virtualization
Proxmox VE
Enomaly
Karesansui
openQRM
Abiquo
Archipel
ConVirt
oVirt

上記のようにVMを操作するものはかなりありますね。
GUIで管理する代表的なというか前回紹介した管理ツールはVirtual Machine Managerになります。

今回はCUI管理ツールの中でもqemu-kvmを使ってVMをインストール、NW接続までを以下からご紹介します。
(ホストOSにはCentOS5.5、VMにもCentOS5.5をインストールしています。)
全体的な流れとしては以下のような感じです。
①KVMカーネルの確認
②VMのイメージファイル作成
③VMへOSのインストール
④VMのNW設定

では、詳細な手順をご紹介していきます。
①KVMカーネルの確認
まずKVMカーネルが組み込まれているか確認します。

# lsmod | grep kvm
kvm_intel              86920  1
kvm                   226336  2 ksm,kvm_intel

上記の様な結果なら準備はOKです。

もしgrepの結果が何もなかればyumを使ってインストールします。

# yum groupinstall kvm

※CPUがIntel VTもしくはAMD-Vに対応したものでないとKVMは使用不可です。ご注意を。

②VMのイメージファイル作成
VM用のイメージファイルを作成します。これがないと何も始まりません。
以下では10GBのディスクをアサインしたVMを作成しています。

# qemu-img create -f raw /var/kvm/images/vm-dev01.img 10G

※イメージファイルの置き場所を/var/kvm/images、OSのイメージは/var/kvm/os以下にしています。

上記の様にqemu-imgコマンドを実行してイメージファイルを作成します。
イメージファイルを作成する形式は「qcow2」と「raw」があります。
前者はVMで必要な量確保して使用量に合わせてファイルサイズが変わります。
後者はイメージファイルを作成した時点で10GBの容量を確保します。

このあたりはさくらさんのブログで検証がされています。結論からするとrawがいいとかなんとか。
KVMを使う(ディスク性能編)

③VMへOSのインストール
イメージファイルが作成できたら次はいよいよVMにOSをインストールします。
ちょっとコマンドが長いんですが。。。

# /usr/libexec/qemu-kvm -hda /var/kvm/images/vm-dev01.img ¥
-m 1024 ¥
-vnc :0 -k ja ¥
-daemonize ¥
-cdrom /var/kvm/os/CentOS-5.5-x86_64-bin-DVD-1of2.iso ¥
-boot d

/usr/libexec/qemu-kvmコマンドを使ってVMにインストールを行ないます。
簡単にオプションの説明を。
-m:メモリの割当量[MByte]
-vnc :0 -k ja:vnc接続への番号とキーボードを日本語としています。
-daemonize:デーモン化
-cdrom:CDドライブに入れるイメージ(メディア)を指定します。
-boot d:cdromドライブからブートする設定です。

エラーがなくコマンドが実行できたら次はRealVNCを利用してOSのインストール作業を続けます。
(VMへのコンソールへはVNCを使って接続するんです。他の方法もありますが。。。)

私がメインで使っているのはiMacなのですが、VNCクライアントのChicken of th VNCからだと
画面がうまく表示されなかったり、接続が切れてしまったりと上手くいきませんでした。
なので別のWindowsマシンのRealVNCから接続してOSのインストールを続行しました。

普段どおりCentOSのインストールができたら再起動です。
再起動しても、CDドライブからの起動オプションを付けたままなのでVMは起動してきません。
一旦プロセスを強制的に落として下記のコマンドでVMを起動します。

# /usr/libexec/qemu-kvm -hda /var/kvm/images/vm-dev01.img ¥
-m 1024 ¥
-vnc :0 -k ja ¥
-daemonize ¥
-boot c

今後はこのコマンドでVMが起動します。

④VMのNW設定
さて最後に肝心のNW設定を行ないます。
参考にさせて頂いたのはさくらインターネットさんのブログ。接続イメージもこちらをご参考ください。
KVMを使う(ネットワーク設定編)

では、VMでNW設定をするにはいろいろと方法もあるわけですが、外部(ホスト以外)と接続する場合は
ブリッジ接続が必要となります。
ちょっと面倒ですが最初だけで、あとは特に気にもなくなるでしょうw

今回設定しようとしているNWはこんなイメージです。

まずはホストOSにブリッジ接続するためのツールと設定を行ないます。

# yum install bridge-utils

既存のeth0デバイス設定を下記のように変更。

# vi  ifcfg-eth0
--------------------
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
BRIDGE=br0
--------------------

次にブリッジデバイスbr0を作成。

# vi ifcfg-br0
--------------------
DEVICE=br0
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.120.70
NETMASK=255.255.254.0
GATEWAY=192.168.120.254
--------------------
 
# /etc/init.d/network restart

ネットワークの再起動が上手く行けばbr0というデバイスが出来ていると思います。
次はVM起動時にネットワークインターフェースをqemuに呼ばれるためのスクリプトを配置します。

# vi /etc/qemu-ifup
--------------------
#!/bin/sh
/sbin/ifconfig $1 up
/usr/sbin/brctl addif br0 $1
--------------------
# chmod 755 /etc/qemu-ifup

最後にもう一つ、VMに追加するネットワークインターフェースのMACアドレスを生成します。
簡単に生成できるスクリプトを以下に。

# vi macgen.py
--------------------
#! /usr/bin/python
# macgen.py script generates a MAC address for Xen guests
#
import random
mac = [ 0x00, 0x16, 0x3e,
random.randint(0x00, 0x7f),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]
print ':'.join(map(lambda x: "%02x" % x, mac))
--------------------
chmod 755 macgen.py

実行してMACアドレスを生成してください。
ではネットワークインターフェースをアサインしてVMを起動させます。

# /usr/libexec/qemu-kvm -hda /var/kvm/images/vm-dev01.img ¥
-m 1024 ¥
-vnc :0 -k ja ¥
-daemonize ¥
-boot c ¥
-net nic,model=e1000,macaddr=00:16:3e:53:c6:cf -net tap,ifname=tap0

先程の起動オプションに-net以降を追加しています。
オプションの詳細はここにあります。
http://linux.die.net/man/1/qemu-kvm

最低限のKVMによるVM作成は以上です。
HW構成やNW構成、運用方法に合わせた仮想化環境を構築できそうです。
今後はKVMの機能を更に深く検証していきたいと思っています。

KVMはいろいろと面白そうですね。

Leave a Reply

Additional comments powered by BackType

TopHatenar

あわせて読みたいブログパーツ