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