搜索

附录 A. 部署迁移选项

download PDF

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

A.1. 验证边缘存储

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

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

注意

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

先决条件

  1. 使用 glance stores-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 格式。如果镜像不采用 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 参数。

    # 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。

或者,您可以将 --stores 替换为 --all-stores True,以将镜像上传到所有存储。

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. 确认镜像的副本位于每个存储中。请注意,store 键(属性映射中的最后一个项)被设置为 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 |
注意

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

A.1.4. 确认边缘站点中的实例可以使用基于镜像的卷引导

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

流程

  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. 确认您可以创建实例的根卷的 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. 确认可以在站点之间创建和复制镜像快照

  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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.