OpenStack 实现云计算和存储Word文件下载.docx
《OpenStack 实现云计算和存储Word文件下载.docx》由会员分享,可在线阅读,更多相关《OpenStack 实现云计算和存储Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
由位于圣巴巴拉市的加州大学的一个研究项目开发的ElasticUtilityComputingArchitectureforLinkingYourProgramsToUsefulSystems(Eucalyptus)是更早的一种开源IaaS解决方案。
其他的解决方案还包括OpenNebula(一种开源的云计算工具箱)和Nimbus(另一种面向IaaS云的开源工具箱)。
OpenStack集成了美国国家航空和航天局(NASA)的部分Nebula平台和RackspaceCloudFiles项目(云存储)。
云计算的新来者:
OpenStack
OpenStack是IaaS空间的一个新来者,在2010年末首次发布。
尽管此解决方案成熟度不够,而且面市还不到两年时间,但是OpenStack现已成为了使用最为广泛的云堆栈之一。
OpenStack不是单一的解决方案,而是一个不断成长的开源解决方案套件(包括核心以及新孵化的项目),并共同形成了一个强大成熟的IaaS堆栈。
如图2所示,OpenStack构建自几个核心技术(多于这里所展示的,但这里所展示的代表关键方面)。
左侧是Horizon仪表盘,显示了一个可为用户和管理员用来管理OpenStack服务的用户界面。
Nova提供了一个可伸缩的计算平台,用来支持大量服务器和虚拟机(VM;
以一种系统管理程序不可知的方式)的配置和管理。
Swift实现一个具有内部冗余、可大量伸缩的对象存储系统。
在底部的是Quantum和Melange,二者实现了网络连接即服务(networkconnectivityasaservice)。
最后,Glance项目为虚拟磁盘映象实现了一个存储库(映像即服务(imageasaservice))。
图2.OpenStack解决方案的核心和附加组件
如图2所示,OpenStack是一个项目集合,整体提供了一个完整的IaaS解决方案。
表1展示了这些项目及其起作用的方面。
表1.OpenStack项目和组件
项目
组件
描述
Horizon
Dashboard
用户和管理员仪表盘
Nova
Compute/blockdevice
虚拟服务器和卷
Glance
Imageservice
VM磁盘映像
Swift
StorageasaService
对象存储
Quantum/Melange
Networks
安全虚拟网络
其他重要的方面还包括Keystone,它实现了对企业私有云十分关键的身份识别服务(对计算服务器、Glance内的映像以及Swift对象存储区的访问方面的管理)。
OpenStack架构
OpenStack用三个核心开源项目(如图2所示)来表示:
Nova(计算)、Swift(对象存储)和Glance(VM存储库)。
Nova(或OpenStackCompute),提供了跨服务器网络的VM实例的管理。
它的应用程序编程接口(API)为试图无知物理硬件和系统管理程序提供了一种计算编排方法。
请注意,Nova不仅提供了用于管理的OpenStackAPI,还为那些习惯该界面的人提供了一种AmazonEC2-兼容API。
Nova支持组织所使用的专有系统管理程序,但更为重要的是,它支持像Xen和KernelVirtualMachine(KVM)这样的系统管理程序,也支持像Linux®
Container这样的操作系统虚拟化。
出于开发的目的,还可以使用QEMU这样的仿真解决方案。
Swift(或OpenStackObjectStorage)项目可通过配置了普通硬盘的标准服务器提供可伸缩的冗余存储集群。
Swift并不代表一个文件系统,它实现的是一个更为传统的对象存储系统,可用于主要是静态数据(一种关键的使用模型是静态VM映像)的长期存储。
Swift不具备集中式控制器,它能改善整体的可伸缩性。
它在内部管理跨集群的复制(无需独立磁盘冗余阵列)来提高可靠性。
Glance(或OpenStackImageService)为Nova能够使用(此选项存储在Swift内)的虚拟磁盘映像提供了一个存储库。
Glance提供了一个API来注册磁盘映像,此外还提供了通过一个简单的RepresentationalStateTransfer(REST)界面的发现和交付。
Glance很大程度上对虚拟磁盘映像格式不可知,支持各种标准,包括VDI(VirtualBox)、VHD(Microsoft®
Hyper-V®
)、QCOW2(QEMU/KVM)、VMDK/OVF(VMware)以及原始格式。
Glance还提供了磁盘映像校验和、版本控制(和其他元数据)以及虚拟磁盘验证和审计/调试日志。
此核心OpenStack项目(Nova、Swift和Glance)是使用Python开发的,它们都可以在ApacheLicense下使用。
演示OpenStack
因为有大量独立项目需要安装并配置以便能够相互协作,安装OpenStack可能会非常耗时(参见参考资料获取完整安装的更多信息)。
但是对于好奇的读者来说,有其他一些选项可以极大地简化OpenStack的启动和运行。
阅读过我之前文章的读者都知道我是一个VM映像迷,热衷于基于Linux软件的简化使用。
VM允许您轻松地创建一个新实例来尝试或演示软件。
此VM是一个自包含的Linux实例(有时称作虚拟设备),可以用必要的软件预安装并预配置以供使用。
以这种方式配置的软件可极大地简化其使用,让您得以试验那些否则很难掌握或掌握起来很耗时的软件。
参阅参考资料获取满足您特定的硬件和基础操作系统需求的安装选项。
对于本次展示,我决定使用最新的Ubuntu发布版(12.04)和OpenStackEssex发布版。
Essex的ISO版本可以使用uksysadmin安装程序进行安装(参见参考资料)。
在UbuntuPrecise上成功安装了OpenStackEssex后,使用一个外部的Web浏览器能够登录OpenStack仪表盘。
图3显示了具有两种容器格式的来宾(Guest)VM映像的SystemPanelImages选项卡界面。
图3.可用来宾映像的OpenStackDashboard视图
此映像可用来创建一个演示实例,正如图4所示,创建已经开始。
这个实例现在就可以使用了。
图4.计算实例的OpenStackDashboard视图
现在,有了运行于OpenStack之上的计算映像,我可以通过一个简单的SecureShell(SSH)会话使用其IP地址(172.16.1.1)对其进行访问(参见清单1,用户输入以粗体显示)。
清单1.通过SSH访问OpenStack计算实例
$ssh-iDownloads/demo.pemubuntu@172.16.1.1Theauthenticityofhost'
172.16.1.1(172.16.1.1)'
can'
tbeestablished.
RSAkeyfingerprintisdf:
0e:
d0:
32:
f8:
6d:
74:
49:
ea:
60:
99:
82:
f1:
07:
5d:
3b.
Areyousureyouwanttocontinueconnecting(yes/no)?
yes
Warning:
Permanentlyadded'
172.16.1.1'
(RSA)tothelistofknownhosts.
WelcometoUbuntu12.04LTS(GNU/Linux3.2.0-23-virtualx86_64)
*Documentation:
Systeminformationdisabledduetoloadhigherthan1.0
0packagescanbeupdated.
0updatesaresecurityupdates.
GetcloudsupportwithUbuntuAdvantageCloudGuest
TheprogramsincludedwiththeUbuntusystemarefreesoftware;
theexactdistributiontermsforeachprogramaredescribedinthe
individualfilesin/usr/share/doc/*/copyright.
UbuntucomeswithABSOLUTELYNOWARRANTY,totheextentpermittedby
applicablelaw.
Torunacommandasadministrator(user"
root"
),use"
sudo<
command>
"
.
See"
mansudo_root"
fordetails.
ubuntu@demo1:
~$
~$hostnamedemo1
~$psPIDTTYTIMECMD
835pts/000:
00:
06bash
948pts/000:
00ps
~$
所有这些层都运行后,可能很难想象所发生的事情。
图5展示了整个堆栈,希望能帮助解释清楚。
在这个演示中,运行MacOSX的Mac提供了基础平台。
VirtualBox运行于MacOSX之上,提供了OpenStack的执行平台(运行于UbuntuLinux上)。
注意,VirtualBox是一个类型-2的虚拟化管理程序。
在OpenStackLinux层,QEMU被用作一个来宾系统管理程序,从硬件角度来看,这很理想,但缺乏真正的产品设置所需的性能。
图5.在普通硬件上运行的OpenStack演示堆栈
没有了对嵌套虚拟化(在另一个系统管理程序之上有效运行一个系统管理程序)的支持,我依赖于QEMU作为我在OpenStack上运行的来宾系统管理程序。
这让我能够在一个来宾系统管理程序上运行一个来宾VM,该来宾VM在一个类型-2的虚拟化管理程序上运行。
虽然这种设置可能会很慢,但它充分展示了一个在普通计算机系统上运行的IaaS堆栈。
注意,如今某些AMD处理器可提供一种有效的支持嵌套虚拟化的方式。
虽然使用QEMU对于性能而言并不理想,但它与KVM(Linuxasahypervisor)极为兼容,因而很容易在两个系统管理程序之间迁移(除了在这两者之前兼容的VM映像)。
在这种情况下,让QEMU之所以理想的原因是它可以在未提供虚拟化支持的硬件上执行。
注意,我的平台在这个例子中是具有虚拟化功能的,但是由于我在VirtualBox(一个凭借自身力量的虚拟化管理程序)上运行,嵌套虚拟化的缺乏让我不得不使用一个不依赖虚拟化扩展的来宾系统管理程序。
不管在哪种情况下,我都使用libvirt来管理VM(启动、停止、监视等),所以,在一个有虚拟化功能的硬件上迁移到KVM简单至极,只需在OpenStack配置文件内进行两行修改即可。
使用OpenStack的其他方式
即便您没有自己的集群,也可采用其他选项来享受OpenStack带来的益处。
OpenStack的创作者之一Rackspace,就提供了它寄予厚望的云的Linux。
Rackspace的OpenStack云平台提供了OpenStack在公共云基础架构的灵活性和可伸缩性方面的优势。
为了简化OpenStack面向私有云的安装,很多公司都关注于简化OpenStack在私有集群内的使用。
比如,PistonCloudComputing公司就提供了PistonEnterpriseOS这种基于OpenStack的私有云操作系统。
Mirantis则向企业提供了专业的构建OpenStack基础架构的服务。
OpenStack的前景
OpenStack将继续集成新的功能,提高了IaaS解决方案的定义。
OpenStack旗下有许多其他项目可用,但还有很多仍在孵化进程中。
Keystone项目提供的身份识别服务统一了跨OpenStack组件的身份验证,同时又集成了现有的身份验证系统。
还存在目的各异的社区项目,比如负载均衡即服务(Atlas-LB);
云安装和维护系统(Crowbar);
云可配置和可伸缩的关系数据库(RedDwarf);
面向云编排的基于REST的API(Heat);
以及涵盖了监视、计费等的云管理工具(Clanavi)。
在OpenStack项目内外还有无数其他项目正在开发当中,只要OpenStack的构建势头不减,这个列表每天都在增长。
OpenStack并非没有竞争,随着旧项目的不断发展,新的项目也会出现。
例如,CloudStack(在2009年首次发布)具有几个产品安装,但缺乏OpenStack所具备的开源贡献者支持的级别。
结束语
继Linux发展成为能符合所有使用模型的通用操作系统之后,OpenStack也正在向代表云操作系统的方向前进。
与管理有限集的核心和本地资源不同,OpenStack管理的是包含计算和存储资源的庞大的服务器网络,以及将它们连接在一起的虚拟网络胶。
自它在2010年末首次发布以来(Austin),OpenStack项目已经又发布了四个版本,最新的一个版本在2012年4月发布(Essex)。
对于每次发布,OpenStack都继续推动新的、改进了的功能,这也提高了其他IaaS解决方案的竞争门槛。
如今,在Apache旗下,OpenStack成为云堆栈内的标准实在不足为奇。
文章出处:
IBMdeveloperWorks