5.3. 将镜像导入到多个存储
使用可互操作的镜像导入工作流,将镜像数据导入到多个 Red Hat Ceph Storage 集群。您可以将镜像导入到本地文件系统上或通过 Web 服务器可用的镜像服务(glance)。
如果从 web 服务器导入镜像,则可以一次将镜像导入到多个存储中。如果 web 服务器上没有镜像,您可以将镜像从本地文件系统导入到中央存储中,然后将其复制到其他存储中。如需更多信息,请参阅 将现有镜像复制到多个存储。
使用镜像服务命令行客户端进行镜像管理。
始终在中央站点上存储镜像副本,即使中央位置上没有使用该镜像的实例。有关将镜像导入到镜像服务的更多信息 ,请参阅部署分布式计算节点架构指南。
5.3.1. 管理镜像导入失败
您可以使用 --allow-failure
参数管理镜像导入操作的失败:
-
如果
--allow-failure
参数的值为true
,则第一次存储成功导入数据后镜像状态将变为活动状态
。这是默认设置。您可以使用os_glance_failed_import
镜像属性查看无法导入镜像数据的存储列表。 -
如果将
--allow-failure
参数的值设置为false
,则镜像状态仅在所有指定存储成功导入数据后变为活动状态
。导入镜像数据的任何存储失败会导致镜像状态失败
。镜像没有导入到任何指定存储中。
5.3.2. 将镜像数据导入到多个存储
由于 --allow-failure
参数的默认设置是 true
,因此如果某些存储可以接受,则不需要在命令中包含该参数,无法导入镜像数据。
此流程不需要所有存储才能成功导入镜像数据。
流程
将镜像数据导入多个指定的存储:
$ glance image-create-via-import \ --container-format bare \ --name <image-name> \ --import-method web-download \ --uri <uri> \ --stores <store-1>,<store-2>,<store-3>
-
将
<image-name
> 替换为您要导入的镜像的名称。 - 将 <uri> 替换为镜像的 URI。
-
将
<store
-1> ,
<store-2> , 和 <store-3
> 替换为您要导入镜像数据的存储名称。 -
或者,将
--stores
替换为--all-stores true
,以将镜像上传到所有存储。
-
将
glance image-create-via-import
命令会自动将 QCOW2 镜像转换为 RAW 格式,仅适用于 web-download
方法。glance-direct
方法可用,但仅适用于带有配置的共享文件系统的部署。
5.3.3. 在不失败的情况下将镜像数据导入到多个存储中
此流程要求所有存储成功导入镜像数据。
流程
将镜像数据导入多个指定的存储:
$ glance image-create-via-import \ --container-format bare \ --name <image-name> \ --import-method web-download \ --uri <uri> \ --stores <store-1>,<store-2>,<store-3>
-
将
<image-name
> 替换为您要导入的镜像的名称。 -
将
<uri
> 替换为镜像的 URI。 -
将
<store
-1> ,
<store-2> , 和 <store-3
> 替换为您要复制镜像数据的存储名称。 或者,将
--stores
替换为--all-stores true
,以将镜像上传到所有存储。注意将
--allow-failure
参数设置为false
时,镜像服务(glance)不会忽略无法导入镜像数据的存储。您可以使用镜像属性os_glance_failed_import
来查看失败的存储列表。如需更多信息,请参阅 第 5.4 节 “检查镜像导入操作的进度”。
-
将
验证镜像数据是否已添加到特定存储中:
$ glance image-show <image-id> | grep stores
将
<image-id
> 替换为原始现有镜像的 ID。输出显示以逗号分隔的存储列表。
5.3.4. 将镜像数据导入到单个存储中
您可以使用镜像服务(glance)将镜像数据导入到单个存储中。
流程
将镜像数据导入到单个存储中:
$ glance image-create-via-import \ --container-format bare \ --name <image-name> \ --import-method web-download \ --uri <uri> \ --store <store>
-
将
<image-name
> 替换为您要导入的镜像的名称。 -
将
<uri
> 替换为镜像的 URI。 将
&
lt;store> 替换为您要复制镜像数据的存储名称。注意如果您没有在命令中包括
--stores
、--all-stores
或--store
的选项,则镜像服务会在中央存储中创建镜像。
-
将
验证镜像数据是否已添加到特定的存储中:
$ glance image-show <image-id> | grep stores
将
<image-id
> 替换为原始现有镜像的 ID。输出显示以逗号分隔的存储列表。