OpenStack搭建企業私有雲 二:鏡像服務(持續更新...)
OpenStack鏡像服務(glance)是IaaS的核心服務,允許用戶發現、註冊和獲取虛擬機的鏡像。 他提供了一個RESTAPI,允許查詢虛擬機鏡像的元數據並獲取一個現存的鏡像。可以將虛擬機鏡像存儲到各種位置,從簡單的文件系統到對象存儲系統—例如OpenStack對象存儲,並通過鏡像服務使用。
簡單來說使用file作為後端配置鏡像服務,能夠上傳並存儲在一個托管鏡服務的控制節點目錄中。默認情況下,這個目錄是 /var/lib/glance/images/
大量周期性進程運行於OpenStack鏡像服務上以支持緩存。
同步復制(Replication)服務保證集群中的一致性和可用性。其它周期性進程包括auditors, updaters, 和 reapers。
OpenStack鏡像服務包括以下組件:
-
glance-api
接收鏡像API的調用,諸如鏡像發現、恢復、存儲。
-
glance-registry
存儲、處理和恢復鏡像的元數據,元數據包括項諸如大小和類型。
-
數據庫
存放鏡像元數據,用戶是可以依據個人喜好選擇數據庫的,多數的部署使用MySQL或SQLite。
-
鏡像文件的存儲倉庫
支持多種類型的倉庫,它們有普通文件系統、對象存儲、RADOS塊設備、HTTP、以及亞馬遜S3。記住,其中一些倉庫僅支持只讀方式使用。
- 元數據定義服務
通用的API,是用於為廠商,管理員,服務,以及用戶自定義元數據。這種元數據可用於不同的資源,例如鏡像,工件,卷,配額以及集合。一個定義包括了新屬性的鍵,描述,約束以及可以與之關聯的資源的類型。
?
部署鏡像服務glance
控制節點上部署
-
創建glance數據庫,並授權
# mysql -u root -p > CREATE DATABASE glance; > GRANT ALL PRIVILEGES ON glance.* TO ‘glance‘@‘localhost‘ IDENTIFIED BY ‘123456‘; > GRANT ALL PRIVILEGES ON glance.* TO ‘glance‘@‘%‘ IDENTIFIED BY ‘123456‘;
-
獲取admin用戶的環境變量,並創建服務認證
# cd ~ # . admin-openrc # export | grep OS_
-
創建glance用戶
# openstack user create --domain default --password-prompt glance
-
把admin用戶添加到glance用戶和項目中
# openstack role add --project service --user glance admin
-
創建glance服務
# openstack service create --name glance --description "OpenStack Image" image
?
-
創建鏡像服務API端點
# openstack endpoint create --region RegionOne image public http://controller:9292 # openstack endpoint create --region RegionOne image internal http://controller:9292 # openstack endpoint create --region RegionOne image admin http://controller:9292
?
?
-
安裝glance包
# yum install openstack-glance -y # mkdir /var/lib/glance/images # cd /var/lib # chown -hR glance:glance glance # vim /etc/glance/glance-api.conf [database] connection = mysql+pymysql://glance:123456@controller/glance [keystone_authtoken] auth_uri = http://controller:5000 //3501行 auth_url = http://controller:35357 (!註意 url 不是 uri) memcached_servers = controller:11211 //3552行 auth_type = password //3659行 project_domain_name = default user_domain_name = default project_name = service username = glance password = 123456 [paste_deploy] flavor = keystone ////4508 [glance_store] stores = file,http //2066 default_store = file //2110 filesystem_store_datadir = /var/lib/glance/images //2429
.
# vim /etc/glance/glance-registry.conf
[database]
//1188行
connection = mysql+pymysql://glance:123456@controller/glance
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357 (!註意 url 不是 uri)
memcached_servers = controller:11211 //1365行
auth_type = password //1472行
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = 123456
[paste_deploy]
flavor = keystone //2294行
- 同步鏡像數據庫
-
啟動鏡像服務、配置開機啟動
# su -s /bin/sh -c "glance-manage db_sync" glance # systemctl enable openstack-glance-api.service # systemctl start openstack-glance-api.service # systemctl enable openstack-glance-registry.service # systemctl start openstack-glance-registry.service
-
獲取admin用戶的環境變量,且下載鏡像
# source ~/admin-openrc # wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
- 上傳鏡像
-
使用QCOW2磁盤格式,裸容器格式和公開可見性將圖像上傳到Image服務,以便所有項目都可以訪問它
# openstack image create "cirros" --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public
-
查看上傳的鏡像
# openstack image list
OpenStack搭建企業私有雲 二:鏡像服務(持續更新...)