附录 A. 部署迁移选项


本节包括 DCN 存储的相关主题验证,以及迁移或更改架构。

A.1. 验证边缘存储

通过测试 glance 多存储和实例创建,确保中央站点和边缘站点的部署正常工作。

您可以将镜像导入到 Glance 中,在本地文件系统上可用或 web 服务器上可用。

注意

始终在中央站点中保存镜像副本,即使中央位置上没有使用该镜像的实例。

使用 glance store-info 命令检查通过镜像服务提供的存储。在以下示例中,提供三个存储: central、dcn1 和 dcn2。它们分别对应于中央位置和边缘站点的 glance 存储:

  $ glance stores-info
  +----------+----------------------------------------------------------------------------------+
  | Property | Value                                                                            |
  +----------+----------------------------------------------------------------------------------+
  | stores   | [{"default": "true", "id": "central", "description": "central rbd glance         |
  |          | store"}, {"id": "dcn0", "description": "dcn0 rbd glance store"},                 |
  |          | {"id": "dcn1", "description": "dcn1 rbd glance store"}]                          |
  +----------+----------------------------------------------------------------------------------+

A.1.1. 从本地文件导入

您必须首先将镜像上传到中央位置的存储中,然后将镜像复制到远程站点。

  1. 确保您的镜像文件采用 RAW 格式。如果镜像不是原始格式,则必须在将其导入到镜像服务前转换镜像:

    file cirros-0.5.1-x86_64-disk.img
    cirros-0.5.1-x86_64-disk.img: QEMU QCOW2 Image (v3), 117440512 bytes
    
    qemu-img convert -f qcow2 -O raw cirros-0.5.1-x86_64-disk.img cirros-0.5.1-x86_64-disk.raw
    Import the image into the default back end at the central site:
    glance image-create \
    --disk-format raw --container-format bare \
    --name cirros --file cirros-0.5.1-x86_64-disk.raw \
    --store central

A.1.2. 从 Web 服务器导入镜像

如果镜像托管在 web 服务器上,您可以使用 GlanceImageImportPlugins 参数将镜像上传到多个存储。

此流程假设默认镜像转换插件在 glance 中已启用。此功能自动将 QCOW2 文件格式转换为 RAW 镜像,这是 Ceph RBD 的最佳选择。您可以通过运行 glance image-show ID | grep disk_format 来确认 glance 镜像采用 RAW 格式。

流程

  1. 使用 glance 命令的 image-create-via-import 参数从 web 服务器导入镜像。使用 --stores 参数。或者,您可以将 --- stores 替换为--all-stores True,将镜像上传到所有存储。

    # glance image-create-via-import \
    --disk-format qcow2 \
    --container-format bare \
    --name cirros \
    --uri http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img \
    --import-method web-download \
    --stores central,dcn1

    在本例中,qcow2 cirros 镜像从官方 Cirros 站点下载,由 glance 转换为 RAW,并导入到由 --stores 参数指定的中央站点和边缘站点 1 中。

A.1.3. 将镜像复制到新站点

您可以将现有镜像从中央位置复制到边缘站点,这可让您在新创建的位置访问之前创建的镜像。

  1. 将 glance 镜像的 UUID 用于复制操作:

    ID=$(openstack image show cirros -c id -f value)
    
    glance image-import $ID --stores dcn0,dcn1 --import-method copy-image
    注意

    在本例中,-- stores 选项指定 cirros 镜像将从中央站点复制到边缘站点 dcn1 和 dcn2。或者,您可以使用 --all-stores True 选项,它将镜像上传到当前没有镜像的所有存储中。

  2. 确认镜像的副本位于每个存储中。请注意,storage 键(即属性映射中的最后一个项目)被设置为 central,dcn0,dcn1

      $ openstack image show $ID | grep properties
      | properties       | direct_url=rbd://d25504ce-459f-432d-b6fa-79854d786f2b/images/8083c7e7-32d8-4f7a-b1da-0ed7884f1076/snap, locations=[{u'url: u'rbd://d25504ce-459f-432d-b6fa-79854d786f2b/images/8083c7e7-32d8-4f7a-b1da-0ed7884f1076/snap', u'metadata': {u'store': u'central'}}, {u'url': u'rbd://0c10d6b5-a455-4c4d-bd53-8f2b9357c3c7/images/8083c7e7-32d8-4f7a-b1da-0ed7884f1076/snap', u'metadata': {u'store': u'dcn0'}}, {u'url': u'rbd://8649d6c3-dcb3-4aae-8c19-8c2fe5a853ac/images/8083c7e7-32d8-4f7a-b1da-0ed7884f1076/snap', u'metadata': {u'store': u'dcn1'}}], os_glance_failed_import=', os_glance_importing_to_stores=', os_hash_algo='sha512, os_hash_value=b795f047a1b10ba0b7c95b43b2a481a59289dc4cf2e49845e60b194a911819d3ada03767bbba4143b44c93fd7f66c96c5a621e28dff51d1196dae64974ce240e, os_hidden=False, stores=central,dcn0,dcn1 |
注意

始终将镜像副本存储在中央站点中,即使该站点上没有虚拟机使用它。

您可以使用边缘站点中的镜像来创建持久根卷。

流程

  1. 识别要作为卷创建的镜像的 ID,并将该 ID 传递给 openstack volume create 命令:

    IMG_ID=$(openstack image show cirros -c id -f value)
    openstack volume create --size 8 --availability-zone dcn0 pet-volume-dcn0 --image $IMG_ID
  2. 识别新创建的卷的卷 ID,并将其传递给 openstack server create 命令:

    VOL_ID=$(openstack volume show -f value -c id pet-volume-dcn0)
    openstack server create --flavor tiny --key-name dcn0-key --network dcn0-network --security-group basic --availability-zone dcn0 --volume $VOL_ID pet-server-dcn0
  3. 您可以通过在 dcn0 边缘站点的 ceph-mon 容器中运行 rbd 命令来列出卷池,来验证卷是否基于镜像。

    $ sudo podman exec ceph-mon-$HOSTNAME rbd --cluster dcn0 -p volumes ls -l
    NAME                                      SIZE  PARENT                                           FMT PROT LOCK
    volume-28c6fc32-047b-4306-ad2d-de2be02716b7 8 GiB images/8083c7e7-32d8-4f7a-b1da-0ed7884f1076@snap   2      excl
    $
  4. 确认您可以为实例的 root 卷创建 cinder 快照。确保服务器已停止静止数据,以创建干净的快照。使用 --force 选项,因为当实例关闭时,卷状态会一直 处于使用状态

    openstack server stop pet-server-dcn0
    openstack volume snapshot create pet-volume-dcn0-snap --volume $VOL_ID --force
    openstack server start pet-server-dcn0
  5. 列出 dcn0 Ceph 集群上 volumes 池的内容,以显示新创建的快照。

    $ sudo podman exec ceph-mon-$HOSTNAME rbd --cluster dcn0 -p volumes ls -l
    NAME                                                                                      SIZE  PARENT                                           FMT PROT LOCK
    volume-28c6fc32-047b-4306-ad2d-de2be02716b7                                               8 GiB images/8083c7e7-32d8-4f7a-b1da-0ed7884f1076@snap   2      excl
    volume-28c6fc32-047b-4306-ad2d-de2be02716b7@snapshot-a1ca8602-6819-45b4-a228-b4cd3e5adf60 8 GiB images/8083c7e7-32d8-4f7a-b1da-0ed7884f1076@snap   2 yes

A.1.5. 确认可以在站点间创建并复制镜像快照

重新快照,并确认您可以使用 glance image-import 将其复制到中央位置。

流程

  1. 验证您可以在 dcn0 站点创建一个新镜像。确保服务器停止静默数据以创建干净的快照:

    NOVA_ID=$(openstack server show pet-server-dcn0 -f value -c id)
    openstack server stop $NOVA_ID
    openstack server image create --name cirros-snapshot $NOVA_ID
    openstack server start $NOVA_ID
  2. 将镜像从 dcn0 边缘站点复制回 hub 位置,这是 glance 的默认后端:

    IMAGE_ID=$(openstack image show cirros-snapshot -f value -c id)
    glance image-import $IMAGE_ID --stores central --import-method copy-image

有关 glance 多存储操作的更多信息,请参阅 具有多个存储的镜像服务

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部