高可用OpenStack(Queen版)集羣-5.Glance集羣

參考文檔:html

  1. Install-guide:https://docs.openstack.org/install-guide/
  2. OpenStack High Availability Guide:https://docs.openstack.org/ha-guide/index.html
  3. 理解Pacemaker:http://www.cnblogs.com/sammyliu/p/5025362.html
  4. Ceph: http://docs.ceph.com/docs/master/start/intro/

九.Glance集羣

1. 建立glance數據庫

# 在任意控制節點建立數據庫,後臺數據自動同步,以controller01節點爲例
[root@controller01 ~]# mysql -u root -pmysql_pass

MariaDB [(none)]> CREATE DATABASE glance;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance_dbpass';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance_dbpass';

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

2. 建立glance-api

# 在任意控制節點操做,以controller01節點爲例;
# 調用keystone服務須要認證信息,加載環境變量腳本便可
[root@controller01 ~]# . admin-openrc

1)建立service項目

# 建立1個project,glance/nova/neutron等服務加入到此project;
# service項目在」default」 domain中
[root@controller01 ~]# openstack project create --domain default --description "Service Project" service

2)建立glance用戶

# glance用戶在」default」 domain中
[root@controller01 ~]# openstack user create --domain default --password=glance_pass glance

3)glance用戶賦權

# 爲glance用戶賦予admin權限
[root@controller01 ~]# openstack role add --project service --user glance admin

4)建立glance服務實體

# 服務實體類型」image」
[root@controller01 ~]# openstack service create --name glance --description "OpenStack Image" image

5)建立glance-api

# 注意--region與初始化admin用戶時生成的region一致;
# api地址統一採用vip,若是public/internal/admin分別使用不一樣的vip,請注意區分;
# 服務類型爲image;
# public api
[root@controller01 ~]# openstack endpoint create --region RegionTest image public http://controller:9292

# internal api
[root@controller01 ~]# openstack endpoint create --region RegionTest image internal http://controller:9292

# admin api
[root@controller01 ~]# openstack endpoint create --region RegionTest image admin http://controller:9292

3. 安裝glance

# 在所有控制節點安裝glance,以controller01節點爲例
[root@controller01 ~]# yum install openstack-glance python-glance python-glanceclient -y

4. 配置glance-api.conf

# 在所有控制節點操做,以controller01節點爲例;
# 注意」bind_host」參數,根據節點修改;
# 注意glance-api.conf文件的權限:root:glance
[root@controller01 ~]# cp /etc/glance/glance-api.conf /etc/glance/glance-api.conf.bak
[root@controller01 ~]# egrep -v "^$|^#" /etc/glance/glance-api.conf
[DEFAULT]
enable_v1_api = false
bind_host = 172.30.200.31
[cors]
[database]
connection = mysql+pymysql://glance:glance_dbpass@controller/glance
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
[image_format]
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller01:11211,controller02:11211,controller03:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance_pass
[matchmaker_redis]
[oslo_concurrency]
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_middleware]
[oslo_policy]
[paste_deploy]
flavor = keystone
[profiler]
[store_type_location_strategy]
[task]
[taskflow_executor]

# 建立鏡像存儲目錄並賦權限;
# /var/lib/glance/images是默認的存儲目錄
[root@controller01 ~]# mkdir -p /var/lib/glance/images
[root@controller01 ~]# chown glance:nobody /var/lib/glance/images

5. 配置glance-registry.conf(optional)

# 官方文檔指出:glance-registry服務與其api在Q版已經棄用,而且在S版時徹底刪除,本章節可忽略;
# 在所有控制節點操做,以controller01節點爲例;
# 注意」bind_host」參數,根據節點修改;
# 注意glance-registry.conf文件的權限:root:glance
[root@controller01 ~]# cp /etc/glance/glance-registry.conf /etc/glance/glance-registry.conf.bak
[root@controller01 ~]# egrep -v "^$|^#" /etc/glance/glance-registry.conf
[DEFAULT]
bind_host = 172.30.200.31
[database]
connection = mysql+pymysql://glance:glance_dbpass@controller/glance
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller01:11211,controller02:11211,controller03:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance_pass
[matchmaker_redis]
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_policy]
[paste_deploy]
flavor = keystone
[profiler]

6. 同步glance數據庫

# 任意控制節點操做;
# 忽略輸出的「deprecated」信息
[root@controller01 ~]# su -s /bin/sh -c "glance-manage db_sync" glance

# 查看驗證
[root@controller01 ~]# mysql -h controller01 -uglance -pglance_dbpass -e "use glance;show tables;"

7. 啓動服務

# 在所有控制節點操做,以controller01節點爲例;
# glance-registry在Q版已棄用;
[root@controller01 ~]# systemctl enable openstack-glance-api.service openstack-glance-registry.service
[root@controller01 ~]# systemctl restart openstack-glance-api.service openstack-glance-registry.service

# 查看服務狀態
[root@controller01 ~]# systemctl status openstack-glance-api.service openstack-glance-registry.service

# 查看端口
[root@controller01 ~]# netstat -tunlp | grep python2

8. 驗證

在不啓用ceph存儲時,一般採用nfs共享存儲作image的後端存儲,如可將controller01節點的本地存儲作共享,controller02/03節點遠端掛載便可。python

這裏後續使用ceph存儲,暫時使用本地驗證,以controller01節點爲例。mysql

1)下載鏡像

2)上傳鏡像

[root@controller01 ~]# . admin-openrc 

# 「上傳」指將已下載的原始鏡像通過必定的格式轉換上傳到image服務;
# 格式指定爲qcow2,bare;設置public權限;
# 鏡像生成後,在指定的存儲目錄下生成以鏡像id命名的鏡像文件
[root@controller01 ~]# openstack image create "cirros-qcow2" \
   --file ~/cirros-0.3.5-x86_64-disk.img \
   --disk-format qcow2 --container-format bare \
   --public

3)查看鏡像

[root@controller01 ~]# openstack image list

9. 設置pcs資源

# 在任意控制節點操做;
# 添加資源openstack-glance-api與openstack-glance-registry
[root@controller01 ~]# pcs resource create openstack-glance-api systemd:openstack-glance-api --clone interleave=true
[root@controller01 ~]# pcs resource create openstack-glance-registry systemd:openstack-glance-registry --clone interleave=true

# 查看pcs資源
[root@controller01 ~]# pcs resource

相關文章
相關標籤/搜索