更新时间:2024-04-16 GMT+08:00
分享

使用ECS作为NFS服务器实现多用户资源隔离

使用ECS作为NFS服务器实现多用户资源隔离

FunctionGraph的函数实例除了支持挂载SFS弹性文件系统外,也支持挂载ECS服务器共享出来的NFS共享路径,使用ECS更便于进行多租户的资源管理。

  1. 购买ECS服务器,其中以下几点需要注意:

    • 请注意区域选择“华东-上海一”,具体ECS的规格和镜像版本用户可以根据业务需要自行选择,此处以EulerOS 2.5 64bit(40GiB)为例,不同镜像版本的部分Linux命令略有不同,请注意区分。
      图1 基础配置
    • 由于很多模型文件都在1G到10G+的大小,建议您根据具体需要选择系统盘容量,或者挂载数据盘。配置好后,单击“下一步:网络配置”,进入网络配置页面。
      图2 系统盘选择
    • VPC、子网请选择之前步骤创建的VPC和子网
      图3 VPC和子网配置
    • 安全组设置请参考以下截图,入方向规则对子网内IP网段开放111、2049、2051、2052、20048端口,用于NFS服务;其他端口如:22端口用于SSH和SFTP、21端口用于FTP等,具体请根据实际需要配置。
      图4 安全组设置
    • 公网IP也请您根据业务需要购买。
      图5 公网IP购买

  2. 设置NFS共享。

    ECS购买完成后即可进行NFS共享设置,以下示例中以两个用户user1、user2进行介绍。
    1. 添加用户user1、user2并创建home目录。
      useradd -m user1 && useradd -m user1
    2. 修改密码。
      passwd user1
      passwd user2
    3. 创建用户的共享目录,并修改共享目录操作权限为777。
      mkdir /home/user1/share && chmod 777 /home/user1/share
      mkdir /home/user2/share && chmod 777 /home/user2/share

      共享目录是用户home目录的子目录,其他用户不能操作该目录,进而保证函数挂载该目录后具有操作权限,所以权限为777不会造成越权。

    4. 安装NFS服务。
      yum install rpcbind nfs-utils // 使用apt或其他包管理工具的镜像请使用相应的命令
    5. 编辑/etc/exports,写入如下内容:
      /home/user1/share xx.xx.xx.xx/xx(rw) // xx.xx.xx.xx/xx请填写之前创建的子网的网段
      /home/user2/share xx.xx.xx.xx/xx(rw) // xx.xx.xx.xx/xx请填写之前创建的子网的网段
    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. 查看共享信息,显示如下即表示创建NFS共享成功。
      showmount -e xx.xx.xx.xx  (此处IP地址为搭建服务器主机地址)
      图6 查看共享信息

应用挂载

在FunctionGraph应用中心为user1和user2分别创建一个Stable-Diffusion应用,下面以user1为例介绍,user2操作步骤相同。

  1. 进入user1的应用“总览”页,在“资源”列表中分别找到逻辑名称为“stable_diffusion”和“custom_models_tool”的资源,单击链接进入函数详情页面。两个函数的操作相同,此处以“stable_diffusion”函数为例。

    图7 user1的函数服务

  2. 进入函数详情页,依次单击“设置 > 网络配置”,打开“函数访问VPC内资源”开关并配置VPC、子网,请选择与ECS相同的VPC和子网,最后单击“保存”。

    图8 网络配置

  3. 在左侧导航栏中,选择“磁盘挂载 > 添加挂载”。

    • 文件系统来源:选择“ECS”。
    • 云服务器名称:选择之前创建NFS共享的ECS。
    • 共享目录路径:填写“/home/user1/share”(user2的应用则填写/home/user2/share)。
    • 函数访问路径:填写“/mnt/auto”。
    图9 添加挂载

  4. 配置完成后,单击“确定”。

访问WebUI程序创建相关目录和文件

  1. 进入user1的应用“总览”页,单击右上角“开始使用”,耐心等待函数启动。函数会自动在挂载目录中创建应用所需目录。
  2. 回到user1的应用“总览”页,单击“上传模型”打开文件管理工具。

    图10 文件管理工具

  3. 将您的模型、插件等文件分别放入对应目录。以下介绍部分主要目录,其他目录请自行查看。

    • sd/models/Stable-diffusion,用于保存Stable-Diffusion checkpoint模型文件。
    • sd/models/VAE,用于保存VAE文件。
    • sd/models/Lora,用于保存Lora模型。
    • sd/extensions,用于保存插件。

  4. 重新加载WebUI,即可看到新传入的模型。

    图11 Checkpoints新增模型
    图12 LoRA新增模型

  5. 单击右上角“生成”,图片会自动保存到“/home/user1/share/sd/outputs/txt2img/202x-xx-xx”目录。

    图13 图片保存目录

分享:

    相关文档

    相关产品