虛擬化技術(shù)是云計算實現(xiàn)的關(guān)鍵技術(shù),自云計算成為熱點后,虛擬化技術(shù)就成為IT界的熱門話題,本書向讀者循序漸進地介紹虛擬化技術(shù)的基本知識和實踐方法。 本書共分7章,內(nèi)容包括虛擬化技術(shù)概述、虛擬化實現(xiàn)技術(shù)架構(gòu)、QEMU核心模塊配置、構(gòu)建KVM環(huán)境、KVM高級功能詳解、虛擬化管理工具和虛擬機開發(fā)! ”緯耘囵B(yǎng)學生實踐能力為目標,在闡述虛擬化技術(shù)基本理論知識的基礎(chǔ)上,注重工程實踐中的配置、安裝及虛擬化技術(shù)的使用和理解! ”緯m合作為高等院校計算機類專業(yè)的教材,也可作為開展云計算研究與應(yīng)用的企事業(yè)單位的培訓教材,以及云計算愛好者的自學用書。
信息技術(shù)的發(fā)展,尤其是計算機和互聯(lián)網(wǎng)技術(shù)的進步極大地改變了人們的工作和生活方式。進入新世紀后,大量企業(yè)開始采用以數(shù)據(jù)中心為業(yè)務(wù)運營平臺的信息服務(wù)模式,數(shù)據(jù)中心變得空前重要和復(fù)雜,這對管理工作提出了全新的挑戰(zhàn),一系列問題接踵而來。企業(yè)如何通過數(shù)據(jù)中心快速地創(chuàng)建服務(wù)并高效地管理業(yè)務(wù)?怎樣根據(jù)需求動態(tài)調(diào)整資源以降低運營成本?如何更加靈活、高效、安全地使用和管理各種資源?如何共享已有的計算平臺而不是重復(fù)創(chuàng)建自己的數(shù)據(jù)中心?業(yè)內(nèi)人士普遍認為,信息產(chǎn)業(yè)本身需要更加徹底地進行技術(shù)變革和商業(yè)模式轉(zhuǎn)型,虛擬化和云計算正是在這樣的背景下應(yīng)運而生。
虛擬化技術(shù)已經(jīng)在信息化產(chǎn)業(yè)領(lǐng)域產(chǎn)生了深刻的影響,被認為是支持云計算發(fā)展炙手可熱的關(guān)鍵技術(shù)。虛擬化是滿足多樣化用戶需求,并挖掘計算機潛力和優(yōu)化的首選途徑。
虛擬化實現(xiàn)了IT資源的邏輯抽象和統(tǒng)一表示,在大規(guī)模數(shù)據(jù)中心管理和解決方案交付方面發(fā)揮著巨大的作用,是支撐云計算偉大構(gòu)想的最重要的技術(shù)基石。
本書對云計算的虛擬化技術(shù)由淺到深逐步展開,理論和實踐相結(jié)合,教師演示和學生操作相結(jié)合,遵循教、學、做一體化教學模式,以培養(yǎng)實踐能力為目標,在保證虛擬化技術(shù)基本理論的認知基礎(chǔ)上,注重工程實踐中的配置、安裝及虛擬化技術(shù)的使用和理解。
本書共分7章,內(nèi)容包括虛擬化技術(shù)概述、虛擬化實現(xiàn)技術(shù)架構(gòu)、QEMU核心模塊配置、構(gòu)建KVM環(huán)境、KVM高級功能詳解、虛擬化管理工具和虛擬機服務(wù)。全書大致分為四部分:第1、2章介紹虛擬化技術(shù)的背景、分類和主流的虛擬化產(chǎn)品,進一步對虛擬化實現(xiàn)技術(shù)的基本原理和架構(gòu)進行全面介紹;第3、4章主要介紹基于Linux內(nèi)核的QEMU關(guān)于處理器、內(nèi)存、磁盤、網(wǎng)絡(luò)和圖形顯示等核心模塊的基本原理和詳細配置,以及流行的虛擬化技術(shù)方案KVM環(huán)境的構(gòu)造方法,同時還介紹一些命令行工具和幾個配置腳本;第5、6章更加深入地對KVM的內(nèi)核模塊進行逐步解析,使得讀者對KVM內(nèi)核有進一步的了解,最后介紹較流行的KVM的虛擬化管理工具(如libvirt)和基于libvirt API的帶有圖形化界面的virt-manager,同時給出各種工具的具體使用方式;第7章介紹虛擬機開發(fā),包括搭建KVM虛擬化環(huán)境、建立虛擬機鏡像,啟動虛擬機等。
本書建議安排64學時,其中第1、2章以基礎(chǔ)概念為主,建議安排20學時;第3、4章以實踐為主,建議安排20學時;第5、6章為進階內(nèi)容,建議安排20學時;第7章為綜合開發(fā),建議安排4學時。
本書主要適用于計算機相關(guān)專業(yè)及云計算自學者對虛擬化技術(shù)的理解與認識,在學習理論知識的基礎(chǔ)上,培養(yǎng)學員的實踐能力,在實踐中提高學員對理論的理解與認識,培養(yǎng)初學者的工程部署經(jīng)驗和習慣,使其能夠運用云計算技術(shù)進行開發(fā)與實踐。
本書由張煒、聶萌瑤、熊晶任主編,儲澤南、石玉、馬巍任副主編,由南京大學徐潔磐主審。其中,第5章由張煒編寫,第2、4、6章由聶夢瑤、儲澤楠、石玉共同編寫,第1章由熊晶編寫,第3、7章由馬巍編寫。本書在編寫過程中得到中國鐵道出版社的大力支持,同行專家及相關(guān)行業(yè)人士提出了很多寶貴意見,在此表示感謝。
由于時間倉促,編者水平有限,書中疏漏與不足之處在所難免,懇請讀者給予批評和指正。
第1章 虛擬化技術(shù)概述 1
1.1 虛擬化技術(shù)簡介 1
1.1.1
虛擬化的基本概念 1
1.1.2
虛擬化的目的 2
1.1.3
云計算與虛擬化 4
1.1.4
虛擬化歷史沿革與未來
趨勢 4
1.2 虛擬化分類 5
1.2.1
硬件虛擬化 6
1.2.2
軟件虛擬化 7
1.2.3
半虛擬化 9
1.2.4
全虛擬化 10
1.3 操作系統(tǒng)與虛擬化 11
1.3.1
系統(tǒng)級虛擬化 11
1.3.2
Docker與系統(tǒng)虛擬化 13
小結(jié) 13
習題 13
第2章 虛擬化實現(xiàn)技術(shù)架構(gòu) 15
2.1 處理器虛擬化實現(xiàn)技術(shù) 15
2.1.1
Intel VT-x 16
2.1.2
vCPU 18
2.1.3
AMD SVM 19
2.2 內(nèi)存虛擬化實現(xiàn)技術(shù) 19
2.2.1
Intel EPT 21
2.2.2
AMD NPT 22
2.3
I/O虛擬化實現(xiàn)技術(shù) 23
2.3.1
Intel VT-d 24
2.3.2
IOMMU 27
2.3.3
SR-IOV 28
2.4 網(wǎng)絡(luò)虛擬化實現(xiàn)技術(shù) 29
2.4.1
Linux Bridge網(wǎng)橋 30
2.4.2
TUN/TAP設(shè)備 31
2.4.3
MACVLAN/MACVTAP
設(shè)備 32
2.5 主流虛擬化方案及特點 33
2.5.1
KVM虛擬化方案 33
2.5.2
Xen虛擬化方案 36
2.5.3
VMware虛擬化方案 38
2.5.4
Hyper-V虛擬化方案 39
2.5.5
VirtualBox虛擬化
方案 41
小結(jié) 41
習題 42
第3章 QEMU核心模塊配置 43
3.1
QEMU概述 43
3.1.1
QEMU實現(xiàn)原理 43
3.1.2
QEMU源碼結(jié)構(gòu) 44
3.1.3
libkvm模塊 44
3.2
QEMU命令的基本格式 45
3.3
CPU配置 46
3.3.1
CPU設(shè)置基本參數(shù) 46
3.3.2
CPU模型 48
3.4 內(nèi)存配置 49
3.5 存儲器配置 51
3.6 啟動順序配置 52
3.7
QEMU支持的鏡像文件
格式 53
3.8
qemu-img命令 56
小結(jié) 59
習題 59
第4章 構(gòu)建KVM環(huán)境 60
4.1
KVM硬件基礎(chǔ)配置 60
4.1.1
宿主機BIOS設(shè)置 60
4.1.2
宿主機操作系統(tǒng)設(shè)置 63
4.2 編譯安裝KVM 65
4.2.1
下載KVM源碼 65
4.2.2
配置KVM 67
4.2.3
編譯KVM 70
4.2.4
安裝KVM 70
4.3 編譯安裝QEMU 72
4.3.1
下載QEMU源碼 73
4.3.2
配置QEMU 75
4.3.3
編譯QEMU 77
4.3.4
安裝QEMU 78
4.4 啟動第一個KVM客戶機 80
4.4.1
安裝客戶機步驟 80
4.4.2
啟動第一個KVM客
戶機 84
4.5 網(wǎng)絡(luò)配置 86
4.5.1
網(wǎng)橋模式 87
4.5.2
NAT模式 91
4.6 圖形顯示配置 95
4.7
VNC的使用 96
4.7.1
在宿主機中VNC的
使用 96
4.7.2
在客戶機中VNC的
使用 97
小結(jié) 98
習題 98
第5章 KVM高級功能詳解 99
5.1 半虛擬化驅(qū)動 99
5.1.1
virtio概述 99
5.1.2
Linux下virtio的
支持 102
5.1.3
Windows下的virtio
驅(qū)動 103
5.1.4
virtio_balloon 115
5.1.5
virtio_net 119
5.1.6
virtio_blk 124
5.2 設(shè)備直接分配 125
5.2.1
PCI/PCI-E設(shè)備 125
5.2.2
SR-IOV 126
5.2.3
USB設(shè)備透傳 129
5.3 熱插拔 131
5.3.1
內(nèi)存熱插拔 131
5.3.2
CPU熱插拔 132
5.4 動態(tài)遷移 133
5.4.1
虛擬機遷移概述 133
5.4.2
虛擬機遷移的分類與
原理 134
5.4.3
主流虛擬機遷移工具 137
5.4.4
KVM虛擬機動態(tài)遷移 139
5.5 嵌套虛擬化 141
5.5.1
嵌套虛擬化的基本
概念 141
5.5.2
KVM嵌套虛擬化
步驟 142
5.6
KSM技術(shù) 147
5.6.1
KSM技術(shù)概述 147
5.6.2
KSM實現(xiàn)原理 148
5.6.3
KSM操作實踐 149
5.7
KVM的其他特性 151
5.7.1
大頁 151
5.7.2
透明大頁 152
5.7.3
CPU特性 154
5.8
KVM的安全機制 156
5.8.1
KVM虛擬化的安全
威脅 157
5.8.2
KVM虛擬化的安全
技術(shù)架構(gòu) 158
5.8.3
KVM常見安全
措施 159
5.9
QEMU監(jiān)控器 161
5.9.1
QEMU Monitor配置 162
5.9.2
QEMU Monitor常用
命令 163
小結(jié) 165
習題 165
第6章 虛擬化管理工具 166
6.1
libvirt概述 166
6.1.1
libvirt簡介 166
6.1.2
libvirt的編譯和安裝 169
6.2
virsh簡介 174
6.3
libvirt的啟動與配置 176
6.3.1
libvirt的啟動 176
6.3.2
libvirt的配置文件 177
6.4
libvirt域的XML配置
文件 179
6.4.1
配置文件格式 179
6.4.2
域的配置 181
6.4.3
內(nèi)存、CPU、啟動順序
等配置 181
6.4.4
設(shè)備配置 182
6.4.5
其他配置 183
6.5
virsh常用命令 184
6.5.1
通用命令 184
6.5.2
域相關(guān)命令 184
6.5.3
存儲池相關(guān)命令 186
6.5.4
存儲卷相關(guān)命令 186
6.5.5
快照相關(guān)命令 186
6.6
libvirt API簡介 187
6.7
libvirt API使用實例 188
6.7.1
建立到Hypervisor的
連接 188
6.7.2
使用libvirt API查詢
某個域的信息 190
6.7.3
編譯運行l(wèi)ibvirt-conn.c
并使用virsh查看當前
結(jié)點情況 192
6.8
virt-manager 194
6.8.1
virt-manager的編譯和
安裝 195
6.8.2
virt-manager的使用 196
小結(jié) 202
習題 202
第7章 虛擬機開發(fā) 203
7.1 搭建KVM虛擬化環(huán)境 203
7.1.1
配置宿主機 203
7.1.2
部署KVM虛擬機 204
7.1.3
QEMU下載和安裝 208
7.1.4
開發(fā)要點 209
7.2 建立虛擬機鏡像 210
7.2.1
Windows 7鏡像 210
7.2.2
Ubuntu14.04鏡像 212
7.2.3
開發(fā)要點 216
7.3 啟動虛擬機 216
7.3.1
在宿主機上使用VNC方式啟動虛擬機 216
7.3.2
在Windows上使用VNC Viewer連接虛擬機 220
7.3.3 開發(fā)要點 221
小結(jié) 222
習題 222
參考文獻 223