1. 程式人生 > >OpenStack搭建企業私有雲 二:鏡像服務(持續更新...)

OpenStack搭建企業私有雲 二:鏡像服務(持續更新...)

paste code size 企業 以及 updater upd restapi bar

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搭建企業私有雲 二:鏡像服務(持續更新...)