多台ECS实例批量挂载同一NFS协议文件系统

如果您的业务场景需要多台ECS实例共享同一NAS NFS协议文件系统中的数据,您可以通过云助手仅执行一次操作,实现多台ECS实例批量挂载同一NAS NFS协议文件系统。

前提条件

已创建文件系统。具体操作,请参见创建文件系统

网络环境

当您的业务的网络符合或包含部分如下场景,您可以通过控制台实现批量挂载文件系统。

  • ECS实例和NAS挂载点在同一VPC中。

  • ECS实例和NAS挂载点均为经典网络类型,且已在NAS文件系统挂载点的权限组中为ECS实例授权。具体操作,请参见管理权限组

  • ECS实例所在VPCNAS挂载点所在VPC已打通,且已在NAS文件系统挂载点的权限组中为ECS实例授权。更多信息,请参见通过云企业网实现同地域跨VPC挂载NAS

使用限制

  • 操作系统

    仅支持ECS Linux操作系统。其中,CoreOS、FreeBSDFedora-CoreOS版本不支持使用控制台一键挂载功能。如果您使用Red Hat版本,在挂载前需要通过rpm包管理方式安装云助手客户端。具体操作,请参见Linux系统安装步骤

  • 实例及工具状态

    • 仅支持状态为“运行中”的ECS实例。如果ECS实例状态为“启动中”、“停机”等状态,请您先修复实例状态。

    • 云助手为正常状态。

  • ECS限制

    ECS实例必须和NAS文件系统在同一地域内,云助手不支持对不同地域的ECS实例执行挂载操作。

  • 文件系统

    仅支持NFS协议文件系统。

操作步骤

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择运维与监控 > 云助手

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 公共命令页签,搜索挂载命令名称ACS-NAS-ClickMount-Mount-Linux-NFS.sh,然后单击执行

  5. 执行命令面板,配置命令信息执行参数并选中待挂载的ECS实例。

    名称

    描述

    命令内容

    单击查看命令内容确认命令内容。

    执行计划

    选择命令执行计划。

    • 立即执行:系统立即执行命令。

    • 系统下一次启动后:实例下次启动时执行命令。

    • 系统每次启动后:实例每次启动时执行命令。

    • 仅预检:预检此次请求,命令内容不会实际生效,检查项包括请求参数、实例执行环境、云助手Agent运行状态等。

    • 定时执行:系统在设置的时间间隔或者时间点执行命令。定时执行包括以下几种方式:

      • 固定时间间隔执行:基于Rate表达式,按照设置的时间间隔执行命令。时间间隔支持按秒、分钟、小时和天来选择,适用于在固定时间间隔执行任务的场景。

        说明

        固定时间间隔执行有以下限制条件:

        • 设置的时间间隔不大于7天、不小于60秒,且需大于定时任务的超时时间。

        • 执行间隔只基于固定频率,与任务实际执行需要的时间无关。例如设置每5分钟执行一次命令,任务需要2分钟执行完成,则在任务完成3分钟后继续执行下一轮。

        • 创建任务时不会立即执行。例如设置每5分钟执行一次命令,创建任务时不会立即执行一次命令,而是在任务创建完成后的5分钟后开始执行。

      • 仅在指定时间执行一次:按照设置的时区和执行时间点执行一次命令。

        例如设置执行时间2022-05-17 17:30:50时区(GMT+8:00) Asia/Shanghai,即表示系统会在中国/上海时间,20220517173050秒执行一次命令。

      • 基于时钟定时执行:基于Cron表达式,按照设置的定时任务执行命令。重复频率可精确到秒、分钟、小时、日期、月份、星期、年份,在指定的时区下,根据Cron表达式推算定时任务执行时间并执行。配置灵活,适用于较复杂的定时任务执行场景。关于Cron表达式的更多信息,请参见Cron表达式

        说明

        设置的最小时间间隔需大于或等于定时任务的超时时间,且不小于10 秒。

        例如设置重复频率0 0 12 ? * WED 2022时区(GMT+8:00) Asia/Shanghai,即表示系统会在中国/上海时间,2022年每个星期三中午12:00执行命令。

    执行路径

    命令的执行路径。

    执行用户

    ECS实例中执行命令的用户名。

    使用最小权限执行命令是权限管理的最佳实践,建议您以普通用户身份执行云助手命令。更多信息,请参见设置普通用户执行云助手命令

    默认情况下,在Linux实例中以root用户执行命令,在Windows实例中以System用户执行命令。

    超时时间

    设置命令在实例中执行的超时时间,当执行命令的任务超时后,云助手将强制终止任务进程。

    单位为秒,默认为您创建命令时设置的超时时间

    说明

    该值仅作为该次命令执行的超时时间,不会改变命令本身设置的超时时间。

    标签

    设置命令执行的标签键标签值,方便后续分类管理维护。

    任务终止模式

    手动停止或执行超时打断任务时的模式。

    • 脚本进程:停止任务时会终止脚本进程。

    • 进程树:停止任务时会终止进程树(脚本进程以及它创建的所有子进程的集合)。

    引导程序

    脚本执行的引导程序。

    命令参数

    命令参数处的文本框内,填写命令中自定义参数的取值。

    • MountTargetDomain:文件系统挂载点地址。

      您可以在NAS控制台目标文件系统的挂载点列表查看挂载点地址,例如****.nas.aliyuncs.com。具体操作,请参见管理挂载点

    • EcsLocalPath:当前服务器上待挂载NAS文件系统的本地路径。

      必须是以/开头的绝对路径(例如:/mnt)且是空目录。

    • NasRemotePath:NAS文件系统的目录。

      您可以配置为NAS的根目录(/)或任意子目录(例如:/abc)。

    • ProtocolType:选择文件系统协议类型。

      • 通用型NAS:NFSv3NFSv4.0

      • 极速型NAS:NFSv3

      重要

      请您正确输入参数值,注意大小写且参数值前后不能输入空格,参数错误将导致命令执行失败。

    • AutoMountOnBoot:是否开启开机自动挂载文件系统。

      取值:truefalse。开启开机自动挂载后,当您重启ECS实例时,无需重复挂载操作。

      重要

      请您正确输入参数值,注意参数值为全小写,且参数值前后不能输入空格,参数错误将导致命令执行失败。

    • MountParam:挂载参数。

      无特殊业务场景,默认不配置该参数。各参数具体含义,请参见挂载NFS协议文件系统

    选择实例

    选中一台或多台目标ECS实例,

    若实例过多,您可以在搜索框内输入实例ID、实例名称或标签等,并过滤云助手客户端的状态。

  6. 单击执行

查询命令执行结果

在执行挂载、卸载或查询操作后,您可以通过云助手批量查询操作结果。

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择运维与监控 > 云助手

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 命令执行结果页签的搜索框中,选择命令名称并输入待查询命令名称,然后单击查询图标图标。

    • 挂载:ACS-NAS-ClickMount-Mount-Linux-NFS.sh

    • 卸载:ACS-NAS-ClickMount-Unmount-Linux-NFS.sh

    • 查询:ACS-NAS-ClickMount-Check-Linux-NFS.sh

  5. 在命令执行结果列表中,找到目标命令名称,单击操作列的查看

  6. 在命令执行详情面板下的实例列表页签,单击目标实例名称前的批量图标001图标,查看命令结果详情。

    如果命令执行结果中有报错,请您分析错误原因并修正,修正后再次尝试执行该命令。错误信息及说明,请参见错误信息

  7. 查询完成后,单击关闭

错误信息

您可以根据命令执行结果中的ErrorCode查询下表中的说明。

ErrorCode

ErrorMsg

SystemNoPermission

操作系统执行权限不足,需要使用root权限。

SystemMissingMounts

操作系统缺少挂载信息文件/proc/self/mounts

SystemMissingFstab

操作系统缺少自动挂载配置文件/etc/fstab

SystemBashOutdated

操作系统的Bash版本太旧,请升级到4.0或更高版本。

BadInputMountTarget

输入的挂载点参数错误,请使用以.nas.aliyuncs.com结尾的挂载点。

BadInputLocalPath

输入的挂载路径参数错误,请使用以/开头的Linux绝对路径。

BadInputRemotePath

输入的NAS目录参数错误,请使用以/开头的绝对路径。

BadInputProtocol

输入的协议类型参数错误,请使用NFSv3NFSv4.0

BadInputAutoMount

输入的自动挂载参数错误,请使用truefalse

BadInputForceUnmount

输入的强制卸载参数错误,请使用truefalse

NasClientNfsInstallFail

NFS客户端安装失败,请手动安装。

LocalPathCreateFail

挂载路径创建失败,请手动创建。

LocalPathAlreadyMounted

挂载路径已经挂载到其他NAS挂载点,请选择其他路径。

LocalPathNonEmpty

挂载路径目录非空,请选择其他路径。

LocalPathNotOnMountTarget

挂载路径没有挂载到此NAS挂载点,请从正确的NAS挂载点发起操作。

LocalPathMultipleMounts

挂载路径被重复挂载了多次,请确认后强制卸载。

LocalPathAncestorMounted

挂载路径的父目录已被挂载,请选择其他路径。

LocalPathNonExistent

挂载路径不存在,请选择其他路径。

RemotePathCreateFail

NAS子目录创建失败,请选择NAS根目录挂载。

MountFailRemoteRoot

NAS根目录挂载失败。排查方法,请参见挂载文件系统失败故障排查

MountFailRemotePath

NAS子目录挂载失败,请选择NAS根目录挂载。

UnmountFailRemoteRoot

在挂载NAS子目录之前,卸载NAS根目录失败,请选择NAS根目录挂载。

UnmountFailLocalPath

NAS卸载失败,请停止相关应用后强制卸载。

UnmountFailRemoveAutoMount

取消NAS自动挂载配置失败。

相关操作

您通过云助手执行命令批量查询ECS实例或批量卸载文件系统。

操作

命令

说明

批量卸载

ACS-NAS-ClickMount-Unmount-Linux-NFS.sh

请您通过云助手执行命令,并将步骤5中的命令替换为卸载命令,创建批量卸载任务。

在执行卸载命令时,需配置如下参数:

  • mounttargetdomain:文件系统挂载点地址。

    您可以在NAS控制台目标文件系统的挂载点列表查看挂载点地址,例如****.nas.aliyuncs.com。具体操作,请参见管理挂载点

  • ecslocalpath:服务器上挂载NAS文件系统的本地路径。

    您可以在NAS控制台目标文件系统的挂载点列表单击挂载,在目标ECS实例的操作列,单击查询挂载详情,查看挂载路径。

  • cancelautomountonboot:取消自动挂载。取值:truefalse。

    当取值为true时,将修改ECS实例中的/etc/fstab文件。

  • forceunmount:强制卸载。取值:truefalse。

    强制卸载会执行umount -lf <挂载路径>,可能导致未落盘数据丢失并造成相关应用异常退出,建议您先在ECS上执行fuser -mv <挂载路径>命令,查看mount之外的相关应用。当确认无运行中的相关应用且无法正常卸载文件系统,可以使用强制卸载功能。强制卸载的风险,请参见强制卸载NAS文件系统有哪些风险?

批量查询

ACS-NAS-ClickMount-Check-Linux-NFS.sh

请您通过云助手执行命令,并将步骤5中的命令替换为查询命令,创建批量查询任务。

在执行查询命令时,需配置如下参数:

mounttargetdomain:挂载点地址。如果未配置此参数,查询结果将返回ECS实例挂载的所有NAS文件系统信息。

常见问题