SlideShare a Scribd company logo
4
Most read
11
Most read
13
Most read
1
ゼロからはじめるKVM超入門
2010年2月6日
日本仮想化技術株式会社
技術部 大内 明
自己紹介
•  大内 明(おおうち あきら)
–  あっきぃ/id:Akkiesoft
•  まもなく技術部員4年目
•  メールマガジン・ブログ等、広報系も担当
–  ノベルティの企画も私
•  初めて仮想化は2003年(中学3年生)頃に
触ったBochsエミュレータ
–  たぶんQEMUがメジャーになる前
2
2
アジェンダ
•  KVMの概要
•  KVM仮想マシン作成のコツ
•  KVMベンチマークテスト
3
KVMの概要
3
KVMとは
•  Kernel based Virtual Machine
•  Qumranet社が開発→Red Hat社が会社ご
と買収
•  開発から半年でLinuxカーネルに組み込ま
れ話題に
•  最新のリリースは88(2009年7月)
–  最近はqemu-kvmのリリースが活発
6
仕組み
•  KVMのハイパーバイザがLinuxカーネル
モジュールとして搭載されている
–  /dev/kvmとして存在
•  QEMUが/dev/kvmにアクションを送って、
仮想マシン作成などの操作をしている
–  KVM用のQEMU(qemu-kvm)
•  エミュレーション全般はQEMUが行ってい
る
7
4
アプリ
アプリ
OS
アプリ
アプリ
他の仮想化ソフトとの違い
ハードウェア
Dom0
(OS)
アプリ
DomU
(OS)
ハードウェア
QEMU
Linux ~
ハードウェア
アプリ
OS
Virtual
Box
一般的なホスト型
(例:VirtualBox)
KVM
Xen
KVM
8
Xenハイパーバイザ
 OS
Virtio
•  汎用的な準仮想ドライバの規格
–  完全仮想化マシンを部分的に性能向上させる
•  KVMでもサポート
–  主にストレージ、ネットワーク
–  Windowsも準仮想レベルで利用可能に
•  参考: 他にサポートされている仮想化ソフト
–  VirtualBox(ネットワークのみ)
9
5
KVMを利用するメリット
•  Linuxだけで完結
–  Xen+Linuxのバージョン、VMware+Linuxの
バージョンといったことを気にする必要がない
•  Linuxのドライバがそのまま利用可能
–  VMwareの独自ハイパーバイザのように、ドラ
イバの種類不足によるハードウェア選択の制
限がほぼない
10
KVMのデメリット
•  CPUの仮想化支援機能が必須
–  Intel-VT/AMD-V/VIA VTがないCPUでは
利用不可
–  (例)数世代前(2006 2007年前後)のサーバ
–  (例)ノートPC
11
6
KVM仮想マシン作成のコツ
KVMホストOSの選択
•  最近のLinuxであればおおよそ利用可能
–  Fedora 12
–  CentOS 5.4
–  Ubuntu
•  今回はFedora 12を使用
13
7
Fedora 12のインストール
•  インストールウィザードのパッケージ選択
で「仮想化」を選択するだけでKVM環境が
そろう
14
仮想マシンの作成
•  Xenと同様、Virtual Machine Managerで仮
想マシンの作成・管理が可能
–  最近はライブマイグレーション・クローン作成も
•  インストール時に気を付けるべき点
–  ネットワークの物理ブリッジがデフォルトでは
設定されていない
–  Virtioはデフォルトで設定されない場合がある
ので、必要に応じて手動で変更する
•  ここでは、上記2点について解説
15
8
ネットワーク物理ブリッジを作成
•  デフォルトのネットワーク設定はNATのみ
–  CentOS 5.4のKVM環境でも同様
•  ブリッジ設定は手動で行う必要がある
•  手順
1. NetworkManagerを無効にしてifupに切替
2. ifcfg-eth0・ifcfg-br0の2ファイルを編集
3. ネットワークの再起動
16
NetworkManagerの無効化
•  NetworkManagerではブリッジ設定が出来
ないため、無効化する
•  代わりに、従来のnetworkを有効化する
•  手順
1.  # service NetworkManager stop
2.  # chkconfig NetworkManager off
3.  # chkconfig network on
17
9
ifcfg-br0 の作成
•  ifcfg-eth0をコピーして編集を行う
•  ※/etc/sysconfig/ntwork-scripts/の中
# DEVICE=eth0
DEVICE=br0
BOOTPROTO=dhcp
HWADDR=xx:xx:xx:xx:xx:xx
ONBOOT=yes
OPTIONS=layer2=1
TYPE=Bridge
18
ifcfg-eth0 の編集
DEVICE=eth0
#BOOTPROTO=dhcp
BOOTPROTO=none
HWADDR=xx:xx:xx:xx:xx:xx
ONBOOT=yes
OPTIONS=layer2=1
BRIDGE=br0
•  すべて完了したら /etc/init.d/network start
を実行
•  ifconfigコマンドでbr0が存在するかチェック
19
10
ブリッジ設定の確認
•  Virtual Machine Managerで実際に仮想マ
シンを作成して確認
20
Virtioの利用
•  Virtioデバイスを利用するには、OSによっ
て次の手順を行う必要がある
A.  Windowsの場合、OSインストール後にデ
バイスをVirtioに変更してドライバをインス
トール
B.  Virtio対応OSの場合、Virtual Machine
Managerが自動的にVirtioデバイスを設
定する
–  Fedora 12、CentOS 5.4等の主に最新のLinux
21
11
Virtioに変更する方法
1.  仮想マシンの設定ファイルを開く
–  設定ファイルは/etc/libvirt/qemu/の中にある
2.  ストレージ設定の書き換え
3.  ネットワーク設定の書き換え
<disk tipe=‘file’ device=‘disk’>
(略)
<target dev=‘hda’ bus=‘ide’ />→<target dev=‘vda’ bus=‘virtio’ />
</disk>
<interface type=‘bridge’>
(略)
<model type=‘virtio’ /> ←追記
</interface>
22
デバイス設定変更の反映
4.  virshコマンドを実行
5.  変更をVirtual Machine Managerで確認す
る
# virsh define /etc/libvirt/qemu/VM.xml
ドメイン VM が /etc/libvirt/qemu/VM.xml から定義されました
#
23
12
Windowsドライバについて
•  ストレージドライバのインストールは2種類
A.  OSインストール後にドライバをインストール
する方法
B.  OSインストール時にあらかじめドライバを読
み込ませる方法
•  前者が楽
–  後者の場合、ドライバを読み込ませるための
情報ファイル(txtsetup.oem)の作成などを作
成する必要があるため
24
インストール方法
1.  通常通り、IDE仮想ディスクにOSをインス
トール
2.  ダミーのVirtioストレージデバイスを仮想
マシンに追加し、ドライバをWindowsにイ
ンストール
–  追加の操作はVirtual Machine Managerで良い
3.  仮想マシン設定ファイルを書き換えてOS
を起動
–  ダミーのデバイスは削除して良い
25
13
Windowsドライバの入手
•  KVMのサイトからダウンロード可能
–  http://www.linux-kvm.org/page/
WindowsGuestDrivers/Download_Drivers
–  「You can also download the drivers as ISO
images ...」のリンク先のISOイメージ版が便利
•  ISOイメージをマウントし、適宜ドライバをイ
ンストールする
–  インストーラはないので、個別にインストール
を行う
26
最新ドライバを自分で作成する
•  ソースリポジトリからソースをダウンロード
して自分でビルドする事も可能
•  WinDDK(無料)が必要
•  Windows Server 2008では署名が必要なた
め、作成手順はやや多くて面倒
•  説明すると長くなってしまうため、仮想化通
信にて連載(?)予定
–  http://blog.virtualtech.jp/
27
14
KVMベンチマークテスト
ベンチマークテスト
•  Virtio不使用・Virtio使用・物理環境の3種
類でネットワーク・ストレージの速度に違い
があるか測定
•  ベンチマーク環境: HP ProLiant DL380 G5
–  Intel Xeon E5355 2.66GHz * 2
–  PC2-5300 FB-DIMM 4GB * 2 (8GB)
–  36.4GB/10000RPM SAS * 4(RAID 1+0)
–  ホストOS: Fedora 12 (x86_64)
–  ゲストOS: Windows Server 2008
29
15
測定方法
1.  ストレージの速度測定はCrystalDiskMark
を用いて測定を実施
2.  ネットワーク速度測定は、1GB程度のファ
イルをInternet Explorer 8でダウンロードし、
ダウンロード時間及び平均速度で測定
30
ストレージベンチマーク結果
•  Virtio使用の環境がVirtio不使用の環境に
比べ、1.5 2倍の性能
•  CPU負荷はVirtio使用環境が高め
–  高効率で転送されている
Virtioドライバ使用
Virtioドライバ未使用
 物理環境
31
16
•  Seq Read/512k Readで物理がVirtio使用環
境に負けているのは、タイマー処理などの
関係と思われる
グラフ
32
0
200
400
600
800
Seq Read 512k
Read
4k Read Seq
Write
512k
Write
4k Write
Virtio不使用
Virtio使用
物理環境
•  DL時間が半減、速度もほぼ倍に
•  実行中のCPU使用率はストレージと同様の傾向
ネットワークベンチマーク結果
33
0
20
40
60
80
100
120
140
160
Virtio未使用
 Virtio使用
 物理環境
DL時間(秒)
0
5
10
15
20
25
30
35
Virtio未使用
 Virtio使用
 物理環境
平均DL速度(MB/秒)
17
Xen vs KVM
•  本来はこれをメインテーマにしたかった
•  Fedora 12は、Xenは非サポート(に近い)
–  パッケージは存在するが、以前に比べてハー
ドルが高い
–  検証環境が(時間の関係もあって)構築でき
ず……
34
CentOS 5.4でXen vs KVM
•  以下の環境でpgbenchを実施
–  HP ProLiant ML350 G6
–  Intel Xeon X5520
–  6GB メモリ
–  ゲストもCentOS5.4
–  PotgreSQL 8.3.8
–  pgbench –c 20 –t 1000
•  ※OSC2009 Tokyo/Fallで発表したもの
35
18
Xen vs KVM pgbench結果
98.8
183.1
101.1
183.6
0.0
20.0
40.0
60.0
80.0
100.0
120.0
140.0
160.0
180.0
200.0
HVM Para-Virtual RAW VirtIO
Xen KVM
RAID1+0
36
本日のまとめ
•  KVMは構造がシンプル
–  ホストOSっぽいハイパーバイザ型?
•  仮想マシン操作の使い勝手はXenと同じ
•  Virtioでデバイスを準仮想化して性能向上
–  Xenと性能はほぼ変わらない
•  XenかKVMでは好みで選んで良いレベル
37

More Related Content

PPTX
「おうちクラウド」が今熱い!
PDF
Linux KVMではじめるカンタン仮想化入門
PDF
仮想化環境におけるパケットフォワーディング
PDF
Dockerからcontainerdへの移行
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PDF
Linux女子部 systemd徹底入門
PPTX
DockerコンテナでGitを使う
PDF
大規模サービスを支えるネットワークインフラの全貌
「おうちクラウド」が今熱い!
Linux KVMではじめるカンタン仮想化入門
仮想化環境におけるパケットフォワーディング
Dockerからcontainerdへの移行
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Linux女子部 systemd徹底入門
DockerコンテナでGitを使う
大規模サービスを支えるネットワークインフラの全貌

What's hot (20)

PDF
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
PPTX
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
ODP
自宅サーバ仮想化
PDF
ファイルシステム比較
PDF
DockerとPodmanの比較
PDF
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
PDF
AlmaLinux と Rocky Linux の誕生経緯&比較
PDF
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
PDF
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
PPTX
Dockerからcontainerdへの移行
PDF
GPU仮想化最前線 - KVMGTとvirtio-gpu -
PDF
WebSocket / WebRTCの技術紹介
PDF
20111015 勉強会 (PCIe / SR-IOV)
PPTX
Rootlessコンテナ
PPTX
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
PPTX
iostat await svctm の 見かた、考え方
PPTX
自宅インフラの育て方 第2回
PDF
10分でわかる Cilium と XDP / BPF
PDF
僕のIntel nucが起動しないわけがない
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
自宅サーバ仮想化
ファイルシステム比較
DockerとPodmanの比較
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
AlmaLinux と Rocky Linux の誕生経緯&比較
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Dockerからcontainerdへの移行
GPU仮想化最前線 - KVMGTとvirtio-gpu -
WebSocket / WebRTCの技術紹介
20111015 勉強会 (PCIe / SR-IOV)
Rootlessコンテナ
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
iostat await svctm の 見かた、考え方
自宅インフラの育て方 第2回
10分でわかる Cilium と XDP / BPF
僕のIntel nucが起動しないわけがない
Ad

Similar to ゼロからはじめるKVM超入門 (20)

PDF
仮想化技術の基本の基本
PDF
講座Linux入門・サーバOSとしてのLinux
PDF
Azure CLI あずにゃんの CLI を使ってみた結果www
PPTX
Docker v14
PDF
OpenStackで始めるクラウド環境構築入門
PDF
NCstudy 2.5
PPTX
OpenStackで始めるクラウド環境構築入門
PPTX
OpenStackで始めるクラウド環境構築入門
PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
PDF
Windows 展開の自動化ツール - Microsoft Deployment Toolkit
PDF
OpenStackで始めるクラウド環境構築入門
PPTX
Idcfクラウドで始める構築自動化
PDF
App controllerとwindows azure packで作る大規模プライベートクラウド
PPTX
今時のDev opsの取り組み事例集
PPTX
継続的インテグレーション3分クッキング
PDF
Dockerでらくらく開発・運用を体感しよう
PPTX
20160217 hbstudy73 linux on Azure
PDF
Windows 7 オプショナルツール 一挙紹介
PPTX
これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜
PDF
NetBSD on Google Compute Engine
仮想化技術の基本の基本
講座Linux入門・サーバOSとしてのLinux
Azure CLI あずにゃんの CLI を使ってみた結果www
Docker v14
OpenStackで始めるクラウド環境構築入門
NCstudy 2.5
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Windows 展開の自動化ツール - Microsoft Deployment Toolkit
OpenStackで始めるクラウド環境構築入門
Idcfクラウドで始める構築自動化
App controllerとwindows azure packで作る大規模プライベートクラウド
今時のDev opsの取り組み事例集
継続的インテグレーション3分クッキング
Dockerでらくらく開発・運用を体感しよう
20160217 hbstudy73 linux on Azure
Windows 7 オプショナルツール 一挙紹介
これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜
NetBSD on Google Compute Engine
Ad

More from VirtualTech Japan Inc. (20)

PDF
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
PPTX
エンジニアが幸せになれる会社を目指します
PDF
KubeVirt 201 How to Using the GPU
PDF
PDF
今からはじめる! Linuxコマンド入門
PDF
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
PDF
Kubernetes雑にまとめてみた 2020年8月版
PDF
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
PDF
5G時代のアプリケーション開発とは
PDF
hbstudy#88 5G+MEC時代のシステム設計
PDF
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
PDF
Kubernetes雑にまとめてみた 2019年12月版
PPTX
Docker超入門
PDF
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
PDF
KubeCon China & MWC Shangai 出張報告
PDF
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
PDF
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
PDF
Multi-access Edge Computing(MEC)における”Edge”の定義
PPTX
Edge Computing Architecture using GPUs and Kubernetes
PDF
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド (更新版) - OpenStack Day Tokyo 2018講演資料
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
エンジニアが幸せになれる会社を目指します
KubeVirt 201 How to Using the GPU
今からはじめる! Linuxコマンド入門
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
Kubernetes雑にまとめてみた 2020年8月版
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
5G時代のアプリケーション開発とは
hbstudy#88 5G+MEC時代のシステム設計
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
Kubernetes雑にまとめてみた 2019年12月版
Docker超入門
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
KubeCon China & MWC Shangai 出張報告
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
Multi-access Edge Computing(MEC)における”Edge”の定義
Edge Computing Architecture using GPUs and Kubernetes
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド (更新版) - OpenStack Day Tokyo 2018講演資料

ゼロからはじめるKVM超入門