OpenStack核心組件原理與應用之Glance
阿新 • • 發佈:2018-08-22
script lib con 一個 servers 管理 安裝軟件 查詢 基礎設施 概覽
OpenStack 鏡像服務 Glance 是 IaaS(Infrastructure as a Service,基礎設施即服務)的核心服務。允許用戶發現、註冊和獲取虛擬機鏡像。它提供了一個 Rest API,允許您查詢虛擬機鏡像的元數據,並獲取鏡像。您可以將鏡像存儲在任何位置,比如文件系統、對象存儲,我們采用Ceph集群進行存儲。
Glance包括以下組件:
- glance-api:接收API調用,實現鏡像發現、恢復、存儲等功能。
- glance-registry:存儲、處理和恢復鏡像的元數據,元數據包括諸如大小和類型。Glance-registry 是私有內部服務,用於服務OpenStack Image 服務,不要向公網暴露該服務。
- 數據庫:存放鏡像元數據,用戶是可以依據個人喜好選擇數據庫的,此處使用 MariaDB。
- 鏡像文件和存儲倉庫:包括普通文件系統、對象存儲、RADOS 塊設備、HTTP、S3 等。
- 元數據定義服務:通用的 API,是用於為廠商,管理員,服務,以及用戶自定義元數據。這種元數據可用於不同的資源,例如鏡像,卷,配額以及集合。一個定義包括了屬性的鍵,描述,約束以及可以與之關聯的資源的類型。
安裝和配置
如何在控制節點上安裝Glance?
先決條件:
- 創建數據庫:
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;
- 獲得admin憑證來獲取只有管理員才能執行的命令的訪問權限:
[root@ct1 ~]# . admin-openrc
- 創建服務證書:
#創建 glance用戶: [root@ct1 ~]# openstack user create --domain default --password-prompt glance #添加admin角色到glance用戶和service項目上: [root@ct1 ~]# openstack role add --project service --user glance admin #創建glance服務實體: [root@ct1 ~]# openstack service create --name glance --description "OpenStack Image" image
- 創建鏡像服務的API端點:
[root@ct1 ~]# openstack endpoint create --region RegionOne image public http://ct1.vtlab.io:9292 [root@ct1 ~]# openstack endpoint create --region RegionOne image internal http://ct1.vtlab.io:9292 [root@ct1 ~]# openstack endpoint create --region RegionOne image admin http://ct1.vtlab.io:9292
安裝並配置glance組件
- 安裝軟件包:
[root@ct1 ~]#yum -y install openstack-glance
- 修改 glance-api 配置文件
[root@ct1 ~]# vim /etc/glance/glance-api.conf [databases] connection = mysql+pymysql://glance:[email protected]/glance [keystone_authtoken] #配置認證服務: auth_uri = http://ct1.vtlab.io:5000 auth_url = http://ct1.vtlab.io:35357 memcached_servers = ct1.vtlab.io:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = glance password = GLANCE_PASS [paste_deploy] flavor = keystone [glance_store] stores = file,http default_store = file filesystem_store_datadir = /var/lib/glance/images/
- 編輯 glance-registry 配置文件
[root@ct1 ~]# vim /etc/glance/glance-registry.conf [database] connection = mysql+pymysql://glance:[email protected]/glance [keystone_authtoken] 配置認證服務: auth_uri = http://ct1.vtlab.io:5000 auth_url = http://ct1.vtlab.io:35357 memcached_servers = ct1.vtlab.io:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = glance password = GLANCE_PASS [paste_deploy] flavor = keystone
- 寫入鏡像服務數據庫
[root@ct1 ~]# su -s /bin/sh -c "glance-manage db_sync" glance - 啟動服務,並設置開機自啟動
[root@ct1 ~]# systemctl start openstack-glance-api.service openstack-glance-registry.service
[root@ct1 ~]# systemctl enable openstack-glance-api.service openstack-glance-registry.service
驗證操作
對glance服務進行驗證
- 獲得admin憑證來獲取只有管理員才能執行的命令的訪問權限:
[root@ct1 ~]# . admin-openrc - 下載源鏡像:
[root@ct1 ~]# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img - 使用 QCOW2 磁盤格式, bare 容器格式上傳鏡像到鏡像服務並設置公共可見,這樣所有的項目都可以訪問它:
[root@ct1 ~]# openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --public - 確認鏡像的上傳並驗證屬性:
[root@ct1 ~]# openstack image list
OpenStack核心組件原理與應用之Glance