2.5. 了解镜像的位置

虽然镜像可以存在于多个站点,但给定镜像只有一个 UUID。镜像元数据包含每个副本的位置。例如,两个边缘站点上存在的镜像作为具有三个位置的单一 UUID 公开:中央站点加上两个边缘站点。

流程

  1. 显示镜像副本存在的站点:

    $ glance image-show ID | grep "stores"
    
    | stores |  default_backend,dcn1,dcn2

    在示例中,镜像存在于中央站点、default_backend 和两个边缘站点 dcn1dcn2 上。

  2. 另外,您可以使用 --include-stores 选项运行 glance image-list 命令,以查看镜像存在的站点:

    $ glance image-list --include-stores
    
    | ID                                   | Name    | Stores
    
    | 2bd882e7-1da0-4078-97fe-f1bb81f61b00 | cirros | default_backend,dcn1,dcn2
  3. 列出镜像位置属性以显示每个位置的详情:

    $ openstack image show ID -c properties
    
    | properties |
    
    (--- cut ---)
    locations='[{'url': 'rbd://79b70c32-df46-4741-93c0-8118ae2ae284/images/2bd882e7-1da0-4078-97fe-f1bb81f61b00/snap', 'metadata': {'store': 'default_backend'}}, {'url': 'rbd://63df2767-8ddb-4e06-8186-8c155334f487/images/2bd882e7-1da0-4078-97fe-f1bb81f61b00/snap', 'metadata': {'store': 'dcn1'}}, {'url': 'rbd://1b324138-2ef9-4ef9-bd9e-aa7e6d6ead78/images/2bd882e7-1da0-4078-97fe-f1bb81f61b00/snap', 'metadata': {'store': 'dcn2'}}]',
    (--- cut --)

    镜像属性显示各个镜像位置的不同 Ceph RBD URI。

    在示例中,中央镜像位置 URI 为:

    rbd://79b70c32-df46-4741-93c0-8118ae2ae284/images/2bd882e7-1da0-4078-97fe-f1bb81f61b00/snap', 'metadata': {'store': 'default_backend'}}

    URI 由以下数据组成:

    • 79b70c32-df46-4741-93c0-8118ae2ae284 对应于中央 Ceph FSID。每个 Ceph 集群都有唯一的 FSID。
    • 所有站点的默认值为 images,对应于存储镜像的 Ceph 池。
    • 2bd882e7-1da0-4078-97fe-f1bb81f61b00 与镜像 UUID 对应。给定镜像的 UUID 相同,无论其位置如何。
    • 元数据显示此位置映射到的 Glance 存储。在本例中,它映射到 default_backend,这是中央 hub 站点。