OpenStack实战指南

黄凯 毛伟杰 顾骏杰
前言 在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。虽然在这期间笔者增长了知识,也学会了苦中作乐,但笔者却不想读者也为同样的问题徒…