猜你喜欢
自主实现SDN虚拟网络与企业私有云

自主实现SDN虚拟网络与企业私有云

书籍作者:YY游戏云平台组 ISBN:9787121310157
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:5292
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书深入浅出地介绍了YY游戏云平台团队在云计算领域的心路历程和实践经验,不仅总结了多年来在OpenStack驱动的Cloud 1.0上开发和使用的经验教训,而且花大幅笔墨深入讲解了自主研发的私有云平台Cloud 2.0的设计和实现。本书内容全面而详尽,依次讲解了Cloud 2.0的选型思路、基于VXLAN技术的VPC网络架构设计和实现、业务层架构设计和实现、基于libvirt的虚拟计算实践、基于Ceph的虚拟存储实践、云数据源等产品的架构选型及实现、容量管理的详细思路,以及云平台方方面面的测试,是云计算领域实践类书籍中不可多得的一本好书。本书干货众多,不仅适合初入云计算领域的读者阅读,更适合开发人员参考学习和实践。本书各章均可独立成册,读者可以根据自己的需要来阅读。

作者简介
YY游戏是欢聚时代旗下的游戏运营品牌,YY游戏云平台组致力于构建高性能、高可用的私有云平台,以服务游戏业务。云平台组由一支高效的开发、运维、QA团队组成,在虚拟计算、SDN、分布式存储方面,有丰富的经验和独到的理解,成功地支撑起多款月流水过亿的游戏运营。
编辑推荐
适读人群 :本书干货众多,不仅适合初入云计算领域的读者阅读,更适合开发人员参考学习和实践。本书各章均可独立成册,读者可以根据自己的需要来阅读。

数年前既率先搭建私有云平台,多款上亿知名游戏运行其上

系统设计理念、核心技术方案,献给开发|运维|架构|选型……

容量管理|云数据源|Ceph虚拟存储|libvirt的虚拟计算|VXLAN技术

如何上云|如何用云,超高复杂度下量体裁衣定制自有云平台


前言

本书由YY游戏云平台团队编写。YY游戏在平台技术上保持开放的心态,勇于采用新兴的技术来促进业务发展、降低成本。从2013年起,YY大部分游戏都运行在私有云平台上。这个私有云平台也经历了两代的发展,从第一代基于OpenStack的私有云,到第二代完全自主实现的SDN和私有云,历经磨难,实现了质的改进。

在OpenStack如日中天时期,我们也选择它来部署第一代私有云。但是很快发现OpenStack在实际运行中存在诸多问题,这些问题表明OpenStack在没有足够的开发、运维力量的情况下,不适合大规模的生产应用。当然,正是在使用OpenStack的过程中,我们学习了它的一些设计思想,例如虚拟计算的调度、虚拟网络的实现等,这些经验为我们研发第二代云平台做了有效铺垫。

从2015年8月起到2016年6月止,历经将近一年的时间,我们自主研发和上线了第二代私有云平台。第二代私有云平台完全抛弃了OpenStack,它的体系架构、业务组件、功能模块全部由我们自己实现,其中涉及对虚拟计算、虚拟存储、虚拟网络的深入分析和调研。尤其是虚拟网络,我们跟华为、华三、云杉等公司进行了大量交流,最终确定了适合自己的SDN产品和方案。

在第一代云平台向第二代云平台转型过程中,以及在第二代云平台的研发、运维中,团队进行了大量实践,并积累了许多宝贵经验。团队成员深入理解云计算本质,取其精华为己所用,构建了一个稳固的私有云平台,并成功服务于页游、端游、手游的运营。

今天,我们把建设私有云平台的实战经验以写书的方式分享出来。阅读完本书后,你会发现私有云并没有那么复杂,也并非高不可攀。只要搞懂了它的体系架构,以及每个子系统(计算、存储、网络)的实现方式,再结合企业自身的业务特点,自主构建一个私有云平台不是很难的事。

本书对于对云计算感兴趣、有计划建设私有云的用户,格外具有参考、借鉴意义。

本书内容由YY游戏云平台组的开发、运维、QA工程师共同完成,包括:

? 风河,编写了第1、2章背景介绍部分;

? 张春,编写了第3章虚拟网络部分;

? 何招武、张兴平,编写了第4章云平台业务部分;

? 朱辉,编写了第5章虚拟计算部分;

? 戚昱,编写了第6章虚拟存储部分;

? 张博,编写了第7章云数据库部分;

? 刘亚丹,编写了第8章云平台容量管理部分;

? 黄书明、廖志委、任方超,编写了第9章测试与安全部分。

上述同学在各自领域都是资深工程师,感谢他们在工作之外的辛勤付出,才有了本书。同时感谢QA组的马飞同学在本书编写过程中的项目管理工作。也感谢电子工业出版社的编辑们对本书的排版、校对工作。

如果读者对书中内容有疑问或建议,请发邮件反馈给我们:[email protected]


目录

目录


第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