- glance對接ceph
- 1. 上傳映象
- 2. 對接ceph
- 2.1 建立池
- 2.2 建立使用者
- 2.3 下發ceph檔案
- 2.4 修改globals檔案
- 2.5 更新glance配置
- 3. 上傳映象到ceph
glance對接ceph
基於前面的openstack環境
glance的映象預設情況下是儲存在本地的,如果glance節點掛掉了,那麼映象也就不存在了,所以現在我們需要將glance的映象儲存在ceph叢集上,這樣即使glance節點掛掉了,其他的節點啟動glance然後對接一下ceph,映象依然是存在的
1. 上傳映象
這裡我們的glance目前還沒有對接ceph,現在上傳一個映象來看看他是不是存在本地
[root@openstack01 ~]# source .venv/kolla/bin/activate
(kolla) [root@openstack01 ~]# source /etc/kolla/admin-openrc.sh
下載一個cirros映象
(kolla) [root@openstack01 ~]# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
(kolla) [root@openstack01 kolla]# openstack image create --disk-format qcow2 --container-format bare --progress --public --file /root/cirros-0.4.0-x86_64-disk.img test_image
(kolla) [root@openstack01 kolla]# openstack image list
+--------------------------------------+------------+--------+
| ID | Name | Status |
+--------------------------------------+------------+--------+
| c5d3998d-51a7-4732-9cd9-fb34ff2d3e94 | cirros | active |
| 1add255d-d797-4c5a-8e74-f902ca3c45b6 | test_image | active |
+--------------------------------------+------------+--------+
這樣,一個映象就上傳好了。來看看他是不是將映象存在本地了
(kolla) [root@openstack01 kolla]# openstack image show test_image |grep file |head -1
| file | /v2/images/1add255d-d797-4c5a-8e74-f902ca3c45b6/file
他的回顯是/v2/images/1add255d-d797-4c5a-8e74-f902ca3c45b6/file
這個路徑,直接進入glance容器內
(kolla) [root@openstack01 kolla]# docker exec -it glance_api /bin/bash
(glance-api)[glance@openstack01 /]$ cd /var/lib/glance/images/
(glance-api)[glance@openstack01 /var/lib/glance/images]$ ls
1add255d-d797-4c5a-8e74-f902ca3c45b6 c5d3998d-51a7-4732-9cd9-fb34ff2d3e94
這個目錄下有2個檔案,每個檔案都與我們的映象ID是對應的,說明映象就是存在本地的,並且還是存在容器內部的
2. 對接ceph
現在我們開始操作ceph,在ceph上要先建立池,然後建立使用者授權,最後改glance的配置檔案
2.1 建立池
[root@ceph ~]# ceph osd pool create images
pool 'images' created
[root@ceph ~]# ceph osd pool application enable images rbd
enabled application 'rbd' on pool 'images'
[root@ceph ~]# rbd pool init -p images
池就建立並初始化好了,接下來建立使用者
2.2 建立使用者
[root@ceph ~]# ceph auth get-or-create client.glance mon 'profile rbd' osd 'profile rbd pool=images' -o /etc/ceph/ceph.client.glance.keyring
glance使用者的金鑰環就輸出到了/etc/ceph下
2.3 下發ceph檔案
先去管理主機建立一個glance目錄
管理主機也就是當時部署openstack的那臺機器
[root@openstack01 config]# cd /etc/kolla/config/
[root@openstack01 config]# mkdir glance
將ceph.conf和glance使用者的金鑰環傳送到管理主機的/etc/kolla/config/
[root@ceph ~]# scp /etc/ceph/ceph.conf /etc/ceph/ceph.client.glance.keyring 192.168.200.130:/etc/kolla/config/glance/
root@192.168.200.130's password:
ceph.conf 100% 181 256.9KB/s 00:00
ceph.client.glance.keyring 100% 64 67.6KB/s 00:00
注意一個坑,在管理主機上開啟這2個檔案,將裡面的縮排給刪除,或者將縮排改為空格鍵,不然會報錯,因為等會升級glance是使用ansible讀取配置,yaml是不允許tab鍵的
[root@openstack01 glance]# cat ceph.conf
# minimal ceph.conf for 601f8e36-2faa-11ef-9c62-000c294ff693
[global]
fsid = 601f8e36-2faa-11ef-9c62-000c294ff693
mon_host = [v2:192.168.200.100:3300/0,v1:192.168.200.100:6789/0]
[root@openstack01 glance]# cat ceph.client.glance.keyring
[client.glance]
key = AQD+d5JmAtybHBAARluqjWc6/W4xYoWPC4VHXA==
最後這2個檔案應該變成這個樣子
2.4 修改globals檔案
[root@openstack01 kolla]# vim globals.yml
ceph_glance_user: "glance"
ceph_glance_keyring: "client.{{ ceph_glance_user }}.keyring"
ceph_glance_pool_name: "images"
glance_backend_ceph: "yes"
glance_backend_file: "no"
這裡的keyring不要在前邊加上ceph.
因為等會執行的時候ansible會自動給帶上,寫上了反而報錯
將globals檔案改為這樣就可以了,然後我們執行升級glance
2.5 更新glance配置
[root@openstack01 kolla]# source /root/.venv/kolla/bin/activate
(kolla) [root@openstack01 ~]# kolla-ansible -i multinode -t glance upgrade
等待ansible的劇本執行完,執行完之後我們再來上傳一個映象
3. 上傳映象到ceph
現在我們的glance配置檔案就已經自動更新好了,接下來我們上傳一個映象看看是不是存在ceph叢集裡面了
(kolla) [root@openstack01 ~]# openstack image create --disk-format qcow2 --container-format bare --public --file ./cirros-0.4.0-x86_64-disk.img ceph_test_image
(kolla) [root@openstack01 ~]# openstack image list
+--------------------------------------+-----------------+--------+
| ID | Name | Status |
+--------------------------------------+-----------------+--------+
| cfe7ca03-896d-4020-90e8-bc45e71068aa | ceph_test_image | active |
| c5d3998d-51a7-4732-9cd9-fb34ff2d3e94 | cirros | active |
| 1add255d-d797-4c5a-8e74-f902ca3c45b6 | test_image | active |
+--------------------------------------+-----------------+--------+
還是進入容器去檢視
(glance-api)[glance@openstack01 /var/lib/glance/images]$ ls
1add255d-d797-4c5a-8e74-f902ca3c45b6 c5d3998d-51a7-4732-9cd9-fb34ff2d3e94
透過這裡可以看見,他的回顯依然是2個,也就是本地只存了2個,第3個映象存到ceph裡去了,我們回到ceph叢集來檢視
[root@ceph ~]# rbd ls -p images
cfe7ca03-896d-4020-90e8-bc45e71068aa
他給我們的回顯正好是映象的ID,確實已經儲存到ceph叢集內了