自主實現SDN虛擬網絡與企業私有雲
內容描述
本書深入淺出地介紹了YY游戲雲平臺團隊在雲計算領域的心路歷程和實踐經驗,不僅總結了多年來在OpenStack驅動的Cloud 1.0上開發和使用的經驗教訓,而且花大幅筆墨深入講解了自主研發的私有雲平臺Cloud 2.0的設計和實現。本書內容全面而詳盡,依次講解了Cloud 2.0的選型思路、基於VXLAN技術的VPC網絡架構設計和實現、業務層架構設計和實現、基於libvirt的虛擬計算實踐、基於Ceph的虛擬存儲實踐、雲數據源等產品的架構選型及實現、容量管理的詳細思路,以及雲平臺方方面面的測試,是雲計算領域實踐類書籍中不可多得的一本好書。本書乾貨眾多,不僅適合初入雲計算領域的讀者閱讀,更適合開發人員參考學習和實踐。本書各章均可獨立成冊,讀者可以根據自己的需要來閱讀。
目錄大綱
第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 14 8
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
作者介紹
YY遊戲是歡聚時代旗下的遊戲運營品牌,YY遊戲雲平台組致力於構建高性能、高可用的私有云平台,以服務遊戲業務。雲平台組由一支高效的開發、運維、QA團隊組成,在虛擬計算、SDN、分佈式存儲方面,有豐富的經驗和獨到的理解,成功地支撐起多款月流水過億的遊戲運營。