內容提要
《自主實現SDN虛擬網路與企業私有雲》深入淺出地介紹了YY遊戲雲平台團隊在雲計算領域的心路歷程和實踐經驗,不僅總結了多年來在OpenStack驅動的Cloud 1.0上開發和使用的經驗教訓,而且花大幅筆墨深入講解了自主研發的私有雲平台Cloud 2.0的設計和實現。
《自主實現SDN虛擬網路與企業私有雲》內容全面而詳盡,依次講解了Cloud 2.0的選型思路、基於VXLAN技術的VPC網路架構設計和實現、業務層架構設計和實現、基於libvirt的虛擬計算實踐、基於Ceph的虛擬存儲實踐、雲數據源等產品的架構選型及實現、容量管理的詳細思路,以及雲平台方方面面的測試,是雲計算領域實踐類書籍中不可多得的一本好書。
《自主實現SDN虛擬網路與企業私有雲》乾貨眾多,不僅適合初入雲計算領域的讀者閱讀,更適合開發人員參考學習和實踐。《自主實現SDN虛擬網路與企業私有雲》各章均可獨立成冊,讀者可以根據自己的需要來閱讀。
目錄
第1章 緒論 1
1.1 雲計算發展趨勢 1
1.2 YY遊戲使用雲平台的經驗 3
1.3 雲計算隨想 5
第2章 選型思路 8
2.1 為什麼放棄OpenStack 8
2.2 Cloud 2.0研發思路 9
2.3 發展規劃:基於雲的VDC實現 14
第3章 Cloud 2.0虛擬網路實現 17
3.1 Cloud 1.0的實踐經驗 17
3.1.1 Neutron與企業私有雲 18
3.1.2 問題與不足 19
3.1.3 擁抱SDN 22
3.2 虛擬網路架構 26
3.2.1 Overlay網路模型 26
3.2.2 虛擬網路架構 33
3.2.3 網路設備技術要點 37
3.3 虛擬網路實現 41
3.3.1 Underlay網路 41
3.3.2 Overlay網路——VXLAN VPC 44
3.3.3 SDN的核心—控制器實現 49
3.3.4 服務如臂使指—北向接口API 54
3.3.5 網路觸手可及—南向控制協定 57
3.3.6 SDN與NFV 61
3.4 虛擬網路業務 62
3.4.1 Underlay網路配置流程 62
3.4.2 雲主機創建流程 65
3.4.3 雲主機遷移流程 66
第4章 雲平台業務 67
4.1 業務組件 67
4.2 業務架構 69
4.3 安全子系統 70
4.3.1 用戶安全 70
4.3.2 組件安全 72
4.3.3 技術實現 75
4.4 調度子系統 90
4.4.1 流程引擎設計 90
4.4.2 統一實現審計 94
4.4.3 樂觀鎖加記錄鎖的並發控制 94
4.4.4 異步執行緒池管理 96
4.4.5 基於Redis實現的分散式鎖 97
4.4.6 基於Hibernate與Spring JDBC的靈活持久層 100
4.5 雲控制台 101
4.5.1 為什麼選擇AngularJS 102
4.5.2 開發心得總結 105
第5章 虛擬計算 116
5.1 虛擬化概述 116
5.2 KVM/QEMU/libvirt淺析 117
5.2.1 KVM簡介 117
5.2.2 KVM與QEMU 118
5.2.3 libvirt介紹 119
5.3 KVM虛擬化環境安裝 120
5.3.1 APT源安裝 120
5.3.2 源碼編譯安裝 120
5.4 使用qemu-img管理虛擬機磁碟鏡像 121
5.4.1 qemu-img基本命令 122
5.4.2 在宿主機上如何掛載鏡像檔案 124
5.5 使用libvirt管理KVM虛擬機 124
5.5.1 libvirt Java API的使用 124
5.5.2 虛擬機XML配置檔案詳解 133
5.5.3 virsh常用命令 141
5.6 實戰系列 142
5.6.1 使用Cloudinit實現虛擬機啟動初始化 142
5.6.2 線上更改虛擬機記憶體大小 146
5.6.3 熱添加虛擬機CPU 147
5.6.4 如何限制虛擬機磁碟I/O 148
5.6.5 在虛擬機內部如何正確自動掛載磁碟 148
5.6.6 虛擬機如何使用Ceph塊設備 149
5.6.7 libvirt hook機制 151
5.6.8 如何支持使用virsh控制台登錄虛擬機 152
5.6.9 虛擬機如何通過OpenvSwitch接入網路 153
5.6.10 宿主機如何通過qemu-guest-agent與虛擬機通信 154
5.6.11 虛擬機的遷移 156
第6章 虛擬存儲 161
6.1 概念和術語 162
6.2 硬體配置 162
6.2.1 Ceph網路配置 163
6.2.2 伺服器配置 165
6.3 軟體配置 166
6.4 部署 168
6.4.1 設定副本分布到不同的機架上 168
6.4.2 創建Pool 172
6.4.3 測試PG副本的機架分布性 173
6.5 監控 173
6.5.1 監控層次 173
6.5.2 與Zabbix監控系統集成 174
6.5.3 告警條件 174
6.5.4 監控面板 174
6.6 性能測試和調優 176
6.6.1 塊設備性能測試 176
6.6.2 調優 177
6.7 維護操作 183
6.7.1 使用systemctl管理Ceph進程 183
6.7.2 OSD機器重啟 184
6.7.3 擴容 184
6.7.4 升級Ceph軟體版本 184
6.8 故障定位和處理 185
6.8.1 查看集群狀態 185
6.8.2 日誌 186
6.8.3 MON 187
6.8.4 OSD 188
6.8.5 PG 192
6.8.6 實際運維中的問題 196
第7章 雲資料庫 199
7.1 雲資料庫服務功能介紹 199
7.2 1.0版本三層架構 199
7.2.1 Manager開放API的認證方式 201
7.2.2 Manager節點的調度策略 202
7.2.3 Manager節點的配額管理 203
7.2.4 Backend節點的資源 203
7.3 雲資料庫2.0版本架構演化及改進 214
7.3.1 雲資料庫1.0版本的問題與不足 215
7.3.2 雲資料庫2.0版本的改進 215
7.3.3 CloudMySQL 2.0 Agent的設計模型 217
7.3.4 CloudMySQL 2.0 KVM配置 221
7.4 小結 225
第8章 雲平台容量管理 226
8.1 容量管理概述 226
8.2 容量管理真實案例 227
8.3 容量管理特點和成熟度 229
8.3.1 ITIL容量管理特點 229
8.3.2 雲平台容量管理特點 229
8.3.3 雲平台容量管理成熟度模型 230
8.4 容量管理組件 231
8.5 容量管理總體模型 231
8.5.1 容量與其他系統的關係 233
8.5.2 網路模型 234
8.5.3 計算模型 236
8.5.4 存儲模型 237
8.5.5 雲MySQL模型 239
8.6 容量預測 241
8.7 容量管理可視化 242
8.8 容量管理之資源採購 243
8.9 小結 243
第9章 雲平台測試 244
9.1 雲平台測試策略 244
9.1.1 雲平台項目測試特性 244
9.1.2 測試方法與策略 245
9.1.3 測試環境 248
9.2 雲計算測試 249
9.2.1 功能測試 249
9.2.2 自動化測試 252
9.3 雲資料庫測試 257
9.3.1 雲MySQL測試 257
9.3.2 雲Redis測試 260
9.4 雲網路測試 262
9.4.1 虛擬網路測試 262
9.4.2 雲平台業務的網路功能測試 273
9.4.3 遷移後的網路測試 277
9.5 雲平台安全測試 280
9.5.1 API安全測試 280
9.5.2 雲Redis安全測試 283
附錄A 縮略詞表 286