平 初 著
森若 和雄 著
鶴野 龍一郎 著
まえだこうへい 著
KVMは、Kernel Virtual Machineの略で、新しい形態の仮想化基盤を提供するオープンソース・ソフトウェアです。KVMを利用することで、1つのコンピュータで複数のOSを動作させられます。KVMはLinuxのカーネル(OS本体)の追加モジュールとして動作するため、仮想化専用OS(ハイパーバイザ)をインストールする必要がありません。カーネル開発グループに認められた正式なLinuxの機能であり、通常のOSを改変することなくゲストとして利用できるのも大きな特徴です。
本書では、KVMの導入とその利用方法について解説するほか、KVMと深いかかわりを持つエミュレータQEMUについても解説します。オープンソースを利用した新しい仮想化基盤を知るために必見の1冊です。
1 KVMと仮想化技術の基礎知識
1.1 仮想化とは
1.1.1 virtualizationとはなんだろう?
1.1.2 コンピュータ技術と仮想化
1.1.3 クラウドと仮想化技術
1.2 仮想化技術の流れ
1.2.1 初期のサーバー仮想化
1.2.2 仮想マシンモニタのタイプ
1.3 仮想化のメリットとデメリット
1.3.1 メリット
1.3.2 デメリット
1.4 IAサーバーと仮想化
1.5 CPUの仮想化支援機能
1.5.1 CPUの動作モードについて
1.5.2 仮想化ソフトの実行モード
1.5.3 CPUの仮想化支援機能
1.6 KVM(Kernel-based Virtual Machine)
1.6.1 KVMとQEMUの関係
1.6.2 KVMの歴史
1.6.3 KVMの基本構造
1.6.4 KVMのライセンシー
2 パッケージによるKVMの導入
2.1 導入のための準備
2.1.1 KVMの導入方法
2.1.2 ハードウェアの前提条件
2.1.3 ソフトウェアの前提条件
2.1.4 本章で前提とするディストリビューション
2.2 Fedoraのインストール
2.2.1 Fedora12の入手
2.2.2 ネットワーク経由でのインストール手順
2.3 Ubuntuのインストール
2.3.1 Ubuntu10.04の入手
2.3.2 インストール手順
2.4 KVMパッケージのインストール
2.4.1 必要とされるパッケージ
2.4.2 Fedoraの場合
2.4.3 Ubuntuの場合
2.5 簡単な動作確認
2.5.1 Ismodコマンドを使って調べる方法
2.5.2 KVM/QEMUを実行してみる
3 仮想マシンの作成
3.1 稼動マシン導入の基礎知識
3.1.1 インストール環境
3.1.2 仮想マシン導入の複数の手法
3.1.3 KVMとlibvirt
3.1.4 ホスト環境の前提
3.2 GUI(virt-manager)による方法
3.2.1 ツールの起動
3.2.2 ゲストOSの作成方法
3.2.3 ゲストOSの起動方法
3.3 コマンドラインツール(virt-install)による方法
3.3.1 オプションで定義する方法
3.3.2 対話形式で行う方法
3.4 KVM/QEMUエミュレータによる方法
3.4.1 ディスクイメージの作成
3.4.2 ゲストOSのインストール
3.4.3 ゲストOSの起動
4 仮想マシンの基本操作
4.1 仮想マシンのライフサイクル
4.2 virt-managerによる基本操作
4.2.1 仮想マシンの起動
4.2.2 仮想マシンの一時停止/再開
4.2.3 仮想マシンの停止
4.2.4 仮想マシンの削除
4.3 virt-managerの応用
4.3.1 仮想マシンの詳細表示
4.3.2 仮想マシンの複製(Clone)
4.3.3 virt-managerの接続先マシンの詳細表示
4.3.4 仮想ネットワーク
4.3.5 ストレージプール
4.4 virshによる基本操作
4.4.1 仮想マシンの作成
4.4.2 仮想マシンのステータスの確認
4.4.3 仮想マシンの起動
4.4.4 仮想マシンの一時停止
4.4.5 仮想マシンの停止
4.4.6 仮想マシンの削除
4.5 仮想マシンの設定ファイル
4.5.1 KVM/libvirtの設定ファイル構成
4.5.2 仮想マシン定義ファイル
4.5.3 仮想ネットワーク設定ファイル
4.5.4 ストレージ設定ファイル
5 リソース制御と管理
5.1 KVMのリソース管理機能
5.2 CPU
5.2.1 VCPUの個数
5.2.2 操作解説
5.2.3 VCPUの種類
5.2.4 VCPUと物理CPUの対応づけ
5.2.5 操作解説
5.3 メモリ
5.3.1 メモリ量の指定
5.3.2 操作解説
5.3.3 HugePageの利用 -hugetlbfsを利用した起動-
5.3.4 操作解説
5.3.5 KSM(Kernal Samepage Merging)の利用 -KSM利用設定-
5.3.6 操作解説
5.3.7 shadow pagetableとEPT/NPT
5.3.8 virtio-balloonの利用
5.3.9 操作解説
5.4 ストレージ
5.4.1 ストレージのモデル
5.4.2 操作解説
5.4.3 ストレージのバックエンド
5.4.4 操作解説
5.4.5 qcow2のスナップショット機能
5.4.6 操作解説
5.4.7 qcow2のbase image指定
5.4.8 操作解説
5.4.9 バックエンドは何にするべきか
5.5 ネットワーク
5.5.1 ネットワークのモデル
5.5.2 操作解説
5.5.3 ネットワークのバックエンド
5.5.4 libvirtでのネットワーク
5.5.5 仮想環境のネットワーク構成
6 KVMのマイグレーション機能
6.1 ライブマイグレーションの概念
6.2 ライブマイグレーションのパラメータ
6.3 ライブマイグレーションの仕組み
6.4 virt-managerによる操作
6.4.1 ストレージを共有する
6.4.2 Virt-managerから送信側、受信側のlibvirtdへ接続する
6.4.3 移行
6.5 virshによる基本操作
7 コマンドラインによる操作(libvirtとvirsh)
7.1 libvirt
7.1.1 libvirtとは
7.1.2 libvirtを利用しているアプリケーション
7.1.3 libvirtの仕組み
7.1.4 遠隔のlibvirtへ接続
7.2 libvirtによる仮想マシンの制御
7.2.1 libvirtdでのプログラミング
7.2.2 libvirtdへの接続
7.2.3 仮想マシンの情報取得
7.2.4 稼動していない仮想マシン情報の取得
7.2.5 仮想マシンのリソースの動的変更
7.2.6 仮想マシンのリソースの動的追加
7.3 libvirtの応用的なプログラミング
7.3.1 UPSシャットダウン
7.3.2 タイムアウト処理
7.3.3 停止順の制御
7.4 対話型コマンドインターフェイス virsh
7.4.1 virshとは
7.4.2 virshの使い方
7.4.3 仮想マシンの作成
7.4.4 仮想マシンの起動
7.4.5 仮想マシンのシリアルコンソールへの接続
7.4.6 仮想マシンの停止
7.4.7 仮想マシン定義情報の修正
8 QEMU入門
8.1 QEMUとは
8.2 QEMUの歴史
8.3 QEMUの歴史CPUエミュレーション
8.4 QEMUの2つのエミュレーション
8.4.1 ユーザーモードエミュレーション
8.4.2 システムエミュレーション
8.5 QEMUのアーキテクチャ
8.6 QEMUのアクセラレーション
8.7 QEMUで動作可能なOS
8.8 QEMUを動かしてみる
8.8.1 LiveCDで起動する
8.8.2 qemu-imgコマンド
8.8.3 QEMUモニターの使い方
8.8.4 Linuxカーネル開発者向けのオプション
8.9 qemuのオプション
8.9.1 起動に関するもの
8.9.2 ディスク/ドライブに関するもの
8.9.3 CPU/メモリ
8.9.4 デバイス
8.9.5 ネットワークインターフェイス
付録
付録A:ソースコードからのビルド
付録B:Red Hat Enterprise Virtualizationインストールガイド
付録C:virshリファレンス
付属データはこちら
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1刷 | 009 本文、下から7行目 |
2刷 | 未 |
|
2010.07.22 | ||||||
1刷 | 022 箇条書き、上から2行目 |
2刷 | 未 |
|
2010.07.02 | ||||||
1刷 | 023 本文、下から4行目 |
2刷 | 未 |
|
2010.07.22 | ||||||
1刷 | 024 本文の1行目および図2.2キャプション |
2刷 | 未 |
|
2010.06.21 | ||||||
1刷 | 038 本文、下から9行目 |
2刷 | 未 |
|
2010.07.22 | ||||||
1刷 | 055 本文、上から1行目 |
2刷 | 未 |
|
2010.07.26 | ||||||
1刷 | 058 本文、下から4行目 |
2刷 | 未 |
|
2010.07.22 | ||||||
1刷 | 058 本文、下から3行目 |
2刷 | 未 |
|
2010.07.26 | ||||||
1刷 | 074 本文、上から1行目 |
2刷 | 未 |
|
2010.07.26 | ||||||
1刷 | 088 本文、下から8行目 |
2刷 | 未 |
|
2010.07.26 | ||||||
1刷 | 105 本文、下から3行目 |
2刷 | 未 |
|
2010.07.02 | ||||||
1刷 | 106 本文、下から2行目 |
2刷 | 未 |
|
2010.07.02 | ||||||
1刷 | 135 側注【15】 |
2刷 | 未 |
|
2010.07.22 | ||||||
1刷 | 158 リスト部分 |
2刷 | 未 |
|
2010.09.23 | ||||||
1刷 | 170 本文、上から7行目 |
2刷 | 未 |
|
2010.07.02 | ||||||
1刷 | 220 「B.1.3. RHEV Manager for Serversの利用例」の下 |
2刷 | 未 |
|
2010.07.02 | ||||||
1刷 | 292 「C.9.8. virsh vol-create-from」の下 |
2刷 | 未 |
|
2010.07.02 | ||||||
1刷 | 298 C.10.6 virsh detach-device 実行例 |
5刷 | 未 |
|
2013.01.29 |
toiwata さん
2015-10-06
読みやすい。ただし2010年の刊行のため相応に過去の記述になっている様子。
クロ さん
2013-11-30
まだまだ理解できてない点が・・・(ーー;) 仮想化難しい・・・(ーー;)
Yoshiaki Sugimoto さん
2013-03-12
やりたいことがひと通り書かれていたのでこれから始める人にはいいと思う。