KVM 實戰:原理、進階與性能調優

任永傑、程舟

  • 出版商: 機械工業
  • 出版日期: 2019-02-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • ISBN: 7111619811
  • ISBN-13: 9787111619819
  • 相關分類: Linux
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

這是一部兼具實戰性、系統性又不乏深度的KVM虛擬化技術指南,既能讓新人快速掌握KVM的基礎知識,又能滿足有經驗的讀者進階學習的需求。
本書兩位作者分別來自阿里雲和Intel,在雲計算和KVM方面有深入研究,他們將自己的經驗傾囊相授,帶你全面了解KVM的各種技術細節。
本書在邏輯上分為三大部分:
第一部分基礎篇(第1~5章)
以雲計算、虛擬化的概念開篇,首先,詳細介紹了KVM的原理和基礎架構,以及KVM生產環境的構建;然後,詳細講解了libvirt、virsh、virt-manager等KVM主流管理工具,以及包括CPU、內存、存儲、網絡、圖形界面等在內的各種核心基礎功能。這部分內容將幫助讀者打下紮實的KVM虛擬化技術基礎。
第二部分進階篇(第6~9章)
從設備管理、內存管理、動態遷移、嵌套虛擬化、安全、CPU指令性能優化等幾個特定的、相對高階的知識點展開。相信通過對這部分內容的系統學習,讀者可以對半虛擬化驅動、設備直接分配、設備熱插拔、大頁內存、NUMA、嵌套虛擬化、安全特性、CPU新指令集等一系列熱門且高階的名詞和技術有比較深入的理解,並能培養起動手實踐的能力。
第三部分性能測試與調優篇(第10章)
從CPU、內存、網絡、磁盤等各個方面介紹了性能評估工具與測試參考結果,同時介紹了CPU新指令(如AVX2等)、THP、KSM 、NUMA等對性能的影響。讀者可以根據本篇介紹的方法來對雲服務器做性能評估,也可以對自己搭建的虛擬化環境做性能調優。

2013年,當KVM在國內被廣泛認可和使用時,本書的前身《KVM虛擬機化技術:實戰與原理解析》填補了KVM圖書的空白,所幸的是,口碑和銷量都不錯。5年多來,隨著虛擬化技術和雲計算的發展和普及,KVM已經成為雲計算領域虛擬化技術的事實標準,與KVM相關的軟硬件生態環境都發生了很大的變化,導致《KVM虛擬機化技術:實戰與原理解析》裡面的很多內容已經過時。應廣大讀者的要求,我們對這本書進行了大幅修改和重寫,因為改動比較大,所以書名也做了相應的調整,使之與內容更加貼合。
總的來說,本書做了以下方面的調整:
實驗的硬件、軟件和操作系統均採用當前最新的版本;
所有的用例、圖例都做了修改和更新;
對全書的結構做了較大的調整,內容邏輯和學習曲線更加合理;
刪除和更新了原有過時的內容;
優化和補充了原有的部分內容,使之更深入和透徹;
新增了大量與新技術和作者新經驗相關的內容。
…… 
具體的變化,前言中做了非常詳盡的描述。

目錄大綱

前言
第一篇KVM虛擬化基礎
第1章虛擬化簡介2 
1.1雲計算概述2 
1.1.1什麼是雲計算2 
1.1.2雲計算的歷史4 
1.1.3雲計算的幾種服務模型5 
1.2虛擬化技術6 
1.2.1什麼是虛擬化6 
1.2.2軟件虛擬化和硬件虛擬化7 
1.2.3半虛擬化和全虛擬化8 
1.2.4 Type1和Type2虛擬化8 
1.3 KVM簡介9 
1.3.1 KVM的歷史9 
1.3.2 KVM的功能概覽10 
1.3.3 KVM的現狀12 
1.3.4 KVM的展望13 
1.4其他的虛擬化解決方案簡介14 
1.4.1 Xen14 
1.4.2 VMware14 
1.4.3 HyperV16 
1.4.4 Container17 
1.5本章小結17 
第2章KVM原理簡介18 
2.1硬件虛擬化技術18 
2.1.1 CPU虛擬化18 
2.1.2內存虛擬化20 
2.1.3 I/O虛擬化22 
2.1.4 Intel虛擬化技術發展24 
2.2 KVM架構概述25 
2.3 KVM內核模塊26
2.4 QEMU用戶態設備模擬27 
2.5與QEMU/KVM結合的組件28 
2.6 KVM上層管理工具30 
2.7本章小結31 
第3章構建KVM環境32 
3.1硬件系統的配置32 
3.2安裝宿主機Linux系統34 
3.3編譯和安裝KVM37 
3.3.1下載KVM源代碼37 
3.3.2配置KVM39 
3.3.3編譯KVM43 
3.3.4安裝KVM44 
3.4編譯和安裝QEMU46 
3.4.1曾經的qemu-kvm46 
3.4.2下載QEMU源代碼47 
3.4.3配置和編譯QEMU47 
3.4.4安裝QEMU49 
3.5安裝客戶機50 
3.6啟動第一個KVM客戶機53 
3.7本章小結53 
第4章KVM管理工具55 
4.1 libvirt55 
4.1.1 libvirt簡介55 
4.1.2 libvirt的安裝與配置58 
4.1 .3 libvirt域的XML配置文件63 
4.1.4 libvirt API簡介76 
4.1.5建立到Hypervisor的連接78 
4.1.6 libvirt API使用示例82
4.2 virsh87 
4.2.1 virsh簡介87 
4.2.2 virsh常用命令88 
4.3 virt-manager95 
4.3.1 virt-manager簡介95 
4.3.2 virt-manager編譯和安裝96 
4.3.3 virt-manager使用96 
4.4 virt-viewer、 virt-install、virt-top和libguestfs105 
4.4.1 virt-viewer105 
4.4.2 virt-install106 
4.4.3 virt-top107 
4.4.4 libguestfs107 
4.5雲計算管理平台109 
4.5.1 OpenStack簡介109 
4.5.2 ZStack簡介111 
4.6本章小結111 
第5章KVM核心基礎功能112 
5.1硬件平台和軟件版本說明112 
5.2 CPU配置114 
5.2.1 vCPU的概念115 
5.2.2 SMP的支持116 
5.2.3 CPU過載使用123 
5.2.4 CPU模型124 
5.2.5進程的處理器親和性和vCPU的綁定127 
5.3內存配置131 
5.3.1內存設置基本參數132
5.3.2 EPT和VPID簡介133 
5.3.3內存過載使用136 
5.4存儲配置137 
5.4.1存儲配置和啟動順序137 
5.4.2 qemu-img命令142 
5.4.3 QEMU支持的鏡像文件格式145 
5.4.4客戶機存儲方式149 
5.5網絡配置150 
5.5.1用QEMU實現的網絡模式151 
5.5.2使用直接的網橋模式154 
5.5.3用網橋實現NAT模式161 
5.5.4 QEMU內部的用戶模式網絡170 
5.5. 5其他網絡選項174 
5.6圖形顯示175 
5.6.1 SDL的使用175 
5.6.2 VNC的使用177 
5.6.3 VNC顯示中的鼠標偏移186 
5.6.4非圖形模式187 
5.6.5顯示相關的其他選項189 
5.7本章小結191 
第二篇KVM虛擬化進階
第6章KVM設備高級管理194 
6.1半虛擬化驅動194 
6.1.1 virtio概述194 
6.1.2安裝virtio驅動196 
6.1.3使用virtio_balloon203 
6.1.4使用virtio_net208
6.1.5使用virtio_blk210 
6.1.6內核態的vhost-net後端以及網卡多隊列212 
6.1.7使用用戶態的vhost-user作為後端驅動215 
6.1.8 kvm_clock配置216 
6.1.9對Windows客戶機的優化218 
6.2設備直接分配(VT-d)219 
6.2.1 VT-d概述219 
6.2.2 VFIO簡介220 
6.2.3 VT-d環境配置221 
6.2.4 VT-d操作示例230 
6.2.5 SR-IOV技術240 
6.3熱插拔251 
6.3.1 PCI設備熱插拔252 
6.3.2 PCI設備熱插拔示例253 
6.3.3 CPU的熱插拔259 
6.3.4內存的熱插拔260 
6.3.5磁盤的熱插拔264 
6.3.6網卡接口的熱插拔265 
6.4本章小結266 
第7章KVM內存管理高級技巧268 
7.1大頁268 
7.1.1大頁的介紹268 
7.1.2 KVM虛擬化對大頁的利用271 
7.2透明大頁274 
7.3 KSM277 
7.3.1 KSM基本原理278 
7.3.2 KSM操作實踐280
7.3.3 QEMU對KSM的控制286 
7.4與NUMA相關的工具288 
7.4.1 numastat289 
7.4.2 numad290 
7.4.3 numactl294 
7.5本章小結295 
第8章KVM遷移297 
8.1動態遷移297 
8.1.1動態遷移的概念297 
8.1.2動態遷移的效率和應用場景298 
8.1.3 KVM動態遷移原理299 
8.1.4 KVM動態遷移實踐302 
8.1.5 VT-d/SR-IOV的動態遷移306 
8.2遷移到KVM虛擬化環境307 
8.2 .1 virt-v2v工具介紹307 
8.2.2從Xen遷移到KVM308 
8.2.3從VMware遷移到KVM310 
8.2.4從VirtualBox遷移到KVM311 
8.2.5從物理機遷移到KVM虛擬化環境(P2V)312 
8.3本章小結313 
第9章其他高級功能314 
9.1嵌套虛擬化314 
9.1.1嵌套虛擬化的基本概念314 
9.1.2 KVM嵌套KVM315 
9.2 KVM安全318 
9.2.1 SMEP/SMAP/MPX318
9.2.2控制客戶機的資源使用—cgroups319 
9.2.3 SELinux和sVirt327 
9.2.4其他安全策略336 
9.3 CPU指令相關的性能優化340 
9.3.1 AVX/AVX2/AVX512340 
9.3.2 XSAVE指令集342 
9.3.3 AES新指令343 
9.3.4完全暴露宿主機CPU特性349 
9.4 QEMU監控器351 
9.4.1 QEMU monitor的切換和配置351 
9.4.2常用命令介紹352 
9.5 qemu命令行參數358 
9.5.1回顧已用過的參數358 
9.5.2其他常用參數363 
9.6本章小結372 
第三篇性能測試與調優
第10章KVM性能測試及參考數據374 
10.1虛擬化性能測試簡介374 
10.2 CPU性能測試376 
10.2.1 CPU性能測試工具376 
10.2.2測試環境配置378 
10.2.3性能測試方法381 
10.2.4性能測試數據382 
10.3內存性能測試384 
10.3.1內存性能測試工具384 
10.3.2測試環境配置385 
10.3.3性能測試方法385
10.3.4性能測試數據387 
10.4網絡性能測試388 
10.4.1網絡性能測試工具388 
10.4.2測試環境配置389 
10.4.3性能測試方法391 
10.4.4性能測試數據393 
10.5磁盤I/O性能測試394 
10.5 .1磁盤I/O性能測試工具394 
10.5.2測試環境配置395 
10.5.3性能測試方法397 
10.5.4性能測試數據400 
10.6 CPU指令集對性能的提升403 
10.7其他影響客戶機性能的因素405 
10.8本章小結407 
附錄A Linux發行版中的KVM408 
附錄B參與KVM開源社區417