O020、理解 Glance

 
OpenStack 由 Glance 提供 Image 服務。
 
理解 Glance 
 
要理解 Image Service , 先得搞清楚什麼是 Image 以及爲何要用 Image?
 
在傳統IT 環境下,安裝一個系統要麼從官方ISO一步一步安裝,要麼使用GHOST等克隆工具恢復。這兩種方式有以下幾個問題:
 
    一、若是安裝的系統多了效率很低
    二、時間長,工做量大
    三、安裝完還要進行手工配置,好比安裝軟件、配置IP 密碼等
    四、備份和恢復系統不靈活
 
雲環境下須要更高效的方案,這就是 Image ,Image 是一個模板,裏面包含了基本的操做系統和其餘軟件
 
舉例來講,有家公司須要爲每位員工配置一條辦公的系統,通常須要一個win7 在加上  office等辦公軟件,若是用OpenStack的話,大概過程以下:
 
    一、先手工安裝好一個win7 的虛機,並安裝好office等辦公軟件
    二、而後對虛機執行 snapshot,這樣就獲得了一個image
    三、當有新員工入職須要辦公環境時,立馬啓動一個或者多個image的instance(虛機)就能夠了
 
在這個過程當中,第1步跟傳統方式相似,須要手工操做和必定的時間,但第二、3步很是快,全自動,通常都是秒級操做。並且第 2 3 步能夠循環作,好比公司新上了一套OA系統,每一個員工的PC上都得有客戶端軟件。那麼能夠在某個現有虛機中先手工安裝好OA客戶端,而後執行snapshot操做,獲得新的image,之後能夠直接使用新的image建立虛機。另外,snapshot還有備份的做用,可以很是方便的恢復系統。
 
理解 Image Service
 
Image Service 的功能是管理Image,讓用戶可以發現、獲取和保存image。在OpenStack 中,提供 Image Service 大的是Glance,其具體功能以下:
 
    一、提供 REST API 讓用戶可以查詢和獲取image 的元數據和image自己
    二、支持多種方式存儲image,包括普通的文件系統、swift、Amazon S3 等
    三、對 Instance 執行 snapshot 建立新的image
 
Glance 架構
 
Glance 架構圖
 
 
glance-api 
 
glance-api  是系統後臺運行的服務進程,對外提供 REST API,響應 image 查詢、獲取和存儲的調用。
glance-api 不會真正處理請求,若是操做是與 image metadata(元數據)相關,glance-api 會把請求轉發給glance-registry;若是操做是與image自身存取相關,glancd-api 會把請求轉發給該 image的store backend。
 
在控制節點上能夠查看 glance-api 進程
 
root@DevStack-Controller:/var/log/apache2# ps -e | grep glance-api
26652 pts/7    00:12:27 glance-api
26800 pts/7    00:01:10 glance-api
26801 pts/7    00:00:52 glance-api
 
glance-registry
 
glance-registry 是系統後臺運行的服務進程。負責處理和存取image的metadata,例如image的大小和類型。在控制節點上能夠查看 glance-registry的進程
 
root@DevStack-Controller:/var/log/apache2# ps -e | grep glance-registry
26312 pts/6    00:00:00 glance-registry
26572 pts/6    00:00:13 glance-registry
26573 pts/6    00:00:07 glance-registry
 
Glance 支持多種格式的image,包括
 
 
Database
 
Image 的metadata 會保持到 database中,默認是 MySQL。在控制節點上能夠查看glance的database信息
 
root@DevStack-Controller:~# su - stack
stack@DevStack-Controller:~$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 697
Server version: 5.7.26-0ubuntu0.16.04.1 (Ubuntu)
 
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> use glance;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> show tables;
+----------------------------------+
| Tables_in_glance                 |
+----------------------------------+
| alembic_version                  |
| artifact_blob_locations          |
| artifact_blobs                   |
| artifact_dependencies            |
| artifact_properties              |
| artifact_tags                    |
| artifacts                        |
| image_locations                  |
| image_members                    |
| image_properties                 |
| image_tags                       |
| images                           |
| metadef_namespace_resource_types |
| metadef_namespaces               |
| metadef_objects                  |
| metadef_properties               |
| metadef_resource_types           |
| metadef_tags                     |
| migrate_version                  |
| task_info                        |
| tasks                            |
+----------------------------------+
21 rows in set (0.00 sec)
 
store backend
 
Glance 本身並不存儲 image。真正的image是存放在backend 中的。Glance 支持多種backend ,包括:
 
    一、A directory on a local file system (這是默認值)
    二、GridFS
    三、Ceph RBD
    四、Amazon S3
    五、Sheepdog
    六、OpenStack Block Storage(Cinder)
    七、OpenStack Object Storage(Swift)
    八、VMware ESX
 
具體使用哪一種 backend ,是在 /etc/glance/glance-api.conf 中配置的,在咱們的實驗環境中,image存放在控制節點本地目錄  /opt/stack/data/glance/images/
 
[glance_store]
filesystem_store_datadir = /opt/stack/data/glance/images/
 
 
查看目前已經存在的image 和查看保存image 的目錄,每一個 image在目錄中都有一個對應的文件,文件一image 的ID命名。
 
stack@DevStack-Controller:~$ source devstack/openrc admin admin
WARNING: setting legacy OS_TENANT_NAME to support cli tools.
stack@DevStack-Controller:~$ glance image-list
+--------------------------------------+---------------------------------+
| ID                                   | Name                            |
+--------------------------------------+---------------------------------+
| 7c5fbab9-c215-47db-9848-66ca5305f0ac | cirros-0.3.4-x86_64-uec         |
| c3f9bfb6-f089-4a0a-b410-e128284761f8 | cirros-0.3.4-x86_64-uec-kernel  |
| 16b087bd-8aa5-48fa-968b-6d8986ee2434 | cirros-0.3.4-x86_64-uec-ramdisk |
+--------------------------------------+---------------------------------+
stack@DevStack-Controller:~$ ll /opt/stack/data/glance/images/
total 33104
drwxr-xr-x 2 stack stack     4096 May 22 01:11 ./
drwxr-xr-x 4 stack stack     4096 May 22 01:04 ../
-rw-r----- 1 stack stack  3740163 May 22 01:11 16b087bd-8aa5-48fa-968b-6d8986ee2434
-rw-r----- 1 stack stack 25165824 May 22 01:11 7c5fbab9-c215-47db-9848-66ca5305f0ac
-rw-r----- 1 stack stack  4979632 May 22 01:11 c3f9bfb6-f089-4a0a-b410-e128284761f8
相關文章
相關標籤/搜索