1 views

実現する機能

KVM(Kernel-based Virtual Machine) (ケーブイエム) は仮想化ソフトです。Windowsを搭載していたパソコンが壊れたので、サーバー機でCentOSとWindowsを同時に動かして使っています。動画ファイルの変換にはWindowsが不可欠ですからね。さらには、CentOSのテスト環境を構築し、危ないソフトを試したりしています。欠点は、DVDドライブ以外の周辺機器はUSBも含めて使えない点です。マザーボードが古いせいかもしれませんが、残念です。

KVMを導入するためには、パソコンのプロセッサが「Intel VT」か「AMD-V」のどちらかでないと動作しません。

KVMの導入手順

(1)自宅サーバーが仮想化できるか確認

[root@ufuso ~]# egrep '(vmx|svm)' /proc/cpuinfo ← 自宅サーバーがKVMで仮想化できるPCか調べる
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush 
mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good extd_apicid 
pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv ← svm(Intelならvmx)
とあるのでOK。
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush 
mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good extd_apicid 
pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv ← svm(Intelならvmx)
とあるのでOK。

[root@ufuso ~]# lsmod | grep kvm ← kvmモジュールがロードされているか確認
 ← 何も表示されないので、ロードされていない
[root@ufuso ~]# modprobe kvm ← 必要なモジュールを組み込む

[root@ufuso ~]# modprobe kvm_amd ← AMD用モジュールの組込。INTEL用だとkvm_intel

[root@ufuso ~]# lsmod | grep kvm ← モジュールが組み込まれたか確認
kvm_amd                41702  0 
kvm                   316506  1 kvm_amd ← ロードされている

(2)KVMのインストール

[root@ufuso ~]# yum -y install qemu-kvm libvirt python-virtinst bridge-utils virt-manager
 ← kvmとlibvirt をインストール
Installed:
  libvirt.x86_64 0:0.9.10-21.el6_3.4                                            
  python-virtinst.noarch 0:0.600.0-8.el6                                        
  qemu-kvm.x86_64 2:0.12.1.2-2.295.el6_3.1                                      
  virt-manager.x86_64 0:0.9.0-14.el6                                            

Dependency Installed:
  augeas-libs.x86_64 0:0.9.0-4.el6                                              
  celt051.x86_64 0:0.5.1.3-0.el6                                                
  cyrus-sasl-md5.x86_64 0:2.1.23-13.el6                                         
  ebtables.x86_64 0:2.0.9-6.el6                                                 
  gnutls-utils.x86_64 0:2.8.5-4.el6_2.2                                         
  gpxe-roms-qemu.noarch 0:0.9.7-6.9.el6                                         
  gtk-vnc.x86_64 0:0.3.10-3.el6                                                 
  gtk-vnc-python.x86_64 0:0.3.10-3.el6                                          
  iscsi-initiator-utils.x86_64 0:6.2.0.872-41.el6                               
  libcacard.x86_64 0:0.15.0-2.el6                                               
  libvirt-client.x86_64 0:0.9.10-21.el6_3.4                                     
  libvirt-python.x86_64 0:0.9.10-21.el6_3.4                                     
  nc.x86_64 0:1.84-22.el6                                                       
  netcf-libs.x86_64 0:0.1.9-2.el6                                               
  numactl.x86_64 0:2.0.7-3.el6                                                  
  numad.x86_64 0:0.5-4.20120522git.el6                                          
  qemu-img.x86_64 2:0.12.1.2-2.295.el6_3.1                                      
  radvd.x86_64 0:1.6-1.el6                                                      
  seabios.x86_64 0:0.6.1.2-19.el6                                               
  sgabios-bin.noarch 0:0-0.3.20110621svn.el6                                    
  spice-glib.x86_64 0:0.11-11.el6                                               
  spice-gtk.x86_64 0:0.11-11.el6                                                
  spice-gtk-python.x86_64 0:0.11-11.el6                                         
  spice-server.x86_64 0:0.10.1-10.el6                                           
  usbredir.x86_64 0:0.4.3-1.el6                                                 
  vgabios.noarch 0:0.6b-3.6.el6                                                 
  yajl.x86_64 0:1.0.7-3.el6                                                     

Complete!

[root@ufuso ~]# /etc/rc.d/init.d/libvirtd start ← ibvirtdの起動
libvirtd デーモンを起動中:                                 [  OK  ]

[root@ufuso ~]# chkconfig libvirtd on ← 自動起動設定

(3)ゲストOSがブリッジ接続できるようにブリッジネットワークを構成
ブリッジ接続は、一歩間違えるとインターネットに繋がらなくなります。仮想PCを自宅のネットワークに参加させてファイルの共有とかをやる必要がなければ、ブリッジ接続はお勧めしません。

[root@ufuso ~]# cd /etc/sysconfig/network-scripts
 ← network-scriptsフォルダへ移動

[root@ufuso network-scripts]# cp ifcfg-eth0 ifcfg-br0 ← eth0をbr0にコピー

[root@ufuso network-scripts]# vi ifcfg-br0 ← br0ファイルの編集
DEVICE="br0" ← 「br0」に変更
BOOTPROTO=none
#NM_CONTROLLED="yes" ← 行頭に#を付加してNetworkManagerを無効化
ONBOOT=yes
TYPE=Bridge ← 「Bridge」に変更
UUID="7b7e19bf-1b75-49d1-80b7-cd8e1c47f20a"
DEFROUTE=yesIPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
HWADDR=90:E6:BA:C9:DE:B3
LAST_CONNECT=1344602933
 ← 以下、無ければ自分のネットワーク環境を追記

IPADDR=192.168.24.240 ← サーバーのIPアドレスを入力
PREFIX=24
GATEWAY=192.168.24.1 ← ルーターのIPアドレスを入力
DNS1=192.168.24.240 ← サーバーのIPアドレスを入力
DNS2=192.168.24.1 ← ルーターのIPアドレスを入力
DOMAIN=ufuso.dip.jp ← サーバーのドメイン名を入力


[root@ufuso network-scripts]# vi ifcfg-eth0 ← eth0ファイルの編集
DEVICE=eth0
TYPE=Ethernet
UUID=e2ea16f0-5687-454c-9aa2-379f302cc0f8
ONBOOT=yes
#NM_CONTROLLED="yes" ← 行頭に#を付加してNetworkManagerを無効化
BOOTPROTO=none
IPADDR=192.168.24.240
PREFIX=24
GATEWAY=192.168.24.1
DNS1=192.168.24.240
DNS2=192.168.24.1
DOMAIN=ufuso.dip.jp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
HWADDR=90:E6:BA:C9:DE:B3
LAST_CONNECT=1366279082
BRIDGE=br0 ← ブリッジ名「br0」を明記

[root@ufuso network-scripts]# cd ← network-scriptsフォルダから移動

[root@ufuso network-scripts]# service NetworkManager stop ← NetworkManagerの
停止
NetworkManager デーモンを停止中:                           [  OK  ]

[root@ufuso ~]# chkconfig NetworkManager off ← NetworkManagerは使わないので
自動起動を停止
[root@ufuso ~]# chkconfig --list NetworkManager ← 停止できているか確認
NetworkManager 	0:off	1:off	2:off	3:off	4:off	5:off	6:off
 ← すべてOFFならOK

[root@ufuso ~]# /etc/rc.d/init.d/network restart  ← networkの再起動
ループバックインターフェースを終了中                       [  OK  ]
ループバックインターフェイスを呼び込み中                   [  OK  ]
インターフェース eth0 を活性化中:                          [  OK  ]
インターフェース br0 を活性化中:                           [  OK  ]

[root@ufuso ~]# ifconfig  ← br0がIPを取得できているか確認
br0       Link encap:Ethernet  HWaddr 90:E6:BA:C9:DE:B3  
          inet addr:192.168.24.240  Bcast:192.168.24.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:23 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4039 (3.9 KiB)  TX bytes:6291 (6.1 KiB)

eth0      Link encap:Ethernet  HWaddr 90:E6:BA:C9:DE:B3  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:564491 errors:0 dropped:0 overruns:0 frame:0
          TX packets:515650 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:217747911 (207.6 MiB)  TX bytes:54705923 (52.1 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:79984 errors:0 dropped:0 overruns:0 frame:0
          TX packets:79984 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:21209637 (20.2 MiB)  TX bytes:21209637 (20.2 MiB)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:E9:F5:B9  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:11145 (10.8 KiB)

(4)WindowsXPをゲストOSとして新規にインストールする場合
1.赤枠1をクリックして表示される一覧から赤枠2をクリックし、表示される一覧から赤枠3をクリックします。

2.赤枠をクリックします。

3.赤枠1に仮想マシン名を入力し、CD又はイメージファイルからインストールする場合で説明を進めるので赤枠2をクリックし、最後に赤枠3をクリックします。

4.赤枠1にチェックが入っていること確認し、赤枠2と3でOSの情報を選択し、終わりましたら赤枠4をクリックします。

5.赤枠1と赤枠2の設定数値を入力して、赤枠3をクリックします。

6.赤枠1は8GBでは足りなくなると思いますので、最低でも例示程度の設定は必要かと思います。赤枠2は逆にチェックを外してハードディスク全体の容量が固定化で無駄になるのを避けます。終わりましたら赤枠3をクリックします。

7.赤枠1の「詳細なオプション」をクリックすると赤枠1内に設定内容が表示されます。赤枠3をクリックするとインストールが始まります。赤枠2にチェックが入っていると7ー2の画面が表示されます。(CentOSの例ですが、手順は変わりません)

7ー1.ブリッジ接続の設定をしていない場合には、赤枠の設定になります。

7ー2.赤枠1のメモリは1024Mがきびしければ、赤枠2内の初期値を512Mまで下げてください。赤枠3をクリックするとインストールが始まります。

8.WindowsXPのインストール画面が表示されましたら、赤枠の指示どおりエンター・キーを押します。

9.赤枠の指示どおりF8キーを押します。

10.赤枠の指示どおり半角・全角キーを押します。

11.赤枠の指示どおりYキーを押します。

12.赤枠1の表示が出ましたら、赤枠2の指示どおりエンター・キーを押します。

13.赤枠1の表示が出ましたら、赤枠2の指示どおりエンター・キーを押します。

14.この画面が出ましたら、赤枠をクリックします。

15.赤枠1にユーザー名を入力して、赤枠2をクリックします。

16.赤枠1にコンピューター名を入力して、赤枠2をクリックします。

17.この画面が出ましたら、日を確認して赤枠をクリックします。

18.赤枠1にチェックが入っていることを確認して、赤枠2をクリックします。

19.この画面がこれまで説明した画面の全体像です。真ん中の黒い画面に表示されているOKボタンをクリックします。背景はScientific Linux 6.2の画面です。

20.CentOSの画面の上にWindowsXPの画面が表示されています。説明は以上です。最新のWindowsアップデートをしてからお使いください。この状態でインターネットを使うとセキュリティホールだらけですから。

(5)作成済みのゲストOS(WindowsXP)を再インストールする場合
1.赤枠1をクリックして表示される一覧から赤枠2をクリックし、表示される一覧から赤枠3をクリックします。

2.赤枠1にrootのパスワードを入力し、赤枠2の「認証する」をクリックします。
kvm01

3.赤枠をクリックして新規仮想マシンを作成します。
kvm02

4.赤枠1に再インストールする仮想マシン名を入力し、赤枠2で「既存のディスクイメージをインポート」にチェックを入れ、赤枠3の「進む」をクリックします。
kvm03

5.赤枠の「参照」をクリックします。
kvm04

6.赤枠の「ローカルを参照」をクリックします。
kvm05

7.既存のディスクイメージのあるフォルダまでたどり、赤枠の既存ディスクイメージをクリックします。
kvm06

8.赤枠1でOSとバージョンを選び、赤枠2の「進む」をクリックします。
kvm07

9.赤枠1で仮想OSに割り当てるメモリとCPU数を入力し、赤枠2の「進む」をクリックします。
kvm08

10.赤枠1の「インストールの前に設定をカスタマイズする」をクリックし、赤枠2のホストデバイスが「br0」であることを確認し、赤枠3の「完了」をクリックします。
kvm09

11.カスタマイズ画面になるので、例示としてメモリの設定を変えてみます。赤枠1の「Memory」をクリックして、赤枠2の設定を変更し、赤枠3の「適用」をクリックします。カスタマイズが終わりましたら、赤枠4の「インストールの開始」をクリックします。
kvm10

12.インストール作業はありません。すぐさまWindowsXPが起動します。
kvm11

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください