利用5台服务器搭建openstack
㈠ OpenStack是什么,OpenStack详解
(1)官方的解释相信大家都已经了解了,不了解也没有关系。现在从常识的角度来给大家解释和说明。
OpenStack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目,OpenStack被公认作为基础设施即服务(简称IaaS)资源的通用前端。
如果这些还不明白,那么从另外的角度给大家介绍:
首先让大家看下面两个图就很简单明了了:
此图为openstack的登录界面
下面是openstack的一个管理界面
从这两个图,相信有一定开发经验,就能看出openstack是什么了。可以说他是一个框架,甚至可以从软件的角度来理解它。如果不明白,就从传统开发来讲解。不知道你是否了解oa,erp等系统,如果不了解可以到网上去找,资料一大把。他和oa,erp有什么不同。很简单就是openstack是用做云计算的一个平台,或则一个解决方案。它是云计算一个重要组成部分。
上面对openstack有了一个感性的认识。
(2)openstack能干什么。
大家都知道阿里云平台,网络云平台,而阿里云平台据传说就是对openstack的二次开发。对于二次开发相信只要接触过软件的都会明白这个概念。不明白的自己网上去查一下。也就是说openstack,可以搭建云平台,什么云平台,公有云,私有云。现在网络在招聘的私有云工程师,应该就是这方面的人才。
(3)openstack自身都包含什么
以下是5个OpenStack的重要构成部分:
l Nova – 计算服务
l Swift – 存储服务
l Glance – 镜像服务
l Keystone – 认证服务
l Horizon – UI服务
图1 OpenStack基本构架
下图展示了Keystone、Dashboard二者与其它OpenStack部分的交互。
下面详细介绍每一个服务:
(一)OpenStack计算设施—-Nova Nova是OpenStack计算的弹性控制器。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,这就意味着Nova以管理平台的身份登场,负责管理整个云的计算资源、网络、授权及测度。虽然Nova本身并不提供任何虚拟能力,但是它将使用libvirt API与虚拟机的宿主机进行交互。Nova通过Web服务API来对外提供处理接口,而且这些接口与Amazon的Web服务接口是兼容的。
功能及特点
l 实例生命周期管理
l 计算资源管理
l 网络与授权管理
l 基于REST的API
l 异步连续通信
l 支持各种宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V
OpenStack计算部件
l Nova弹性云包含以下主要部分:
l API Server(nova-api)
l 消息队列(rabbit-mq server)
l 运算工作站(nova-compute)
l 网络控制器(nova-network)
l 卷管理(nova-volume)
l 调度器(nova-scheler)
API服务器(nova-api)
API服务器提供了云设施与外界交互的接口,它是外界用户对云实施管理的唯一通道。通过使用web服务来调用各种EC2的API,接着API服务器便通过消息队列把请求送达至云内目标设施进行处理。作为对EC2-api的替代,用户也可以使用OpenStack的原生API,我们把它叫做“OpenStack API”。
消息队列(Rabbit MQ Server)
OpenStack内部在遵循AMQP(高级消息队列协议)的基础上采用消息队列进行通信。Nova对请求应答进行异步调用,当请求接收后便则立即触发一个回调。由于使用了异步通信,不会有用户的动作被长置于等待状态。例如,启动一个实例或上传一份镜像的过程较为耗时,API调用就将等待返回结果而不影响其它操作,在此异步通信起到了很大作用,使整个系统变得更加高效。
运算工作站(nova-compute)
运算工作站的主要任务是管理实例的整个生命周期。他们通过消息队列接收请求并执行,从而对实例进行各种操作。在典型实际生产环境下,会架设许多运算工作站,根据调度算法,一个实例可以在可用的任意一台运算工作站上部署。
网络控制器(nova-network)
网络控制器处理主机的网络配置,例如IP地址分配,配置项目VLAN,设定安全群组以及为计算节点配置网络。
卷工作站(nova-volume)
卷工作站管理基于LVM的实例卷,它能够为一个实例创建、删除、附加卷,也可以从一个实例中分离卷。卷管理为何如此重要?因为它提供了一种保持实例持续存储的手段,比如当结束一个实例后,根分区如果是非持续化的,那么对其的任何改变都将丢失。可是,如果从一个实例中将卷分离出来,或者为这个实例附加上卷的话,即使实例被关闭,数据仍然保存其中。这些数据可以通过将卷附加到原实例或其他实例的方式而重新访问。
因此,为了日后访问,重要数据务必要写入卷中。这种应用对于数据服务器实例的存储而言,尤为重要。
调度器(nova-scheler)
调度器负责把nova-API调用送达给目标。调度器以名为“nova-schele”的守护进程方式运行,并根据调度算法从可用资源池中恰当地选择运算服务器。有很多因素都可以影响调度结果,比如负载、内存、子节点的远近、CPU架构等等。强大的是nova调度器采用的是可插入式架构。
目前nova调度器使用了几种基本的调度算法:
随机化:主机随机选择可用节点;
可用化:与随机相似,只是随机选择的范围被指定;
简单化:应用这种方式,主机选择负载最小者来运行实例。负载数据可以从别处获得,如负载均衡服务器。
(二)OpenStack镜像服务器—-GlanceOpenStack镜像服务器是一套虚拟机镜像发现、注册、检索系统,我们可以将镜像存储到以下任意一种存储中:
本地文件系统(默认)
l OpenStack对象存储
l S3直接存储
l S3对象存储(作为S3访问的中间渠道)
l HTTP(只读)
功能及特点
提供镜像相关服务
Glance构件
l Glance控制器
l Glance注册器
(三)OpenStack存储设施—-Swift
Swift为OpenStack提供一种分布式、持续虚拟对象存储,它类似于Amazon Web Service的S3简单存储服务。Swift具有跨节点百级对象的存储能力。Swift内建冗余和失效备援管理,也能够处理归档和媒体流,特别是对大数据(千兆字节)和大容量(多对象数量)的测度非常高效。
功能及特点
l 海量对象存储
l 大文件(对象)存储
l 数据冗余管理
l 归档能力—–处理大数据集
l 为虚拟机和云应用提供数据容器
l 处理流媒体
l 对象安全存储
l 备份与归档
l 良好的可伸缩性
Swift组件
l Swift账户
l Swift容器
l Swift对象
l Swift代理
l Swift RING
Swift代理服务器
用户都是通过Swift-API与代理服务器进行交互,代理服务器正是接收外界请求的门卫,它检测合法的实体位置并路由它们的请求。
此外,代理服务器也同时处理实体失效而转移时,故障切换的实体重复路由请求。
Swift对象服务器
对象服务器是一种二进制存储,它负责处理本地存储中的对象数据的存储、检索和删除。对象都是文件系统中存放的典型的二进制文件,具有扩展文件属性的元数据(xattr)。
注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是并没有有效测试证明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同样能运行良好。不过,XFS被认为是当前最好的选择。
Swift容器服务器
容器服务器将列出一个容器中的所有对象,默认对象列表将存储为sqlite文件(译者注:也可以修改为MySQL,安装中就是以MySQL为例)。容器服务器也会统计容器中包含的对象数量及容器的存储空间耗费。
Swift账户服务器
账户服务器与容器服务器类似,将列出容器中的对象。
Ring(索引环)
Ring容器记录着Swift中物理存储对象的位置信息,它是真实物理存储位置的实体名的虚拟映射,类似于查找及定位不同集群的实体真实物理位置的索引服务。这里所谓的实体指账户、容器、对象,它们都拥有属于自己的不同的Rings。
(四)OpenStack认证服务(Keystone)
Keystone为所有的OpenStack组件提供认证和访问策略服务,它依赖自身REST(基于Identity API)系统进行工作,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。事实上,授权通过对动作消息来源者请求的合法性进行鉴定。如下图所示:
Keystone采用两种授权方式,一种基于用户名/密码,另一种基于令牌(Token)。除此之外,Keystone提供以下三种服务:
l 令牌服务:含有授权用户的授权信息
l 目录服务:含有用户合法操作的可用服务列表
l 策略服务:利用Keystone具体指定用户或群组某些访问权限
认证服务组件
服务入口:如Nova、Swift和Glance一样每个OpenStack服务都拥有一个指定的端口和专属的URL,我们称其为入口(endpoints)。
l 区位:在某个数据中心,一个区位具体指定了一处物理位置。在典型的云架构中,如果不是所有的服务都访问分布式数据中心或服务器的话,则也称其为区位。
l 用户:Keystone授权使用者
译者注:代表一个个体,OpenStack以用户的形式来授权服务给它们。用户拥有证书(credentials),且可能分配给一个或多个租户。经过验证后,会为每个单独的租户提供一个特定的令牌。[来源:http://blog.sina.com.cn/s/blog_70064f190100undy.html]
l 服务:总体而言,任何通过Keystone进行连接或管理的组件都被称为服务。举个例子,我们可以称Glance为Keystone的服务。
l 角色:为了维护安全限定,就云内特定用户可执行的操作而言,该用户关联的角色是非常重要的。
译者注:一个角色是应用于某个租户的使用权限集合,以允许某个指定用户访问或使用特定操作。角色是使用权限的逻辑分组,它使得通用的权限可以简单地分组并绑定到与某个指定租户相关的用户。
l 租间:租间指的是具有全部服务入口并配有特定成员角色的一个项目。
译者注:一个租间映射到一个Nova的“project-id”,在对象存储中,一个租间可以有多个容器。根据不同的安装方式,一个租间可以代表一个客户、帐号、组织或项目。
(五)OpenStack管理的Web接口—-Horizon
Horizon是一个用以管理、控制OpenStack服务的Web控制面板,它可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例。总之,Horizon具有如下一些特点:
l 实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等
l 访问与安全管理:创建安全群组,管理密匙对,设置浮动IP等
l 偏好设定:对虚拟硬件模板可以进行不同偏好设定
l 镜像管理:编辑或删除镜像
l 查看服务目录
l 管理用户、配额及项目用途
l 用户管理:创建用户等
l 卷管理:创建卷和快照
l 对象存储处理:创建、删除容器和对象
l 为项目下载环境变量
㈡ 对于openstack很模糊,想用它来搭建一个分布式的平台,在网络上搜到的都是概念性的东西和安装,请问:
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(简称IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。
内容详解
OpenStack包括数个由社区维护的项目,具体情况我将在后文中详加阐述。
● OpenStack Compute (Nova)是一套控制器,用于为单个用户或使用群组启动虚拟机实例。它同样能够用于为包含着多个实例的特定项目设置网络。OpenStack Compute在公共云处理方面堪与Amazon EC2相提并论;而在私有云方面也毫不逊色于VMware的产品。在公共云中,这套管理机制将提供预制的镜像或是为用户创建的镜像提供存储机制,这样用户就能够将镜像以虚拟机的形式启动。
● OpenStack 对象存储(Swift)是一套用于在大规模可扩展系统中通过内置冗余及容错机制实现对象存储的系统。这些对象能够通过一个REST API或是像Cyberck这样可以对接对象存储API的客户端加以恢复。
● OpenStack镜像服务 (Glance)是一套虚拟机镜像查找及检索系统。它能够以三种形式加以配置:利用OpenStack对象存储机制来存储镜像;利用Amazon的简单存储解决方案(简称S3)直接存储信息;或者将S3存储与对象存储结合起来,作为S3访问的连接器。OpenStack镜像服务支持多种虚拟机镜像格式,包括VMware(VMDK)、Amazon镜像(AKI、ARI、AMI)以及VirtualBox所支持的各种磁盘格式。镜像元数据的容器格式包括Amazon的AKI、ARI以及AMI信息,标准OVF格式以及二进制大型数据。
最近根据投票结果纳入“核心”项目集团的新成员是一项代号为“Keystone”的身份服务以及一套基于Django的仪表板接口,后者的代号为“Horizon”。本文中的仪表板示例也来源于这一项目。
初窥门径
尝试探索OpenStack Compute最为合适的起点莫过于devstack.org站点,它为开发人员或是概念验证者们提供了一套脚本化安装方案。来自docs.openstack.org的OpenStack入门教程同样具备一步步详细的指示,帮助我们在Ubuntu 11.10中设定OpenStack Compute、镜像服务以及多合一对象存储的安装。如果大家拥有一台自己的服务器,并打算利用它搞一些概念验证工作,那么 点击此处 可以获取一套专门供裸机使用的StackOps安装系统。有了它,我们可以通过CD或者USB记忆棒完成OpenStack的安装。
各位还可以利用docs.openstack.org上提供的对象存储管理员指南或者OpenStack Compute管理员指南中的安装说明,设置出生产级别的OpenStack对象存储集群或是OpenStack Compute云。
OpenStack的使用
安装结束之后,接下来我们就要看看如何利用部分安全功能,通过仪表板接口或是命令行启动OpenStack Compute实例。我还将展示面向对象存储的、用于通过块存储备份镜像或者视频的接口。
登录到仪表板接口
OpenStack的仪表板是安装在运行着Nova API服务的节点中的。通过这套仪表板,大家应该可以看出Nova API实例的URL与有效仪表板的证书一样,也包括用户名及密码。
只要有了用户名与密码,大家可以利用OpenStack仪表板实现许多功能。首先,通过云管理员分配给我们的用户名及密码登录到仪表板中。
登录之后,可以看到服务器使用量与每台服务器的当前状态,如图一。
图一
大家也可以点击查看哪些服务器处于终止状态。请注意,这里的正常运行时间并不会显示每套单独服务器的状态。
用户仪表板左侧的菜单提供的是我们所能执行的仪表板操作选项,所发出的命令通过API传递至终端。系统面板(也就是页面最上方的菜单)提供另一套视图,使得管理员能够监控使用状态、检查云中正在运行的服务并管理用户及项目的配额。
㈢ 如何用服务器搭建openstack
1、配置ntp服务器,打开文件/etc/ntp.conf增加以下三行内容,目的是让本服务器时间与外部服务器时间同步。如果不能访问外网,NTP服务器将使用本机硬件时钟作为第二选择。
server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 10
然后重启NTP使配置生效:
service ntp restart
2、配置网络vi /etc/network/interfaces并重启服务
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 10.0.0.10
netmask 255.255.255.0
service network restart
3、配置/etc/hosts
10.19.194.109 controller
10.19.194.124 compute1
4、安装mysql及相关组件配置
# apt-get install python-mysqldb mysql-server
(1)配置/etc/mysql/my.cnf的bind-address
[mysqld]
...
bind-address = 0.0.0.0
(2)、重启mysql数据库,检测和一些数据库安全设置
# service mysql restart
# mysql_install_db
# mysql_secure_installation 命令
root@ubuntu:~# mysql_secure_installation 配置密码等参数
5、安装Ubuntu云存档Havana,用于支持openstack稳定的ubuntu,然后更新ubuntu
(1)安装Havana
# apt-get install python-software-properties
# add-apt-repository cloud-archive:havana
(2)更新系统及重启
# apt-get update && apt-get dist-upgrade
# reboot
6、消息服务安装
# apt-get install rabbitmq-server
如需要更改默认密码,可使用以下命令
# rabbitmqctl change_password guest RABBIT_PASS
㈣ openstack 需要多少台服务器
我只知道有一个控制节点和一个计算节点
㈤ 安装openstack需要多少台服务器
Nova控制服务IaaS核通Nava服务进行IaaS调度管理执行nova安装配置脚本安装完通启nova 调度、控制服接口等服务验证否安装确我安装配置功面通Nova调度控制理解新手没少求指导
㈥ 怎样利用OpenStack搭建虚拟云桌面
国外基于openstack的云桌面对于国内来说并不适用,考虑到国内的复杂的行业及应用场景,选择一款通用型的云桌面产品很重要。随着虚拟化云计算技术的成熟和广泛应用,桌面云已经成为当下终端管理的典型解决方案,能够解决包括简化运维、连续可用、提升效率、降低成本以及安全合规等在内的传统终端运维的诸多难题。目前桌面云的运用已经比较广泛和成熟了,就技术来说,以下一代云桌面为代表的主流技术架构的融合成为了新的趋势,就行业来说,教育、医疗、政企、金融、能源、制造、军队等行业都已经实现覆盖。
㈦ 学习搭建openstack云计算平台,需要有哪些知识基础
会Python编程语言
熟悉Tornado网页服务器、Nebula运算平台
使用过Twisted软件框架
了解Open Virtualization Format、AMQP、SQLAlchemy等标准
了解虚拟化软件更好:KVM、Xen、VirtualBox 、QEMU、 LXC 等
㈧ 如何快速部署OpenStack环境
OpenShit是一款能够在Ubuntu14.04系统上快速部署Openstack的小工具,它使用Shell脚本和Python脚本完成对Openstack各组件的安装和配置.并且可以方便的更改配置参数重新配置,重启服务清空数据库等等.利用命令可以进行完全的自动化安装和配置.以下是OpenShit的地址
OpenShit命令介绍
./openshit.sh <--all|service_name> start|stop|restart
可对各个(或者全部)Openstack组件进行启动,停止,重启操作.
./openshit.sh <--all|service_name> install|uninstall|download
可对Openstack各个组件进行 安装,卸载,下载包 操作
./openshit.sh <--all|service_name> config
可以配置组建建立数据库, 原先的配置文件在config-backup文件夹中按照时间备份起来,使用rollback.sh脚本可以方便的回滚配置文件改动
./openshit.sh <--all|service_name> clean
可以清除服务的数据库, 若服务出问题了可以直接清掉数据库然后重新config
接下来我们使用OpenShit在Ubuntu14.04上部署OpenStack.这里有几个小要求:
1. Ubuntu14.04分区一定要有足够的空间.OpenStack在创建实例的时候会使用分区的空间,空间不够则无法创建实例.测试用Ubuntu14.04分了100G,足够使用了.
2. 建议最好是新装的ubuntu分区.如果装过神马DevStack没装成功一堆垃圾留在系统库里再用OpenShit不成功那就不好意思了.
不多说现在开始
1.安装git, 使用git下载openshit
git clone https://github.com/windworst/openshit.git.
2.修改配置文件setting.conf.
里面有很多密码:数据库密码,服务密码.默认的可以更改,不改也没什么.
改变网络配置.配置文件内IP值都设置称自己的IP, 网卡设置成自己的网卡(默认为eth0).
3.配置文件修改完成后开始安装
./openshit.sh --all install.
这个命令会 问你是否需要配置软件源, 第一次使用openshit请选择y, 所以命令可以这样写:
echo y | ./openshit.sh --all install
4.一段时间后安装完成,请输入
./openshit.sh --all config
会根据setting.conf的值修改各个组件的配置文件以及数据库配置.
5.完成后
运行source admin-env.sh; nova service-list 查看服务状态若都为up安装成功
在浏览器内打开 http://localhost/horizon即可看到Openstack管理界面输入密码可登陆
现在OpenStack成功部署到了Ubuntu14.04服务器上.
为了成功运行一个实例,我们需要制作并上传一个镜像, 配置网络,启动实例.
这里制作一个ubuntu14 server 的镜像
1. 制作镜像
qemu-img create -f qcow2 ubuntu.img 20G
kvm -cdrom ubuntu-14.04-server-amd64.iso -drive file=ubuntu.img,if=virtio,index=0 -boot d -net nic -net user
这里就是直接从光盘安装ubuntu14-server了 装好就行
2.上传镜像
在openshit目录中 执行 source admin-env.sh
执行
glance image-create --name "ubuntu" --file ubunut.img --disk-format qcow2 --container-format bare --is-public True --progress
进度条快速滚过,上传完成
3. 创建网络
在openshit目录中 执行 source admin-env.sh (前面执行过了这里就不用执行了)
执行
nova network-create v-net --bridge br100 --multi-host T --fixed-range-v4 10.0.1.0/29
这里 v-net是网络名字 10.0.1.0/29 是网段和要分配的主机数量 不要设置网段跟本网段一样,否则蛋疼超乎你想象
执行
nova net-list
可以看到刚才创建的网络
4. 创建实例
在web管理端 镜像 栏内 点 运行 即可创建实例 (会分配刚才创建网络的ip地址)
点击控制台,可以通过vnc看到虚拟机的屏幕
这里有个问题 虚拟机和主机能互相ping通(需要关掉防火墙),不过无法访问外网,可能是哪里没有设置.