云计算 openstack_使用OpenStack进行云计算和存储

本文介绍了云计算IaaS架构,重点关注开源解决方案OpenStack。OpenStack作为私有云计算的首选,提供可扩展和灵活的基础设施。文章讨论了OpenStack的起源、核心组件、架构及其实现方式,并演示了如何在商用硬件上部署和使用OpenStack。此外,还探讨了OpenStack的未来发展方向和竞争态势。
摘要由CSDN通过智能技术生成

云和公共基础架构即服务(IaaS)背后的想法当然不是新事物。 实际上,Amazon Elastic Compute Cloud(Amazon EC2)今年将有6年历史。 发生了变化的是,人们将IaaS作为私有云计算的一种手段来满足企业对敏感数据的需求。 私有云计算将IaaS理念应用于私有基础架构。 尽管这样做缺乏公共云(即用即付服务)的经济优势,但它利用了云计算的核心原理,在企业数据中心内具有可扩展且灵活的基础架构。

让我们从快速介绍IaaS及其架构开始,然后跳入领先的开源解决方案:OpenStack。

IaaS和云架构

云计算体系结构倾向于集中于一组通用资源,这些资源已虚拟化并按需提供给用户。 这些资源除了有条件地将这些资源暴露给Internet之外,还包括各种功能的计算资源,持久性存储资源和可配置的网络资源以将它们绑定在一起。

IaaS实现的体系结构(请参见图1 )遵循此模型,并添加了其他元素,例如计量(以考虑计费目的)。 物理基础架构是通过由多种技术实现的虚拟化层从应用程序和用户中抽象出来的,这些技术包括管理程序(用于平台虚拟化),虚拟网络和存储。

图1. IaaS的高级视图
IaaS的高级视图

尽管OpenStack是当今可用的最受欢迎的开源云解决方案,但它肯定不是第一个。 实际上,OpenStack是在公共和私营部门开发的两个较旧解决方案的组合。

作为加利福尼亚大学圣巴巴拉分校的一项研究项目,开发了一种较早的开源IaaS解决方案,即用于将程序链接到有用系统的弹性实用程序计算体系结构(Eucalyptus)。 其他解决方案包括OpenNebula(一个开源云计算工具包)和Nimbus(另一个用于IaaS云的开源工具包)。 OpenStack集成了美国国家航空航天局(NASA)星云平台和Rackspace Cloud Files项目(云存储)的组成部分。

云计算的新来者:OpenStack

OpenStack是IaaS领域的一个相对较新的成员,它的首个版本已于2010年底发布。尽管该解决方案被认为缺乏成熟度,并且由于该解决方案的推出时间还不到两年,所以它现在是使用最广泛的云堆栈之一。 但是,OpenStack并不是一个单一的解决方案,而是一个不断增长的开源解决方案套件(包括核心和新孵化的项目),它们一起形成了功能强大且成熟的IaaS堆栈。

如图2所示,OpenStack是基于技术核心构建的(比此处显示的要多,但这些代表了关键方面)。 左侧是Horizo​​n仪表板,它提供了一个用户界面,用于为用户和管理员管理OpenStack服务。 Nova提供了可扩展的计算平台,支持对大量服务器和虚拟机(VM;以与虚拟机管理程序无关的方式)的配置和管理。 Swift实现了具有内部冗余的可大规模扩展的对象存储系统。 底部是Quantum和Melange,它们将网络连接作为服务来实现。 最后,Glance项目实现了虚拟磁盘映像(映像即服务)的存储库。

图2. OpenStack解决方案的核心和其他组件
该图显示了OpenStack解决方案的核心和其他组件

如图2所示,OpenStack是一个项目的集合,这些项目总体上提供了完整的IaaS解决方案。 表1说明了这些项目及其贡献方面。

表1. OpenStack项目和组件
项目 零件 描述
地平线 仪表板 用户和管理员仪表板
新星 计算/阻止设备 虚拟服务器和卷
扫视 影像服务 VM磁盘映像
Swift 存储即服务 对象存储
量子/混合物 网路 安全的虚拟网络

其他重要方面包括Keystone,Keystone实现了对企业私有云至关重要的身份服务(以管理对计算服务器的访问,Glance中的图像和Swift对象存储)。

OpenStack架构

OpenStack由三个核心开放源代码项目( 如图2所示)表示:Nova(计算),Swift(对象存储)和Glance(VM存储库)。 Nova或OpenStack Compute提供跨服务器网络的VM实例管理。 它的应用程序编程接口(API)为尝试不仅与物理硬件而且与管理程序无关的方法提供了业务编排。 请注意,Nova不仅为管理提供OpenStack API,而且为那些熟悉该接口的用户提供与Amazon EC2兼容的API。 Nova支持使用虚拟机管理程序的组织,但更重要的是,它支持Xen和内核虚拟机(KVM)等虚拟机管理程序以及Linux®Containers等操作系统虚拟化程序。 出于开发目的,您还可以使用QEMU之类的仿真解决方案。

Swift(或OpenStack对象存储)是一个项目,该项目使用带有商品硬盘的标准服务器提供可伸缩的冗余存储集群。 Swift不代表文件系统,而是实现了一种更为传统的对象存储系统来长期存储主要是静态数据(一个关键的使用模型是静态VM映像)。 Swift没有集中式控制器,因此可以提高整体扩展性。 它在整个群集内部管理复制(无独立磁盘冗余阵列),以提高可靠性。

Glance或OpenStack映像服务提供了Nova可以使用的虚拟磁盘映像的存储库(可以选择存储在Swift中)。 除了通过简单的表示状态传输(REST)接口发现和传送磁盘映像外,Glance还提供了用于注册磁盘映像的API。 Glance在很大程度上与虚拟磁盘映像格式无关,支持多种标准,包括VDI(VirtualBox),VHD(Microsoft®Hyper-V®),QCOW2(QEMU / KVM),VMDK / OVF(VMware)和原始。 Glance还提供磁盘映像校验和,以确保完整性,版本控制(和其他元数据)以及虚拟磁盘验证和审核/调试日志。

OpenStack的核心项目(Nova,Swift和Glance)是用Python开发的,并且都在Apache许可下可用。

演示OpenStack

随着大批必须安装并配置为彼此的演唱会工作的独立项目,安装的OpenStack可以是一个耗时的任务(见相关主题有关完整安装的更多信息)。 但是还有其他选择可以大大简化为好奇的读者启动和运行OpenStack的过程。

任何阅读过我以前的文章的人都知道,我是VM映像的忠实拥护者,以简化基于Linux的软件的使用。 虚拟机可让您轻松创建新实例以试用或演示软件。 VM是一个独立的Linux实例(有时称为虚拟设备 ),您可以预安装必要的软件并进行预配置以供使用。 通过这种方式置备软件可以极大地简化其使用,从而使您可以尝试否则将难以获得或耗时的软件。 查阅参考资料 ,了解适合您特定硬件和基本操作系统需求的安装选项。

对于此演示,我决定使用最新的Ubuntu版本(12.04)和OpenStack的Essex版本。 埃塞克斯可作为使用uksysadmin的安装过程的ISO(见相关主题 )。 在Ubuntu Precise上全新安装OpenStack Essex之后,外部Web浏览器应该能够查看OpenStack仪表板。 图3显示了“系统面板映像”选项卡,其中访客VM映像采用两种容器格式。

图3.可用来宾映像的OpenStack Dashboard视图
该图显示了带有可用来宾图像的OpenStack仪表板

该映像用于创建演示实例,如图4所示,该实例已启动。 现在可以使用该实例。

图4.计算实例的OpenStack Dashboard视图
该图显示了带有计算实例的OpenStack仪表板

有了现在在OpenStack中运行的计算映像,我可以通过简单的Secure Shell(SSH)会话使用其IP地址(172.16.1.1)访问它(请参见清单1,用户输入以粗体显示)。

清单1.通过SSH访问OpenStack计算实例
$ ssh -i Downloads/demo.pem ubuntu@172.16.1.1
The authenticity of host '172.16.1.1 (172.16.1.1)' can't be established.
RSA key fingerprint is df:0e:d0:32:f8:6d:74:49:ea:60:99:82:f1:07:5d:3b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.1' (RSA) to the list of known hosts.
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-virtual x86_64)

 * Documentation:  https://help.ubuntu.com/

 System information disabled due to load higher than 1.0

0 packages can be updated.
0 updates are security updates.

Get cloud support with Ubuntu Advantage Cloud Guest
  http://www.ubuntu.com/business/services/cloud

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.


To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

ubuntu@demo1:~$ 
ubuntu@demo1:~$ hostname
demo1
ubuntu@demo1:~$ ps
  PID TTY          TIME CMD
  835 pts/0    00:00:06 bash
  948 pts/0    00:00:00 ps
ubuntu@demo1:~$

在所有这些层都运行的情况下,可能很难可视化正在发生的事情。 图5展示了整个堆栈,希望有助于使它神秘化。 在此演示中,运行Mac OS X的Mac提供了基本平台。 VirtualBox在Mac OS X上运行,为执行OpenStack(在Ubuntu Linux上运行)提供了平台。 请注意,VirtualBox是2类管理程序。 在OpenStack Linux层中,QEMU用作来宾虚拟机管理程序,从商用硬件的角度来看,这是理想的选择,但缺乏真正的生产设置所需的性能。

图5.在商用硬件上运行的OpenStack演示堆栈
在商用硬件上运行的OpenStack演示堆栈

如果不支持嵌套虚拟化(在另一个虚拟机监控程序之上高效运行虚拟机监控程序),我将QEMU用作在OpenStack中运行的来宾虚拟机监控程序。 这使我可以在类型2虚拟机管理程序上运行的客户机虚拟机管理程序上运行客户机VM。 尽管此设置可能很慢,但它充分展示了在商用计算机系统上运行的IaaS堆栈。 请注意,某些AMD处理器今天提供了一种有效的方法来支持嵌套虚拟化。

尽管从性能的角度来看,使用QEMU并不理想,但它与KVM(Linux作为虚拟机管理程序)在很大程度上兼容,因此在两个虚拟机管理程序之间迁移很容易(除了VM映像在两者之间是兼容的)。 在这种情况下,使QEMU理想的原因是它可以在不提供虚拟化支持的硬件上执行。 请注意,此示例中的平台具有虚拟化功能,但是由于我运行在VirtualBox(本身就是虚拟机管理程序)上,因此缺少嵌套虚拟化迫使我使用不依赖虚拟化扩展的来宾虚拟机管理程序。 在这两种情况下,我都使用libvirt来管理VM(启动,停止,监视等),因此,在具有虚拟化功能的硬件上迁移到KVM就像在OpenStack配置文件中进行两行修改一样简单。

其他使用OpenStack的方式

如果您缺乏自己的集群,则还有其他选择可以享受OpenStack的好处。 Rackspace是OpenStack的创建者之一,它正在提供希望成为云的Linux的软件。 Rackspace的OpenStack云平台通过公共云基础架构的灵活性和可扩展性提供了OpenStack的优势。

为了简化私有云的OpenStack安装,许多公司都致力于简化在私有集群中使用OpenStack的工作。 像Piston Cloud Computing这样的公司提供Piston Enterprise OS,这是一个基于OpenStack的私有云操作系统。 Mirantis为企业提供专业服务以构建OpenStack基础架构。

OpenStack的下一步是什么?

OpenStack继续集成新功能,从而提高了IaaS解决方案定义的门槛。 OpenStack下有许多其他项目可用,还有其他项目正在孵化过程中。 Keystone项目提供了一种身份服务,该服务可以在与现有身份验证系统集成的同时,跨OpenStack组件统一身份验证。 还存在用于负载均衡即服务的社区项目(Atlas-LB); 云安装和维护系统(Crowbar); 可配置云的可伸缩关系数据库(RedDwarf); 基于REST的API进行云编排(热); 以及一个涵盖监视,计费等功能的云管理工具(Clanavi)。 OpenStack项目内部和外部还有许多其他项目正在开发中,并且随着OpenStack不断发展壮大,该列表每天都在增长。

随着旧项目的不断发展和新项目的出现,OpenStack并非没有竞争。 例如,CloudStack(于2009年首次发布)具有多个生产安装,但缺乏OpenStack所能提供的开源贡献者支持水平。

走得更远

与Linux已经发展成为适合所有使用模型的通用操作系统的方式类似,OpenStack也在努力代表云的操作系统。 OpenStack无需管理一组有限的核心和本地资源,而是管理包含计算和存储资源的大型服务器网络以及将它们紧密结合在一起的虚拟网络胶水。

自2010年底(奥斯汀)首次发布以来,OpenStack项目又发布了四个版本,最后一个是2012年4月(Essex)。 在每个版本中,OpenStack都会继续推动新功能和改进功能,从而提高了其他IaaS解决方案的标准。 现在,在Apache的保护下,OpenStack成为云堆栈中的标准也就不足为奇了。


翻译自: https://www.ibm.com/developerworks/cloud/library/cl-openstack-cloud/index.html

OpenStack是一个开源的云计算平台,提供了一套完整的云计算解决方案,包括计算、存储网络等方面的服务。基础运维是OpenStack的重要组成部分,包括安装、配置、监控、维护等方面的工作。以下是云计算OpenStack基础运维的一些常见任务和技巧: 1. 安装和配置OpenStack 安装和配置OpenStack需要了解操作系统、网络存储等方面的知识。可以使用OpenStack官方提供的安装脚本和文档,也可以使用第三方工具如Mirantis Fuel、Red Hat OpenStack Platform等来快速安装和配置OpenStack。 2. 管理OpenStack的虚拟机 管理OpenStack的虚拟机需要了解虚拟化技术和操作系统的基础知识。可以使用OpenStack Dashboard或者命令行工具来创建、删除、启动、停止和挂载虚拟机。 3. 管理OpenStack网络 管理OpenStack网络需要了解网络拓扑、子网、路由、安全组等方面的知识。可以使用OpenStack Dashboard或者命令行工具来创建、删除、配置和监控网络。 4. 管理OpenStack存储 管理OpenStack存储需要了解存储技术和存储协议等方面的知识。可以使用OpenStack Dashboard或者命令行工具来创建、删除、配置和监控存储。 5. 监控和维护OpenStack 监控和维护OpenStack需要了解系统监控、日志分析、错误排除等方面的知识。可以使用OpenStack提供的监控工具如Ceilometer、Aodh等来监控OpenStack系统的运行情况,也可以使用第三方工具如Nagios等来监控OpenStack系统。 总之,云计算OpenStack基础运维需要掌握多方面的知识和技能,需要不断学习和实践,才能提高自己的运维能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值