4.6. 了解镜像的位置

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

注意

使用 Image 服务(glance)命令行客户端,而不是 OpenStack 命令行客户端进行镜像管理。但是,使用 openstack image show 命令列出镜像位置属性。glance image-show 命令输出不包含位置。

流程

  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 --)

    image 属性显示各个镜像位置的不同 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 站点。