日本雅虎用 OpenStack 打造5万台VM管理术
全日本网站流量第一的日本雅虎而言,满足每月650亿次的网页浏览量不是太大的问题,更大的困难是瞬间3倍爆量的考验。日本雅虎网络营运总部基础建设技术分部部长伊藤拓矢说,曾观察到日本发生地震后,在数十秒内,日本雅虎资料中心的网络流量瞬间暴增为平时尖峰的3倍,如何事先打造出一套可以应付这种瞬间爆量的基础架构,正是伊藤拓矢的任务。
通过资料中心抽象化,提供内部稳定服务
因为日本雅虎除了网站服务外,也提供了不少天气预报或防灾情报的行动App,每当遇到地震,许多民众会透过这类App来查询最新的地震、海啸等资讯而导致网站流量暴增。而这些都是攸关人身安全的服务,即使系统处于高负荷的状态下,仍然要确保稳定提供服务,伊藤拓矢表示,关键作法就是必须将整座资料中心的资源抽象化。
日本雅虎起初自行开发了一套IaaS平台来调度内部服务所需的运算资源,可提供超过1万台虚拟机器的规模。但因采用了自行开发的专属API,很难结合开源软体社群的资源。
因此,在2013年时,日本雅虎决定改导入OpenStack来打造内部IaaS平台。过去一年来,日本雅虎OpenStack丛集的规模也成长了 1倍,部署用的实体机器从2,000台增加到4,000台,可提供的虚拟机器数量也从2.5万个增加到了5万个。由于OpenStack软体上的效能改进,单柜伺服器所能执行的虚拟机器,也从400个提高到单柜2,000个。伊藤拓矢表示,目前1柜OpenStack丛集,抵得上过去6柜采裸机部署的机柜。
日本雅虎目前部署了超过20个OpenStack丛集,总储存容量达20PB,可用性能达到99.996%。日本雅虎还建立了一个10人规模的 OpenStack维运团队,其中6名开发者和4名维运人员。为了管理大量OpenStack丛集,甚至还自制了一套小型整合管理平台。
伊藤拓矢表示,透过OpenStack建立了一个自助式的资料中心资源使用平台,来提供2千名雅虎员工使用,让OpenStack团队专注于处理突发事件。开发者随时都可以取得自行申请虚拟机器,最近甚至连非开发人员,如分析人员和营业人员都会用。
不需要透过工程师协助,这套系统平均每天会自动建立500个新的虚拟机器,不过,其中半数虚拟机器用不满一个月就会移除。
他说,这套日本雅虎5万个虚拟机器的新IaaS平台,直接使用了庞大社群所开发的OpenStack来提供基础功能,不用像过去得自行开发介接各种虚拟化技术的特殊API。而Appliance层级的功能则与第三方厂商共同开发,只有内部特殊需求的专属功能才由雅虎开发人员自制,如内部签核流程或是公司法的特殊需求。
伊藤拓矢表示,使用OpenStack的好处是,可以使用一套统一的API,来管理多种虚拟化平台,甚至能管理Container。更重要的是能将资料中心的硬体抽象化,使用者不再需要为了效能调校而费心研究所用的硬体设备,而是可以专注于开发服务。
不过,他提醒,使用OpenStack建立虚拟机器要有用完即丢的概念。以日本雅虎为例,导入OpenStack时要克服的最大问题,反而是要求开发人员抛掉过去执行程式的习惯,不是要想办法调校出一个能够永久使用的系统环境,而是要懂得善用替换成本很低的虚拟机器。 「每次建立新的虚拟机器就是一个全新的执行环境,使用完毕后就删除,需要的时候再重新建立。」他说。
这个用完即丢的思维也有助于降低成本。伊藤拓矢表示,以现在日本雅虎使用的运算资源来说,用OpenStack自建私有云,比起使用公有云服务减少了97%的成本。但是服务取得越方便,也越容易造成浪费,因此,雅虎会透过OpenStack的帐务机制来计算使用者所使用虚拟机器的时数,来教育使用者要具备成本意识, 养成虚拟机器不用时就释出的习惯。
丛集版本不用更新,直接砍掉重练
OpenStack更新频繁,1年中改版2次的快节奏,让不少采用的企业直呼吃不消,甚至干脆选择不更新,而日本雅虎以资料中心生命周期管理版本,也同样借镜用完即丢的思维,来解决这个困扰许多企业的问题。
日本雅虎在资料中心内,同时部署了4种版本的OpenStack丛集,每一个版本各所提供的虚拟机器数量约各占总量的四分之一。当 OpenStack要推出新版时,他们会有计画地全部移除最旧版本丛集上的虚拟机器,再重新安装最新版本,因此一个OpenStack版本在日本雅虎资料中心的寿命大约是两年。
伊藤拓矢解释,例如他们原先在资料中心部署了Havana、Icehouse、Kilo以及Juno等4种版本的丛集,等到Havana版丛集上的虚拟机器都关闭后,再将该丛集的软体重新安装为还未发表正式版的Liberty版本。
不仅不担心OpenStack快速改版的步调,伊藤拓矢甚至非常肯定OpenStack的改版作法,「有新版本,才有新功能可用。」他说。透过资料中心分区升级的策略,日本雅虎也能积极采用新版,甚至在正式版释出前,从Beta 2版本就会开始导入,先用于维运团队的内部测试。例如,伊藤拓矢已经开始试用今年10月才会正式发布的Liberty版本,他个人最推荐的新功能是共享档案系统服务Manila,由于日本雅虎近期有类似储存服务的计画,这个套件则符合日本雅虎的需求。