- Glance 影像服務
- 作用方式如同將虚擬硬碟影像檔註冊。
- 使用者可增加新影像檔或從已經存在的 Server 取得快照。
- 快照影像檔可用於備份或是做為新 Server 的樣板。
- 已註冊的影像檔,存放在物件儲存服務中!
- Glance服務需要 Keystone 服務來進行身份驗證管理以及使用授權!
- Glance使用 MySQL 存放影像檔的資訊資料!
- Glance 支援不同的影像檔格式:
影像格式 說明 raw vhd vmdk vdi iso qcow2 aki ari ami - Glance支授不同的 Container 格式:
Container格式 說明 bare ovf ova aki ari ami - 在 /root/answers.txt 檔案中:
CONFIG_GLANCE_INSTALL=y
CONFIG_GLANCE_BACKEND=file
- Glance 目錄
- /var/lib/glance/images : 假如 Backend 項目被設定成 file 時!
- /etc/glance/ : Glance服務設定檔 ※PS:下一版的 Glance ,將取消 glance-registry.conf 檔案!
- Glance Keystone 設定
- # keystone endpoint-list
- # grep GLANCE /root/answers.txt
- # ps axf | grep glance
- # grep workers /etc/glance/glance-*
- # grep bind_port /etc/glance/glance-api.conf
- # ss -nlp | grep 9292
- # cd /etc/glance
- # ls
- # vim /etc/glance/glance-api.conf
rabbit_host=10.1.1.1
flavor=keystone
filesystem_store_datadir=/var/lib/glance/images/ - # vim /etc/glance/glance-registry.conf
[database]
connection=mysql://....
- # cd
- # ls -al /var/lib/glance/
- # source /root/keystonerc_admin
- # keystone service-get glance
- # keystone catalog --service image
- # keystone user-get glance
- # glance image-list --all-tenants
- # glance --debug image-list --all-tenants
※PS:一定要看見 HTTP/1.1 200 OK!
- 儲存系統影像檔
- glance指令可以用來管理影像檔
- 利用 virt-sysprep 指令,可將 KVM 虚擬機中的 Linux 作業系統,打包成影像檔,方便存入 Glance
- 確認影像檔方式: qemu-img info IMAGENAME
- # glance image-create --name "NAME" --is-public IS_PUBLIC --disk-format DISK_FORMAT --container-format CONTAINER_FORMAT --file IMAGEFILE
- --location URL :可取代 --file
- # source /root/keystonerc_admin
- # glance image-create --name small --is-public True --disk-format qcow2 --container-format bare --copy-from http://demo.example.com/pub/small.img
- # glance image-list
- # glance image-show small
- # glance image-list --all-tenants
- 使用快照進行快速佈署
- 快照是一種將執行中的實體,複製一份,簡化類似實體的建立過程!
- 使用 Oz 建立影像檔
- # oz-install -d 2 -t 3000 small-template.xml
- /var/lib/libvirt/images
- /etc/oz/oz.cfg
- # yum install -y virt-manager virt-viewer gnome-font-viewer xorg-x11-xauth
練習3:
- # yum -y install oz libguestfs-tools crudini python-glanceclient
- # systemctl status libvirtd.service
- # virsh net-list
- # cat /usr/share/libvirt/networks/default.xml
- # virsh net-define /usr/share/libvirt/networks/default.xml
- # virsh net-start default
- # virsh net-autostart default
- # virsh net-list
- # wget http://demo.example.com/pub/small-template.xml
- # ls /dev/kvm
- # vim /usr/lib/python2.7/site-packages/oz/RedHat.py
約80行的地方,加入參數:no_timer_check
self.cmdline = "method=" + self.url + " ks=file:/ks.cfg no_timer_check" - # crudini --set /etc/oz/oz.cfg libvirt image_type qcow2
- # oz-install -d 2 -t 3000 small-template.xml
- # yum -y install virt-manager virt-viewer gnome-font-viewer xorg-x11-xauth
- # ssh -X root@otherhost
- # virsh list
- # virt-viewer rhel7_x86_64
- # virt-sysprep --add /var/lib/libvirt/images/rhel7_x86_64.qcow2
- # scp root@localhost:/root/keystonerc_admin /root/
- # source /root/keystonerc_admin
- # glance image-create --name "myozimage" --is-public True --disk-format qcow2 --container-format bare --file /var/lib/libvirt/images/rhel7_x86_64.qcow2
- # glance image-list
- 打開firefox,連進 dashboard,使用 testuser/redhat
- 使用 Compute > Instance ,按下 Launch Instance 按鈕
- 輸入下列相關資料:
參數名稱 參數值 Details - Instance Name : My sealed template
- Flavor : m2.tiny
- Instance count : 1
- Instance boot source: Boot from image
- Image name: myozimage
Details - Key pair: Key2
- Security groups: sec2
Networking - Selected Networks: net1
按下 Launch 按鈕 - 在 Actions 欄位中,打開下拉式選單,選擇 Associate Floating IP!
- 選擇 10.1.1.28 ,以及在 Port to be associated之下,選擇 My sealed template: 192.168.0.4,然後再按下 Associate 按鈕!
- # rm -f ~/.ssh/know_hosts
- # ssh root@10.1.1.28
- # ping 10.1.1.254
- # exit
- 若要移除 instance ,則在 Instance 子標籤中,選擇所有實體,按下 Terminate Instance 按鈕,再按下 Terminate Instance 按鈕確認即可!
設定 Swift 為 Glance 資料後端
- 預設值中,Glance 以及快照均使用 /var/lib/glance/images 目錄來存放影像
- 可修改設定檔 glance-api.conf 來指定使用 Swift 提供服務
- 將 default_store 改成 swift
- 在 [glance_store] 項目中,設定 glance.store.swift.Store 要設定
- swift_store_auth_address 提定 Swift API 結束點
- swift_store_user
- swift_store_key
- swift_store_create_container_on_put 要設定成 true
- # source /root/keystonerc_admin
- # glance image-list
- # glance image-delete myozimage
- # glance image-delete small
- # glance image-list --all-tenants
- # glance image-delete 00000000-1111-abcd-dcba-0987654321fe
- # glance image-delete 22222222-1111-abcd-dcba-0987654321fe
- # cp /etc/glance/glance-api.conf /etc/glance/glance-api.conf.orig
- # crudini --set /etc/glance/glance-api.conf DEFAULT default_store swift
- # crudini --set /etc/glance/glance-api.conf glance_store stores glance.store.swift.Store
- # crudini --set /etc/glance/glance-api.conf glance_store swift_store_auth_address http://10.1.1.1:5000/v2.0/
- # crudini --set /etc/glance/glance-api.conf glance_store swift_store_user services:swift
- # crudini --set /etc/glance/glance-api.conf glance_store swift_store_key redhat
- # crudini --set /etc/glance/glance-api.conf glance_store swift_store_create_container_on_put true
- # cp /usr/share/glance/glance-api-dist-paste.ini /etc/glance/glance-api-paste.ini
- # cp /usr share/glance/glance-registry-dist-paste.ini /etc/glance/glance-registry-paste.ini
- # openstack-service restart glance
- # wget -N http://demo.example.com/pub/small.img
- # glance image-create --name small --disk-format qcow2 --container-format bare --file small.img
- # glance image-list
- 刪除方式:
- glance image-delete small
- crudini --set /etc/glance/glance-api.conf DEFAULT default_store file
- crudini --set /etc/glance/glance-api.conf glance_store stores glance.store.filesystem.Store,glance.store.http.Store
- openstack-service restart glance
- Glance 服務可以使用 Ceph 做為資料後端!
- 登入已經裝好 Ceph 的主機
- # ceph osd pool create images 128
- # ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'
- 回到 Glance 主機
- # yum -y install python-rbd
- # mkdir /etc/ceph/
- # vim /etc/ceph/ceph.client.glance.keyring ==> 將第3步驟的結果,複製到這裡!
- # chown glance:glance /etc/ceph/ceph.client.glance.keyring
- 把 Ceph 主機上的 /etc/ceph/ceph.conf 複製到 Glance 主機的 /etc/ceph/ceph.conf
- # cp /etc/glance/glance-api.conf /etc/glance/glance.conf.orig2
- # vim /etc/glance/glance-api.conf
show_image_direct_url=True
defalut_store = rbd
[default_store]
stores = glance.store.rbd.Store
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_chunk_size = 8
- # systemctl restart openstack-glance-api
- # source /root/keystonerc_admin
- # wet -N http://demo.example.com/pub/web.img
- # glance image-create --disk-format qcow2 --name cephweb --is-public True --container-format bare --file web.img
- # glance image-list
- 登入 Ceph 主機內
- # rados -p images ls
- 清除方式:
- # glance image-delete cephweb
- # crudini --set /etc/glance/glance-api.conf DEFAULT default_store file
- # crudini --set /etc/glance/glance-api.conf glance_store stores glance.store.filesystem.Store,glance.store.http.Store
- # openstack-service restart glance
練習6: