仮想化 · 2 min read · Jan 21, 2026

CentOS 6.3サーバーでのKVMによる仮想化

CentOS 6.3サーバーでのKVMによる仮想化

Version 1.0
Author: Falko Timme
Follow me on Twitter

このガイドでは、CentOS 6.3サーバー上で仮想マシンを作成および実行するためにKVMをインストールして使用する方法を説明します。イメージベースの仮想マシンと論理ボリューム(LVM)を使用する仮想マシンの作成方法を示します。KVMはKernel-based Virtual Machineの略で、ハードウェア仮想化を利用します。つまり、ハードウェア仮想化をサポートするCPUが必要です。例:Intel VTまたはAMD-V。

私はこれがあなたにとって機能するという保証を出しません!

1 予備ノート

ここでは、ホスト名server1.example.comおよびIPアドレス192.168.0.100のCentOS 6.3サーバーをKVMホストとして使用しています。

私のCentOS 6.3システムではSELinuxを無効にしていました。SELinuxを有効にした状態ではテストしていません。動作するかもしれませんが、そうでない場合はSELinuxをオフにする方が良いでしょう:

vi /etc/selinux/config

SELINUX=disabledに設定…

| # このファイルは、システム上のSELinuxの状態を制御します。 # SELINUX=は次の3つの値のいずれかを取ることができます: # enforcing - SELinuxセキュリティポリシーが強制されます。 # permissive - SELinuxは強制する代わりに警告を表示します。 # disabled - SELinuxポリシーはロードされません。 SELINUX=disabled # SELINUXTYPE=は次の2つの値のいずれかを取ることができます: # targeted - 対象プロセスが保護されます。 # mls - マルチレベルセキュリティ保護。 SELINUXTYPE=targeted |

…そして再起動します:

reboot

また、インストールした仮想マシンのグラフィカルコンソールに接続できるように、virt-managerをインストールするデスクトップシステムが必要です。ここではFedora 17デスクトップを使用しています。

2 KVMのインストール

CentOS 6.3 KVMホスト:

まず、CPUがハードウェア仮想化をサポートしているかどうかを確認します。これが当てはまる場合、コマンド

egrep '(vmx|svm)' --color=always /proc/cpuinfo

は何かを表示するはずです。例えば、次のように:

[root@server1 ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo  
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall  
 nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse  
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall  
 nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse  
[root@server1 ~]#

何も表示されない場合、プロセッサはハードウェア仮想化をサポートしていないため、ここで停止する必要があります。

次に、ソフトウェアパッケージのGPGキーをインポートします:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

KVMとvirtinst(仮想マシンを作成するためのツール)をインストールするには、次のコマンドを実行します:

yum install kvm libvirt python-virtinst qemu-kvm

次に、libvirtデーモンを起動します:

/etc/init.d/libvirtd start

KVMが正常にインストールされたかどうかを確認するには、次のコマンドを実行します:

virsh -c qemu:///system list

次のような出力が表示されるはずです:

[root@server1 ~]# virsh -c qemu:///system list  
 Id Name                 State  
----------------------------------  
  
[root@server1 ~]#

エラーが表示された場合は、何かがうまくいかなかったことになります。

次に、仮想マシンが他のホストから物理システムのようにアクセスできるように、サーバーにネットワークブリッジを設定する必要があります。

これを行うには、bridge-utilsパッケージをインストールします…

yum install bridge-utils

…そしてブリッジを構成します。ファイル/etc/sysconfig/network-scripts/ifcfg-br0を作成します(/etc/sysconfig/network-scripts/ifcfg-eth0ファイルからIPADDR、PREFIX、GATEWAY、DNS1、DNS2の値を使用してください)。TYPE=Bridgeを使用することを確認してください。TYPE=Ethernetではありません:

vi /etc/sysconfig/network-scripts/ifcfg-br0

| DEVICE="br0" NM_CONTROLLED="yes" ONBOOT=yes TYPE=Bridge BOOTPROTO=none IPADDR=192.168.0.100 PREFIX=24 GATEWAY=192.168.0.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System br0" |

/etc/sysconfig/network-scripts/ifcfg-eth0を次のように変更します(BOOTPROTO、IPADDR、PREFIX、GATEWAY、DNS1、DNS2をコメントアウトし、BRIDGE=br0を追加します):

vi /etc/sysconfig/network-scripts/ifcfg-eth0

| DEVICE="eth0" #BOOTPROTO=none NM_CONTROLLED="yes" ONBOOT=yes TYPE="Ethernet" UUID="73cb0b12-1f42-49b0-ad69-731e888276ff" HWADDR=00:1E:90:F3:F0:02 #IPADDR=192.168.0.100 #PREFIX=24 #GATEWAY=192.168.0.1 #DNS1=8.8.8.8 #DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" BRIDGE=br0 |

ネットワークを再起動します…

/etc/init.d/network restart

…そして次のコマンドを実行します:

ifconfig

これでネットワークブリッジ(br0)が表示されるはずです:

[root@server1 ~]# ifconfig  
br0       Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02  
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:27 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:460 (460.0 b)  TX bytes:2298 (2.2 KiB)  
  
eth0      Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:18455 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:11861 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:26163057 (24.9 MiB)  TX bytes:1100370 (1.0 MiB)  
          Interrupt:25 Base address:0xe000  
  
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:5 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:2456 (2.3 KiB)  TX bytes:2456 (2.3 KiB)  
  
virbr0    Link encap:Ethernet  HWaddr 52:54:00:AC:AC:8F  
          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:0 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)  
  
[root@server1 ~]#

3 Fedora 17デスクトップにvirt-viewerまたはvirt-managerをインストールする

Fedora 17デスクトップ:

ゲストのグラフィカルコンソールに接続する手段が必要です。これにはvirt-managerを使用できます。あなたがFedora 17デスクトップを使用していると仮定します。

rootになり…

su

…次のコマンドを実行します…

yum install virt-manager libvirt qemu-system-x86 openssh-askpass

…でvirt-managerをインストールします。

(Ubuntu 12.04デスクトップを使用している場合、次のようにvirt-managerをインストールできます:

sudo apt-get install virt-manager

4 コマンドラインからDebian Squeezeゲスト(イメージベース)を作成する

CentOS 6.3 KVMホスト:

さて、CentOS 6.3 KVMホストに戻りましょう。

man virt-install

を見て、virt-installの使い方を学びます。

イメージベースの仮想マシンは、KVMをインストールしたときに自動的に作成されたディレクトリ/var/lib/libvirt/images/に作成します。

名前vm10、512MBのRAM、2つの仮想CPU、およびディスクイメージ/var/lib/libvirt/images/vm10.img(サイズ12GB)のDebian Squeezeゲストを作成するには、Debian Squeeze Netinstall CDをCDドライブに挿入し、次のコマンドを実行します:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

もちろん、Debian Squeeze Netinstall CDのISOイメージを作成することもできます(/var/lib/libvirt/images/ディレクトリに作成してください。後でFedoraデスクトップからvirt-managerを使用して仮想マシンを作成する方法を示します。virt-managerは/var/lib/libvirt/images/ディレクトリ内のISOイメージを探します)…

dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso

…そしてvirt-installコマンドでISOイメージを使用します:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

出力は次のようになります:

[root@server1 ~]# virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm  


インストールを開始しています...  
'vm10.img'を割り当てています              |  12 GB     00:00  
ドメインを作成しています...               |    0 B     00:00  
ドメインのインストールはまだ進行中です。  
コンソールに再接続して、インストールプロセスを完了できます。  
[root@server1 ~]#
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。