1.horizon 介绍
理解 horizon
Horizon 为 Openstack 提供一个 WEB 前端的管理界面 (UI 服务 )通过 Horizone 所提供的 DashBoard 服务 , 管理员可以使用通过 WEB UI 对 Openstack 整体云环境进行管理 , 并可直观看到各种操作结果与运行状态。
DashBoard 与其他组件的关系
登陆 Dashboard 界面
启动客户端浏览器,于地址栏输入
http://Horizone_server_ip/dashboard
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)为作区分类型的一个属性;
5.Cell
nova为了增加横向扩展以及分布式、大规模(地理位置级别)部署的能力,同时又不增加数据库和消息中间件的复杂度,引入了cell的概念,并引入了nova-cell服务。
1)主要是用来解决OpenStack的扩展性和规模瓶颈;
2)每个Cell都有自己独立的DB和AMQP,不与其他模块共用DB和AMQP,解决了大规模环境中DB和AMQP的瓶颈问题;
3)Cell实现了树形结构(通过消息路由)和分级调度(过滤算法和权重算法),Cell之间通过RPC通讯,解决了扩展性问题;
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)浏览器访问