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

OpenSUSE 12.1サーバーでのKVMによる仮想化

OpenSUSE 12.1サーバーでのKVMによる仮想化

バージョン 1.0
著者: Falko Timme
私をTwitterでフォローしてください

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

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

1 前提条件

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

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

2 KVMのインストール

OpenSUSE 12.1 KVMホスト:

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

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

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

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 rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv  
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 rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv  
server1:~ #

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

KVMをインストールする際にインストールされる依存関係の1つはPython 2.7ですが、Python 2.7はpackage patterns-openSUSE-minimal_base-conflictsと競合します。したがって、最初にそのパッケージをアンインストールする必要があります。そのためには、YaSTを起動します:

yast2

YaSTで、ソフトウェア > ソフトウェア管理に移動します:

検索フィールドにpatterns-openSUSE-minimal_base-conflictsと入力し、ENTERを押します。パッケージはメインウィンドウにインストール済み(i)として表示されるはずです。パッケージをマークし、パッケージの前にマイナス(-)記号が表示されるまでENTERキーを押し続けます(マイナスはアンインストールを示します)。その後、[Accept]を押します:

その後、YaSTを終了します。

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

yast2 -i kvm libvirt libvirt-python qemu virt-manager

次に、libvirtdのシステム起動リンクを作成します…

systemctl enable libvirtd.service

…そしてlibvirtデーモンを起動します:

systemctl start libvirtd.service

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

virsh -c qemu:///system list

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

server1:~ # virsh -c qemu:///system list  
WARNING: no socket to connect to  
 Id Name                 State  
----------------------------------  
  
server1:~ #

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

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

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

yast2 -i bridge-utils

…そしてブリッジを構成します。

ブリッジを構成するには、次のように/etc/sysconfig/network/ifcfg-br0ファイルを作成します(/etc/sysconfig/network/ifcfg-eth0ファイルからIPADDR設定を使用してください):

vi /etc/sysconfig/network/ifcfg-br0

| STARTMODE='auto' BOOTPROTO='static' IPADDR='192.168.0.100/24' MTU='' NETMASK='' NETWORK='' BROADCAST='' USERCONTROL=no NAME='Bridge 0' NM_CONTROLLED=no BRIDGE='yes' BRIDGE_PORTS='eth0' BRIDGE_AGEINGTIME='300' BRIDGE_FORWARDDELAY='0' BRIDGE_MAXAGE='20' BRIDGE_PATHCOSTS='19' BRIDGE_PORTPRIORITIES= BRIDGE_PRIORITY= BRIDGE_STP='on' |

(「有効なvimバイナリパッケージがインストールされていません。”vim”、”vim-enhanced”、または”gvim”のいずれかをインストールしてください。」というメッセージが表示された場合は、次のコマンドを実行してください。

yast2 -i vim

viをインストールし、再度試みてください。)

次に、/etc/sysconfig/network/ifcfg-eth0を次のように変更します(IPADDRを0.0.0.0に設定し、STARTMODEをhotplugに変更します):

vi /etc/sysconfig/network/ifcfg-eth0

| BOOTPROTO='static' BROADCAST='' ETHTOOL_OPTIONS='' IPADDR='0.0.0.0' MTU='' NAME='MCP77 Ethernet' NETMASK='' NETWORK='' REMOTE_IPADDR='' STARTMODE='hotplug' USERCONTROL='no' |

その後、ネットワークを再起動します:

systemctl restart network.service

その後、次のコマンドを実行します:

ifconfig

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

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:39 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:4921 (4.8 Kb)  TX bytes:1708 (1.6 Kb)  
  
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:821 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:636 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:313341 (305.9 Kb)  TX bytes:108982 (106.4 Kb)  
          Interrupt:41 Base address:0x8000  
  
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:20 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:20 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:2720 (2.6 Kb)  TX bytes:2720 (2.6 Kb)  
  
server1:~ #

3 OpenSUSE 12.1デスクトップにvirt-managerをインストール

OpenSUSE 12.1デスクトップ:

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

rootになります…

su

…そして実行します…

yast2 -i virt-manager libvirt

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

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

sudo apt-get install virt-manager

4 Debian Squeezeゲスト(イメージベース)の作成

OpenSUSE 12.1 KVMホスト:

さて、OpenSUSE 12.1 KVMホストに戻りましょう。

次のコマンドを見てください:

virt-install --help

使い方を学ぶために。

イメージベースの仮想マシンは、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/ディレクトリに作成してください。後でOpenSUSE 12.1デスクトップからvirt-managerを使用して仮想マシンを作成する方法を示します。virt-managerは/var/lib/libvirt/images/ディレクトリ内のISOイメージを探します)…

dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.0-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.0-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

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

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.0-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm  
WARNING: no socket to connect to  

Starting install...  
Allocating 'vm10.img'       |  12 GB     00:00  
Creating domain...          |    0 B     00:00  
Domain installation still in progress. You can reconnect to  
the console to complete the installation process.  
server1:~ #
Share: X/Twitter LinkedIn

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

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