天天看點

Openstack 之鏡像管理服務Glance一、Glance鏡像服務基本概念二、Glance的搭建

Openstack

  • 一、Glance鏡像服務基本概念
    • 1.什麼是Glance,它的作用是什麼?
    • 2.OpenStack鏡像簡介
    • 3.OpenStack鏡像服務管理和存儲鏡像
    • 4.OpenStack鏡像的類型和格式
    • 5.Glance鏡像的中繼資料
  • 二、Glance的搭建
    • 1.建立資料庫執行個體和資料庫使用者
    • 2.建立使用者、修改配置檔案

一、Glance鏡像服務基本概念

1.什麼是Glance,它的作用是什麼?

Glance是openstack的鏡像服務。它提供了虛拟鏡像的查詢、注冊和傳輸等服務。Glance本身并不實作對鏡像的存儲的存儲功能。Glance隻是一個代理。它充當了鏡像存儲服務與Openstack的其他元件之間的紐帶。Glance共支援兩種鏡像存儲機制:簡單檔案系統和Swift服務存儲鏡像機制。簡單檔案系統是指将鏡像儲存在Glance節點的檔案系統中。這種機制相對比較簡單,但是存在不足。比如,由于沒有備份機制,當檔案系統損傷是麻将導緻所有的鏡像不可用。Swift服務存儲鏡像機制,是指将鏡像以對象的形式儲存在Swift對象存儲伺服器中,由于Swift具有非常健壯的備份還原機制,是以可以降低因為檔案系統損傷而造成的鏡像不可用情況。

Glance服務支援多種格式的虛拟磁盤鏡像。其中包括raw/qcow2、VHD、VDI、VMDK、OVF、kernel和ramdisk。

可以把Glance當做一個對象存儲代理服務。可以通過Glance存儲任何其他格式的檔案。

2.OpenStack鏡像簡介

OpenStack鏡像是一個檔案,能夠運作、啟動虛拟盤

OpenStack的虛拟伺服器就是一個鏡像的運作執行個體

鏡像包含一個作業系統

OpenStack預設支援Linux和Windows作業系統

OpenStack鏡像還包括其他的管理軟體如cloud-init

OpenStack鏡像還包括中間件或者應用軟體,象NGINX, MySQL, VNFs

Glance存儲這些大型二=進制的鏡像

3.OpenStack鏡像服務管理和存儲鏡像

  • 虛拟伺服器鏡像
  • 裸金屬伺服器鏡像
  • 容器鏡像

    glance-api: Glance提供的基本接口,通過它可以儲存和擷取磁盤鏡像

    gance-registry:用于将與鏡像相關的中繼資料儲存到關

    系資料庫中。中繼資料包括:

  • 鏡像名稱
  • 鏡像儲存的位置資訊
  • 鏡像的大小
  • 鏡像的唯一辨別号
  • 容器類型: bare
  • 磁盤鏡像格式類型
  • 狀态.
  • 是否可見
  • 所有者等等

    Glance将鏡像儲存在各種類型的資料存儲系統,如本地存儲檔案系統(LVM), Swift對象存儲、 支援HTTP的遠端存儲(AMAZON S3)

Openstack 之鏡像管理服務Glance一、Glance鏡像服務基本概念二、Glance的搭建

OpenStack如何将鏡像加載成伺服器的運作執行個體?

從Glance鏡像到虛拟伺服器執行個體的過程示意圖

Openstack 之鏡像管理服務Glance一、Glance鏡像服務基本概念二、Glance的搭建

4.OpenStack鏡像的類型和格式

OpenStack鏡像服務支援下列的磁盤格式

  • QCOW2 (QEMU Copy-On-Write):精簡配置設定的磁盤格式,用于QEMU & QEMUKVM
  • VMDK (Virtual Machine Disk): Vmware通用的磁盤格式,其他虛拟機管理軟體也支援
  • VHD (Virtual Hard Drive): Hyper-V通用磁盤格式,其他虛拟機管理軟體也支援
  • VDI (Virtual Disk lmage): Oracle’s VirtualBox 的磁盤格式.
  • ISO (International Organization for Standardization, IS09660):CD光牒打包的格式
  • RAW:沒有壓縮的非結構化的鏡像磁盤格式
  • VHDX: VHD的增強版本
  • OVA (Open Virtual Appliance ): Vmware定義的開發虛拟應用磁盤格式
  • aki, ami, ari:亞馬遜公司的核心(kernel)、主機(machine)、 記憶體磁盤(ramdisk)的鏡像格式

OpenStack鏡像的容器格式指的是鏡像檔案的封裝類型,即虛拟機映像檔案是否包含和封裝

那種有關實際虛拟機的中繼資料。OpenStack支援鏡像容器格式有:

  • Bare: 沒有容器或中繼資料信封。目前OpenStack主要是這種
  • docker: Docker容器格式。Openstack鏡像服務 支援docker容器的注冊
  • OVA (Open Virtual Appliance ): Vmware定義的開發虛拟應用中繼資料封裝格式
  • OVF (Open Virtualization Format):開放虛拟化格式,-種容器格式,支援的有Vwmare, Hyper-V
  • aki, ami, ari:亞馬遜公司的核心(kemnel)、主機(machine)、 記憶體磁盤(ramdisk)的中繼資料封裝格式

5.Glance鏡像的中繼資料

OpenStack鏡像中繼資料描述了與執行個體運作時環境相關的鏡像屬性和要求

OpenStack鏡像中繼資料的作用如下

  • 鏡像屬性可用于覆寫為Nova Flavors定義的特定行為
  • 鏡像屬性可用于影響Nova排程程式(ImagePropertiesFllter) 的行為,
  • 鏡像屬性可用于影響特定NOVA管理程式 (Hypvisor) 的行為

    OpenStack鏡像中繼資料的屬性主要有:

  • CPU結構(architecture): 鏡x86_ _64, amd64, arm, sparc64,等
  • 虛拟管理程式類型(hypervisor_ _type): KVM, QEMU, Vmware, Hyper-v, lxc, xen, uml, ironic
  • 作業系統釋出的版本名(os_ _distro): ubuntu, centos, windows, debian, rhel,等
  • 操作新統的版本号(os_ _version)
  • 作業系統關閉等待時間(os_ shutdown _timeout)
  • 虛拟機模式(vm_ mode): hvm, xen, uml, exe

OpenStack鏡像中繼資料支援客戶化定制

二、Glance的搭建

1.建立資料庫執行個體和資料庫使用者

[[email protected] ~]# 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';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
           

2.建立使用者、修改配置檔案

建立OpenStack的Glance使用者

[[email protected] ~]# openstack user create --domain default --password GLANCE_PASS glance			###建立glance使用者
[[email protected] ~]# openstack role add --project service --user glance admin					#将glance使用者添加到service項目中,并且針對這個項目擁有admin權限;注冊glance的API,需要對service項目有admin權限
[[email protected] ~]# openstack service create --name glance --description "OpenStack Image" image		建立一個service服務,service名稱為glance,類型為image;建立完成後可以通過 openstack service list 檢視
           

建立鏡像服務 API 端點,OpenStack使用三種API端點代表三種服務:admin、internal、public

[[email protected] ~]# openstack endpoint create --region RegionOne image public http://ct:9292
[[email protected] ~]# openstack endpoint create --region RegionOne image internal http://ct:9292
[[email protected] ~]# openstack endpoint create --region RegionOne image admin http://ct:9292
           

安裝 openstack-glance 軟體包

[[email protected] ~]# yum -y install openstack-glance 
           

修改glance配置檔案,glance有兩個配置檔案:/etc/glance/glance-api.conf

/etc/glance/glance-registry.conf

備份、過濾注釋資訊
[[email protected] ~]# cp -a /etc/glance/glance-api.conf{,.bak}
[[email protected] ~]# grep -Ev '^$|#' /etc/glance/glance-api.conf.bak > /etc/glance/glance-api.conf
           

添加glance.api配置檔案

openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@ct/glance
傳入修改的參數
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://ct:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://ct:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password GLANCE_PASS
openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http
openstack-config --set /etc/glance/glance-api.conf glance_store default_store file
openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/
cat glance-api.conf
           
Openstack 之鏡像管理服務Glance一、Glance鏡像服務基本概念二、Glance的搭建

備份、過濾注釋資訊

cp -a /etc/glance/glance-registry.conf{,.bak}
grep -Ev '^$|#' /etc/glance/glance-registry.conf.bak > /etc/glance/glance-registry.conf
           

修改glance-registry.conf 配置檔案(配置與glance-api.conf相同)

openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@ct/glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken www_authenticate_uri http://ct:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://ct:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password GLANCE_PASS
openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-registry.conf glance_store stores file,http
openstack-config --set /etc/glance/glance-registry.conf glance_store default_store file
openstack-config --set /etc/glance/glance-registry.conf glance_store filesystem_store_datadir /var/lib/glance/images/
           

初始化glance資料庫,生成相關表結構;(不管有多少個controler,隻需要初始化一次即可)

su -s /bin/sh -c "glance-manage db_sync" glance
           

開啟glance服務(此處開啟之後會生成存放鏡像的目錄/var/lib/glance/image)

[[email protected] ~]# systemctl enable openstack-glance-api.service
[[email protected] ~]# systemctl start openstack-glance-api.service
           

檢視端口(也可以使用lsof -i:9292 )

Openstack 之鏡像管理服務Glance一、Glance鏡像服務基本概念二、Glance的搭建

賦予openstack-glance-api.service服務對儲存設備的可寫權限(-h:值對符号連接配接/軟連結的檔案修改)

鏡像導入

先上傳cirros鏡像到控制節點的/root,然後導入glance,最後檢視是否建立成功

[[email protected] ~]# openstack image create --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public cirros
           

檢視鏡像的兩種方式:

openstack image list 可以看到鏡像狀态

glance image-list無法檢視鏡像狀态

繼續閱讀