openstack中文文档(Horizon(OpenStack组件Horizon)详细资料大全)

本文目录
- Horizon(OpenStack组件Horizon)详细资料大全
- openstack linux bridge为什么不用ovs
- 如何搭建搭建各个版本的openstack的本地yum源
- ⑩ OpenStack高可用集群部署方案(train版)—OpenStack对接Ceph存储
Horizon(OpenStack组件Horizon)详细资料大全
Horizon使用的是Django应用程式为用户和管理员提供一个管理OpenStack服务的接口。
基本介绍
- 中文名 :控制台
- 外文名 :Horizon
简介
1、Horizon通常通过Apache中的mod_uwgis搭建。代码分为可重复使用的python模组(和不同的OpenStack API进行互动)和展示模组,在二次开发中可以使用nginx配合uwsgi等方式进行搭建。 2、资料库服务,因为这主要用来存放其他服务的数据,存放自己的数据很少。 3、Horizon个性化定制,提供与各组件的每一个服务公用API通信的功能。Horizon View 6.0中的RDSH farm
Horizon View 6.0可以让管理员使用HorizonRDSH farm发布虚拟桌面。那么Horizon在RDSH farm是如是什么?如何实现的?VMware Horizon 6.0的View 在IT使用HorizonRDSH的方式上带来了一些重大变化。
新功能之一就是Horizon的RDSH farm,员工可以从桌面池中访问它们的Horizon的RDSH桌面。建立一个RDSH farm,然后发布一个桌面。
在Horizon 6.0之前的View版本中,IT可以创建一个终端服务池,聚集多个Horizon的RDSH伺服器,为用户组交付桌面。每个Horizon的RDSH伺服器承载多个用户桌面,所以Horizon的终端服务池始终都是浮动的。
在旧版Horizon的View中,Horizon的RDSH看起来像第二选择,因为它不支持PCoIP,但是在Horizon 6.0之后View版本中,Horizon的RDSH桌面是可以使用PCoIP。
Horizon的RDSH farm
Horizon的RDSH farm iew中的一个组成部分,其实是创建一组相同的HorizonRDSH伺服器,将它们视为一个运行桌面和Horizon应用程式的资源池。
在资源池中的Horizon的RDSH伺服器都有着相同的配置,所以Horizon可以相互交替。让Horizon保持一致的最简单的方法就是从同一个模板结合子作业系统自定义来部署所有的Horizon的RDSH伺服器。
在模板中不要安装Horizon的View Agent。正常情况下,来宾自定义会触发Horizon的Agent重新注册connection伺服器,但是,最重要的是模板应该保持注册connection伺服器时的虚拟机名字。
可以使用自定义规范来设定一个RunOnce值,来开启Horizon的Agent静默安装。例如:
VMware-viewagent-y.y.y-xxxxxx.exe /s /v"/qn
VDM_VC_MANAGED_AGENT=0 VDM_SERVER_NAME=MyView.lab.local"
在VDM_SERVER_NAME后面替换为自己的connection server,一定要确保虚拟机设定为自动登录。然后,使用有许可权的域账户将Horizon的Agent添加到Horizon的View中,或者在Horizon的Agent安装命令行中写入用户名和密码。
一旦Horizon的RDSH伺服器创建完,就可以在Horizon的View中添加场。在标识和设定页面,可以设定一些通用属性套用到一个桌面池上。在场上设定的授权组和一些显示协定可以套用到场中的所有池上。 Horizon还有一些其他属性,比如会话逾时等,Horizon这些主要是套用到应用程式池,应用程式池就是用户从Horizon的View client端启动应用程式而不是一个完整的桌面。
一个用户启动一个应用程式,就会与单个Horizon的RDSH伺服器建立一个会话,由于Horizon的登录脚本、用户配置档案、和组策略对象(GPO)都会在第一个应用程式启动时被处理,所以后续再启动其他应用程式速度会明显加快。Horizon的逾时控制可以自动注销会话。当用户关闭Horizon所有应用程式时,会话将会变为空闲状体。如果当会话是打开状态时用户启动其他Horizon应用程式,只需要打开新的应用程式即可。
另一方面,Horizon在会话注销前用户配置档案不会卸载;在会话关闭前,Horizon主机只使用极少的资源。如果用户注销之前的会话,那么Horizon再启动新的应用程式时,登录脚本,用户配置档案、和GPO将会再次执行。
Horizon空闲会话逾时和Horizon注销下线的会话持续的时间越长,用户在启动Horizon新套用时就会越快。如果时间设定的越短,那么Horizon的RDSH伺服器的负载就会越少,Horizon配置档案就会被快速删除。正确的Horizon平衡取决于环境。在用户学习使用Horizon的RDSH应用程式池的过程中,管理员可能需要做出一些调整。
一旦设定了会话逾时,从Connection Servers已注册的主机列表中选择主机,任意一个主机都可以是唯一的Horizon的RDSH场的成员。
发布Horizon的RDSH桌面
创建Horizon的RDSH桌面池和创建其他桌面池一样,在桌面池类型中选择HorizonRDS桌面池。 因为Horizon的RDSH主机已经都部署完成,而且可以通过Horizon的RDSH场来控制远程显示协定,所以Horizon桌面池的设定相对较少。管理员可以控制flash频宽,也可以使用标签来限制对池中服务。
openstack linux bridge为什么不用ovs
最近搭建了一个all in one 的 openstack newton 版,安装官方文档做用的是linuxbridge。已经老版玩的时候都是用的ovs,趁比较闲的时候也将N版改造一下
官方文档
***隐藏网址***
下面只列出比较重要的文件,官方有文档,这次参考L版的文档来操作的
安装包yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch
控制节点
/etc/neutron/neutron.conf
verbose = True
core_plugin = ml2
/etc/neutron/plugins/ml2/ml2_conf.ini
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = openvswitch,l2population
extension_drivers = port_security
flat_networks = provider
vni_ranges = 1:1000
enable_ipset = True
/etc/neutron/plugins/ml2/openvswitch_agent.ini
local_ip=192.168.0.228
bridge_mappings=provider:br-ex
tunnel_types=gre,vxlan
l2_population=True
prevent_arp_spoofing=True
firewall_driver=iptables_hybrid
enable_security_group=True
/etc/neutron/dhcp_agent.ini
dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = True
创建桥,这个跟之前的J版本什么都一样
ovs-vsctl add-br br-ext
ovs-vsctl add-port br-ext 网卡
重启服务器
neutron Server
Open vSwitch agent
DHCP agent
计算节点
/etc/neutron/plugins/ml2/openvswitch_agent.ini
bridge_mappings=provider:br-ex
prevent_arp_spoofing=True
firewall_driver=iptables_hybrid
enable_security_group=True
开启ovs
重复增加端口步骤
ovs-vsctl add-br br-ext
ovs-vsctl add-port br-ext 网卡
启动Open vSwitch agent
检查一下
然后按照N版官方文档创建网络即可
如何搭建搭建各个版本的openstack的本地yum源
下载要安装的openstack的官方文档(icehouse juno kilo),根据官方文档,下载两个rpm包,例如我想在centos6.5上搭建openstack icehouse,需要两个安装包,epel-release-6.8-noarch.rpm源包,在一个是rdo-release--icehouse-4-src.rpm在window下打开。查看里面的配置配置文件,有foreman.repo puppetlabs.repo rdo-release.repo 找到他们对应的下载地址,还有一个就是epel-release-6.8-noarch.rpm 里面有两个配置文件,打开,epel.repo epel-testing.repo 找到对应的下载版本。
然后是搭建本地的centos,查询centos版本信息。
具体操作如下:
foreman的配置信息如下:
name=Foreman stable
***隐藏网址***
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-foreman
name=Foreman stable - source
***隐藏网址***
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-foreman
name=Foreman stable - plugins
***隐藏网址***
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-foreman
name=Foreman stable - plugins source
***隐藏网址***
enabled=0
gpgcheck=0
gpgkey=
查看有两个baseurl:
***隐藏网址***
***隐藏网址***
打开之后找到对应的版本号,el6
下载到本地,执行如下命令:
cd /home/
mkdir foreman
cd foreman
wget -S -c -r -np -L
wget -S -c -r -np -L
puppettlabs.repo 的配置信息如下:
puppetlabs-products]
name=Puppet Labs Products - $basearch
***隐藏网址***
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=1
gpgcheck=1
name=Puppet Labs Dependencies - $basearch
***隐藏网址***
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=1
gpgcheck=1
name=Puppet Labs Devel - $basearch
***隐藏网址***
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=0
gpgcheck=1
name=Puppet Labs Products - $basearch - Source
***隐藏网址***
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
failovermethod=priority
enabled=0
gpgcheck=1
name=Puppet Labs Source Dependencies - $basearch - Source
***隐藏网址***
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=0
gpgcheck=1
name=Puppet Labs Devel - $basearch - Source
***隐藏网址***
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=0
gpgcheck=1
⑩ OpenStack高可用集群部署方案(train版)—OpenStack对接Ceph存储
参考Ceph官方安装文档
Openstack环境中,数据存储可分为临时性存储与永久性存储。
临时性存储:主要由本地文件系统提供,并主要用于nova虚拟机的本地系统与临时数据盘,以及存储glance上传的系统镜像;
永久性存储:主要由cinder提供的块存储与swift提供的对象存储构成,以cinder提供的块存储应用最为广泛,块存储通常以云盘的形式挂载到虚拟机中使用。
Openstack中需要进行数据存储的三大项目主要是nova项目(虚拟机镜像文件),glance项目(共用模版镜像)与cinder项目(块存储)。
下图为cinder,glance与nova访问ceph集群的逻辑图:
ceph与openstack集成主要用到ceph的rbd服务,ceph底层为rados存储集群,ceph通过librados库实现对底层rados的访问;
openstack各项目客户端调用librbd,再由librbd调用librados访问底层rados;
实际使用中,nova需要使用libvirtdriver驱动以通过libvirt与qemu调用librbd;cinder与glance可直接调用librbd;
写入ceph集群的数据被条带切分成多个object,object通过hash函数映射到pg(构成pg容器池pool),然后pg通过几圈crush算法近似均匀地映射到物理存储设备osd(osd是基于文件系统的物理存储设备,如xfs,ext4等)。
CEPH PG数量设置与详细介绍
在创建池之前要设置一下每个OSD的最大PG 数量
PG PGP官方计算公式计算器
参数解释:
依据参数使用公式计算新的 PG 的数目:
PG 总数= ((OSD总数*100)/最大副本数)/池数
3x100/3/3=33.33 ;舍入到2的N次幕为32
openstack集群作为ceph的客户端;下面需要再openstack集群上进行ceph客户端的环境配置
在openstack所有控制和计算节点安装ceph Octopus源码包,centos8有默认安装,但是版本一定要跟连接的ceph版本一致
glance-api 服务运行在3个控制节点, 因此三台控制节点都必须安装
cinder-volume 与 nova-compute 服务运行在3个计算(存储)节点; 因此三台计算节点都必须安装
将配置文件和密钥复制到openstack集群各节点
配置文件就是生成的ceph.conf;而密钥是 ceph.client.admin.keyring ,当使用ceph客户端连接至ceph集群时需要使用的密默认密钥,这里我们所有节点都要复制,命令如下
※Glance***隐藏网址***
※Nova 负责虚拟机的生命周期管理,包括创建,删除,重建,开机,关机,重启,快照等,作为openstack的核心,nova负责IaaS中计算重要的职责,其中nova的存储格外重要,默认情况下,nova将instance的数据存放在/var/lib/nova/instances/%UUID目录下,使用本地的存储空间。使用这种方式带来的好处是:简单,易实现,速度快,故障域在一个可控制的范围内。然而,缺点也非常明显:compute出故障,上面的虚拟机down机时间长,没法快速恢复,此外,一些特性如热迁移live-migration,虚拟机容灾nova evacuate等高级特性,将无法使用,对于后期的云平台建设,有明显的缺陷。对接 Ceph 主要是希望将实例的系统磁盘文件储存到 Ceph 集群中。与其说是对接 Nova,更准确来说是对接 QEMU-KVM/libvirt,因为 librbd 早已原生集成到其中。
※Cinder 为 OpenStack 提供卷服务,支持非常广泛的后端存储类型。对接 Ceph 后,Cinder 创建的 Volume 本质就是 Ceph RBD 的块设备,当 Volume 被虚拟机挂载后,Libvirt 会以 rbd 协议的方式使用这些 Disk 设备。除了 cinder-volume 之后,Cinder 的 Backup 服务也可以对接 Ceph,将备份的 Image 以对象或块设备的形式上传到 Ceph 集群。
使用ceph的rbd接口,需要通过libvirt,所以需要在客户端机器上安装libvirt和qemu,关于ceph和openstack结合的结构如下,同时,在openstack中,需要用到存储的地方有三个:
为 Glance、Nova、Cinder 创建专用的RBD Pools池
需要配置hosts解析文件,这里最开始已经配置完成,如未添加hosts解析需要进行配置
在cephnode01管理节点上操作 ;命名为:volumes,vms,images
记录:删除存储池的操作
在cephnode01管理节点上操作 ;
针对pool设置权限,pool名对应创建的pool
nova-compute与cinder-volume都部署在计算节点 ,不必重复操作,如果计算节点与存储节点分离需要分别推送;
全部计算节点配置;以compute01节点为例;
Glance 为 OpenStack 提供镜像及其元数据注册服务,Glance 支持对接多种后端存储。与 Ceph 完成对接后,Glance 上传的 Image 会作为块设备储存在 Ceph 集群中。新版本的 Glance 也开始支持 enabled_backends 了,可以同时对接多个存储提供商。
写时复制技术(copy-on-write) :内核只为新生成的子进程创建虚拟空间结构,它们复制于父进程的虚拟空间结构,但是不为这些段分配物理内存,它们共享父进程的物理空间,当父子进程中有更改相应的段的行为发生时,再为子进程相应的段分配物理空间。写时复制技术大大降低了进程对资源的浪费。
全部控制节点进行配置;以controller01节点为例;
只修改涉及glance集成ceph的相关配置
变更配置文件,重启服务
ceph官网介绍 QEMU和块设备
对接 Ceph 之后,通常会以 RAW 格式创建 Glance Image,而不再使用 QCOW2 格式,否则创建虚拟机时需要进行镜像复制,没有利用 Ceph RBD COW 的优秀特性。
总结
将openstack集群中的glance镜像的数据存储到ceph中是一种非常好的解决方案,既能够保障镜像数据的安全性,同时glance和nova在同个存储池中,能够基于copy-on-write(写时复制)的方式快速创建虚拟机,能够在秒级为单位实现vm的创建。
全部计算节点进行配置; 以compute01节点为例;只修改glance集成ceph的相关配置
全部计算节点重启cinder-volume服务;
任意openstack控制节点上查看;
在任意控制节点为cinder的ceph后端存储创建对应的type,在配置多存储后端时可区分类型;
为ceph type设置扩展规格,键值 volume_backend_name ,value值 ceph
任意控制节点上创建一个1GB的卷 ;最后的数字1代表容量为1G
查看创建好的卷
openstack创建一个空白 Volume,Ceph相当于执行了以下指令
从镜像创建 Volume 的时候应用了 Ceph RBD COW Clone 功能,这是通过 glance-api.conf show_image_direct_url = True 来开启。这个配置项的作用是持久化 Image 的 location,此时 Glance RBD Driver 才可以通过 Image location 执行 Clone 操作。并且还会根据指定的 Volume Size 来调整 RBD Image 的 Size。
一直存在的cirros_qcow2镜像为对接ceph之前的镜像,现在已无法使用,所以将之删除
在openstack上从镜像创建一个Volume,Ceph相当于执行了以下指令
任意控制节点操作;
查看快照详细信息
在openstack上对镜像的卷创建快照,Ceph相当于执行了以下指令
如果说快照时一个时间机器,那么备份就是一个异地的时间机器,它具有容灾的含义。所以一般来说 Ceph Pool backup 应该与 Pool images、volumes 以及 vms 处于不同的灾备隔离域。
***隐藏网址***
***隐藏网址***
一般的,备份具有以下类型:
在虚拟磁盘映像的计算节点上使用本地存储有一些缺点:
Nova 为 OpenStack 提供计算服务,对接 Ceph 主要是希望将实例的系统磁盘文件储存到 Ceph 集群中。与其说是对接 Nova,更准确来说是对接 QEMU-KVM/libvirt ,因为 librbd 早已原生集成到其中。
如果需要从ceph rbd中启动虚拟机,必须将ceph配置为nova的临时后端;
推荐在计算节点的配置文件中启用rbd cache功能;
为了便于故障排查,配置admin socket参数,这样每个使用ceph rbd的虚拟机都有1个socket将有利于虚拟机性能分析与故障解决;
相关配置只涉及全部计算节点ceph.conf文件的字段,以compute163节点为例
全部计算节点配置 ceph.conf文件相关的 字段,以compute01节点为例;
在全部计算节点配置nova后端使用ceph集群的vms池,以compute01节点为例;
在全部计算节点操作;
在全部计算节点操作,以compute01节点为例;
以下给出libvirtd.conf文件的修改处所在的行num

更多文章:
entertainment系列(全球一线游戏制作公司有哪些)
2025年9月21日 01:00
下拉框选择怎么设置多个内容(Excel数据有效性设置的下拉菜单内容有多个,但选择时只能单选,如何设置下拉菜单,可以在选择时多选)
2025年7月29日 03:15
find命令排除目录(如何用find命令只查找到文件,但不包括目录)
2026年2月25日 16:15
坐卧铺换票卡是什么意思(火车上,卧铺的车票为什么要换牌有什么作用)
2025年10月31日 08:45
microchip英文介绍(帮忙翻译,要求使用被动语态,谢谢啊)
2026年9月3日 12:00
网页游戏小小忍者游戏单机版,有源代码的详细说下怎么弄(本人菜鸟)?求网页游戏《倾城》服务端和客户端源码
2026年7月11日 08:45
java颜色代码表(Cult3D 高级教程之改变材质颜色的java代码)
2025年7月27日 00:00
C#如何将UTF8的编码转回汉字?各位大神这个编码怎么转换成汉字,必须
2025年7月30日 12:30
502 bad gateway nginx是什么意思(电脑出现502bad gateway怎么解决)
2026年3月7日 02:30
gridview更新编辑(C#后台动态生成的gridview怎么加入 编辑 更新 取消)
2026年5月30日 05:15










