暁なIT備忘録

AKATSUKI Information Technology Memorandum.

QEMU+KVM による仮想化環境構築:GuestOS の作成

Tags: , ,

■HostOS 上の構成

[RAID-1 構成上]
/kvm/			# KVM 関連全般の用途
/kvm/images/		# GuestOS の ISO Image ファイル配置場所
/kvm/iso/		# GuestOS をインストールする OS メディア等の保存場所
/kvm/shell/		# KVM 操作に関する独自 Shell 配置場所
 
[RAID-5 構成上]
/backup/kvm/images/	# GuestOS の ISO Image コールドバックアップ保存場所

Disk I/O のボトルネック回避の為に構成を真逆にしても良いとは思います。
※要は物理ディスクを完全に区分けることが大切です。
しかし、HostOS が Crash した際に
 HostOS の死亡に巻き込まれ GuestOS も稼働中に強制停止させられた為に再起動に致命傷が出た Disk Image が残った
 HostOS のシステム部と同構成の物理 HDD にバックアップデータがある為にサルベージが不可能
という最悪の事態になり得なくもないので、そのリスクよりもボトルネックを甘受しています。

バックアップ用途のサーバが確保できれば…
って、それは自宅サーバの領域を逸脱し過ぎな…
RAID-10 で組めば全て解決…な訳(ヾノ・ω・`)ないない…(笑)

■前提条件

QEMU+KVM による仮想化環境構築:HostOS 側準備が完了していること。
TigerVNC 1.0.90 設定が完了していること。

■ISO Media の準備

Scientific Linux6.1 の ISO Image を
 /kvm/iso/ 配下
に保存しておく

# dd if=/dev/cdrom of=/kvm/iso/SL-61-x86_64-2011-07-27-Install-DVD.iso

.

作業:CD-ROM から ISO ファイルを生成

■Volume Image ファイルの準備

# dd if=/dev/zero of=/kvm/images/sl6_guestos1.img bs=1M count=51200

.

作業:Volume Image ファイルの準備

Volume Image に raw 形式の zero ファイルを使用する理由については、
参考サイト:http://d.hatena.ne.jp/jitsu102/20100410/1270887373
をご参照ください。

■インストール Shell 作成

# cat /kvm/shell/Install_ScientificLinux6.1_guestos1.sh
=====
#!/bin/sh
KVM_NAME=SL6_guestos1
KVM_CPU=2
KVM_MEM=2048
KVM_IMAGE=sl6_guestos1
KVM_VNC_PORT=55905
 
virt-install \
 --connect qemu:///system \
 --name ${KVM_NAME} \
 --ram ${KVM_MEM} \
 --vcpus=${KVM_CPU} \
 --file /kvm/images/${KVM_IMAGE}.img \
 --hvm \
 --os-type=linux \
 --os-variant=virtio26 \
 --accelerate \
 --network=bridge:br0 \
 --cdrom=/kvm/iso/SL-61-x86_64-2011-07-27-Install-DVD.iso \
 --vnc \
 --vncport=${KVM_VNC_PORT} \
 --keymap=ja
=====

■インストール開始

※必ず Console の GNOME 上で Shell を実行する必要があります!

# sh /kvm/shell/Install_ScientificLinux6.1_guestos1.sh

.

作業:インストール Shell 起動

———-
インストール構成
→[Minimal]を選択
導入パッケージ
→ベースシステム:ベース・互換性ライブラリ・Perlのサポート
→開発:その他の開発・サーバープラットフォーム開発・開発ツール
あとはデフォルトのまま
———-

インストール作業の詳細については、Scientific Linux-6.1 インストールをご参照ください。

■インストール後の微修正

このままでも利用に差し支えありませんが、管理面等々を含め、設定ファイルを若干手直しします。
インストール完了後、一旦 GuestOS を完全停止させてください。

□HostOS 側作業

# vi /etc/libvirt/qemu/SL6_guestos1.xml
===== 変更1 =====
  <clock offset='utc'/>
-----
  <clock offset='localtime'/>
==========
===== 変更2 =====
    <graphics type='vnc' port='55905' autoport='no' keymap='ja'/>
-----
    <graphics type='vnc' port='55905' listen='0.0.0.0' autoport='no' keymap='ja'/>
==========
# virsh define /etc/libvirt/qemu/SL6_guestos1.xml
	ドメイン SL6_guestos1 が /etc/libvirt/qemu/SL6_guestos1.xml から定義されました

.

作業:インストール後の微修正

もしくは、以下のコマンドで編集する。(この場合は define 不要となります。)

# virsh edit SL6_guestos1

作業:virsh による編集

■MAC アドレスの衝突発生回避

MAC アドレスのベンダーコード箇所で QEMU は [54:52:00] を利用するように決められているようですが、oui にはまだ登録が無いようです。
※2011/09現在。
ちなみに他の仮想化環境である XEN では [00:16:3e] が予約されているようです。

関係ありませんが、Google 先生によると [54:52:00] と [52:54:00] が同じ程度の検索ヒット数となっています。
※2011/09現在。
公式文書も見あたらなかったし、どちらが正しいのかなー…_| ̄|○

□GuestOS 側作業

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
===== 変更 =====
HWADDR="00:00:00:00:00:00"
-----
HWADDR="54:52:00:00:00:01"
==========

# rm /etc/udev/rules.d/70-persistent-net.rules

# sync
# sync
# sync
# shutdown -h now

作業:MAC アドレスの衝突発生回避(GuestOS 側)

GestOS 停止を確認。

□HostOS 側作業

# vi /etc/libvirt/qemu/SL6_guestos1.xml
===== 変更 =====
    <interface type='bridge'>
      <mac address='52:54:00:c4:5c:3c'/>
      <source bridge='br0'/>
      <model type='virtio'/>
    </interface>
-----
    <interface type='bridge'>
      <mac address='54:52:00:00:00:01'/>
      <source bridge='br0'/>
      <model type='virtio'/>
    </interface>
==========
# virsh define /etc/libvirt/qemu/SL6_guestos1.xml
	ドメイン SL6_guestos1 が /etc/libvirt/qemu/SL6_guestos1.xml から定義されました

.

作業:MAC アドレスの衝突発生回避(HostOS 側)

以上

Tags: , ,

Leave a Reply

© 2009 暁なIT備忘録. All Rights Reserved.

This blog is powered by the Wordpress platform and beach rentals.