华为云用户手册

  • 解决方案 方法一: 在目标库执行对应SQL语句,将对应列的字符排序规则修改为utf8mb4_0900_ai_ci。例如,将表test_collation_1 的c1列的字符排序规则修改为utf8mb4_0900_ai_ci: ALTER TABLE test_collation_1 MODIFY COLUMN c1 VARCHAR(16) COLLATE utf8mb4_0900_ai_ci; 修改完成后,在任务列表中,单击任务对应操作列的“续传”,重新提交任务。 方法二: 修改源库表结构,将表中带有collate utf8mb4_general_ci 的列都去掉。 修改完成后,在任务列表中,单击任务对应操作列的“重置”,重新开始任务;或重新创建DRS任务进行迁移。 方法三: 在目标库执行对应SQL语句,将目标库字符排序规则修改为utf8mb4_0900_ai_ci SET GLOBAL default_collation_for_utf8mb4='utf8mb4_general_ci'; 修改完成后,在任务列表中,单击任务对应操作列的“重置”,重新开始任务;或重新创建DRS任务进行迁移。
  • 解决方案 修改位于$ORACLE_HOME/network/admin目录的sqlnet.ora文件,允许DRS任务IP访问。 如果使用白名单,则TCP.INVITED_NODES配置项中需要包含DRS的任务IP。 如果使用黑名单,则TCP.EXCLUDED_NODES中不能包含DRS的任务IP。 查看源数据库信息(例如IP,端口,或者service name/sid)是否发生修改,如果源库信息发生改变,可选择以下操作: 恢复修改的源数据库信息,DRS任务会自动重试继续同步任务。 重新创建任务进行同步。 执行以下命令查看源数据库连接数,连接数已经达到上限。 查看当前连接数: select count(*) from v$process; 查看最大连接数: select value from v$parameter where name ='processes'; 如果源数据库连接已达到上限,执行以下命令修改数据库允许的最大连接数: alter system set processes = 300 scope = spfile; 然后重启数据库生效。
  • 场景描述 Oracle为源全量或增量同步期间DRS任务报错,同步日志界面提示:service LOG MANAGER failed, cause by: Unable to connect to DBMS: url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=*.*.*.*)(PORT=1521))(CONNECT_DATA=*)) user=*, Caused by: IO Error: Got minus one from a read call.
  • 场景描述 全量迁移或同步期间,日志界面提示信息:service DATAMOVE failed, cause by: retry structures failed events=the fail structures are [type=constraint_data, index=0, schema_name=DB, object_name=TABLE]reason:[Too many keys specified; max 64 keys allowed]。
  • 场景描述 全量或增量同步期间DRS任务报错,同步日志界面提示:retry structures failed events=the fail structures are [type=index, index=***, schema_name=***, object_name=***]reason:[ERROR: memory required is *** MB, maintenance_work_mem is *** MB]。
  • 处理建议 修改源数据库或者目标数据库的collation_server参数,使其保持一致。 如果为自建的MySQL数据库,可通过命令行方式修改。 通过以下命令查看数据库的字符集。 SHOW VARIABLES LIKE "collation_server"; 使用命令修改服务器的字符集。 SET collation_server='utf8_unicode_ci'; 如果为RDS for MySQ L实例 ,可通过修改数据库collation_server参数实现,详情请参考修改实例参数章节。 更多其他类型数据库修改collation_server的方法,可参考对应数据库的使用说明。
  • PostgreSQL为源同步 表1 源库对象关联关系检查 预检查项 源库对象关联关系检查。 描述 源库对象关联关系检查,若不符合迁移要求,则导致迁移失败。 不通过提示及处理建议 不通过原因:已选择的对象中存在含外键的表,且未选择迁移该外键依赖的表。 处理建议:请在对象选择页面选择依赖的对象。 不通过原因:已选择的对象中存在视图,且未选择迁移该视图依赖的表或视图。 处理建议:请在对象选择页面选择依赖的对象。 不通过原因:已选择的对象中存在继承表,且未选择迁移该继承表依赖的表。 处理建议:请在对象选择页面选择依赖的对象。
  • Oracle为源同步场景 表1 源库是否正确开启补充日志 预检查项 源库是否正确开启补充日志。 描述 Oracle源库未开启库级补充日志或级别不满足要求,会导致同步失败。 不通过提示及处理建议 不通过原因:源库补充日志级别告警,源库补充日志设定为库的主键和唯一键级别,可能在UPDATE目标库不存在的数据时丢失部分字段数据。 处理建议:建议设置库或表补充日志为ALL级别。 修改库补充日志为ALL级别语句参考: alter database add supplemental log data (all) columns; 查看库补充日志为ALL级别是否打开: select supplemental_log_data_all as allLog from v$database;
  • 文件系统性能数据 SFS Turbo文件系统的性能主要有IOPS和吞吐量等指标,具体各指标数据参见表1。 表1 性能数据表 参数 HPC型 20MB/s/TiB 40MB/s/TiB 125MB/s/TiB 250MB/s/TiB 500MB/s/TiB 1000MB/s/TiB 最大容量 1PB 1PB 1PB 1PB 1PB 1PB 最大IOPS 25万 25万 100万 100万 400万 400万 最大吞吐量 8GB/s 8GB/s 20GB/s 20GB/s 80GB/s 80GB/s IOPS性能计算公式 IOPS=min(250000,600×容量) 其中,容量单位为TB IOPS=min(250000,1200×容量) 其中,容量单位为TB IOPS=min(1000000,6000×容量) 其中,容量单位为TB IOPS=min(1000000,12500×容量) 其中,容量单位为TB IOPS=min(4000000,25000×容量) 其中,容量单位为TB IOPS=min(4000000,50000×容量) 其中,容量单位为TB
  • 通用测试配置样例 以下提供的预估值为单台弹性 云服务器ECS 测试的结果。建议使用多台E CS 测试,以达到弹性文件服务的性能指标。 本文以SFS Turbo性能型,云服务器规格如下为例说明。 规格:通用计算增强型 | c3.xlarge.4 | 4vCPUs | 16GB 镜像:CentOS 7.564bit fio命令: fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/nfs/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=rw --rwmixwrite=30 --fallocate=none 其中,“/mnt/nfs/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/nfs”目录下的“test_fio”文件,请根据实际填写。 fio结果: fio命令: fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/nfs/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=rw --rwmixwrite=70 --fallocate=none 其中,“/mnt/nfs/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/nfs”目录下的“test_fio”文件,请根据实际填写。 fio结果: 顺序读IOPS fio命令: fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=read --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10 其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。 fio结果: 随机读IOPS fio命令: fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=randread --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10 其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。 fio结果: 顺序写IOPS fio命令: fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=write --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10 其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。 fio结果: 随机写IOPS fio命令: fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=randwrite --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10 其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。 fio结果: 顺序读带宽 fio命令: fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs-turbo/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=read --fallocate=none 其中,“/mnt/sfs-turbo/test_fio”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfs-turbo”目录下的“test_fio”文件,请根据实际填写。 fio结果: 随机读带宽 fio命令: fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=randread --bs=1M --size=10G --iodepth=128 --runtime=120 --numjobs=1 其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。 fio结果: 顺序写带宽 fio命令: fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=write --bs=1M --size=10G --iodepth=128 --runtime=120 --numjobs=1 其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。 fio结果: 随机写带宽 fio命令: fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=randwrite --bs=1M --size=10G --iodepth=128 --runtime=120 --numjobs=1 其中,“/mnt/sfs-turbo/”为待测试的目标文件的挂载路径,需具体到文件名,请根据实际填写。 fio结果:
  • 配置ModelArts网络关联SFS Turbo ModelArts网络关联SFS Turbo后,可直接在ModelArts的Notebook开发及训练环境中挂载SFS Turbo共享文件系统,并访问其中的数据。 登录ModelArts管理控制台,创建网络并打通创建资源中创建的创建虚拟私有云和子网,详细步骤参见ModelArts网络。 单击1中创建生成的资源池“网络”所在行的“更多”,选择“关联sfsturbo”。 在“关联sfsturbo”弹窗中,选择创建资源中创建的SFS Turbo HPC型文件系统。 选择完成后,单击“确定”创建关联。 使用过程中请不要解除关联,解除关联会导致ModelArts资源池无法访问SFS Turbo文件系统中的数据。 一个SFS Turbo文件系统最多可关联1个网络。
  • 操作步骤 登录已创建好的Linux系统云服务器,用于同时访问本地NAS存储和SFS Turbo文件系统。 输入以下挂载命令,用于访问本地NAS存储。 mount -t nfs -o vers=3,timeo=600,noresvport,nolock 本地NAS挂载地址 /mnt/src 输入以下挂载命令,用于访问SFS Turbo文件系统。 mount -t nfs -o vers=3,timeo=600,noresvport,nolock 文件系统挂载地址 /mnt/dst 在Linux云服务器中执行以下命令安装rsync工具。 yum install rsync 图1 安装rsync工具 源端服务器和目的端服务器均需要安装rsync工具,否则将会报错。 安装完成后,可以输入以下命令查询rsync工具的安装和版本情况。 rsync -version 图2 查看工具安装情况 执行以下命令,将源端服务器/mnt/src目录中的数据全量同步迁移至目的端服务器/mnt/dst目录(文件系统)中。 rsync -avP /mnt/src /mnt/dst 图3 全量同步数据
  • 资源和成本规划 本节介绍最佳实践中资源规划情况,包含以下内容: 表1 资源和成本规划 资源 资源说明 弹性云服务器ECS 云服务器和文件系统归属于同一项目下,用于挂载共享路径实现数据共享。 虚拟私有云VPC VPC为弹性云服务器构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云中资源的安全性,简化用户的网络部署。 云服务器无法访问不在同一VPC下的文件系统,使用弹性文件服务时需将文件系统和云服务器归属于同一VPC下。 文件系统 文件系统通过标准的NFS协议和CIFS协议为客户提供文件存储服务,用于网络文件远程访问,用户通过管理控制台创建挂载地址后,即可在多个云服务器上进行挂载,并通过标准的POSIX接口对文件系统进行访问。 父主题: 为文件系统创建普通用户可读写的子目录
  • 配置SFS Turbo数据淘汰策略 SFS Turbo HPC型文件系统绑定OBS后端之后,建议配置缓存数据淘汰功能。SFS Turbo会自动释放设定时间内没有访问过的文件数据内容,仅保留文件元数据,数据内容释放后不占用SFS Turbo文件系统上的存储空间,再次访问该文件时,将重新从OBS中加载文件数据内容。 登录SFS管理控制台。 在文件系统列表中,单击创建的HPC型文件系统名称,进入文件系统详情页面。 在“基本信息”页签,设置冷数据淘汰时间。 图1 设置冷数据淘汰时间 只有已经导出到OBS且满足淘汰时间的数据才会被淘汰。 父主题: 基本配置
  • 方案概述 用户可以将本地NAS存储中的数据,通过云专线和rsync工具迁移至云上SFS Turbo文件系统中,进行云上业务拓展。 此方案通过在云上创建一台Linux操作系统的云服务器,来连接本地NAS存储以及云上SFS Turbo文件系统的通信,并通过这台服务器将本地NAS存储中的数据迁移至云上。 将云上NAS存储数据迁移至SFS Turbo文件系统中也可以参考本方案,云上NAS和SFS Turbo文件系统需要配置在同一个VPC下。
  • 配置SFS Turbo和OBS联动 SFS Turbo HPC型文件系统支持无缝访问存储在 对象存储OBS 存储桶中的对象,您可以指定SFS Turbo内的文件目录与OBS对象存储桶进行关联。 登录SFS管理控制台,在左侧导航窗格中选择“SFS Turbo”。 在文件系统列表中,单击创建资源中创建的HPC型文件系统,进入文件系统详情页面。 进入页签“绑定后端存储”,单击“绑定OBS桶”。 图1 绑定OBS桶 在右侧弹窗“绑定OBS桶”中,填写如下表所示参数。 表1 绑定OBS桶配置参数 参数 含义 限制 配置后可编辑 联动目录名称 SFS Turbo文件系统根目录下会以该名称创建一个子目录,该目录将绑定对应的OBS桶,且该目录名称不能和已有目录重名。 子目录名称不能重复,子目录名称长度不能超过63个字符。 子目录名称必须是文件系统根目录下不存在的目录名。 子目录名称不能是“.”或“..”。 不支持 桶名 OBS存储桶桶名。 无法绑定不存在的存储桶。 目前仅支持OBS存储桶,不支持OBS并行文件系统。 不支持 OBS区域 域名 OBS区域域名,即OBS的终端节点。 OBS存储桶必须和SFS Turbo文件系统在同一个Region。 不支持 勾选“将OBS桶的读写权限通过桶策略授权给SFS Turbo云服务”。 单击“确定”,完成绑定。 指定导入目录和文件的默认权限,请参考《高性能弹性文件服务API参考》的“绑定后端存储”和“更新后端存储属性”章节执行操作。 父主题: 基本配置
  • 上传数据至OBS 已经在OBS上创建好普通OBS桶,请参见创建普通OBS桶。 已经安装obsutil,请参考下载和安装obsutil。 登录Imagenet数据集下载官网地址,下载Imagenet21k数据集:http://image-net.org/。 下载格式转换后的annotation文件:ILSVRC2021winner21k_whole_map_train.txt和ILSVRC2021winner21k_whole_map_val.txt。 下载完成后将上述3个文件数据上传至OBS桶中的imagenet21k_whole文件夹中。上传方法请参考obsutil命令行工具使用指导。
  • 方案优势 华为云AI 云存储 解决方案的主要优势如下表所示。 表1 华为云AI云存储解决方案的主要优势 序号 主要优势 详细描述 1 存算分离,资源利用率高 GPU/NPU算力和SFS Turbo存储解耦,各自按需扩容,资源利用率提升。 2 SFS Turbo高性能,加速训练过程 训练数据集高速读取,避免GPU/NPU因存储I/O等待产生空闲,提升GPU/NPU利用率。 大模型TB级Checkpoint文件秒级保存和加载,减少训练任务中断时间。 3 数据导入导出异步化,不占用训练任务时长,无需部署外部迁移工具 训练任务开始前将数据从OBS导入到SFS Turbo,训练过程中写入到SFS Turbo的Checkpoint数据异步导出到OBS,均不占用训练任务时长。 SFS Turbo和OBS存储服务之间数据直接导入导出,无需部署外部数据拷贝机器及工具。 4 冷热数据自动流动,降低存储成本 SFS Turbo支持自定义数据淘汰策略,冷数据自动分级到OBS,释放高性能存储空间用于接收新的热数据。 访问冷数据时SFS Turbo从OBS自动加载数据提升访问性能。 5 多 AI开发平台 、生态兼容 pytorch、mindspore等主流AI应用框架,kubernetes容器引擎、算法开发场景通过文件语义访问共享数据,无需适配开发。 如果您想了解更多本方案相关信息,或在方案使用过程中存在疑问,可通过方案咨询渠道,寻求专业人员支持。
  • 方案架构 针对AI训练场景中面临的问题,华为云提供了基于 对象存储服务 OBS+高性能文件服务SFS Turbo的AI云存储解决方案,如图所示,华为云高性能文件服务SFS Turbo HPC型支持和OBS数据联动,您可以通过SFS Turbo HPC型文件系统来加速对OBS对象存储中的数据访问,并将生成的结果数据异步持久化到OBS对象存储中长期低成本保存。 图1 基于OBS+SFS Turbo的华为云AI云存储解决方案
  • 方案概述 SFS Turbo默认只能被云上同一个VPC内的ECS/CCE访问,用户可通过云专线/VPN/对等连接等方式打通网络,实现多种访问方式。 云下或其他云访问: 云专线/VPN 云上同区域同一账号不同VPC: VPC对等连接 云上同区域跨账号访问: VPC对等连接 不同区域访问: 云连接 迁移数据分为两种网络条件,通过可访问公网的ECS直接挂载迁移。 通过mount方式挂载访问SFS Turbo,将本地NAS存储中的数据迁移至SFS Turbo。 通过云专线迁移(rclone工具) 通过云专线迁移(rsync工具) 无法打通网络直接挂载,可以通过公网访问华为云ECS绑定的EIP,也可进行传输迁移。 跨服务器迁移(rclone工具) 父主题: 弹性文件服务数据迁移
  • 应用场景 近年来,AI快速发展并应用到很多领域中,AI新产品掀起一波又一波热潮,AI应用场景越来越多,有自动驾驶、大模型、AIGC、科学AI等不同行业。AI人工智能的实现需要大量的基础设施资源,包括高性能算力,高速存储和网络带宽等基础设施,即“大算力、大存力、大运力”的AI基础大设施底座,让算力发展不要偏斜。 从过去的经典AI,到今天人人谈论的大模型,自动驾驶,我们看到AI模型的参数及AI算力规模呈现出指数级的爆发增长,对存储基础设施也带来全新的挑战。 高吞吐的数据访问挑战:随着企业使用 GPU/NPU 越来越多,底层存储的 IO 已经跟不上计算能力,企业希望存储系统能提供高吞吐的数据访问能力,充分发挥 GPU/NPU 的计算性能,包括训练数据的读取,以及为了容错做的检查点(以下简称Checkpoint)保存和加载。训练数据的读取要尽量读得快,减少计算对 I/O 的等待,而 Checkpoint主要要求高吞吐、减少训练中断的时间。 文件接口方式的数据共享访问:由于 AI 架构需要使用到大规模的计算集群(GPU/NPU服务器),集群中的服务器访问的数据来自一个统一的数据源,即一个共享的存储空间。这种共享访问的数据有诸多好处,它可以保证不同服务器上访问数据的一致性,减少不同服务器上分别保留数据带来的数据冗余等。另外以 AI 生态中非常流行的开源深度学习框架PyTorch为例,PyTorch默认会通过文件接口访问数据,AI算法开发人员也习惯使用文件接口,因此文件接口是最友好的共享存储访问方式。
  • 操作步骤 登录弹性云服务器管理控制台。 登录已创建好的Linux系统云服务器,用于同时访问本地NAS存储和云上SFS Turbo文件系统。 输入以下挂载命令,用于访问本地NAS存储。 mount -t nfs -o vers=3,timeo=600,noresvport,nolock 本地NAS挂载地址 /mnt/src 输入以下挂载命令,用于访问云上文件系统。 mount -t nfs -o vers=3,timeo=600,noresvport,nolock 文件系统挂载地址 /mnt/dst 在Linux云服务器中执行以下命令安装rclone工具。 wget https://downloads.rclone.org/v1.53.4/rclone-v1.53.4-linux-amd64.zip --no-check-certificateunzip rclone-v1.53.4-linux-amd64.zipchmod 0755 ./rclone-*/rclonecp ./rclone-*/rclone /usr/bin/rm -rf ./rclone-* 执行以下命令,进行数据同步。 rclone copy /mnt/src /mnt/dst -P --transfers 32 --checkers 64 --links --create-empty-src-dirs 参数说明如下,transfers和checkers数目可以根据系统规格自行配置: --transfers:传输文件的并发数目。 --checkers:扫描本地文件的并发数目。 -P:数据拷贝进度。 --links:复制源端的软链接,目的端保持为软链接的形式。 --copy-links:复制源端软链接指向的文件内容,目的端变成文件的形式,不再是软链接。 --create-empty-src-dirs:复制源端的空目录到目的端。 等待数据完成同步后,可前往目标文件系统查看是否已成功迁移。
  • 方案概述 用户可以将本地NAS存储中的数据,通过云专线和rclone工具迁移至云上SFS Turbo文件系统中,进行云上业务拓展。 此方案通过在云上创建一台Linux操作系统的云服务器,来连接本地NAS存储以及云上SFS Turbo文件系统的通信,并通过这台服务器将本地NAS存储中的数据迁移至云上。 将云上NAS存储数据迁移至SFS Turbo文件系统中也可以参考本方案,具体说明请参考云上NAS数据迁移至弹性文件服务。
  • 操作步骤 以root账号登录弹性云服务器。 使用以下命令在root账号下使用以下命令添加普通用户账号,下面以添加普通用户Tom为例。 adduser Tompasswd Tom 根据回显提示修改普通用户Tom的密码,创建成功后会自动创建用户Tom的主目录/home/Tom。 添加普通用户Tom成功后,再在root的本地目录下使用以下命令为普通用户Tom创建子目录。 由创建文件系统本地目录章节的步骤4可知root的本地目录为root001,使用以下命令为普通用户Tom创建子目录Tom。其中root001需替换为实际的本地目录。 mkdir /root/root001/Tom 使用以下命令将子目录Tom的读写权限赋予普通用户Tom。其中root001需替换为实际的本地目录。 chown Tom:Tom /root/root001/Tom 创建完毕后可以通过以下命令验证普通用户Tom是否已有子目录Tom的读写权限。如图1所示。 cd /homecd /root/root001ll 图1 查询权限 可以看到用户Tom已经获取了子目录Tom的读写权限。 将root001/Tom子目录使用挂载命令mount挂载到 Tom 的主目录/home/Tom中。其中xx-xxxxx-xx需要替换为文件系统所在区域,share-xxxx需要修改为实际的文件系统,第一个Tom需要修改为实际的子目录名称。如图2所示。 mount -t nfs sfs-nas1.xx-xxxxx-xx.xxxxxxxxxx.com:/share-xxxx/Tom /home/Tom 图2 挂载目录 执行以下命令可以查看到该子目录已经成功挂载至Tom的主目录中。如图3所示。 df -h 图3 查询挂载结果
  • 操作步骤 已经成功在北京一可用区2创建一台CentOS系统的云服务器如ecs-whm,如图1所示。 图1 成功创建云服务器 以root用户登录弹性云服务器。安装NFS客户端。 查看系统是否安装NFS软件包。 CentOS、Red Hat、Oracle Enterprise Linux、SUSE、Euler OS、Fedora或OpenSUSE系统下,执行如下命令: rpm -qa|grep nfs Debian或Ubuntu系统下,执行如下命令: dpkg -l nfs-common 不同操作系统回显会有所不同,如果回显如下类似信息,说明已经成功安装NFS软件包,执行步骤3。如未显示,执行步骤2.2。 CentOS、Red Hat、Euler OS、Fedora或Oracle Enterprise Linux系统下,回显如下类似信息: libnfsidmapnfs-utils SUSE或OpenSUSE系统下,回显如下类似信息: nfsidmapnfs-client Debian或Ubuntu系统下,回显如下类似信息: nfs-common 如果查看到未安装,根据不同的操作系统,执行不同命令。 执行以下命令前要求云服务器已连接到互联网,否则安装NFS客户端失败。 CentOS、Red Hat、Euler OS、Fedora或Oracle Enterprise Linux系统下,执行如下命令: sudo yum -y install nfs-utils Debian或Ubuntu系统下,执行如下命令: sudo apt-get install nfs-common SUSE或OpenSUSE系统下,执行如下命令: zypper install nfs-client 执行如下命令,查看是否能解析文件系统挂载地址中的域名。如图2所示。 nslookup 文件系统域名 nslookup sfs-nas1.xx-xxxx-xx.xxxxxxxxxxx.com 文件系统域名仅为域名,如:sfs-nas1.xxxx.com。文件系统域名请从文件系统的挂载地址中获取,不需要输入整个挂载地址。 无法使用nslookup命令时,需要先安装bind-utils软件包。(可通过执行yum install bind-utils命令安装) 解析成功,执行步骤4。 解析失败,请先完成DNS服务器IP地址的配置再执行挂载文件系统的操作,具体配置操作请参见配置DNS。 图2 解析域名 执行如下命令,创建用于挂载文件系统的本地目录。此时记录本地目录名字,此处以root001为例。 mkdir 本地目录 mkdir root001 执行如下命令,将文件系统挂载到云服务器上。文件系统目前仅支持NFSv3协议挂载到Linux云服务器,其中变量说明见表1。 mount -t nfs -o vers=3,timeo=600,nolock 挂载地址 本地目录 已挂载文件系统的云服务器重启后,该云服务器上的挂载信息将会丢失,您可以通过在fstab文件中配置自动挂载来保证云服务器重启时自动挂载文件系统,具体操作请参见自动挂载文件系统。 表1 参数说明 参数 说明 vers 文件系统版本,目前只支持NFSv3。取值:3。 timeo NFS客户端重传请求前的等待时间(单位为0.1秒)。建议值:600。 lock/nolock 选择是否使用NLM协议在服务器上锁文件。当选择nolock选项时,锁对于同一主机的应用有效,对不同主机不受锁的影响。建议值:nolock。 挂载地址 SFS文件系统的格式为:文件系统域名:/路径,例如:example.com:/share-xxx。SFS Turbo文件系统的格式为:文件系统IP:/,例如192.168.0.0:/。 说明: x是数字或字母。 由于挂载地址名称较长,需要拉宽该栏以便完整显示。 本地目录 云服务上用于挂载文件系统的本地目录,例如“/local_path”。 图3 挂载地址 挂载完成后,执行如下命令,查看已挂载的文件系统。 mount -l 如果回显包含如下类似信息,说明挂载成功。 example.com:/share-xxx on /local_path type nfs (rw,vers=3,timeo=600,nolock,addr=) 挂载成功后,参考下一个章节创建普通用户和子目录。 如果挂载失败或超时,请参考故障排除处理。 支持写入的单个文件最大容量为240TB。
  • SFS Turbo时延测试 本文以SFS Turbo性能增强型,云服务器规格如下为例说明。 规格:通用计算增强型 | c6.4xlarge.4 | 16vCPUs | 64GB 镜像:EulerOS 2.5 单队列随机读 fio命令: fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=60 -group_reporting -filename=/mnt/sfsturbo/fio_test_01 -name=randread_test 其中,“/mnt/sfsturbo/fio_test_01 -name”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfsturbo”目录下的“fio_test_01 -name”文件,请根据实际填写。 fio结果: 单队列随机写 fio命令: fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=60 -group_reporting -filename=/mnt/sfsturbo/fio_test_02 -name=randwrite_test 其中,“/mnt/sfsturbo/fio_test_02 -name”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfsturbo”目录下的“fio_test_02 -name”文件,请根据实际填写。 fio结果: 单队列顺序读 fio命令: fio -direct=1 -iodepth=1 -rw=read -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=60 -group_reporting -filename=/mnt/sfsturbo/fio_test_03 -name=read_test 其中,“/mnt/sfsturbo/fio_test_03 -name”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfsturbo/”目录下的“fio_test_03 -name”文件,请根据实际填写。 fio结果: 单队列顺序写 fio命令: fio -direct=1 -iodepth=1 -rw=write -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=60 -group_reporting -filename=/mnt/sfsturbo/fio_test_04 -name=write_test 其中,“/mnt/sfsturbo/fio_test_04 -name”为待测试的目标文件的挂载路径,需具体到文件名,即这里要测试的是“/mnt/sfsturbo”目录下的“fio_test_04 -name”文件,请根据实际填写。 fio结果:
  • 方案概述 用户可以将本地NAS存储中的数据,使用rclone工具通过公网或内网迁移至云上SFS Turbo中,进行云上业务拓展。 此方案通过在云上和本地分别创建一台Linux操作系统的服务器,将本地NAS存储中的数据迁移至云上。两台服务器端口号22的出入方向需允许访问。本地服务器用于访问本地NAS存储,云上服务器用于访问云上SFS Turbo。 通过公网或内网将云上NAS存储数据迁移至SFS Turbo中也可以参考本方案完成。
  • 约束与限制 暂不支持使用公网迁移本地NAS存储至SFS容量型文件系统。 仅支持使用Linux系统的云服务器进行数据迁移。 文件UID和GID在同步操作后将不再保持一致。 文件访问模式同步操作后不再保持一致。 端口号22的出入方向需允许访问。 支持实现增量迁移,即只迁移发生变化的数据。 通过 rclone 工具进行同步时,在执行命令之前写入的数据,可以完全同步;在执行命令之后写入的数据,不能保证完全同步。
  • 资源和成本规划 本节介绍最佳实践中资源规划情况,包含以下内容: 表1 资源和成本规划内容说明 维度 说明 资源规划 OBS:存放训练数据集、预训练模型等数据资源的桶,桶存储类别为“标准存储”,桶策略为“私有”。 SFS Turbo:文件系统类型为“HPC型”,存储类型请根据存储容量和性能需求选择,AI场景建议选择250MB/s/TiB及以上的存储类型。 ModelArts:AI开发平台,采用多机多卡分布式训练。 VPC:虚拟私有云和子网。 算法及数据:准备AI训练需要的算法及数据集,如Swin-Transformer算法,及ImageNet21K数据集。 说明: 为了提供最佳加速性能,建议SFS Turbo HPC文件系统和ModelArts资源池就近选择在同一个Region的同一个可用区(AZ)。 成本规划 OBS费用:详见OBS计费说明。 SFS Turbo费用:详见SFS计费说明。 ModelArts费用:详见ModelArts计费说明。 须知: 本文提供的成本预估费用仅供参考,资源的实际费用以华为云管理控制台或价格计算器显示为准。 如果您想了解更多本方案相关信息,或在方案使用过程中存在疑问,可通过方案咨询渠道,寻求专业人员支持。 父主题: 面向AI场景使用OBS+SFS Turbo的存储加速实践
  • 操作步骤 登录弹性云服务器管理控制台。 登录已创建好的Linux系统云服务器,用于同时访问SFS容量型文件系统和SFS Turbo文件系统。 输入以下挂载命令,用于访问文件系统1。文件系统1可以是SFS容量型文件系统或SFS Turbo文件系统。 mount -t nfs -o vers=3,timeo=600,noresvport,nolock 文件系统1挂载地址 /mnt/src 输入以下挂载命令,用于访问文件系统2。文件系统2可以是SFS容量型文件系统或SFS Turbo文件系统。 mount -t nfs -o vers=3,timeo=600,noresvport,nolock 文件系统2挂载地址 /mnt/dst 下载并安装rclone工具。下载地址请参见https://rclone.org/downloads/。 执行以下命令,进行数据同步。 rclone copy /mnt/src /mnt/dst -P --transfers 32 --checkers 64 --links --create-empty-src-dirs 参数说明如下,transfers和checkers数目可以根据系统规格自行配置: /mnt/src :源路径 /mnt/dst:目标路径 --transfers:传输文件的并发数目。 --checkers:扫描本地文件的并发数目。 -P:数据拷贝进度。 --links:复制源端的软链接,目的端保持为软链接的形式。 --copy-links:复制源端软链接指向的文件内容,目的端变成文件的形式,不再是软链接。 --create-empty-src-dirs:复制源端的空目录到目的端。 等待数据完成同步后,可前往目标文件系统查看是否已成功迁移。
共99269条