1. 程式人生 > >OpenStack核心組件原理與應用之Glance

OpenStack核心組件原理與應用之Glance

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?
先決條件:

  1. 創建數據庫:
    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;
  2. 獲得admin憑證來獲取只有管理員才能執行的命令的訪問權限:
    [root@ct1 ~]# . admin-openrc
  3. 創建服務證書:
    #創建 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
  4. 創建鏡像服務的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組件

  1. 安裝軟件包:
    [root@ct1 ~]#yum -y install openstack-glance
  2. 修改 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/
  3. 編輯 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
  4. 寫入鏡像服務數據庫
    [root@ct1 ~]# su -s /bin/sh -c "glance-manage db_sync" glance
  5. 啟動服務,並設置開機自啟動
    [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服務進行驗證

  1. 獲得admin憑證來獲取只有管理員才能執行的命令的訪問權限:
    [root@ct1 ~]# . admin-openrc
  2. 下載源鏡像:
    [root@ct1 ~]# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
  3. 使用 QCOW2 磁盤格式, bare 容器格式上傳鏡像到鏡像服務並設置公共可見,這樣所有的項目都可以訪問它:
    [root@ct1 ~]# openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --public
  4. 確認鏡像的上傳並驗證屬性:
    [root@ct1 ~]# openstack image list

OpenStack核心組件原理與應用之Glance