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)瀏覽器訪問
http://node1_ip/dashboard