一、什麼是Glance?
1. Glance是openstack項目中負責鏡像管理的子產品,其功能包括虛拟機鏡像的查找、注冊和檢索等操作。
2. Glance提供restful API可以查詢虛拟機鏡像的metadata,并且可以獲得鏡像。
3. 通過Glance,虛拟機鏡像可以被存儲到多種存儲上,比如簡單的檔案存儲或者對象存儲。
二、Glance在openstack中
1. Glance為compute提供鏡像支援。
2. Glance需要對象存儲或者其他儲存設備的支援。
3. Glance需要keystone的驗證支援。
4. Dashboard為Glance提供界面支援。
三、Glance中一些基本的概念
1. Image identifiers
--就是Image URL,格式<Glance Server Location>/images/<ID>
全局唯一
2. Image status:
Queued:鏡像ID已經被保留,鏡像還沒有上傳
Saving:鏡像正在上傳
Active:鏡像可以使用了
Killed:鏡像損壞或者不可用
Deleted:鏡像被删除
3. Disk Format
raw:二進制,無結構的鏡像,占用磁盤大,但是啟動虛拟機快
vhd:VNWare,Xen,Microsoft,VirtualBox所支援
vmdk:通用的格式,開源組織,由VMWare發起
vdi:VirtualBox,QEMU所支援
iso:常見的鏡像模式,歸檔
qcow2:QEMU支援,kvm,動态擴充,支援快照
aki:亞馬遜核心鏡像
ari:亞馬遜運存鏡像
ami:亞馬遜機器鏡像
4. Container Format定義虛拟機别的中繼資料(cpu)
Bare:
ovf:開源虛拟機的Container
aki:亞馬遜
ami:亞馬遜
ari:亞馬遜
四、Glance的架構
五、子產品
1. Glance API:處理API請求
2. Glance Registry:處理鏡像的metadata存儲
3. store Adapter:鏡像本身的存儲
S3
Swift
FileSystem:預設後端存儲
RDB:Ceph的Rados block device(RDB)分布式塊存儲
HTTP:通過HTTP在Internet上讀取可用的虛拟機鏡像
其他分布式存儲,比如sheepdog
六、Glance搭建
1. 安裝Glance包
2. 初始化資料庫
3. 配置Glance
資料庫
Keystone認證服務
4. 啟動Glance服務
七、CLI
1. 列出鏡像
[[email protected] ~]# glance image-list
+--------------------------------------+---------------------+-------------+------------------+------------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+---------------------+-------------+------------------+------------+--------+
| c425f49b-9c35-4314-a9c9-3849462f7db5 | cirros-0.3.2-x86_64 | qcow2 | bare | 13167616 | active |
| 1a7d4a2c-87d6-4ae3-abf9-dd7e2cb9df76 | xp | qcow2 | bare | 1718026240 | active |
+--------------------------------------+---------------------+-------------+------------------+------------+--------+
[[email protected] ~]# glance image-show 1a7d4a2c-87d6-4ae3-abf9-dd7e2cb9df76
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | c40112f46db51dc8106fbf29585158b4 |
| container_format | bare |
| created_at | 2014-11-09T03:49:06 |
| deleted | False |
| disk_format | qcow2 |
| id | 1a7d4a2c-87d6-4ae3-abf9-dd7e2cb9df76 |
| is_public | True |
| min_disk | 0 |
| min_ram | 0 |
| name | xp |
| owner | b13e2c80b02348988b6208f0a5a3be90 |
| protected | False |
| size | 1718026240 |
| status | active |
| updated_at | 2014-11-09T03:49:47 |
+------------------+--------------------------------------+
2. 建立鏡像
3. 删除鏡像
4. 下載下傳鏡像
八、API----擷取Token
1.
第一步:向http://192.168.126.222:5000/v2.0/tokens發送post請求,body裡面的内容是
2.得到響應{ "auth" : { "tenantName" : "admin", "passwordCredentials" : { "username" : "admin", "password" : "ADMIN_PASS" } } }
{ "access" : { "token" : { "issued_at" : "2014-12-11T09:09:58.380649", "expires" : "2014-12-11T10:09:58Z", "id" : "MIIOLAYJKoZIhvcNAQcCoIIOHTCCDhkCAQExCTAHBgUrDgMCGjCCDIIGCSqGSIb3DQEHAaCCDHMEggxveyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxNC0xMi0xMVQwOTowOTo1OC4zODA2NDkiLCAiZXhwaXJlcyI6ICIyMDE0LTEyLTExVDEwOjA5OjU4WiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogIkFkbWluIFRlbmFudCIsICJlbmFibGVkIjogdHJ1ZSwgImlkIjogImIxM2UyYzgwYjAyMzQ4OTg4YjYyMDhmMGE1YTNiZTkwIiwgIm5hbWUiOiAiYWRtaW4ifX0sICJzZXJ2aWNlQ2F0YWxvZyI6IFt7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEyNi4yMjI6ODc3NC92Mi9iMTNlMmM4MGIwMjM0ODk4OGI2MjA4ZjBhNWEzYmU5MCIsICJyZWdpb24iOiAicmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEyNi4yMjI6ODc3NC92Mi9iMTNlMmM4MGIwMjM0ODk4OGI2MjA4ZjBhNWEzYmU5MCIsICJpZCI6ICI3Y2ViMDVkZjc5Njg0OWYwOGNjZTIzMWY1MmE5OTcxNSIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzE5Mi4xNjguMTI2LjIyMjo4Nzc0L3YyL2IxM2UyYzgwYjAyMzQ4OTg4YjYyMDhmMGE1YTNiZTkwIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGUiLCAibmFtZSI6ICJub3ZhIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMTI2LjIyMjo5Njk2IiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMTI2LjIyMjo5Njk2IiwgImlkIjogIjExNjQwYzVmOTZhZDQxYTk5MmNiMGUzMmI5YjJkYzBhIiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjk2OTYifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAibmV0d29yayIsICJuYW1lIjogIm5ldXRyb24ifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjg3NzYvdjIvYjEzZTJjODBiMDIzNDg5ODhiNjIwOGYwYTVhM2JlOTAiLCAicmVnaW9uIjogInJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjg3NzYvdjIvYjEzZTJjODBiMDIzNDg5ODhiNjIwOGYwYTVhM2JlOTAiLCAiaWQiOiAiMjYzZDI1OGEwMDAzNDI1MDgzMTg1ZjVmZWRjN2NkM2MiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEyNi4yMjI6ODc3Ni92Mi9iMTNlMmM4MGIwMjM0ODk4OGI2MjA4ZjBhNWEzYmU5MCJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJ2b2x1bWV2MiIsICJuYW1lIjogImNpbmRlcnYyIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMTI2LjIyMjo5MjkyIiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMTI2LjIyMjo5MjkyIiwgImlkIjogIjBkYjY5NzE2ZjZhYzQ5YjhhOTlmYWEwMTZkNWRhZTU1IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjkyOTIifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAiaW1hZ2UiLCAibmFtZSI6ICJnbGFuY2UifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjg3NzciLCAicmVnaW9uIjogInJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjg3NzciLCAiaWQiOiAiMjhmMWQ5MzEyMzJlNDAyYmJmZDJmYjZmYjQ2MTFlODkiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEyNi4yMjI6ODc3NyJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJtZXRlcmluZyIsICJuYW1lIjogImNlaWxvbWV0ZXIifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjg3NzYvdjEvYjEzZTJjODBiMDIzNDg5ODhiNjIwOGYwYTVhM2JlOTAiLCAicmVnaW9uIjogInJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjg3NzYvdjEvYjEzZTJjODBiMDIzNDg5ODhiNjIwOGYwYTVhM2JlOTAiLCAiaWQiOiAiMTA0ZTg3N2RlZWYyNDI5NzhjNGZlMWMzZjc0MGRjNWIiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEyNi4yMjI6ODc3Ni92MS9iMTNlMmM4MGIwMjM0ODk4OGI2MjA4ZjBhNWEzYmU5MCJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJ2b2x1bWUiLCAibmFtZSI6ICJjaW5kZXIifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjgwODAiLCAicmVnaW9uIjogInJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjgwODAvdjEvQVVUSF9iMTNlMmM4MGIwMjM0ODk4OGI2MjA4ZjBhNWEzYmU5MCIsICJpZCI6ICI2ODQ1YWZhOTVjNmM0YmUzOWFkNDA3ODQxNjUwOTA3MSIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzE5Mi4xNjguMTI2LjIyMjo4MDgwL3YxL0FVVEhfYjEzZTJjODBiMDIzNDg5ODhiNjIwOGYwYTVhM2JlOTAifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAib2JqZWN0LXN0b3JlIiwgIm5hbWUiOiAic3dpZnQifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjM1MzU3L3YyLjAiLCAicmVnaW9uIjogInJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4xMjYuMjIyOjUwMDAvdjIuMCIsICJpZCI6ICIwYzM0MTI5YzQzYzE0ZTFkYmY5ZTBiZjk5MDUxZTMwMSIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzE5Mi4xNjguMTI2LjIyMjo1MDAwL3YyLjAifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAiaWRlbnRpdHkiLCAibmFtZSI6ICJrZXlzdG9uZSJ9XSwgInVzZXIiOiB7InVzZXJuYW1lIjogImFkbWluIiwgInJvbGVzX2xpbmtzIjogW10sICJpZCI6ICIwNDFkMTFlNGVlNTg0ZmZjODcyY2FkYzRhMWQzZjE3MSIsICJyb2xlcyI6IFt7Im5hbWUiOiAiX21lbWJlcl8ifSwgeyJuYW1lIjogImFkbWluIn1dLCAibmFtZSI6ICJhZG1pbiJ9LCAibWV0YWRhdGEiOiB7ImlzX2FkbWluIjogMCwgInJvbGVzIjogWyI5ZmUyZmY5ZWU0Mzg0YjE4OTRhOTA4NzhkM2U5MmJhYiIsICI3MWU4YWI5N2FmZTQ0YWJkOWUwM2NlZGI5OWU3ZDMwNyJdfX19MYIBgTCCAX0CAQEwXDBXMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVW5zZXQxDjAMBgNVBAcMBVVuc2V0MQ4wDAYDVQQKDAVVbnNldDEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tAgEBMAcGBSsOAwIaMA0GCSqGSIb3DQEBAQUABIIBAMrIsdFQp-2xKnptTiXb6j0rtOsg876zjWB1au5XmEYeIxEL7Lo5JgGGyU+PU92IbLvZmfzO7d4WNIBV2OH8Y+7DU93YvJH7ZZ0x9Q9y3c2GXUKBMwyPIfURRJkVrnvo4zc9cmbzLUYSaxiaVXpmAOyugk5EV3GCnao3w7Hf6YWUH7beTzbx0y5OaoWWUQANkrooWpeUq28fvsdsEAN0uWsITo+WlMKMIkdmxvHc0dpb4hKqw7XETo8DdKR9hzznSowMXujcjCUf8eX76uor4clQx+DAROd5S8IlRLdhAGPJsnj7+yK+q19B3V2swyBURmsmpogvOF3nqm57N0Qt1uU=", "tenant" : { "description" : "Admin Tenant", "enabled" : true, "id" : "b13e2c80b02348988b6208f0a5a3be90", "name" : "admin" } }, "serviceCatalog" : [ { "endpoints" : [ { "adminURL" : "http://192.168.126.222:8774/v2/b13e2c80b02348988b6208f0a5a3be90", "region" : "regionOne", "internalURL" : "http://192.168.126.222:8774/v2/b13e2c80b02348988b6208f0a5a3be90", "id" : "7ceb05df796849f08cce231f52a99715", "publicURL" : "http://192.168.126.222:8774/v2/b13e2c80b02348988b6208f0a5a3be90" } ], "endpoints_links" : [ ], "type" : "compute", "name" : "nova" }, { "endpoints" : [ { "adminURL" : "http://192.168.126.222:9696", "region" : "regionOne", "internalURL" : "http://192.168.126.222:9696", "id" : "11640c5f96ad41a992cb0e32b9b2dc0a", "publicURL" : "http://192.168.126.222:9696" } ], "endpoints_links" : [ ], "type" : "network", "name" : "neutron" }, { "endpoints" : [ { "adminURL" : "http://192.168.126.222:8776/v2/b13e2c80b02348988b6208f0a5a3be90", "region" : "regionOne", "internalURL" : "http://192.168.126.222:8776/v2/b13e2c80b02348988b6208f0a5a3be90", "id" : "263d258a0003425083185f5fedc7cd3c", "publicURL" : "http://192.168.126.222:8776/v2/b13e2c80b02348988b6208f0a5a3be90" } ], "endpoints_links" : [ ], "type" : "volumev2", "name" : "cinderv2" }, { "endpoints" : [ { "adminURL" : "http://192.168.126.222:9292", "region" : "regionOne", "internalURL" : "http://192.168.126.222:9292", "id" : "0db69716f6ac49b8a99faa016d5dae55", "publicURL" : "http://192.168.126.222:9292" } ], "endpoints_links" : [ ], "type" : "image", "name" : "glance" }, { "endpoints" : [ { "adminURL" : "http://192.168.126.222:8777", "region" : "regionOne", "internalURL" : "http://192.168.126.222:8777", "id" : "28f1d931232e402bbfd2fb6fb4611e89", "publicURL" : "http://192.168.126.222:8777" } ], "endpoints_links" : [ ], "type" : "metering", "name" : "ceilometer" }, { "endpoints" : [ { "adminURL" : "http://192.168.126.222:8776/v1/b13e2c80b02348988b6208f0a5a3be90", "region" : "regionOne", "internalURL" : "http://192.168.126.222:8776/v1/b13e2c80b02348988b6208f0a5a3be90", "id" : "104e877deef242978c4fe1c3f740dc5b", "publicURL" : "http://192.168.126.222:8776/v1/b13e2c80b02348988b6208f0a5a3be90" } ], "endpoints_links" : [ ], "type" : "volume", "name" : "cinder" }, { "endpoints" : [ { "adminURL" : "http://192.168.126.222:8080", "region" : "regionOne", "internalURL" : "http://192.168.126.222:8080/v1/AUTH_b13e2c80b02348988b6208f0a5a3be90", "id" : "6845afa95c6c4be39ad4078416509071", "publicURL" : "http://192.168.126.222:8080/v1/AUTH_b13e2c80b02348988b6208f0a5a3be90" } ], "endpoints_links" : [ ], "type" : "object-store", "name" : "swift" }, { "endpoints" : [ { "adminURL" : "http://192.168.126.222:35357/v2.0", "region" : "regionOne", "internalURL" : "http://192.168.126.222:5000/v2.0", "id" : "0c34129c43c14e1dbf9e0bf99051e301", "publicURL" : "http://192.168.126.222:5000/v2.0" } ], "endpoints_links" : [ ], "type" : "identity", "name" : "keystone" } ], "user" : { "username" : "admin", "roles_links" : [ ], "id" : "041d11e4ee584ffc872cadc4a1d3f171", "roles" : [ { "name" : "_member_" }, { "name" : "admin" } ], "name" : "admin" }, "metadata" : { "is_admin" : 0, "roles" : [ "9fe2ff9ee4384b1894a90878d3e92bab", "71e8ab97afe44abd9e03cedb99e7d307" ] } } }
看到上面的情況可以知道驗證成功,并且上面的這些資訊
{
"endpoints" : [
{
"adminURL" :"http://192.168.126.222:9292",
"region" :"regionOne",
"internalURL" :"http://192.168.126.222:9292",
"id" :"0db69716f6ac49b8a99faa016d5dae55",
"publicURL" :"http://192.168.126.222:9292"
}
],
"endpoints_links" : [ ],
"type" : "image",
"name" : "glance"
},
告訴我們關于Glance的一些端口
九、得到image的資訊
1.向9292端口發送get請求,但是在請求的Header裡面的加上上面獲得的Token
鍵:X-Auth-Token值:就是上面的Token
2.
get請求http://192.168.126.222:9292/v2.0/images
傳回結果是:
{ "images" : [ { "status" : "active", "name" : "cirros-0.3.2-x86_64", "tags" : [ ], "container_format" : "bare", "created_at" : "2014-11-09T04:09:49Z", "disk_format" : "qcow2", "updated_at" : "2014-11-09T04:09:49Z", "visibility" : "public", "self" : "/v2/images/c425f49b-9c35-4314-a9c9-3849462f7db5", "min_disk" : 0, "protected" : false, "id" : "c425f49b-9c35-4314-a9c9-3849462f7db5", "file" : "/v2/images/c425f49b-9c35-4314-a9c9-3849462f7db5/file", "checksum" : "64d7c1cd2b6f60c92c14662941cb7913", "owner" : "b13e2c80b02348988b6208f0a5a3be90", "size" : 13167616, "min_ram" : 0, "schema" : "/v2/schemas/image" }, { "status" : "active", "name" : "xp", "tags" : [ ], "container_format" : "bare", "created_at" : "2014-11-09T03:49:06Z", "disk_format" : "qcow2", "updated_at" : "2014-11-09T03:49:47Z", "visibility" : "public", "self" : "/v2/images/1a7d4a2c-87d6-4ae3-abf9-dd7e2cb9df76", "min_disk" : 0, "protected" : false, "id" : "1a7d4a2c-87d6-4ae3-abf9-dd7e2cb9df76", "file" : "/v2/images/1a7d4a2c-87d6-4ae3-abf9-dd7e2cb9df76/file", "checksum" : "c40112f46db51dc8106fbf29585158b4", "owner" : "b13e2c80b02348988b6208f0a5a3be90", "size" : 1718026240, "min_ram" : 0, "schema" : "/v2/schemas/image" } ], "schema" : "/v2/schemas/images", "first" : "/v2/images" }
這裡查到的就是meterdata資訊
上面傳回的是一個image的list,如果想得到一個image的資訊,那麼可以get請求
http://192.168.126.222:9292/v2.0/images/後面加上該image的id,當然前面的條件也是必須的
必須有Token才能理會你的請求
{ "status" : "active", "name" : "cirros-0.3.2-x86_64", "tags" : [ ], "container_format" : "bare", "created_at" : "2014-11-09T04:09:49Z", "disk_format" : "qcow2", "updated_at" : "2014-11-09T04:09:49Z", "visibility" : "public", "self" : "/v2/images/c425f49b-9c35-4314-a9c9-3849462f7db5", "min_disk" : 0, "protected" : false, "id" : "c425f49b-9c35-4314-a9c9-3849462f7db5", "file" : "/v2/images/c425f49b-9c35-4314-a9c9-3849462f7db5/file", "checksum" : "64d7c1cd2b6f60c92c14662941cb7913", "owner" : "b13e2c80b02348988b6208f0a5a3be90", "size" : 13167616, "min_ram" : 0, "schema" : "/v2/schemas/image" }