《OpenStack实战指南》—— 导读

简介:

8429d53484064f03b89c30feceeaeac9d2ee5f5e

前  言

在2007年前后,许多网站站长发现当时一部分主流机托管商开始逐步使用虚拟化技术提供云主机的托管服务,而当时的虚拟化程度还停留在半虚拟化或类似OpenVZ这样的伪虚拟化的水平。即便如此,一台服务器已经可以承载数十台甚至上百台虚拟主机的负荷,而且安全性更好,价格也更低。通过更加有效的隔离和封装,虚拟主机的创建和恢复也变得更加迅速和可靠。与此同时,像Eucalyptus和OpenNebula这样的云计算管理工具也开始逐步进入人们的视野。
次年,笔者机缘巧合地加入了EMC(也就是VMware的母公司)在中国的研发实验室。此后几年,以VMware ESX为主的私有云在中国的各个数据中心遍地开花。与此同时,存储超配、内存去重、SDN等技术也纷至沓来,使得云计算更加集约化,各种硬件资源的管理也更加合理。笔者正是在这种“天时地利”的条件下在实验室里开展了各项研究,让P2P计算、Hadoop计算和HPC在虚拟化和云计算技术的辅助下更加灵活和高效。
后来笔者加入了IBM中国实验室,负责x86架构下的云计算解决方案的设计和开发。作为OpenStack的主要代码贡献者,IBM公司的资源让笔者对KVM和OpenStack等开源的云计算方案有了零距离接触和本质了解,为了让每GB级别的存储和每MB级别的带宽给用户带来更多的价值,笔者也经常不断地将方案推翻重来。也就是在这段时间,OpenStack逐渐步入了它的成熟期。
从OpenStack早期的Essex版本一直到最新的IceHouse版本,笔者在不同的环境下都部署过,深深体验到了由于早期OpenStack不成熟导致的各种问题和障碍,有时候两天或三天也找不到解决方案,只能硬着头皮“挖”StackOverflow的帖子,甚至一行行地从OpenStack代码中“抠”Bug。虽然在这期间笔者增长了知识,也学会了苦中作乐,但笔者却不想读者也为同样的问题徒增几根白发或加班熬夜。幸运的是,随着OpenStack版本的不断升级,无论是代码质量还是文档的详尽度,都在一步步走向成熟,变得更加易用,而对于企业级应用中亟待解决的问题和需求,OpenStack都逐渐有了清晰的答案和参考解决方案。随之而来的是许多早期云计算用户的态度,也从最早的FUD(Fear/Uncertainty/Doubt,即害怕、不确定、怀疑的英文缩写)到逐渐接受甚至主动申请往OpenStack上迁移。
时至今日,国内用户对OpenStack的兴趣与日俱增,2013年的“OpenStack大会”更是破格在中国香港举办。本书的出版对于帮助读者学习和了解OpenStack应该是非常及时的。
2014年将是OpenStack加速进入生产环境和应用的元年,撇开Mirantis、Rackspace和Softlayer这些典型的云主机服务商,各大电信企业、电商也在跃跃欲试,使用OpenStack部署私有云或公有云环境。举个例子,笔者就见证了国内某金融服务商的数百台服务器、几千个虚拟机的OpenStack群集应用。据估计,到2015年,全球将会有约50亿美元投入到云计算建设或升级中,这其中以OpenStack为基础的云计算平台和应用肯定会大放异彩;而随着亚马逊云计算在中国的落地和国内大小云计算提供商的纷纷上马,好戏还在后头。
云计算并不只是虚拟化,实际是由虚拟化引出的所谓“软件定义的数据中心”。它不仅包括网络的虚拟化、计算的虚拟化和存储的虚拟化,还对传统数据中心的运维、管理,甚至硬件选型都产生了深刻的影响,因此,读者在学习和应用OpenStack云平台部署的时候,最好同时了解一下:哪些功能是在硬件层提供的,哪些功能是在协议层提供的,哪些功能是在虚拟层提供的,哪些功能是在OS层甚至应用层提供的。思考这些问题不仅可以帮助优化系统的整体性能,也会帮助系统管理员更加高效和简单地管理整体云计算环境。同时读者也需要对Linux操作系统有更深的了解。限于篇幅,本书无法对上述问题一一给出解答,笔者推荐读者参看由机械工业出版社出版的Kai Hwang所著的《云计算与分布式系统:从并行处理到物联网》,这本书是开始着手学习OpenStack之前的一本非常好的基础及进阶读物。
OpenStack社区和各大网站上关于OpenStack配置和运维的文档和讨论繁多,有时笔者觉得本书中某些内容无非是在做搬运工兼翻译的活计,但回头想想,当有人向自己虚心请教OpenStack的问题时若被回复一句“自己看文档去”,他心里会是何等失落。所以在写作中,笔者将体力和脑力活动一并进行,把良莠不齐的文档甄选一番,省去很多初涉OpenStack云计算读者的麻烦,让他们把时间花在更有意义的开发上,这也算是一件很有意义的事情。我希望本书的出版能让更多的人掌握OpenStack的原理和操作,广泛了解目前处于云计算前沿的技术。我还希望借此推动国内高校云计算的教学——不仅作为一门选修课,更要帮助学生将其作为IT领域的核心技能之一来掌握。
随着越来越多的开发者投入OpenStack这个生态圈,笔者也特别希望分享自己总结的成功或失败的经验,避免其他人走同样的弯路,帮助他们进入OpenStack开发的“快车道”。虽然笔者已经在企业级计算、存储及服务器领域辗转十余年,对于数据中心的建设与运维稍有心得,但一人智短,三人智长,我特别要感谢Frank、杨海明、Mark Zhu,他们在本书的创作过程中,为笔者解惑释疑,帮助扫除知识的死角,使笔者可以从系统的高度去阐述OpenStack,避免局限在技术细节而忽视了全系统的协同。这里笔者也要感谢奋战在一线的同事,他们给予的许多宝贵的现场反馈让笔者重新思索如何将OpenStack与用户实际需求相结合,避免纸上谈兵和教条主义。他们其中很多人是OpenStack的核心代码开发者,对专业知识的深入理解让笔者钦佩,也深深感到设计OpenStack这样一个通用云计算框架的不易。最后,笔者也要感谢无私地将OpenStack学习笔记分享出来的lvsaloon、nc_triin等技术爱好者。

目  录

前 言

第一部分 基 础 篇
第1章 OpenStack简介
1.1 OpenStack概述
1.2 OpenStack的结构
1.3 OpenStack的功能与作用
1.4 OpenStack与CloudStack的比较
1.5 OpenStack应用现状和发展趋势
1.6 体验OpenStack
1.6.1 初探OpenStack
1.6.2 创建OpenStack虚拟机实例
1.6.3 创建虚拟机流程概述
1.6.4 创建OpenStack磁盘实例
1.6.5 创建块存储流程概述
1.7 OpenStack体系结构
1.7.1 OpenStack设计原则
1.7.2 OpenStack架构
1.8 OpenStack的开发资源
1.8.1 OpenStack社区
1.8.2 OpenStack基金会
1.8.3 OpenStack项目资料
1.9 OpenStack非核心项目介绍
1.9.1 Ironic项目介绍
1.9.2 Tempest项目介绍

第2章 OpenStack的安装
2.1 在Ubuntu上使用二进制包安装
2.1.1 控制节点的安装
2.1.2 网络节点的安装
2.1.3 计算节点的安装
2.1.4 块存储节点的安装
2.2 在Ubuntu上使用源代码编译安装
2.2.1 控制节点的安装
2.2.2 计算节点的安装
2.2.3 网络节点的安装
2.2.4 块存储节点的安装

第二部分 进 阶 篇
第3章 OpenStack组织结构一览
3.1 组件关系
3.1.1 Nova组件
3.1.2 Swift组件
3.1.3 Keystone组件
3.1.4 Glance组件
3.1.5 Neutron组件
3.1.6 Cinder组件
3.2 OpenStack目录组织结构
3.2.1 Nova目录结构
3.2.2 Swift目录结构
3.2.3 Keystone目录结构
3.2.4 Glance目录结构
3.2.5 Neutron目录结构
3.2.6 Cinder目录结构
3.3 OpenStack配置文件
3.3.1 Nova配置文件及日志
3.3.2 Swift配置文件及日志
3.3.3 Keystone配置文件及日志
3.3.4 Glance配置文件及日志
3.3.5 Neutron配置文件及日志
3.3.6 Cinder配置文件及日志
3.4 小结

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章