Centos7安裝部署openstack--glance鏡像服務


一、服務概述

  鏡像服務 (glance) 允許用戶發現、注冊和獲取虛擬機鏡像。它提供了一個 REST API,允許您查詢虛擬機鏡像的 metadata 並獲取一個現存的鏡像。您可以將虛擬機鏡像存儲到各種位置,從簡單的文件系統到對象存儲系統—-例如 OpenStack 對象存儲, 並通過鏡像服務使用。

  OpenStack鏡像服務是IaaS的核心服務,如同 :ref:`get_started_conceptual_architecture`所示。它接受磁盤鏡像或服務器鏡像API請求,和來自終端用戶或OpenStack計算組件的元數據定義。它也支持包括OpenStack對象存儲在內的多種類型倉庫上的磁盤鏡像或服務器鏡像存儲。

  大量周期性進程運行於OpenStack鏡像服務上以支持緩存。同步復制(Replication)服務保證集群中的一致性和可用性。其它周期性進程包括auditors, updaters, 和 reapers。

  OpenStack鏡像服務包括以下組件:

    glance-api:接收鏡像API的調用,諸如鏡像發現、恢復、存儲。
    glance-registry:存儲、處理和恢復鏡像的元數據,元數據包括項諸如大小和類型。
  數據庫:存放鏡像元數據,用戶是可以依據個人喜好選擇數據庫的,多數的部署使用MySQL或SQLite。
  鏡像文件的存儲倉庫:支持多種類型的倉庫,它們有普通文件系統、對象存儲、RADOS塊設備、HTTP、以及亞馬遜S3。記住,其中一些倉庫僅支持只讀方式使用。
  元數據定義服務:通用的API,是用於為廠商,管理員,服務,以及用戶自定義元數據。這種元數據可用於不同的資源,例如鏡像,工件,卷,配額以及集合。一個定義包括了新屬性的鍵,描述,約束以及可以與之關聯的資源的類型。
  警告:glance-registry是私有內部服務,用於服務OpenStack Image服務。不要向用戶暴露該服務
二、安裝和配置

  准備工作:安裝和配置鏡像服務之前,你必須創建創建一個數據庫、服務憑證和API端點

  1、創建數據庫並授權

[root@controller ~]# mysql -u root -p
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';

  2、創建 glance 用戶,添加 admin 角色到 glance 用戶和 service 項目上

[root@controller ~]# openstack user create --domain default --password GLANCE_PASS glance
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | 73e42b9fc6b64cfdb17940cdf0a0f692 |
| enabled             | True                             |
| id                  | 7a6f6526409c459a980d9b441c6e3575 |
| name                | glance                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@controller ~]# openstack role add --project service --user glance admin

查看命令
[root@controller ~]# openstack project list             
[root@controller ~]# openstack role assignment list
[root@controller ~]# openstack role list
[root@controller ~]# mysql keystone -e "show tables;" |grep role 過濾表,查看是否有個role表

  3、在keystone上創建服務,並注冊api

[root@controller ~]# openstack service create --name glance   --description "OpenStack Image" image
[root@controller ~]# openstack endpoint create --region RegionOne   image public http://controller:9292
[root@controller ~]# openstack endpoint create --region RegionOne   image internal http://controller:9292
[root@controller ~]# openstack endpoint create --region RegionOne   image admin http://controller:9292

  4、安裝相應的服務

[root@controller ~]# yum install openstack-glance -y

  5、編輯文件 /etc/glance/glance-api.conf 並完成如下動作

cp /etc/glance/glance-api.conf{,.bak}
grep '^[a-z\[]' /etc/glance/glance-api.conf.bak >/etc/glance/glance-api.conf

[database]                                                               在 [database] 部分,配置數據庫訪問
...
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance

[keystone_authtoken]                                                     在 [keystone_authtoken] 和 [paste_deploy] 部分,配置認證服務訪問
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = GLANCE_PASS                                                   將 GLANCE_PASS 替換為你為認證服務中你為 glance 用戶選擇的密碼。

[paste_deploy]
...
flavor = keystone

[glance_store]                                                           在 [glance_store] 部分,配置本地文件系統存儲和鏡像文件位置
...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/

  6、編輯文件 ``/etc/glance/glance-registry.conf``並完成如下動作

cp /etc/glance/glance-registry.conf{,.bak}                            備份配置文件
grep '^[a-z\[]' /etc/glance/glance-registry.conf.bak >/etc/glance/glance-registry.conf        過濾空格和注釋行

[database]                                                               在 [database] 部分,配置數據庫訪問
...
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance     

[keystone_authtoken]                                                     在 [keystone_authtoken] 和 [paste_deploy] 部分,配置認證服務訪問
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = GLANCE_PASS

[paste_deploy]
...
flavor = keystone

  7、數據庫同步

[root@controller ~]# su -s /bin/sh -c "glance-manage db_sync" glance
[root@controller ~]# mysql glance -e "show tables;"

  8、啟動服務

systemctl enable openstack-glance-api.service  openstack-glance-registry.service               加入自啟動項
systemctl start openstack-glance-api.service  openstack-glance-registry.service                批量啟動服務

  9、上傳一個測試鏡像驗證服務

     下載地址:http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

[root@controller opt]# openstack image create "cirros"   --file cirros-0.3.4-x86_64-disk.img   --disk-format qcow2 --container-format bare   --public

       

   上傳成功!!!

  10、驗證,查看鏡像位置

      

   11、查看相關信息

[root@controller ~]# openstack image list                                        查看鏡像列表
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 6ee7c745-cad8-46a0-ba90-78bbaa3ba1e8 | cirros | active |
+--------------------------------------+--------+--------+
[root@controller ~]# mysql glance -e "show tables;"|grep image                   查看鏡像存儲的數據庫表
image_locations
image_members
image_properties
image_tags
images
[root@controller ~]#

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM