horizon服务
一、horizon 介绍:
理解 horizon
Horizon 为 Openstack 提供一个 WEB 前端的管理界面 (UI 服务 )通过 Horizone 所提供的 DashBoard 服务 , 管理员可以使用通过 WEB UI 对 Openstack 整体云环境进行管理 , 并可直观看到各种操作结果与运行状态。
DashBoard 与其他组件的关系
登陆 Dashboard 界面
启动客户端浏览器,于地址栏输入:
http://Horizone_server_ip/dashboard
二、区域(Region)
1、地理上的概念,可以理解为一个独立的数据中心,每个所定义的区域有自己独立的Endpoint;
2、区域之间是完全隔离的,但多个区域之间共享同一个Keystone和Dashboard(目前Openstack中的Dashboard还不支持多个区域);
3、除了提供隔离的功能,区域的设计更多侧重地理位置的概念,用户可以选择离自己更新的区域来部署自己的服务,选择不同的区域主要是考虑那个区域更靠近自己,如用户在美国,可以选择离美国更近的区域;
4、区域的概念是由Amazon在AWS中提出,主要是解决容错能力和可靠性;
三、可用性区域(Availability Zone)
1、AZ是在Region范围内的再次切分,例如可以把一个机架上的服务器划分为一个AZ,划分AZ是为了提高容灾能力和提供廉价的隔离服务;
2、AZ主要是通过冗余来解决可用性的问题,在Amazon的声明中,Instance不可用是指用户所有AZ中的同一个Instance都不可达才表明不可用;
3、AZ是用户可见的一个概念,并可选择,是物理隔离的,一个AZ不可用不会影响其他的AZ,用户在创建Instance的时候可以选择创建到那些AZ中;
四、Host Aggreates
一组具有共同属性的节点集合,如以CPU作为区分类型的一个属性,以磁盘(SSD\SAS\SATA)作为区分类型的一个属性,以OS(Windows\Linux)为作区分类型的一个属性;
五、Cell
nova为了增加横向扩展以及分布式、大规模(地理位置级别)部署的能力,同时又不增加数据库和消息中间件的复杂度,引入了cell的概念,并引入了nova-cell服务。
1、主要是用来解决OpenStack的扩展性和规模瓶颈;
2、每个Cell都有自己独立的DB和AMQP,不与其他模块共用DB和AMQP,解决了大规模环境中DB和AMQP的瓶颈问题;
3、Cell实现了树形结构(通过消息路由)和分级调度(过滤算法和权重算法),Cell之间通过RPC通讯,解决了扩展性问题;
六、horizon服务部署
#第一步 下载openstack-dashboard
yum install openstack-dashboard
#第二步 配置dashboard配置文件
vim /etc/openstack-dashboard/local_settings
#159行 OPENSTACK_HOST = "127.0.0.1" 改为OPENSTACK_HOST = "controller"
#28行 ALLOWED_HOSTS = ['horizon.example.com', 'localhost']
改为 ALLOWED_HOSTS = ['horizon.example.com', 'localhost','*']
#128行插入SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
#131-135行注释打开
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': 'controller:11211', }, }
#137至141行注释
#CACHES = { # 'default': { # 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', # }, #}
#161行OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0" % OPENSTACK_HOST
改为OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
#65行注释删除#OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False
改为OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
#54-60行注释删除 55行注释不用删除
OPENSTACK_API_VERSIONS = {
# "data-processing": 1.1, "identity": 3, "image": 2, "volume": 2, "compute": 2, }
#73行#OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default'
改为OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default'
#282至291行改为
OPENSTACK_NEUTRON_NETWORK = { 'enable_router': True, 'enable_quotas': True, 'enable_ipv6': True, 'enable_distributed_router': False, 'enable_ha_router': False, 'enable_lb': True, 'enable_firewall': True, 'enable_vpn': True, 'enable_fip_topology_check': True,
#417行改为TIME_ZONE = "UTC"
#重启服务
systemctl restart httpd.service memcached.service
#访问
http://controllerIP /dashboard