云服务器内容精选

  • 问题现象 训练作业访问挂载的EFS,或者是执行.sh启动脚本时,出现如下错误: [Errno 13]Permission denied: '/xxx/xxxx' 图1 错误日志 bash: /bin/ln: Permission denied 自定义镜像中,bash:/home/ma-user/.pip/pip.conf:Permission Denied 自定义镜像中,tee: /xxx/xxxx: Permission denied cp: cannot stat '': No such file or directory
  • 原因分析 出现该问题的可能原因如下: [Errno 13]Permission denied: '/xxx/xxxx' 上传数据时文件所属与文件权限未修改,导致训练作业以work用户组访问时没有权限了。 在代码目录中的.sh拷贝到容器之后,需要添加“x”可执行权限。 bash: /bin/ln: Permission denied 因安全问题,不支持用户开通使用In命令。 bash:/home/ma-user/.pip/pip.conf:Permission Denied 因从V1切换到V2时,ma-user的uid仍是1102未改变导致。 tee: /xxx/xxxx: Permission denied cp: cannot stat '': No such file or directory 可能原因是用户使用的启动脚本为旧版本的run_train.sh,脚本里面有某些环境变量在新版本下发的作业中并不存在这些环境变量导致。 可能原因是使用Python file接口并发读写同一文件。
  • 处理方法 对挂载盘的数据加权限,可以改为与训练容器内相同的用户组(1000),假如/nas盘是挂载路径,执行如下代码。 chown -R 1000:1000 /nas 或者 chmod 777 -R /nas 如果是自定义镜像中拉取的.sh脚本没有执行权限,可以在自定义脚本启动前执行"chmod +x xxx.sh"添加可执行权限。 ModelArts控制台上创建训练作业自定义镜像入口,默认以1000 uid用户来启动v2容器镜像,将ma-user的uid从1102改为1000,改变方式如下(假若需要sudo权限,可取消sudoers行的注释): v1训练作业环境变量迁移v2说明: v1的DLS_TASK_NUMBER环境变量,可以使用v2的MA_NUM_HOSTS环境变量替换,即选择的训练节点数。 v1的DLS_TASK_INDEX环境变量,当前可以使用v2的VC_TASK_INDEX环境变量替换,下一步使用MA_TASK_INDEX替换,建议使用demo script中的方式获取,以保证兼容性。 v1的BATCH_CUSTOM0_HOSTS环境变量,可以使用v2的${MA_VJ_NAME}-${MA_TASK_NAME}-0.${MA_VJ_NAME}:6666替换。 一般而言,v1的BATCH_CUSTOM{N}_HOSTS环境变量,可以使用v2的${MA_VJ_NAME}-${MA_TASK_NAME}-{N}.${MA_VJ_NAME}:6666替换。 分析代码中是否存在并发读写同一文件的逻辑,如有则进行修改。 如用户使用多卡的作业,那么可能每张卡都会有同样的读写数据的代码,可参考如下代码修改。 import moxing as mox from mindspore.communication import init, get_rank, get_group_size init() rank_id = get_rank() # 仅让0号卡进行数据下载 if rank_id % 8 == 0: mox.file.copy_parallel('obs://bucket-name/dir1/dir2/', '/cache')
  • 步骤3:用户登录并验证权限 用户创建完成后,可以使用新用户的用户名及身份凭证登录华为云验证权限,即“GeminiDB ReadOnlyAccess”权限。更多用户登录方法请参见用户登录华为云方法。 在华为云登录页面,单击右下角的“IAM用户登录”。 图14 IAM用户登录 在“IAM用户登录”页面,输入帐号名、用户名及用户密码,使用新创建的用户登录。 帐号名为该IAM用户所属华为帐号的名称。 用户名和密码为帐号在IAM创建用户时输入的用户名和密码。 如果登录失败,您可以联系您的帐号主体,确认用户名及密码是否正确,或是重置用户名及密码,重置方法请参见忘记IAM用户密码。 登录成功后,进入华为云控制台,请先切换至授权区域。 图15 切换至授权区域 在“服务列表”中选择GeminiDB Mongo接口,进入主界面,单击右上角“购买数据库实例”,若提示权限不足,表示“GeminiDB ReadOnlyAccess”已生效。 在“服务列表”中选择除GeminiDB Mongo接口服务外的任一服务,如“弹性云服务器”,若提示权限不足,表示“GeminiDB ReadOnlyAccess”已生效。
  • 步骤3:用户登录并验证权限 用户创建完成后,可以使用新用户的用户名及身份凭证登录华为云验证权限,即“GaussDB NoSQL ReadOnlyAccess”权限。更多用户登录方法请参见用户登录华为云方法。 在华为云登录页面,单击右下角的“IAM用户登录”。 图14 IAM用户登录 在“IAM用户登录”页面,输入帐号名、用户名及用户密码,使用新创建的用户登录。 帐号名为该IAM用户所属华为帐号的名称。 用户名和密码为帐号在IAM创建用户时输入的用户名和密码。 如果登录失败,您可以联系您的帐号主体,确认用户名及密码是否正确,或是重置用户名及密码,重置方法请参见忘记IAM用户密码。 登录成功后,进入华为云控制台,请先切换至授权区域。 图15 切换至授权区域 在“服务列表”中选择“云数据库 GaussDB(for Mongo)”,进入主界面,单击右上角“购买数据库实例”,若提示权限不足,表示“GaussDB NoSQL ReadOnlyAccess”已生效。 图16 登录云数据库 GaussDB(for Mongo) 在“服务列表”中选择除云数据库 GaussDB(for Mongo)服务外的任一服务,如“弹性云服务器”,若提示权限不足,表示“GaussDB NoSQL ReadOnlyAccess”已生效。