
# 进阶使用：使用ECS作为NFS服务器实现多用户资源隔离
#### 应用场景
FunctionGraph的函数除了支持挂载弹性文件系统SFS外，也支持挂载ECS服务器共享出的NFS共享路径。在多用户使用场景下，使用ECS能够有效地进行多用户的资源管理，通过配置特定的权限，满足用户之间需要强隔离的使用需求。
#### 前提条件
1. 每位用户均需完成[部署AI绘画ComfyUI/ComfyUI+FLUX准备工作](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1197.html)，委托中包含"SWR Admin"、"VPC Administrator"、"Server Administrator"、"SFS FullAccess"和"SFS Turbo FullAccess"权限。
2. 每位用户均需完成[部署和使用AI绘画ComfyUI/ComfyUI+FLUX应用](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1198.html)步骤，应用创建成功。
 
 #### 步骤一：购买ECS服务器
进入[购买ECS服务器](https://console.huaweicloud.com/ecm/?#/ecs/createVm)页面，购买过程中请参照以下注意事项。实例类型可根据业务需要自行选择，其他参数可参考[设置ECS购买参数](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7002.html)。
- 基础配置：如[图1]所示，本示例使用"按需计费"，区域选择"华东-上海一"。
  图1基础配置   
  ![](https://support.huaweicloud.com/bestpractice-functiongraph/zh-cn_image_0000002166992873.png "点击放大") 
- 操作系统：本示例镜像选用EulerOS 2.5 64bit(40GiB)。
  ![](https://support.huaweicloud.com/bestpractice-functiongraph/public_sys-resources/note_3.0-zh-cn.png)
  不同镜像版本下，部分Linux命令可能存在差异。
  
- 储存与备份：鉴于多数模型文件的大小在1GB到10GB以上，建议依据具体需求选择系统盘容量，并参考[图2]新增数据盘进行挂载。
  图2系统盘选择   
  ![](https://support.huaweicloud.com/bestpractice-functiongraph/zh-cn_image_0000002131793126.png "点击放大") 
- 网络：虚拟私有云与主网卡请选择[创建虚拟私有云VPC和子网](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1197.html#functiongraph_05_1197__section7891227551)中所创建VPC与子网，如[图3]所示。
  图3网络配置   
  ![](https://support.huaweicloud.com/bestpractice-functiongraph/zh-cn_image_0000002166954409.png "点击放大") 
- 安全组：请参考[图4]新建安全组，入方向规则允许子网内IP访问端口111、2049、2051、2052、20048以支持NFS服务；其他端口，如22端口用于SSH和SFTP、21端口用于FTP等，具体协议端口和源地址请根据实际需要配置。
  图4安全组设置   
  ![](https://support.huaweicloud.com/bestpractice-functiongraph/zh-cn_image_0000002131634962.png "点击放大") 
- 公网访问：请根据实际需求购买弹性公网IP并设置带宽大小。
 
#### 步骤二：设置ECS下的NFS共享
ECS购买完成后即可进行NFS共享设置，以下示例中以两个用户user1和user2的场景进行介绍，可根据实际需要增减用户数。
1. 添加用户user1和user2并创建home目录。
   ```
   useradd -m user1 && useradd -m user2
   ```
   
2. 修改user1和user2的密码。
   ```
   passwd user1
   passwd user2
   ```
   
3. 创建用户的共享目录，并修改共享目录操作权限为777。
   ```
   mkdir /home/user1/share && chmod 777 /home/user1/share
   mkdir /home/user2/share && chmod 777 /home/user2/share
   ```
   ![](https://support.huaweicloud.com/bestpractice-functiongraph/public_sys-resources/note_3.0-zh-cn.png)
   共享目录作为用户home目录的子目录，限制其他用户操作，确保函数挂载该目录后拥有操作权限。因此，设置权限为777不会导致权限过度。
   
4. 安装NFS服务。
   ```
   yum install rpcbind nfs-utils // 使用apt或其他包管理工具的镜像请使用相应的命令
   ```
   
5. 编辑/etc/exports，写入如下内容：
   ```
   /home/user1/share xx.xx.xx.xx/xx(rw) // 网段处请填写之前创建的子网网段
   /home/user2/share xx.xx.xx.xx/xx(rw) // 网段处请填写之前创建的子网网段
   ```
   
6. 启动NFS服务。
   ```
   systemctl start rpcbind nfs
   ```
   
7. 设置开机自启。
   ```
   echo "xx.xx.xx.xx:/home/user1/share /nfs nfs4 defaults 0 0" >> /etc/fstab // IP处请填ECS在子网中的IP
   echo "xx.xx.xx.xx:/home/user2/share /nfs nfs4 defaults 0 0" >> /etc/fstab // IP处请填ECS在子网中的IP
   mount -av
   ```
   
8. 查看共享信息，显示如[图5]所示即表示创建NFS共享成功。
   ```
   showmount -e xx.xx.xx.xx  // 请填搭建服务器主机的私有地址
   ```
   图5查看共享信息   
   ![](https://support.huaweicloud.com/bestpractice-functiongraph/zh-cn_image_0000002166992877.png) 
 
#### 步骤三：在AI绘画应用中挂载ECS
登录[函数工作流控制台](https://console.huaweicloud.com/functiongraph/)，进入应用中心，用户user1和user2已分别在各自的账号下成功创建了AI绘画应用，需在各自的应用详情页进行相同操作。以下以user1的AI绘画ComfyUI应用为例进行介绍，AI绘画ComfyUI+FLUX应用的操作步骤相同。
1. user1进入应用详情页，在"资源"列表中分别找到逻辑名称为"comfyui"（AI绘画ComfyUI+FLUX应用中为"flux"函数资源）和"custom_models_tool"的函数资源，如[图6]所示单击链接进入函数详情页面。
   
   两个函数的操作相同，此处以"comfyui"函数为例。
   图6user1的函数服务   
   ![](https://support.huaweicloud.com/bestpractice-functiongraph/zh-cn_image_0000002131793130.png "点击放大")
   
   
2. 进入函数详情页，如[图7]所示单击"设置 \> 网络配置"，打开"函数访问VPC内资源"开关并配置VPC和子网，请选择[步骤一：购买ECS服务器]中使用的VPC和子网，其余参数保持默认，单击"保存"。
   
   图7网络配置   
   ![](https://support.huaweicloud.com/bestpractice-functiongraph/zh-cn_image_0000002166954413.png "点击放大")
   
   
3. 在"设置"页签的左侧导航栏中，单击"磁盘挂载 \> 添加挂载"，配置完成后单击"确定"。
   
   - 文件系统来源：选择"ECS"。
   
   - 云服务器名称：选择[步骤一：购买ECS服务器]创建的云服务器。
   
   - 共享目录路径：填写"/home/user1/share"（user2的应用则填写/home/user2/share）。
   
   - 函数访问路径：填写"/mnt/auto"。
   
   
   ![](https://support.huaweicloud.com/bestpractice-functiongraph/public_sys-resources/note_3.0-zh-cn.png)
   如已挂载SFS Turbo文件系统，可在成功挂载ECS后取消挂载SFS Turbo文件系统，并及时释放SFS Turbo文件系统资源避免持续收费。
   
   
4. 参照[1]\~[3]完成"custom_models_tool"的函数设置。
 
#### 步骤四：上传自定义模型和节点文件
1. 返回应用详情页，单击"开始使用"进入ComfyUI界面。函数会自动在挂载目录中创建应用所需目录和文件。
2. 界面成功加载后，请及时关闭ComfyUI页面，单击"上传模型"打开文件管理工具，默认用户名和密码均为"admin"，登录后请在"设置"页签修改密码，保证数据安全。
3. 将模型、节点等文件分别上传至对应目录。部分关键目录可参考[表2](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1199.html#functiongraph_05_1199__table12333192181910)。
 
