4.3. 将镜像导入到多个存储
使用可互操作的镜像导入工作流,将镜像数据导入到多个 Ceph Storage 集群中。您可以将镜像导入到本地文件系统上或通过 Web 服务器提供的镜像服务(glance)中。
如果您从 web 服务器导入镜像,可以一次性将镜像导入到多个存储中。如果镜像在 web 服务器上不可用,您可以将本地文件系统中的镜像导入到中央存储中,然后将其复制到其他存储中。如需更多信息,请参阅 将现有镜像复制到多个存储。
使用镜像服务命令行客户端进行镜像管理。
始终将镜像副本存储在中央站点上,即使没有实例在中央位置。有关将镜像导入到镜像服务的更多信息,请参阅 分布式计算节点和存储部署指南。
4.3.1. 管理镜像导入失败
您可以使用-- allow-failure 参数管理镜像
导入操作的故障:
-
如果
--allow-failure
参数的值变为true
,则镜像状态会在第一次存储成功导入数据后变为active
。这是默认设置。您可以使用os_glance_failed_import
镜像属性查看无法导入镜像数据的存储列表。 -
如果将
--allow-failure 参数的值设置为
false
,则镜像状态只有在所有指定的存储成功导入数据后才会变为active
。导入镜像数据的任何存储失败会导致镜像状态失败
。镜像不会导入到任何指定的存储中。
4.3.2. 将镜像数据导入到多个存储中
由于 -allow-failure
参数的默认设置是 true
,因此如果某些存储无法导入镜像数据,则不需要在命令中包含该参数。
此流程不需要所有存储成功导入镜像数据。
流程
将镜像数据导入到多个指定的存储:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow glance image-create-via-import \ --container-format bare \ --name IMAGE-NAME \ --import-method web-download \ --uri URI \ --stores STORE1,STORE2,STORE3
$ glance image-create-via-import \ --container-format bare \ --name IMAGE-NAME \ --import-method web-download \ --uri URI \ --stores STORE1,STORE2,STORE3
- 将 IMAGE-NAME 替换为您要导入的镜像的名称。
- 使用镜像的 URI 替换 URI。
- 将 STORE1、 STORE2 和 STORE3 替换为您要导入镜像数据的存储的名称。
-
或者,将---
stores
替换为--all-stores true
,以将镜像上传到所有存储。
glance image-create-via-import
命令自动将 QCOW2 镜像转换为 RAW 格式,仅适用于 web-download
方法。glance-direct
方法可用,但仅适用于配置了共享文件系统的部署。
4.3.3. 在没有失败的情况下将镜像数据导入到多个存储中
此流程要求所有存储成功导入镜像数据。
流程
将镜像数据导入到多个指定的存储:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow glance image-create-via-import \ --container-format bare \ --name IMAGE-NAME \ --import-method web-download \ --uri URI \ --stores STORE1,STORE2
$ glance image-create-via-import \ --container-format bare \ --name IMAGE-NAME \ --import-method web-download \ --uri URI \ --stores STORE1,STORE2
- 将 IMAGE-NAME 替换为您要导入的镜像的名称。
- 使用镜像的 URI 替换 URI。
- 将 STORE1、 STORE2 和 STORE3 替换为您要复制镜像数据的存储名称。
或者,将---
stores
替换为--all-stores true
,以将镜像上传到所有存储。注意将
--allow-failure
参数设置为false
时,镜像服务不忽略导入镜像数据的存储。您可以使用镜像属性os_glance_failed_import
查看失败存储的列表。如需更多信息,请参阅 检查镜像导入操作的进度。
验证镜像数据是否已添加到特定存储中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow glance image-show IMAGE-ID | grep stores
$ glance image-show IMAGE-ID | grep stores
将 IMAGE-ID 替换为原始现有镜像的 ID。
输出显示以逗号分隔的存储列表。
4.3.4. 将镜像数据导入到单个存储
您可以将镜像数据导入到单个存储中。
流程
将镜像数据导入到单个存储中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow glance image-create-via-import \ --container-format bare \ --name IMAGE-NAME \ --import-method web-download \ --uri URI \ --store STORE
$ glance image-create-via-import \ --container-format bare \ --name IMAGE-NAME \ --import-method web-download \ --uri URI \ --store STORE
- 将 IMAGE-NAME 替换为您要导入的镜像的名称。
- 使用镜像的 URI 替换 URI。
将 STORE 替换为您要复制镜像数据的存储的名称。
注意如果您没有在命令中包含--
stores ,
---all-stores
, 或--store
选项,则镜像服务会在中央存储中创建镜像。
验证镜像数据是否已添加到特定存储中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow glance image-show IMAGE-ID | grep stores
$ glance image-show IMAGE-ID | grep stores
将 IMAGE-ID 替换为原始现有镜像的 ID。
输出显示以逗号分隔的存储列表。
4.3.5. 检查镜像导入操作的进度
可互操作的镜像导入工作流会按顺序将镜像数据导入到存储中。镜像的大小、存储数量以及中央站点和边缘站点之间的网络速度会影响镜像导入操作完成所需的时间。
您可以通过查看两个镜像属性来跟踪镜像导入的过程,该属性出现在镜像导入操作期间发送的通知中:
-
os_glance_importing_to_stores
属性列出了没有导入镜像数据的存储。在导入开始时,所有请求的存储都显示在列表中。每次存储成功导入镜像数据时,镜像服务都会从列表中删除存储。 -
os_glance_failed_import
属性列出了无法导入镜像数据的存储。此列表在镜像导入操作的开头为空。
在以下流程中,环境有三个 Ceph Storage 集群: 中央存储
和边缘存储 dcn0
和 dcn1
。
流程
验证镜像数据是否已添加到特定存储中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow glance image-show IMAGE-ID
$ glance image-show IMAGE-ID
将 IMAGE-ID 替换为原始现有镜像的 ID。
输出显示以逗号分隔的存储列表,类似以下示例片断:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow | os_glance_failed_import | | os_glance_importing_to_stores | central,dcn0,dcn1 | status | importing
| os_glance_failed_import | | os_glance_importing_to_stores | central,dcn0,dcn1 | status | importing
监控镜像导入操作的状态。当您使用
watch
命令之前,命令输出每两秒刷新一次。Copy to Clipboard Copied! Toggle word wrap Toggle overflow watch glance image-show IMAGE-ID
$ watch glance image-show IMAGE-ID
将 IMAGE-ID 替换为原始现有镜像的 ID。
在镜像导入操作进行时,操作的状态会改变:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow | os_glance_failed_import | | os_glance_importing_to_stores | dcn0,dcn1 | status | importing
| os_glance_failed_import | | os_glance_importing_to_stores | dcn0,dcn1 | status | importing
显示镜像导入失败,如下例所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow | os_glance_failed_import | dcn0 | os_glance_importing_to_stores | dcn1 | status | importing
| os_glance_failed_import | dcn0 | os_glance_importing_to_stores | dcn1 | status | importing
操作完成后,状态会变为 active :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow | os_glance_failed_import | dcn0 | os_glance_importing_to_stores | | status | active
| os_glance_failed_import | dcn0 | os_glance_importing_to_stores | | status | active