天天看點

2.Glance詳解

一、什麼是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的架構

2.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裡面的内容是

{
  "auth" : {
    "tenantName" : "admin",
    "passwordCredentials" : {
      "username" : "admin",
      "password" : "ADMIN_PASS"
    }
  }
}
           
2.得到響應
{
  "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"
	}

           

繼續閱讀