數年前既率先搭建私有云平臺,多款上億知名游戲運行其上
系統設計理念、核心技術(shù)方案,獻給開(kāi)發(fā)|運維|架構|選型……
容量管理|云數據源|Ceph虛擬存儲|libvirt的虛擬計算|VXLAN技術(shù)
如何上云|如何用云,超高復雜度下量體裁衣定制自有云平臺
本書(shū)深入淺出地介紹了YY游戲云平臺團隊在云計算領(lǐng)域的心路歷程和實(shí)踐經(jīng)驗,不僅總結了多年來(lái)在OpenStack驅動(dòng)的Cloud 1.0上開(kāi)發(fā)和使用的經(jīng)驗教訓,而且花大幅筆墨深入講解了自主研發(fā)的私有云平臺Cloud 2.0的設計和實(shí)現。本書(shū)內容全面而詳盡,依次講解了Cloud 2.0的選型思路、基于VXLAN技術(shù)的VPC網(wǎng)絡(luò )架構設計和實(shí)現、業(yè)務(wù)層架構設計和實(shí)現、基于libvirt的虛擬計算實(shí)踐、基于Ceph的虛擬存儲實(shí)踐、云數據源等產(chǎn)品的架構選型及實(shí)現、容量管理的詳細思路,以及云平臺方方面面的測試,是云計算領(lǐng)域實(shí)踐類(lèi)書(shū)籍中不可多得的一本好書(shū)。本書(shū)干貨眾多,不僅適合初入云計算領(lǐng)域的讀者閱讀,更適合開(kāi)發(fā)人員參考學(xué)習和實(shí)踐。本書(shū)各章均可獨立成冊,讀者可以根據自己的需要來(lái)閱讀。
目錄
第1章 緒論 1
1.1 云計算發(fā)展趨勢 1
1.2 YY游戲使用云平臺的經(jīng)驗 3
1.3 云計算隨想 5
第2章 選型思路 8
2.1 為什么放棄OpenStack 8
2.2 Cloud 2.0研發(fā)思路 9
2.3 發(fā)展規劃:基于云的VDC實(shí)現 14
第3章 Cloud 2.0虛擬網(wǎng)絡(luò )實(shí)現 17
3.1 Cloud 1.0的實(shí)踐經(jīng)驗 17
3.1.1 Neutron與企業(yè)私有云 18
3.1.2 問(wèn)題與不足 19
3.1.3 擁抱SDN 22
3.2 虛擬網(wǎng)絡(luò )架構 26
3.2.1 Overlay網(wǎng)絡(luò )模型 26
3.2.2 虛擬網(wǎng)絡(luò )架構 33
3.2.3 網(wǎng)絡(luò )設備技術(shù)要點(diǎn) 37
3.3 虛擬網(wǎng)絡(luò )實(shí)現 41
3.3.1 Underlay網(wǎng)絡(luò ) 41
3.3.2 Overlay網(wǎng)絡(luò )――VXLAN VPC 44
3.3.3 SDN的核心―控制器實(shí)現 49
3.3.4 服務(wù)如臂使指―北向接口A(yíng)PI 54
3.3.5 網(wǎng)絡(luò )觸手可及―南向控制協(xié)議 57
3.3.6 SDN與NFV 61
3.4 虛擬網(wǎng)絡(luò )業(yè)務(wù) 62
3.4.1 Underlay網(wǎng)絡(luò )配置流程 62
3.4.2 云主機創(chuàng )建流程 65
3.4.3 云主機遷移流程 66
第4章 云平臺業(yè)務(wù) 67
4.1 業(yè)務(wù)組件 67
4.2 業(yè)務(wù)架構 69
4.3 安全子系統 70
4.3.1 用戶(hù)安全 70
4.3.2 組件安全 72
4.3.3 技術(shù)實(shí)現 75
4.4 調度子系統 90
4.4.1 流程引擎設計 90
4.4.2 統一實(shí)現審計 94
4.4.3 樂(lè )觀(guān)鎖加記錄鎖的并發(fā)控制 94
4.4.4 異步線(xiàn)程池管理 96
4.4.5 基于Redis實(shí)現的分布式鎖 97
4.4.6 基于Hibernate與Spring JDBC的靈活持久層 100
4.5 云控制臺 101
4.5.1 為什么選擇AngularJS 102
4.5.2 開(kāi)發(fā)心得總結 105
第 5章 虛擬計算 116
5.1 虛擬化概述 116
5.2 KVM/QEMU/libvirt淺析 117
5.2.1 KVM簡(jiǎn)介 117
5.2.2 KVM與QEMU 118
5.2.3 libvirt介紹 119
5.3 KVM虛擬化環(huán)境安裝 120
5.3.1 APT源安裝 120
5.3.2 源碼編譯安裝 120
5.4 使用qemu-img管理虛擬機磁盤(pán)鏡像 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 實(shí)戰系列 142
5.6.1 使用Cloudinit實(shí)現虛擬機啟動(dòng)初始化 142
5.6.2 在線(xiàn)更改虛擬機內存大小 146
5.6.3 熱添加虛擬機CPU 147
5.6.4 如何限制虛擬機磁盤(pán)I/O 148
5.6.5 在虛擬機內部如何正確自動(dòng)掛載磁盤(pán) 148
5.6.6 虛擬機如何使用Ceph塊設備 149
5.6.7 libvirt hook機制 151
5.6.8 如何支持使用virsh控制臺登錄虛擬機 152
5.6.9 虛擬機如何通過(guò)OpenvSwitch接入網(wǎng)絡(luò ) 153
5.6.10 宿主機如何通過(guò)qemu-guest-agent與虛擬機通信 154
5.6.11 虛擬機的遷移 156
第6章 虛擬存儲 161
6.1 概念和術(shù)語(yǔ) 162
6.2 硬件配置 162
6.2.1 Ceph網(wǎng)絡(luò )配置 163
6.2.2 服務(wù)器配置 165
6.3 軟件配置 166
6.4 部署 168
6.4.1 設置副本分布到不同的機架上 168
6.4.2 創(chuàng )建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 性能測試和調優(yōu) 176
6.6.1 塊設備性能測試 176
6.6.2 調優(yōu) 177
6.7 維護操作 183
6.7.1 使用systemctl管理Ceph進(jìn)程 183
6.7.2 OSD機器重啟 184
6.7.3 擴容 184
6.7.4 升級Ceph軟件版本 184
6.8 故障定位和處理 185
6.8.1 查看集群狀態(tài) 185
6.8.2 日志 186
6.8.3 MON 187
6.8.4 OSD 188
6.8.5 PG 192
6.8.6 實(shí)際運維中的問(wèn)題 196
第7章 云數據庫 199
7.1 云數據庫服務(wù)功能介紹 199
7.2 1.0版本三層架構 199
7.2.1 Manager開(kāi)放API的認證方式 201
7.2.2 Manager節點(diǎn)的調度策略 202
7.2.3 Manager節點(diǎn)的配額管理 203
7.2.4 Backend節點(diǎn)的資源 203
7.3 云數據庫2.0版本架構演化及改進(jìn) 214
7.3.1 云數據庫1.0版本的問(wèn)題與不足 215
7.3.2 云數據庫2.0版本的改進(jìn) 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 容量管理真實(shí)案例 227
8.3 容量管理特點(diǎn)和成熟度 229
8.3.1 ITIL容量管理特點(diǎn) 229
8.3.2 云平臺容量管理特點(diǎn) 229
8.3.3 云平臺容量管理成熟度模型 230
8.4 容量管理組件 231
8.5 容量管理總體模型 231
8.5.1 容量與其他系統的關(guān)系 233
8.5.2 網(wǎng)絡(luò )模型 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 測試環(huán)境 248
9.2 云計算測試 249
9.2.1 功能測試 249
9.2.2 自動(dòng)化測試 252
9.3 云數據庫測試 257
9.3.1 云MySQL測試 257
9.3.2 云Redis測試 260
9.4 云網(wǎng)絡(luò )測試 262
9.4.1 虛擬網(wǎng)絡(luò )測試 262
9.4.2 云平臺業(yè)務(wù)的網(wǎng)絡(luò )功能測試 273
9.4.3 遷移后的網(wǎng)絡(luò )測試 277
9.5 云平臺安全測試 280
9.5.1 API安全測試 280
9.5.2 云Redis安全測試 283
附錄A 縮略詞表 286