天天看點

OpenStack搭建企業私有雲 二:鏡像服務

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           
OpenStack搭建企業私有雲 二:鏡像服務
  • 建立鏡像服務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           
OpenStack搭建企業私有雲 二:鏡像服務
  • 安裝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           
OpenStack搭建企業私有雲 二:鏡像服務
  • 擷取admin使用者的環境變量,且下載下傳鏡像
    # source ~/admin-openrc
    # wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img           
  • 上傳鏡像
  • # openstack image create "cirros" --file cirros-0.3.5-x86_64-disk.img  --disk-format qcow2 --container-format bare  --public           
  • # openstack image list           

繼續閱讀