1.horizon 介绍

理解 horizon

Horizon 为 Openstack 提供一个 WEB 前端的管理界面 (UI 服务 )通过 Horizone 所提供的 DashBoard 服务 , 管理员可以使用通过 WEB UI 对 Openstack 整体云环境进行管理 , 并可直观看到各种操作结果与运行状态。

DashBoard 与其他组件的关系

openstack 页面打不开 openstack界面_memcached

登陆 Dashboard 界面

启动客户端浏览器,于地址栏输入

http://Horizone_server_ip/dashboard

openstack 页面打不开 openstack界面_openstack 页面打不开_02

openstack 页面打不开 openstack界面_openstack 页面打不开_03

2.区域(Region)

1)地理上的概念,可以理解为一个独立的数据中心,每个所定义的区域有自己独立的Endpoint;

2)区域之间是完全隔离的,但多个区域之间共享同一个Keystone和Dashboard(目前Openstack中的Dashboard还不支持多个区域);

3)除了提供隔离的功能,区域的设计更多侧重地理位置的概念,用户可以选择离自己更新的区域来部署自己的服务,选择不同的区域主要是考虑那个区域更靠近自己,如用户在美国,可以选择离美国更近的区域;

4)区域的概念是由Amazon在AWS中提出,主要是解决容错能力和可靠性;

 

3.可用性区域(Availability Zone)

1)AZ是在Region范围内的再次切分,例如可以把一个机架上的服务器划分为一个AZ,划分AZ是为了提高容灾能力和提供廉价的隔离服务;

2)AZ主要是通过冗余来解决可用性的问题,在Amazon的声明中,Instance不可用是指用户所有AZ中的同一个Instance都不可达才表明不可用;

3)AZ是用户可见的一个概念,并可选择,是物理隔离的,一个AZ不可用不会影响其他的AZ,用户在创建Instance的时候可以选择创建到那些AZ中;

 

4.Host Aggreates

一组具有共同属性的节点集合,如以CPU作为区分类型的一个属性,以磁盘(SSD\SAS\SATA)作为区分类型的一个属性,以OS(Windows\Linux)为作区分类型的一个属性;

 

openstack 页面打不开 openstack界面_memcached_04

5.Cell

nova为了增加横向扩展以及分布式、大规模(地理位置级别)部署的能力,同时又不增加数据库和消息中间件的复杂度,引入了cell的概念,并引入了nova-cell服务。

1)主要是用来解决OpenStack的扩展性和规模瓶颈;

2)每个Cell都有自己独立的DB和AMQP,不与其他模块共用DB和AMQP,解决了大规模环境中DB和AMQP的瓶颈问题;

3)Cell实现了树形结构(通过消息路由)和分级调度(过滤算法和权重算法),Cell之间通过RPC通讯,解决了扩展性问题;

 

openstack 页面打不开 openstack界面_openstack 页面打不开_05

6.配置dashboard服务

1)安装相关软件包

yum install openstack-dashboard -y

 

2)修改配置文件


vim /etc/openstack-dashboard/local_settings

ALLOWED_HOSTS = ['horizon.example.com', 'localhost','*']
...
OPENSTACK_API_VERSIONS = {
    "identity": 3,
    "image": 2,
    "volume": 2,
    "compute": 2,
}
...
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
...
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default'
...
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
...
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': 'node1:11211',
    },
}
...
OPENSTACK_HOST = "node1"
...
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
...
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
...
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,
	...
}
...
TIME_ZONE = "UTC"

 

3)启动服务


systemctl restart httpd.service memcached.service

 

4)浏览器访问


http://node1_ip/dashboard