通过HTTP迁移MinIO存储数据到华为云OBS
本文介绍如何使用迁移中心(MgC)的存储迁移工作流,实现通过HTTP协议将MinIO存储的数据迁移至华为云对象存储服务(OBS)的方法。
支持的区域
当前支持以下区域(Region):
- 华北-北京四
- 华北-乌兰察布一
- 华南-广州
- 华东-上海一
- 华东-上海二
- 华东-青岛
- 西南-贵阳一
- 中国-香港
- 亚太-新加坡
单个对象大小不能超过:500 MB x 10000 = 4.76837158203125 TB,否则可能会导致迁移失败。
准备工作
- 华为账号准备
使用MgC之前,您需要拥有一个华为账号或一个可用于访问MgC的IAM用户,并获取账号/IAM用户的访问密钥(AK/SK)。获取方法请参考准备工作。
- 创建迁移项目
在MgC控制台为本次迁移创建独立的项目,方法请参考项目管理。
- 创建目的端OBS桶
在华为云创建一个用于存放URL列表文件和接收源端数据的OBS标准存储桶,区域选择您希望迁移到的目的端区域。创建方法请参考创建桶。
如果使用IAM用户进行迁移,该IAM用户需要拥有目的端桶的读写权限。授权方法请参考对单个IAM用户授予桶的读写权限。
- 创建集群
通过集群可以创建Master节点、迁移节点和列举节点,确保存储工作流的顺利运行。创建方法请参考创建集群。
步骤一:设置MinIO文件共享并生成下载链接
以下步骤中提到的minioLink、bucket-public01、http://100.85.xxx.xx:xxxx等应替换为您实际的MinIO服务别名、存储桶名称和MinIO服务的访问地址。
- 在部署MinIO的服务器上,打开命令行界面。
- 使用mc命令设置文件共享下载,命令格式如下:
mc share download --recursive --expire=<EXPIRE-IN-HOURS> <MINIO-ALIAS>/<BUCKET-NAME>/
- --recursive:递归地为子文件夹中的文件设置共享。
- --expire=<EXPIRE-IN-HOURS>:设置共享链接的过期时间,单位为小时。最长不得超过7天(168小时)。
- <MINIO-ALIAS>:部署MinIO服务时自定义的服务别名。
- <BUCKET-NAME>:存储桶名称。
例如,您的存储桶名为bucket-public01,桶中有2个文件(dragon.png, share2.txt)和1个子文件夹(urlpath),子文件夹中有1个文件(share2.txt)。
如果您希望生成存储桶中所有文件及子文件夹中文件的共享下载链接,过期时间为12小时,输出的结果保存到test2.txt文件中。您可以执行如下命令:mc share download --recursive --expire=12h minioLink/bucket-public01/ >> test2.txt
执行命令后,将生成3个文件的共享下载链接并保存在test2.txt文件中。
- 打开生成的URL列表文件(在本文示例中为test2.txt),您将看到每个文件的共享下载链接。通过浏览器尝试访问这些链接,以验证生成的URL是否有效。
如果链接无法访问,请检查文件的访问权限是否设置为可读,并重新生成链接。
- 根据MgC的要求,编辑URL列表文件内容,使其包含文件的共享下载链接和文件名,格式为:
<SHARED-URL> <FILE-NAME>
共享下载链接和文件名之间用制表符隔开,子文件夹的文件名需要包含子文件夹名称。关于URL列表文件的更多要求和限制,请查看存储迁移的约束与限制有哪些?。
例如:http://100.85.xxx.xx:xxxx/bucket-public01/dragon.png dragon.png http://100.85.xxx.xx:xxxx/bucket-public01/share2.txt share2.txt http://100.85..xxx.xx:xxxx/bucket-public01/urlpath/share2.txt urlpath/share2.txt
- 按要求编辑完所有URL链接并检查无误后,保存该URL列表文件。
步骤二:上传URL列表文件至OBS桶
- 登录OBS管理控制台,在左侧导航栏选择“桶列表”。
- 在桶列表中,单击创建的目的端OBS桶,进入“对象”页面。
- 单击“新建文件夹”,在“文件夹名称”中输入自定义名称(例如:minioUrl),单击“确定”。
- 单击上一步创建的文件夹名称,进入该文件夹,单击“上传对象”,系统弹出“上传对象”对话框。
- 通过以下任意方式,将待迁移对象的URL列表文件(在本文示例中为test2.txt)上传至文件夹。
- 拖拽URL列表文件至“上传对象”区域框内,单击“上传”。
- 单击“上传对象”区域框内的“添加文件”,选择URL列表文件进行添加,单击“上传”。
步骤三:创建存储迁移工作流
- 登录迁移中心管理控制台。
- 在左侧导航栏选择“实施>迁移工作流”,进入迁移工作流页面。在页面左上角的当前项目下拉列表中选择在完成准备工作时所创建的迁移项目。
- 单击页面右上角的“创建迁移工作流”按钮,进入选择模板页面。
- 选择存储迁移标准模板,单击“开始配置”按钮,进行工作流配置。
- 根据表1,配置基础信息参数。
- 根据表2、表3,配置源端、目的端信息。
表2 源端信息参数说明 参数
说明
数据站点类型
选择“HTTP/HTTPS数据源”。
列表路径
填写在步骤二存放URL列表文件的文件夹名称(在本文示例中为minioUrl/),注意要在文件夹名称后面加上“/”。
表3 目的端信息参数说明 参数
说明
数据站点类型
选择“华为云OBS”.
AK
输入华为云迁移账号的访问密钥和私有密钥。该账号需要拥有目的端桶的读写权限。
SK
桶
选择创建的目的端OBS桶。
对象存储终端地址
输入目的端桶所在区域的终端节点(Endpoint)信息。
例如:目的端桶所在区域为华北-北京四,则输入“obs.cn-north-4.myhuaweicloud.com”。
说明:可在OBS桶的基本信息查看。
指定前缀
可选参数。将对象迁移到指定前缀,例如:源端对象路径为/A/B/C.txt,目的端前缀配置为/D,迁移后目的端对象路径为/D/A/B/C.txt。详细介绍请参考
设置“保存到指定前缀”参数中的功能介绍。
- 根据表4,进行迁移配置。
表4 迁移配置参数说明 参数
子参数
说明
迁移任务类型
列表迁移
通过列表文件过滤迁移,只迁移列表文件中的对象。
并发子任务数
-
用户自定义。配置的数目不能超过可用迁移节点数x10。例如:可用的迁移节点数为2,则最大子任务数配置数目需要≤20。
同名覆盖方式
不覆盖
对于源端和目的端存在的同名文件,跳过源端文件,保留目的端文件。
警告:- 首次迁移时选择“不覆盖”,不会迁移源端中父文件夹的属性到目的端,可能会造成文件夹属性不完整。为规避这一风险,首次迁移时请谨慎使用“不覆盖”策略。
- 选择“不覆盖”策略进行数据迁移时,如果迁移任务因错误中断后重启或从暂停状态恢复,可能会造成部分数据未完全迁移,而任务显示成功的现象,影响数据的完整性。为规避这一风险,请谨慎使用“不覆盖”策略。
直接覆盖
对于源端和目的端存在的同名文件,源端文件直接覆盖目的端文件。
条件覆盖
- 对于文件迁移:源端和目的端存在的同名文件,保留最后修改时间较新的文件;如果最后修改时间相同,比较文件大小,大小不同则源端覆盖目的端文件;如果最后修改时间和大小都相同,则跳过;
- 对于文件夹迁移:当文件迁移完成后再比对文件夹大写、时间和权限,如果文件夹大小不同/时间不相同/权限不相同,则源端覆盖目的端文件夹;
说明:
对于空文件夹,覆盖策略与文件相同。
清理集群
-
选择工作流是否创建清理集群步骤。
- 勾选,迁移工作流将自动创建清理集群步骤,您还可以继续配置是否删除NAT网关、安全组、VPCEP服务等。
- 不勾选,迁移工作流不创建清理集群步骤。
- (可选)根据表5,配置高级选项。
表5 高级选项参数说明 参数
说明
目的端存储类型
选择迁移到华为云OBS后,对象的存储类型。存储策略说明请参见存储类型介绍。
KMS加密
- 不勾选,迁移后对象状态与源端保持一致。
- 勾选,所有对象在迁移到OBS桶后都将被加密存储。
说明:- 使用KMS服务端加密可能会降低迁移速率10%左右。
- 目的端桶所在区域支持KMS加密时,此参数才可用。
过滤配置
通过黑、白名单以及时间段过滤迁移文件。过滤策略详细介绍请参见过滤策略说明。
SMN消息发送配置
选择是否使用SMN消息通知功能,该功能可以通知您迁移任务的结果。
- 不勾选,不接收SMN消息。
- 勾选,接收SMN消息。选择SMN主题,会向该主题的订阅者发送消息;选择消息发送语言;选择发送消息的触发条件,支持同时勾选。
流量控制
设置迁移任务在指定时段的最大流量带宽。
- 不勾选,不进行流量控制。
- 勾选,进行流量控制。分别设置“开始时间”、“结束时间”和“限速”数值。
定时迁移
设置迁移任务在指定时间内迁移。
- 工作流配置完成后,单击“下一步:确认并创建”按钮,进入确认并创建页面。
- 确认配置信息无误后,单击“确认创建工作流”,弹出启动工作流窗口,单击“确认”按钮,立即运行工作流。
- 在工作流列表,单击工作流名称,进入工作流详情页面,可以查看该迁移工作流的配置信息和资源迁移进度。