华为云用户手册

  • 功能介绍 返回指定版本的信息。 为了支持功能不断扩展,Nova API支持版本号区分。Nova中有两种形式的版本号: "主版本号": 具有独立的url。 "微版本号": 通过Http请求头X-OpenStack-Nova-API-Version来使用,从 2.27 版本开始支持新的微版本头:OpenStack-API-Version。 如果使用OpenStack-API-Version的请求头,version对应的value取值格式为 compute 微版本号。 例如:key为OpenStack-API-Version的时候value需要填compute 2.27。
  • 响应消息 响应参数如表2所示。 表2 响应参数 参数 参数类型 描述 versions Object 指定版本信息,详情请参见表3。 表3 versions字段数据结构说明 参数 参数类型 描述 id string 所讨论的版本的通用名称。仅仅是信息性的,它没有真正的语义。 links Object 链接到资源的问题。有关更多信息,请参见OpenStack Documentation。 详情请参见表4。 media-types Object 媒体类型。详情请参见表5。 min_version string 如果API的这个版本支持微版本,则支持最小的微版本。 如果不支持微版本,这将是空字符串。 status string API版本的状态: CURRENT这是使用的API的首选版本; SUPPORTED:这是一个较老的,但仍然支持的API版本; DEPRECATED:一个被废弃的API版本,该版本将被删除 updated string 一个有特定值的字符串。API版本为2.0时,值为2011-01-21T11:33:21Z ,API版本是2.1时,值为2013-07-23T11:33:21Z。 version string 如果API的这个版本支持微版本,则支持最大的微版本。 如果不支持微版本,这将是空字符串。 表4 links字段数据结构说明 参数 参数类型 描述 href string 相应资源的链接。 rel string self:自助链接包含版本链接的资源。立即链接后使用这些链接。 bookmark:书签链接提供了一个永久资源的永久链接,该链接适合于长期存储。 alternate:备用链接可以包含资源的替换表示形式。例如,OpenStack计算映像可能在OpenStack映像服务中有一个替代表示。 表5 media-types字段数据结构说明 参数 参数类型 描述 base string 基础类型。 type string 媒体类型。
  • 响应示例 { "version":{ "min_version":"2.1", "media-types":[ { "type":"application/vnd.openstack.compute+json;version=2.1", "base":"application/json" } ], "links":[ { "rel":"self", "href":"https://{endpoint}/v2.1/" }, { "rel":"describedby", "href":"http://docs.openstack.org/", "type":"text/html" } ], "id":"v2.1", "updated":"2013-07-23T11:33:21Z", "version":"2.60", "status":"CURRENT" } }
  • 历史版本 由于原生接口已停止跟随OpenStack社区的演进,当前已将其相关API资料移入历史API章节。为了更好地满足用户的需求,并提供更稳定、可靠的服务,推荐用户使用或迁移到未标记废弃的自研API,以获得更好的使用体验。 若用户要使用老的OpenStack API原生接口,建议使用v2.1版本的Openstack API接口,v2版本是Openstack API原生接口更早期的历史版本,且v2版本不支持微版本功能。 若用户要使用老的v2版本的Openstack API接口,只需要把原生API接口对应的URI中的v2.1版本号改为v2版本号即可。 父主题: API
  • 响应示例 { "status": "SUC CES S", "entities": { "sub_jobs_total": 1, "sub_jobs": [ { "status": "SUCCESS", "entities": { "server_id": "bae51750-0089-41a1-9b18-5c777978ff6d" }, "job_id": "2c9eb2c5544cbf6101544f0635672b60", "job_type": "createSingleServer", "begin_time": "2016-04-25T20:04:47.591Z", "end_time": "2016-04-25T20:08:21.328Z", "error_code": null, "fail_reason": null } ] }, "job_id": "2c9eb2c5544cbf6101544f0602af2b4f", "job_type": "createServer", "begin_time": "2016-04-25T20:04:34.604Z", "end_time": "2016-04-25T20:08:41.593Z", "error_code": null, "fail_reason": null }
  • 响应消息 响应参数如表2所示。 表2 响应参数 参数 参数类型 描述 status String Job的状态。 SUCCESS:成功。 RUNNING:运行中。 FAIL:失败。 INIT:正在初始化。 PENDING_PAYMENT : 包年/包月订单待支付。 说明: PENDING_PAYMENT 状态为创建或者变更包年/包月的弹性云服务器提交订单完成后待支付状态。如果订单取消,该状态不会自动刷新,待14天后job会自动清理。 entities Object Job操作的对象。 根据不同Job类型,显示不同的内容,云服务器相关操作显示server_id,网卡相关操作显示nic_id。有子Job时为子job的详情。 详情请参见表3 job_id String 异步请求的任务ID。 job_type String 异步请求的任务类型。 begin_time String 开始时间。 end_time String 结束时间。 error_code String Job执行失败时的错误码。 Job执行成功后,该值为null。 fail_reason String Job执行失败时的错误原因。 Job执行成功后,该值为null。 message String 查询Job的API请求出现错误时,返回的错误消息。 code String 查询Job的API请求出现错误时,返回的错误码。 错误码和其对应的含义请参考通用请求返回值。 表3 entities字段数据结构说明 参数 参数类型 描述 server_id String 云服务器相关操作显示server_id。 nic_id String 网卡相关操作显示nic_id。 sub_jobs_total Integer 子任务数量。 sub_jobs Array of objects 每个子任务的执行信息。 详情请参见表4 表4 sub_jobs字段数据结构说明 参数 参数类型 描述 status String Job的状态。 SUCCESS:成功。 RUNNING:运行中。 FAIL:失败。 INIT:正在初始化。 entities Object Job操作的对象。根据不同Job类型,显示不同的内容,云服务器相关操作显示server_id,网卡相关操作显示nic_id。更多字段描述请参见表5。 job_id String 子任务的ID。 job_type String 子任务的类型。 begin_time String 开始时间。 end_time String 结束时间。 error_code String Job执行失败时的错误码。 Job执行成功后,该值为null。 fail_reason String Job执行失败时的错误原因。 Job执行成功后,该值为null。 表5 sub_jobs.entities字段数据结构说明 参数 参数类型 描述 server_id String 云服务器相关操作显示server_id。 nic_id String 网卡相关操作显示nic_id。 errorcode_message String 子任务执行失败的具体原因。
  • 响应消息 参数 参数类型 描述 job_id String 提交任务成功后返回的任务ID,用户可以使用该ID对任务执行情况进行查询。如何根据job_id来查询Job的执行状态,请参考5.8 查询Job状态。 serverIds Array of strings 云服务器ID列表。 说明: 通过云服务器ID查询云服务器详情 ,若返回404 可能云服务器还在创建或者已经创建失败。 异常响应请参考响应(任务类),异常响应要素说明。
  • 请求示例 创建一台按需计费云服务器,操作系统为CentOS 7.6 64bit,4U8G,磁盘类型为“SSD”,绑定10M的按带宽计费的弹性公网IP,采用密钥方式登录鉴权。 POST https://{endpoint}/v1/{project_id}/cloudservers { "server": { "availability_zone":"az1-dc1", "name": "newserver", "imageRef": "67f433d8-ed0e-4321-a8a2-a71838539e09", "root_volume": { "volumetype": "SSD" }, "data_volumes": [ { "volumetype": "SSD", "size": 100, "multiattach": true, "hw:passthrough": true } ], "flavorRef": "s3.xlarge.2", "vpcid": "0dae26c9-9a70-4392-93f3-87d53115d171", "security_groups": [ { "id": "507ca48f-814c-4293-8706-300564d54620" } ], "nics": [ { "subnet_id": "157ee789-03ea-45b1-a698-76c92660dd83" } ], "publicip": { "eip": { "iptype": "5_bgp", "bandwidth": { "size": 10, "sharetype": "PER" } } }, "key_name": "sshkey-123", "count": 1, "extendparam": { "enterprise_project_id": "f8e0ecc8-3825-4ee8-9596-fb4258ffdcbb" }, "server_tags": [ { "key": "key1", "value": "value1" } ], "metadata": { "op_svc_userid": "8ea65f4099ba412883e2a0da72b96873", "agency_name": "test" } } } 发送预校验请求,检查创建弹性云服务器的请求消息是否填写了必选参数,请求格式是否正确。 POST https://{endpoint}/v1/{project_id}/cloudservers { "dry_run": true, "server": { "availability_zone":"az1-dc1", "name": "newserver", "imageRef": "1189efbf-d48b-46ad-a823-94b942e2a000", "root_volume": { "volumetype": "SSD" }, "data_volumes": [ { "volumetype": "SSD", "size": 100, "multiattach": true, "hw:passthrough": true } ], "flavorRef": "s3.xlarge.2", "vpcid": "0dae26c9-9a70-4392-93f3-87d53115d171", "security_groups": [ { "id": "507ca48f-814c-4293-8706-300564d54620" } ], "nics": [ { "subnet_id": "157ee789-03ea-45b1-a698-76c92660dd83" } ], "key_name": "sshkey-123", "count": 1 } }
  • 响应示例 { "job_id": "ff808082739334d80173941567f21d4f", "serverIds": [ "118258c5-0c6a-4e73-8b51-8d1ea3272e1b", "e51b9e20-7088-4914-a4f3-6c76bcfed0be" ] } 或 { "error": { "code": "request body is illegal.", "message": "Ecs.0005" } } 或 { "error": { "message": "privateIp [%s] is not in this subnet [%s]", "code": "Ecs.0005", "details": [ { "code": "Ecs.0039" } ] } }
  • 使用限制 单账号跟踪的事件可以通过 云审计 控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的 CTS /system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到 对象存储服务 (OBS)或 云日志 服务(LTS),才可在OBS桶或LTS日志组里面查看历史事件信息。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。
  • 在子账户做的私有镜像,主账户创建云服务器的时候可以选择到吗? 可以。 子账户做的私有镜像,主账户和其他子账户(如果有)均可以看到。 如果该私有镜像为系统盘镜像或整机镜像,主账户和其他子账户创建云服务器时,选择“私有镜像”,然后在下拉列表中可以选择该镜像。 如果该私有镜像为数据盘镜像,主账户和其他子账户创建云硬盘时,选择数据源为“从镜像创建”,然后在弹出的对话框中选择该镜像。 另外,主账户创建的私有镜像,所有子账户都可以看到。
  • 影响 基于CentOS官方的变更计划,对CentOS操作系统的使用者产生的影响如下所述: 2021年12月31日以后,CentOS 8的使用者将无法获得包括问题修复和功能更新在内的任何软件维护和支持。 2024年06月30日以后,CentOS 7的使用者将无法获得包括问题修复和功能更新在内的任何软件维护和支持。 对于华为云的公共镜像及服务支持存在一定影响: 华为云暂不会下线CentOS 8公共镜像,同时已经使用CentOS 8创建的E CS 实例运行不会受到影响,但将停止更新镜像。 华为云对于CentOS操作系统的服务支持将和CentOS官方日期保持同步。2021年12月31日以后将不再对CentOS 8提供服务支持;对CentOS 7的服务支持将持续至2024年6月30日。
  • 应对策略 为了保障使用CentOS系统的业务正常运行,华为云为您提供替换CentOS操作系统的应对策略。替换CentOS操作系统的方式分为两类,切换操作系统和迁移操作系统。 将CentOS操作系统切换为支持切换的操作系统。 如果现有的ECS配置(网卡、磁盘、VPN等配置的类型和数量)都不需要改变,仅需要修改ECS的操作系统镜像,并且您的软件和原操作系统耦合度较低,建议使用系统切换。 切换到Huawei Cloud EulerOS具体操作,详见将操作系统切换为HCE OS。 切换到CentOS Stream或Rocky Linux具体操作详见切换操作系统。 将CentOS操作系统迁移为Huawei Cloud EulerOS操作系统。 如果现有的ECS配置(网卡、磁盘、VPN等配置的类型和数量)都不需要改变,希望保留操作系统软件的配置参数,可以通过操作系统迁移的方式迁移到Huawei Cloud EulerOS。 系统迁移详见将操作系统迁移为HCE。 系统切换和迁移的区别如下表,请根据需要选择合适的替换方式。 表1 系统切换和迁移的区别 区别 系统切换 系统迁移 数据备份 切换操作系统会清除系统盘数据,包括系统盘上的系统分区和所有其它分区。 切换操作系统不影响数据盘数据。 迁移操作系统不会清除系统盘数据,为避免系统软件的数据丢失,建议将其备份。 迁移操作系统不影响数据盘数据。 个性化设置 切换操作系统后,当前操作系统内的个性化设置(如DNS、主机名等)将被重置,需重新配置。 迁移操作系统后,当前操作系统内的个性化设置(如DNS、主机名等)不需重新配置。 表2 支持切换的操作系统 操作系统 概述 适用人群 Huawei Cloud EulerOS Huawei Cloud EulerOS(简称HCE)是基于openEuler构建的云上操作系统。 HCE打造云原生、高性能、高安全、易迁移等能力,加速用户业务上云,提升用户的应用创新空间,可替代CentOS、EulerOS等公共镜像。 适用于希望使用免费镜像,并延续开源社区镜像使用习惯的个人或企业。 Debian、Ubuntu操作系统 Linux的其他发行版操作系统,不同操作系统在使用习惯和应用兼容性上存在一定差异。 适用于可以自行应对操作系统切换成本的个人或企业。
  • 背景信息 2020年12月08日,CentOS官方宣布了停止维护CentOS Linux的计划,并推出了CentOS Stream项目。更多信息,请参见CentOS官方公告。 CentOS 8系统2021年12月31日已停止维护服务,CentOS 7系统将于2024年06月30日停止维护服务。CentOS官方不再提供CentOS 9及后续版本,不再支持新的软件和补丁更新。CentOS用户现有业务随时面临宕机和安全风险,并无法确保及时恢复。
  • 其他限制 云服务器因欠费而处于冻结状态,此时无法创建私有镜像,您必须先续费,解冻资源后再进行创建。 通过x86 CPU架构的云服务器创建的私有镜像,不能用于创建鲲鹏CPU架构的云服务器,也不能在鲲鹏CPU架构云服务器切换操作系统时使用。 通过外部镜像文件创建私有镜像时,若架构类型选择“x86”,则该私有镜像不能用于创建鲲鹏CPU架构的云服务器,也不能在鲲鹏CPU架构云服务器切换操作系统时使用。 32位操作系统的私有镜像不能创建超过4G内存规格的云服务器。因为32位系统的内存寻址空间最大为4GB。
  • 修订记录 发布日期 修订记录 2023-11-02 第十次正式发布。 更新提交工单以及我的授权内容描述。 2022-03-08 第九次正式发布。 新增审计章节。 2022-02-09 第八次正式发布。 更新提交工单章节。 2021-03-23 第七次正式发布。 优化同组工单章节。 2020-05-13 第六次正式发布。 同组工单章节新增关联订单内容。 我的授权和同组授权章节新增授权类型说明。 2020-04-24 第五次正式发布。 我的工单章节新增标签内容。 2020-01-20 第四次正式发布。 配置工单提交权限章节内容优化。 2019-12-30 第三次正式发布。 配置工单提交权限章节内容优化。 新增管理工单章节。 新增同组授权章节。 2019-09-23 第二次正式发布。 文档内容结构优化。 2018-08-30 第一次正式发布。
  • 操作步骤 登录管理控制台。 单击右上角“工单”,进入“工单管理”页面。 单击左侧导航栏的“我的授权”,可查看所有授权状态信息。 单击待授权问题操作列的“授权”,查看华为工程师需要的授权信息。 图1 授权 填写需要的授权信息,勾选“我已阅读并同意《工单服务协议》”,单击“确认授权”,即可授权给华为工程师处理。 图2 确认授权 当前授权类型包括以下几种: 服务器类授权:SSH协议(包括密码和私钥两种)、RDP协议、VNC协议 帐号授权:支持帐号授权和委托授权 FTP授权:支持SFTP 机密信息授权 授权信息在工单处理结束后在系统中清除,华为云不会保存用户的机密信息,建议用户在工单处理结束后修改密码。
  • 操作步骤 登录管理控制台。 单击右上角“工单”,进入“工单管理”页面。 单击左侧导航栏的“同组授权”,可查看同组用户已授权给华为工程师的授权信息。 单击待授权问题操作列的“授权”,查看华为工程师需要的授权信息。 图1 授权 填写需要的授权信息,勾选“我已阅读并同意《工单服务协议》”,单击“确认授权”,即可授权给华为工程师处理。 图2 确认授权 当前授权类型包括以下几种: 服务器类授权:SSH协议、RDP协议、VNC协议 帐号授权:支持帐号授权和委托授权 FTP授权:支持SFTP通过以下方式提醒我工单进展 机密信息授权 授权信息在工单处理结束后在系统中清除,华为云不会保存用户的机密信息,建议用户在工单处理结束后修改密码。
  • 监控指标 表1 高性能弹性文件服务支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) client_connections 客户端连接数 该指标用于统计测量客户端连接数。 说明: 连接数统计的是活跃的客户端链接。 如果客户端长时间无 IO,网络链接会自动断开,当有 IO 时客户端会自动重新建立网络链接。 ≥ 0 高性能弹性文件服务 1分钟 data_read_io_bytes 读带宽 该指标用于测量读I/O负载。 单位:byte/s ≥ 0 bytes/s 高性能弹性文件服务 1分钟 data_write_io_bytes 写带宽 该指标用于测量写I/O负载。 单位:byte/s ≥ 0 bytes/s 高性能弹性文件服务 1分钟 metadata_io_bytes 元数据读写带宽 该指标用于测量元数据读写I/O负载。 单位:byte/s ≥ 0 bytes/s 高性能弹性文件服务 1分钟 total_io_bytes 总带宽 该指标用于测量总I/O负载。 单位:byte/s ≥ 0 bytes/s 高性能弹性文件服务 1分钟 iops IOPS 该指标用于测量单位时间内处理的I/O数。 ≥ 0 高性能弹性文件服务 1分钟 used_capacity 已用容量 该指标用于统计文件系统已用容量。 单位:byte ≥ 0 bytes 高性能弹性文件服务 1分钟 used_capacity_percent 容量使用率 该指标用于统计文件系统已用容量占总容量的比例。 单位:百分比 0 - 100% 高性能弹性文件服务 1分钟 used_inode 已用inode数 该指标用于统计文件系统已用inode数 ≥ 1 高性能弹性文件服务 1分钟 used_inode_percent inode使用率 该指标用于统计文件系统已用inode数占总inode数的比率。单位:百分比 0 - 100% 高性能弹性文件服务 1分钟
  • 操作步骤 以root账号登录弹性云服务器。 给非root的普通用户添加root权限。 执行chmod 777 /etc/sudoers命令修改sudoers文件权限为可编辑权限。 使用which命令查看mount和umount命令的路径。 图1 查看命令路径 执行vi /etc/sudoers命令编辑sudoers文件。 在root账号下添加普通用户账号,下图以添加普通用户Mike为例。 图2 添加用户 编辑完成后,单击“Esc”,并输入:wq,保存文件并退出。 执行chmod 440 /etc/sudoers命令恢复sudoers文件权限为只读权限。 切换到普通用户Mike登录弹性云服务器。 执行如下命令挂载文件系统。挂载参数参见表1。 sudo mount -t nfs -o vers=3,timeo=600,noresvport,nolock 挂载地址 本地路径 表1 参数说明 参数 说明 挂载地址 格式为:文件系统IP:/,例如192.168.0.0:/。 说明: x是数字或字母。 由于挂载地址名称较长,需要拉宽该栏以便完整显示。 本地路径 云服务器上用于挂载文件系统的本地路径,例如“/local_path”。 挂载完成后,执行如下命令,查看已挂载的文件系统。 mount -l 如果回显包含如下类似信息,说明挂载成功。 example.com:/share-xxx on /local_path type nfs (rw,vers=3,timeo=600,nolock,addr=)
  • 加密挂载教程-Linux 安装stunnel。 stunnel是一个开源网络中继。stunnel会监听本地端口,并将发到其上的流量加密转发到SFS Turbo文件系统,要使用加密传输功能需要先安装stunnel。请执行以下命令进行安装: ubuntu或Debian操作系统安装命令 sudo apt update sudo apt-get install stunnel CentOS,EulerOS或HCE OS操作系统安装命令 sudo yum install stunnel 推荐使用Stunnel版本为5.56或以上。 选取未被占用的端口作为本地监听端口。 如下示例,执行如下命令查看本地已被占用的端口: netstat -anp | grep 127.0.0.1 图1 本地已被占用端口 由于20049已被占用,所以需要在20050到21049之间选择一个未被占用的端口作为本地监听端口。 配置stunnel配置文件。 在/etc/stunnel路径下新建stunnel_[本地监听端口].conf文件,在此文件中写入: client = yes sslVersion = TLSv1.2 [nfs] ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256 accept = 127.0.0.1:[本地监听端口] connect = [dns name]:2052 执行如下命令拉起stunnel进程。 stunnel /etc/stunnel/stunnel_[本地监听端口].conf 执行如下挂载命令。 mount -t nfs -o vers=3,nolock,tcp,port=[本地监听端口],mountport=[本地监听端口] 127.0.0.1:/ [挂载点] 加密挂载完成后,在此挂载点上的所有文件操作与非加密场景的文件操作一致。 如果stunnel进程异常退出会导致文件操作卡住,可以利用crontab等linux能力,保证stunnel进程退出后自动拉起。
  • 操作步骤 以root用户登录弹性云服务器。 若以非root用户登录弹性云服务器,具体操作请参考非root普通用户挂载SFS Turbo文件系统到Linux云服务器。 安装NFS客户端。 安装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。如未显示,执行该步骤。 CentOS、Red Hat、Euler OS、Fedora或Oracle Enterprise Linux系统下,回显如下类似信息: libnfsidmap nfs-utils SUSE或OpenSUSE系统下,回显如下类似信息: nfsidmap nfs-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 执行如下命令,查看是否能解析文件系统共享路径中的 域名 。 nslookup 文件系统域名 文件系统域名如:xxx.sfsturbo.internal(xxx为文件系统ID)。文件系统域名请从文件系统的共享路径中获取。 无法使用nslookup命令时,需要先安装bind-utils软件包。(可通过执行yum install bind-utils命令安装) 解析成功,执行该步骤。 解析失败,请先完成DNS服务器IP地址的配置再执行挂载文件系统的操作,具体配置操作请参见配置解析域名的DNS服务器。 执行如下命令,创建用于挂载文件系统的本地路径。 mkdir 本地路径 如果本地路径已挂载其他磁盘等资源,为被占用状态时,需要新建其它目录进行挂载(nfs客户端不会对重复挂载进行拦截,当重复挂载时会表现为最后一次成功挂载的信息)。 执行如下命令,将文件系统挂载到与文件系统所属VPC相同的云服务器上。文件系统目前仅支持NFSv3协议挂载到Linux云服务器。 其中变量说明见表1。 SFS Turbo文件系统执行命令:mount -t nfs -o vers=3,timeo=600,noresvport,nolock,tcp 挂载地址 本地路径 已挂载文件系统的云服务器重启后,该云服务器上的挂载信息将会丢失,您可以通过在fstab文件中配置自动挂载来保证云服务器重启时自动挂载文件系统,具体操作请参见root用户自动挂载SFS Turbo文件系统到Linux云服务器。 表1 参数说明 参数 说明 vers 文件系统版本,目前只支持NFSv3。取值:3。 timeo NFS客户端重传请求前的等待时间(单位为0.1秒)。建议值:600。 noresvport 指定NFS客户端向NFS服务端重新发起建立连接时使用新的TCP端口。 强烈建议使用 noresvport 参数,这可以保障网络发生故障恢复事件后文件系统服务不会中断。 lock/nolock 选择是否使用NLM协议在服务器上锁文件。当选择nolock选项时,锁对于同一主机的应用有效,对不同主机不受锁的影响。建议值:nolock。如不加此参数,则默认为lock,就会发生其他服务器无法对此文件系统写入的情况。 proto NFS客户端向服务器发起传输请求使用的协议,可以为UDP或者TCP。 当前通用文件系统不支持UDP传输协议,需要设置为TCP传输协议,即proto=tcp。 挂载地址 SFS Turbo标准型、标准型-增强版、性能型、性能型-增强版文件系统的格式为:文件系统IP:/,例如192.168.0.0:/。 SFS Turbo 20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB和HPC缓存型文件系统的格式为:域名地址:/,例如xxx.sfsturbo.internal:/。 如图1所示。 说明: x是数字或字母。 由于挂载地址名称较长,需要拉宽该栏以便完整显示。 本地路径 云服务器上用于挂载文件系统的本地路径,例如“/local_path”。 图1 挂载地址 挂载文件系统时,更多性能调优的挂载参数,可参考表2配置,各参数之间以逗号进行分隔。例如: mount -t nfs -o vers=3,timeo=600,nolock,rsize=1048576,wsize=1048576,hard,retrans=3,tcp,noresvport,ro,async,noatime,nodiratime 挂载地址 本地路径 表2 挂载参数 参数 说明 rsize 每次向服务器读取文件的最大字节数。实际数据小于或等于此值。rsize必须是1024倍数的正整数,小于1024时自动设为4096,大于1048576时自动设为1048576。默认时,服务器和客户端进行协商后设置。 建议设置为最大值1048576。 wsize 每次向服务器写入文件的最大字节数。实际数据小于或等于此值。wsize必须是1024倍数的正整数,小于1024时自动设为4096,大于1048576时自动设为1048576。默认时,服务器和客户端进行协商后设置。 建议设置为最大值1048576。 soft/hard 取值为soft,即软挂载方式挂载系统,如果NFS请求超时,则客户端向调用程序返回错误;取值为hard,即使用硬连接方式,如果NFS请求超时,则客户端一直重新请求直至成功。 默认为hard。 retrans 客户端返回错误前的重传次数。建议值:1。 tcp/udp 不指定mountproto时,客户端默认先尝试使用udp协议挂载,如果udp网络不通则会在卡顿几秒后再尝试tcp协议挂载。 当前默认没有放通安全组入方向mount协议的udp端口号,需要将mount挂载协议设置为TCP传输协议,即mountproto=tcp。 ro/rw ro:表示采用只读的方式挂载。 rw:表示采用读写的方式挂载。 默认为rw。未写明ro/rw时,则默认为采用rw读写的方式挂载。 noresvport 指定NFS客户端向NFS服务端重新发起建立连接时使用新的TCP端口。 强烈建议使用 noresvport 参数,这可以保障网络发生故障恢复事件后文件系统服务不会中断。 sync/async sync为同步写入,表示将写入文件的数据立即写入服务端;async为异步写入,表示将数据先写入缓存,再写入服务端。 同步写入要求NFS服务器必须将每个数据都刷入服务端后,才可以返回成功,时延较高。建议设置为async。 noatime 如果不需要记录文件的访问时间,可以设置该参数。避免频繁访问时,修改访问时间带来的开销。 nodiratime 如果不需要记录目录的访问时间,可以设置该参数。避免频繁访问时,修改访问时间带来的开销。 没有“使用建议”的参数推荐使用默认参数。 挂载完成后,执行如下命令,查看已挂载的文件系统。 mount -l 如果回显包含如下类似信息,说明挂载成功。 挂载地址 on /local_path type nfs (rw,vers=3,timeo=600,nolock,addr=) 挂载成功后,用户可以在云服务器上访问文件系统,执行读取或写入操作。 支持写入的单个文件最大容量为1PB。
  • 前提条件 确定云服务器操作系统类型,不同操作系统安装NFS客户端的命令不同。 已完成创建SFS Turbo文件系统,并获取到SFS Turbo文件系统的挂载地址。 存在至少一台与SFS Turbo文件系统所属VPC相同的云服务器。 云服务器(ECS)上已配置了用于内网解析SFS Turbo文件系统域名的DNS服务器的IP地址。 使用域名(DNS)挂载SFS Turbo文件系统时,不支持跨区域(Region)挂载,但可以通过指定IP的方式跨区域(Region)挂载,网络互通方式具体参考云连接CC“跨区域VPC互通”。
  • 约束与限制 该约束仅针对本地挂载路径(即挂载点),不影响其他文件或目录。 暂不支持修改本地挂载路径(即挂载点)的元数据,即不支持对挂载点的元数据做如下操作: - touch:更新文件的访问时间和修改时间 - rm:删除文件或目录 - cp:复制文件或目录 - mv:移动文件或目录 - rename:重命名文件或目录 - chmod:修改文件或目录的权限 - chown:修改文件或目录的所有者 - chgrp:修改文件或目录的所属组 - ln:创建硬链接 - link:创建硬链接 - unlink:删除硬链接 本地挂载路径(即挂载点根目录)的atime、ctime和mtime属性是当前时间,每次查询根目录属性返回的都是服务端当时时间的值。
  • Linux系统操作步骤 以root用户登录云服务器。 执行vi /etc/resolv.conf命令编辑“/etc/resolv.conf”文件。在已有的nameserver配置前写入DNS服务器的IP地址,如图1所示。 图1 配置DNS 格式如下: nameserver 100.125.1.250 nameserver 100.125.17.29 单击“Esc”,并输入:wq,保存退出。 执行以下命令,查看IP地址是否写入成功。 cat /etc/resolv.conf 执行以下命令,验证文件系统域名是否可以解析到IP地址。 nslookup 文件系统域名 文件系统域名请从文件系统的挂载地址中获取。 (可选)在使用DHCP服务的网络环境,需要对“/etc/resolv.conf”文件进行锁定设置,禁止文件在云服务器重启后进行自动修改。防止2中写入的DNS服务器的IP地址被重置。 执行如下命令,进行文件锁定设置。 chattr +i /etc/resolv.conf 如果需要再次对锁定文件进行修改,执行chattr -i /etc/resolv.conf命令,解锁文件。 执行如下命令,验证是否设置成功。 lsattr /etc/resolv.conf 回显如图2所示信息,表明文件处于锁定状态。 图2 锁定状态的文件
  • 操作步骤 登录高性能弹性文件服务管理控制台。 在文件系统列表中查看所有文件系统的基本信息,参数说明如表1所示。 表1 参数说明 参数 说明 名称 已创建的文件系统名称,例如:sfs-turbo-name001。 状态 文件系统的状态,包含“可用”、“不可用”、“已冻结”、“正在创建”、“正在删除”、“删除错误”、“创建失败”、“正在扩容”、“扩容错误”、“正在缩容”、“缩容错误”和“缩容失败”。 可用区 文件系统所在的可用区。 类型 文件系统的类型。 协议类型 文件系统的协议类型为NFS或SMB。 已用容量(GB) 文件系统存放数据已使用的空间。 说明: 该数据不是实时数据,平均15分钟刷新一次。 最大容量(GB) 文件系统的最大使用容量。 加密 已经创建的文件系统的加密状态,包括“是”和“否”。 企业项目 文件系统归属的企业项目。 共享路径 文件系统的挂载路径。 计费模式 已经创建的文件系统的计费模式,包括“按需计费”和“包年/包月”。其中,按需计费模式同时展示创建文件系统的时间,包年/包月模式同时展示包年/包月到期时间 操作 SFS Turbo包含“扩容”、“删除”、“监控”、“转包周期”、“创建备份”、“续订”和“退订”操作。 说明: 包年/包月的SFS Turbo文件系统创建完成后,大约1到2分钟后,才能执行续订、退订等操作。 单击文件系统名称,可查看更多的文件系统信息。 图1 SFS Turbo文件系统的扩展信息 (可选)通过文件系统名称关键字、ID、可用区、类型、协议类型、已用容量或文件系统状态来过滤查看指定的文件系统。
  • 安装AITurbo SDK 请提交工单获取AITurbo SDK的安装包huawei_aiturbo_xxx.whl(xxx为具体版本号信息),并上传到环境。 安装AITurbo SDK依赖包。 AITurbo SDK依赖rpyc,setproctitle,PyYAML,pathlib2、psutil、loguru、numpy等三方库,安装方式如下: pip install rpyc setproctitle pathlib2 PyYAML numpy loguru psutil 安装AITurbo SDK,checkpoint的保存和加载优化依赖于AITurbo SDK: pip install huawei_aiturbo_xxx.whl
  • 背景 当前,大模型训练往往使用成百上千加速卡训练几周到几个月不等。在训练过程中,故障导致训练中断经常发生。训练程序一般采用周期checkpoint方案来将训练状态持久化到存储,当发生故障时,训练程序能恢复到故障之前的模型和优化器的状态继续训练。原生Pytorch系框架在保存checkpoint时均直接持久化到存储系统,耗时与模型大小、存储的IO性能等密切相关,往往需要几分钟到几十分钟不等,为了保证训练状态的一致性,保存checkpoint时训练必须暂停,保存时间影响了训练过程的整体效率。当发生故障,训练程序从已有checkpoint恢复时,每张卡都需要从持久化存储中加载,在训练集群规模较大,存储带宽较低的场景下,加载耗时可能会达到小时级,严重影响训练恢复。因此,我们在AITurbo SDK中提供了快速保存和加载checkpoint的功能,当前流行的两种大模型训练框架Megatron进行简单适配便可使用。
  • 加速加载checkpoint 在加载checkpoint的时候,利用内存快恢、checkpoint广播等技术,大大减少后端存储的带宽压力,提升加载效率。具体地,对于训练中进程级故障、硬件仍然健康的故障场景,主机侧客户端内存缓存仍会保留,本机缓存中的checkpoint仍可正常访问,此时可从主机侧客户端内存中直接加载checkpoint进行原地秒级快速恢复;为避免所有GPU/NPU卡同时从存储中加载checkpoint致使存储带宽成为拥塞瓶颈,在具有相同checkpoint的冗余组内,采用部分代表节点先从远端存储加载checkpoint并将checkpoint广播到剩余其他节点的恢复机制,这种策略显著降低大规模训练集群故障恢复过程对远端存储带宽的需求,加速大规模训练集群checkpoint快速恢复。 图2 加载checkpoint流程
  • 加速保存checkpoint 在保存checkpoint的时候,利用两阶段写、内存副本、异步持久化等技术保证checkpoint的快速、高可靠存储。具体地,第一阶段,各个节点将自己的checkpoint高速同步写入HOST侧的内存缓存中,同时写入配置好的backup节点内存缓存中,backup的内存副本可以在主节点进程异常退出时不会丢失内存checkpoint;第二阶段,拥有相同checkpoint的节点会选择代表节点异步写一份完整的checkpoint到SFS Turbo服务端进行持久化存储,通过异步方式最大程度隐藏了checkpoint持久化到远端存储的耗时,实现checkpoint秒级同步保存,避免训练任务长时间阻塞,异步保存阶段,主节点持久化过程中,内存中写入了相同检查点的备节点会持续监听主节点的保存结果。保存失败之后,备节点会接管主节点的持久化操作,代替主节点将检查点持久化下去,保证可靠性。 图1 保存checkpoint流程
共100000条