五個值得關(guān)注的云計(jì)算項(xiàng)目盤點(diǎn)
原創(chuàng)【51CTO專稿】2012年的LinuxCon大會之后,Linux基金會執(zhí)行董事Jim Zemlin在自己的博客上總結(jié)道:
云計(jì)算已經(jīng)對整個技術(shù)產(chǎn)業(yè)經(jīng)濟(jì)體造成了極大的變革,而這變革仍將繼續(xù)。目前領(lǐng)跑的Amazon平臺全都是基于開源軟件來構(gòu)建的。廠商們也不再各自單打獨(dú)斗,而是紛紛在OpenStack和CloudStack這樣的項(xiàng)目中聯(lián)合作戰(zhàn)?,F(xiàn)在,無論你去找任何廠商,讓他談?wù)劗?dāng)前的技術(shù)趨勢,他們都會跟你談組成現(xiàn)在這些云的開源項(xiàng)目。
Zemlin拉了一份清單,重點(diǎn)列出了幾個相關(guān)的項(xiàng)目。其中,除了大家耳熟能詳?shù)腖inux,KVM和Xen之外,還包括:
- Gluster
- Ceph
- Puppet
- Chef
- oVirt
Zemlin認(rèn)為構(gòu)建云平臺的廠商和工程師們都有必要去了解這幾個項(xiàng)目。本文旨在對這五個項(xiàng)目進(jìn)行簡單的背景介紹,供大家參考。
GlusterFS(http://www.gluster.org/)
GlusterFS是一個分布式文件系統(tǒng),在GPL許可協(xié)議下發(fā)布。該項(xiàng)目在2005年由Gluster公司啟動。2011年,Gluster公司被紅帽收購,項(xiàng)目目前由紅帽主導(dǎo)。目前,GlusterFS已經(jīng)在Red Hat Storage Server中采用。
GlusterFS面向PB級的數(shù)據(jù)處理,理論上可以處理72BB的數(shù)據(jù)(BB比PB高五個級別,相當(dāng)于10的27次方),支持上千規(guī)模的客戶端。集群存儲塊之間通過Infiniband RDMA或TCP/IP以太網(wǎng)連接,形成大型的并行網(wǎng)絡(luò)文件系統(tǒng),在一個全局的命名空間下進(jìn)行資源調(diào)配和數(shù)據(jù)管理。在設(shè)計(jì)上,用戶空間是可堆疊的。
Ceph(http://ceph.com/)
Ceph是一個分布式對象存儲項(xiàng)目,在LGPL許可協(xié)議下發(fā)布。該項(xiàng)目的雛形起始于2006/2007年,Dreamhost聯(lián)合創(chuàng)始人Sage Wei的博士論文。Sage Wei博士畢業(yè)后,與另外兩名開發(fā)者Yehuda Sadeh Weinraub和Gregory Farnum一起全職投入Ceph的開發(fā),期間該項(xiàng)目一直隸屬Dreamhost內(nèi)部。2012年,Sage Wei成立Inktank公司,專門提供Ceph的產(chǎn)品化和支持服務(wù)。
目前,Ceph背后的主要廠商為Inktank,Dreamhost和42on。Dreamhost的DreamObjects正是由Ceph實(shí)現(xiàn),同時Ceph也跟CloudStack、OpenStack、Proxmox等項(xiàng)目進(jìn)行了集成。
Ceph的目標(biāo)是全面的分布式,杜絕任何單點(diǎn)故障。Ceph主要面向PB級的數(shù)據(jù)處理,理論上整個存儲系統(tǒng)可以擴(kuò)展至EB級別。其對象存儲可通過C,C++,Java,Python和PHP綁定或名為radosgw的REST接口進(jìn)行訪問,該接口與S3和Swift兼容。塊存儲使用Ceph的RADOS Block Device(RBD),數(shù)據(jù)被打散存儲在整個集群中。RBD已經(jīng)與KVM進(jìn)行了集成。Ceph提供的文件系統(tǒng)與POSIX網(wǎng)絡(luò)文件系統(tǒng)(btrfs、ext3、ext4、xfs)兼容。
2010年3月,Linux kernel 2.6.34中合并了Ceph的客戶端代碼。2012年7月,Ceph發(fā)布第一個穩(wěn)定版本Argonaut。第二個穩(wěn)定版本Bobtail發(fā)布于2013年1月。
Puppet(https://puppetlabs.com/)
Puppet是Linux上的四大配置管理工具之一(四大工具分別是CFEngine、Bcfg2、Chef及Puppet),新版采用Apache許可協(xié)議,2.7.0及之前的版本為GPL許可協(xié)議。Puppet的主要開發(fā)者是Luke Kanies。從2001年到2005年間,Kanies開始在Reductive Labs從事工具的開發(fā);2005年,Puppet正式發(fā)布。2010年,Reductive Labs更名為Puppet Labs。這是Puppet背后的主要支持廠商。
Puppet Labs的投資方包括VMware,Google和思科。
目前,Puppet在Wikimedia基金會、ARIN、Reddit、Dell、Rackspace、Zynga、Twitter、紐約證交所、迪士尼、思杰、甲骨文、Google、新浪等公司都有部署應(yīng)用。這里有一份Puppet官方提供的客戶列表。
Puppet的常用場景包括升級軟件包、管理配置文件、系統(tǒng)服務(wù)、cron任務(wù)以及添加新的配置、修復(fù)錯誤等,在設(shè)計(jì)上可同時管理上千臺服務(wù)器。
Puppet基于Ruby,依賴于C/S的部署架構(gòu)。Puppet采用一種定制的聲明式語言來描述系統(tǒng)配置,不需要管理員有深入的編程經(jīng)驗(yàn)。這個單獨(dú)的腳本可以直接被應(yīng)用在系統(tǒng)上進(jìn)行環(huán)境變更,也可以被編譯進(jìn)入catalog之后再通過C/S的部署分發(fā)到目標(biāo)系統(tǒng)上,所有的目標(biāo)主機(jī)會依次使用適用于本地系統(tǒng)的語法解釋和執(zhí)行這個模塊。
另外,通過定制軟件包和特殊的系統(tǒng)環(huán)境配置,可以對Puppet進(jìn)行擴(kuò)展。
Puppet支持各種Linux發(fā)行版,部分Unix發(fā)行版(Solaris,BSD,Mac OS X,AIX,HP-UX),以及微軟Windows系統(tǒng)。
Chef(http://www.opscode.com/chef/)
跟Puppet類似,Chef也是Linux上的四大配置管理工具之一,在Apache許可協(xié)議下發(fā)布。Chef的第一個正式版本發(fā)布于2009年1月,其背后的主要公司Opscode成立于2008年。在開發(fā)Chef之前,這是一家名為HJK Solutions的咨詢公司。
Opscode跟AWS、思杰、Dell、Eucalyptus、GCE、HP Cloud、Joyent、Windows Azure、nimbula、Piston、Rackspace、VMware等云服務(wù)均有合作。同時,Chef在Facebook、Dreamhost、MercadoLibre等公司均有應(yīng)用。這里有一份Chef官方網(wǎng)站提供的客戶列表。
Chef專注于快速部署、云服務(wù)管理與持續(xù)交付。
Chef使用Ruby和Erlang編寫,其用于描述系統(tǒng)配置的領(lǐng)域?qū)S谜Z言采用Ruby編寫,稱作recipe或cookbook。Chef可以使用C/S架構(gòu)部署,并針對Rackspace(OpenStack)、Amazon EC2進(jìn)行了集成。除了Linux之外,Chef也支持Windows系統(tǒng)。
Chef的最新版本Chef 11發(fā)布于2013年2月,其核心API引擎全部采用Erlang進(jìn)行了重寫。
oVirt(http://www.ovirt.org/)
oVirt是一個虛擬化管理系統(tǒng),在Apache 2.0許可協(xié)議下發(fā)布。2008年,Qumranet被紅帽收購,其虛擬化管理軟件需要從C#改寫為Java。2011年9月,紅帽宣布將這部分代碼開源,成為新項(xiàng)目oVirt的一部分。2011年11月初,紅帽在思科公司舉辦了第一次oVirt Workshop,與IBM、英特爾、思科、Canonical、NetApp與SUSE一同宣布o(jì)Virt社區(qū)的成立。
紅帽的企業(yè)級虛擬化產(chǎn)品RHEV 3.0內(nèi)部就包含了oVirt。同時,oVirt目前也是Fedora發(fā)行版中默認(rèn)預(yù)裝的工具之一。
oVirt基于libvirt--一個可以管理KVM、Xen和VirtualBox虛擬機(jī)的管理系統(tǒng)。與libvirt不同的是,oVirt僅專注于KVM,目標(biāo)在于提供大規(guī)模的、對虛擬機(jī)、存儲、虛擬網(wǎng)絡(luò)的集中式管理。oVirt通過XML-RPC HTTPS與安裝了VDSMd守護(hù)進(jìn)程的宿主機(jī)通信,管理界面基于Web。
oVirt支持高可用和熱遷移,單個虛擬機(jī)最大可支持64個vCPU和2TB vRAM。通過VDSMd,oVirt可以管理的存儲包括:NFS,iSCSI,F(xiàn)ibreChannel,GlusterFS,以及其他POSIX兼容的文件系統(tǒng)(如IBM的GPFS)。oVirt不支持AoE。oVirt可以管理的虛擬網(wǎng)絡(luò)配置包括:鏈路聚合,VLAN,以及MTU。
除了分別面向管理員、普通用戶、高級用戶的三個Web管理界面外,oVirt也提供基于REST的API接口。該接口SDK基于Python編寫,提供了命令行管理界面,大部分oVirt的功能都可以在這個接口下獲取,用于自動化操作。
oVirt本身用Java編寫,服務(wù)端運(yùn)行在JBoss應(yīng)用服務(wù)器和GWT web框架上。目前的穩(wěn)定版本是oVirt 3.2.1,發(fā)布于2013年3月。大版本的發(fā)行周期目前為6個月。
今年的5月8號、9號兩天,下一次oVirt Workshop將在英特爾位于上海的亞太研發(fā)中心舉辦。詳細(xì)情況可參考研討會的官方網(wǎng)站。
活動報(bào)名地址:http://ovirtshanghai2013.eventbrite.com/