虛擬化技術(shù)是云計(jì)算實(shí)現(xiàn)的關(guān)鍵技術(shù),自云計(jì)算成為熱點(diǎn)后,虛擬化技術(shù)就成為IT界的熱門(mén)話題,本書(shū)向讀者循序漸進(jìn)地介紹虛擬化技術(shù)的基本知識(shí)和實(shí)踐方法! ”緯(shū)共分7章,內(nèi)容包括虛擬化技術(shù)概述、虛擬化實(shí)現(xiàn)技術(shù)架構(gòu)、QEMU核心模塊配置、構(gòu)建KVM環(huán)境、KVM高級(jí)功能詳解、虛擬化管理工具和虛擬機(jī)開(kāi)發(fā)! ”緯(shū)以培養(yǎng)學(xué)生實(shí)踐能力為目標(biāo),在闡述虛擬化技術(shù)基本理論知識(shí)的基礎(chǔ)上,注重工程實(shí)踐中的配置、安裝及虛擬化技術(shù)的使用和理解! ”緯(shū)適合作為高等院校計(jì)算機(jī)類(lèi)專(zhuān)業(yè)的教材,也可作為開(kāi)展云計(jì)算研究與應(yīng)用的企事業(yè)單位的培訓(xùn)教材,以及云計(jì)算愛(ài)好者的自學(xué)用書(shū)。
信息技術(shù)的發(fā)展,尤其是計(jì)算機(jī)和互聯(lián)網(wǎng)技術(shù)的進(jìn)步極大地改變了人們的工作和生活方式。進(jìn)入新世紀(jì)后,大量企業(yè)開(kāi)始采用以數(shù)據(jù)中心為業(yè)務(wù)運(yùn)營(yíng)平臺(tái)的信息服務(wù)模式,數(shù)據(jù)中心變得空前重要和復(fù)雜,這對(duì)管理工作提出了全新的挑戰(zhàn),一系列問(wèn)題接踵而來(lái)。企業(yè)如何通過(guò)數(shù)據(jù)中心快速地創(chuàng)建服務(wù)并高效地管理業(yè)務(wù)?怎樣根據(jù)需求動(dòng)態(tài)調(diào)整資源以降低運(yùn)營(yíng)成本?如何更加靈活、高效、安全地使用和管理各種資源?如何共享已有的計(jì)算平臺(tái)而不是重復(fù)創(chuàng)建自己的數(shù)據(jù)中心?業(yè)內(nèi)人士普遍認(rèn)為,信息產(chǎn)業(yè)本身需要更加徹底地進(jìn)行技術(shù)變革和商業(yè)模式轉(zhuǎn)型,虛擬化和云計(jì)算正是在這樣的背景下應(yīng)運(yùn)而生。
虛擬化技術(shù)已經(jīng)在信息化產(chǎn)業(yè)領(lǐng)域產(chǎn)生了深刻的影響,被認(rèn)為是支持云計(jì)算發(fā)展炙手可熱的關(guān)鍵技術(shù)。虛擬化是滿足多樣化用戶需求,并挖掘計(jì)算機(jī)潛力和優(yōu)化的首選途徑。
虛擬化實(shí)現(xiàn)了IT資源的邏輯抽象和統(tǒng)一表示,在大規(guī)模數(shù)據(jù)中心管理和解決方案交付方面發(fā)揮著巨大的作用,是支撐云計(jì)算偉大構(gòu)想的最重要的技術(shù)基石。
本書(shū)對(duì)云計(jì)算的虛擬化技術(shù)由淺到深逐步展開(kāi),理論和實(shí)踐相結(jié)合,教師演示和學(xué)生操作相結(jié)合,遵循教、學(xué)、做一體化教學(xué)模式,以培養(yǎng)實(shí)踐能力為目標(biāo),在保證虛擬化技術(shù)基本理論的認(rèn)知基礎(chǔ)上,注重工程實(shí)踐中的配置、安裝及虛擬化技術(shù)的使用和理解。
本書(shū)共分7章,內(nèi)容包括虛擬化技術(shù)概述、虛擬化實(shí)現(xiàn)技術(shù)架構(gòu)、QEMU核心模塊配置、構(gòu)建KVM環(huán)境、KVM高級(jí)功能詳解、虛擬化管理工具和虛擬機(jī)服務(wù)。全書(shū)大致分為四部分:第1、2章介紹虛擬化技術(shù)的背景、分類(lèi)和主流的虛擬化產(chǎn)品,進(jìn)一步對(duì)虛擬化實(shí)現(xiàn)技術(shù)的基本原理和架構(gòu)進(jìn)行全面介紹;第3、4章主要介紹基于Linux內(nèi)核的QEMU關(guān)于處理器、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)和圖形顯示等核心模塊的基本原理和詳細(xì)配置,以及流行的虛擬化技術(shù)方案KVM環(huán)境的構(gòu)造方法,同時(shí)還介紹一些命令行工具和幾個(gè)配置腳本;第5、6章更加深入地對(duì)KVM的內(nèi)核模塊進(jìn)行逐步解析,使得讀者對(duì)KVM內(nèi)核有進(jìn)一步的了解,最后介紹較流行的KVM的虛擬化管理工具(如libvirt)和基于libvirt API的帶有圖形化界面的virt-manager,同時(shí)給出各種工具的具體使用方式;第7章介紹虛擬機(jī)開(kāi)發(fā),包括搭建KVM虛擬化環(huán)境、建立虛擬機(jī)鏡像,啟動(dòng)虛擬機(jī)等。
本書(shū)建議安排64學(xué)時(shí),其中第1、2章以基礎(chǔ)概念為主,建議安排20學(xué)時(shí);第3、4章以實(shí)踐為主,建議安排20學(xué)時(shí);第5、6章為進(jìn)階內(nèi)容,建議安排20學(xué)時(shí);第7章為綜合開(kāi)發(fā),建議安排4學(xué)時(shí)。
本書(shū)主要適用于計(jì)算機(jī)相關(guān)專(zhuān)業(yè)及云計(jì)算自學(xué)者對(duì)虛擬化技術(shù)的理解與認(rèn)識(shí),在學(xué)習(xí)理論知識(shí)的基礎(chǔ)上,培養(yǎng)學(xué)員的實(shí)踐能力,在實(shí)踐中提高學(xué)員對(duì)理論的理解與認(rèn)識(shí),培養(yǎng)初學(xué)者的工程部署經(jīng)驗(yàn)和習(xí)慣,使其能夠運(yùn)用云計(jì)算技術(shù)進(jìn)行開(kāi)發(fā)與實(shí)踐。
本書(shū)由張煒、聶萌瑤、熊晶任主編,儲(chǔ)澤南、石玉、馬巍任副主編,由南京大學(xué)徐潔磐主審。其中,第5章由張煒編寫(xiě),第2、4、6章由聶夢(mèng)瑤、儲(chǔ)澤楠、石玉共同編寫(xiě),第1章由熊晶編寫(xiě),第3、7章由馬巍編寫(xiě)。本書(shū)在編寫(xiě)過(guò)程中得到中國(guó)鐵道出版社的大力支持,同行專(zhuān)家及相關(guān)行業(yè)人士提出了很多寶貴意見(jiàn),在此表示感謝。
由于時(shí)間倉(cāng)促,編者水平有限,書(shū)中疏漏與不足之處在所難免,懇請(qǐng)讀者給予批評(píng)和指正。
第1章 虛擬化技術(shù)概述 1
1.1 虛擬化技術(shù)簡(jiǎn)介 1
1.1.1
虛擬化的基本概念 1
1.1.2
虛擬化的目的 2
1.1.3
云計(jì)算與虛擬化 4
1.1.4
虛擬化歷史沿革與未來(lái)
趨勢(shì) 4
1.2 虛擬化分類(lèi) 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)級(jí)虛擬化 11
1.3.2
Docker與系統(tǒng)虛擬化 13
小結(jié) 13
習(xí)題 13
第2章 虛擬化實(shí)現(xiàn)技術(shù)架構(gòu) 15
2.1 處理器虛擬化實(shí)現(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)存虛擬化實(shí)現(xiàn)技術(shù) 19
2.2.1
Intel EPT 21
2.2.2
AMD NPT 22
2.3
I/O虛擬化實(shí)現(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ò)虛擬化實(shí)現(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 主流虛擬化方案及特點(diǎn) 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
習(xí)題 42
第3章 QEMU核心模塊配置 43
3.1
QEMU概述 43
3.1.1
QEMU實(shí)現(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 存儲(chǔ)器配置 51
3.6 啟動(dòng)順序配置 52
3.7
QEMU支持的鏡像文件
格式 53
3.8
qemu-img命令 56
小結(jié) 59
習(xí)題 59
第4章 構(gòu)建KVM環(huán)境 60
4.1
KVM硬件基礎(chǔ)配置 60
4.1.1
宿主機(jī)BIOS設(shè)置 60
4.1.2
宿主機(jī)操作系統(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 啟動(dòng)第一個(gè)KVM客戶機(jī) 80
4.4.1
安裝客戶機(jī)步驟 80
4.4.2
啟動(dòng)第一個(gè)KVM客
戶機(jī) 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
在宿主機(jī)中VNC的
使用 96
4.7.2
在客戶機(jī)中VNC的
使用 97
小結(jié) 98
習(xí)題 98
第5章 KVM高級(jí)功能詳解 99
5.1 半虛擬化驅(qū)動(dòng) 99
5.1.1
virtio概述 99
5.1.2
Linux下virtio的
支持 102
5.1.3
Windows下的virtio
驅(qū)動(dòng) 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è)備透?jìng)?129
5.3 熱插拔 131
5.3.1
內(nèi)存熱插拔 131
5.3.2
CPU熱插拔 132
5.4 動(dòng)態(tài)遷移 133
5.4.1
虛擬機(jī)遷移概述 133
5.4.2
虛擬機(jī)遷移的分類(lèi)與
原理 134
5.4.3
主流虛擬機(jī)遷移工具 137
5.4.4
KVM虛擬機(jī)動(dòng)態(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實(shí)現(xiàn)原理 148
5.6.3
KSM操作實(shí)踐 149
5.7
KVM的其他特性 151
5.7.1
大頁(yè) 151
5.7.2
透明大頁(yè) 152
5.7.3
CPU特性 154
5.8
KVM的安全機(jī)制 156
5.8.1
KVM虛擬化的安全
威脅 157
5.8.2
KVM虛擬化的安全
技術(shù)架構(gòu) 158
5.8.3
KVM常見(jiàn)安全
措施 159
5.9
QEMU監(jiān)控器 161
5.9.1
QEMU Monitor配置 162
5.9.2
QEMU Monitor常用
命令 163
小結(jié) 165
習(xí)題 165
第6章 虛擬化管理工具 166
6.1
libvirt概述 166
6.1.1
libvirt簡(jiǎn)介 166
6.1.2
libvirt的編譯和安裝 169
6.2
virsh簡(jiǎn)介 174
6.3
libvirt的啟動(dòng)與配置 176
6.3.1
libvirt的啟動(dòng) 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、啟動(dòng)順序
等配置 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
存儲(chǔ)池相關(guān)命令 186
6.5.4
存儲(chǔ)卷相關(guān)命令 186
6.5.5
快照相關(guān)命令 186
6.6
libvirt API簡(jiǎn)介 187
6.7
libvirt API使用實(shí)例 188
6.7.1
建立到Hypervisor的
連接 188
6.7.2
使用libvirt API查詢
某個(gè)域的信息 190
6.7.3
編譯運(yùn)行l(wèi)ibvirt-conn.c
并使用virsh查看當(dāng)前
結(jié)點(diǎn)情況 192
6.8
virt-manager 194
6.8.1
virt-manager的編譯和
安裝 195
6.8.2
virt-manager的使用 196
小結(jié) 202
習(xí)題 202
第7章 虛擬機(jī)開(kāi)發(fā) 203
7.1 搭建KVM虛擬化環(huán)境 203
7.1.1
配置宿主機(jī) 203
7.1.2
部署KVM虛擬機(jī) 204
7.1.3
QEMU下載和安裝 208
7.1.4
開(kāi)發(fā)要點(diǎn) 209
7.2 建立虛擬機(jī)鏡像 210
7.2.1
Windows 7鏡像 210
7.2.2
Ubuntu14.04鏡像 212
7.2.3
開(kāi)發(fā)要點(diǎn) 216
7.3 啟動(dòng)虛擬機(jī) 216
7.3.1
在宿主機(jī)上使用VNC方式啟動(dòng)虛擬機(jī) 216
7.3.2
在Windows上使用VNC Viewer連接虛擬機(jī) 220
7.3.3 開(kāi)發(fā)要點(diǎn) 221
小結(jié) 222
習(xí)題 222
參考文獻(xiàn) 223