云服务器内容精选

  • 创建开发环境并使用 镜像注册成功后,即可在ModelArts控制台的Notebook页面,创建开发环境时选择该 自定义镜像 。 图7 创建开发环境 打开开发环境,即可看到Dockerfile中创建的conda环境pytorch_1_8。 图8 打开开发环境 单击图中的pytorch_1_8,即可创建一个ipynb文件,导入torch,可以看到安装的pytorch 1.8已经能够使用。 图9 创建一个ipynb文件 再打开一个Terminal,查看ffmpeg和gcc的版本,是Dockerfile中安装的版本。 图10 查看ffmpeg和gcc的版本
  • 制作自定义镜像 这一节描述如何编写一个Dockerfile,并据此构建出一个新镜像在Notebook创建实例并使用。关于Dockerfile的具体编写方法,请参考官网。 查询基础镜像(第三方镜像可跳过此步骤) ModelArts提供的公共镜像,请参考Notebook专属预置镜像列表,根据预置镜像的引擎类型在对应的章节查看镜像URL。 连接 容器镜像服务 。 登录容器 镜像服务 控制台。选择左侧导航栏的“总览”,单击页面右上角的“登录指令”,在弹出的页面中单击复制登录指令。 图4 获取登录指令 此处生成的登录指令有效期为24小时,如果需要长期有效的登录指令,请参见获取长期有效登录指令。获取了长期有效的登录指令后,在有效期内的临时登录指令仍然可以使用。 登录指令末尾的 域名 为镜像仓库地址,请记录该地址,后面会使用到。 在安装容器引擎的机器中执行上一步复制的登录指令。登录成功会显示“Login Succeeded”。 拉取基础镜像或第三方镜像(此处以基础镜像举例,第三方镜像直接替换镜像地址)。 拉取ModelArts提供的公共镜像(请参考预置镜像)。 docker pull swr.cn-north-4.myhuaweicloud.com/atelier/notebook2.0-pytorch-1.4-kernel-cp37:3.3.3-release-v1-20220114 编写Dockerfile。 vim一个Dockerfile,如果使用的基础镜像是ModelArts提供的公共镜像,Dockerfile的具体内容可参考Dockerfile文件(基础镜像为ModelArts提供)。 如果使用的基础镜像是第三方镜像(非ModelArts提供的公共镜像),Dockerfile文件中需要添加uid为1000的用户ma-user和gid为100的用户组ma-group,具体可参考Dockerfile文件(基础镜像为非ModelArts提供)。 本例的Dockerfile将基于PyTorch基础镜像安装pytorch 1.8, ffmpeg 3和gcc 8,构建一个面向AI任务的镜像。 构建镜像 使用docker build命令从Dockerfile构建出一个新镜像。命令参数解释如下: “-t” 指定了新的镜像地址,包括{局点信息}/{组织名称}/{镜像名称}:{版本名称},请根据实际填写。建议使用完整的swr地址,因为后续的调试和注册需要使用。 “-f ”指定了Dockerfile的文件名,根据实际填写。 最后的“ . ”指定了构建的上下文是当前目录,根据实际填写。 docker build -t swr.cn-north-4.myhuaweicloud.com/sdk-test/pytorch_1_8:v1 -f Dockerfile . 图5 构建成功
  • 准备Docker机器并配置环境信息 准备一台具有Docker功能的机器,如果没有,建议申请一台弹性云服务器并购买弹性公网IP,并在准备好的机器上安装必要的软件。 ModelArts提供了ubuntu系统的脚本,方便安装docker。 本地Linux机器的操作等同E CS 服务器上的操作,请参考本案例。 登录ECS控制台,购买弹性云服务器,镜像选择“公共镜像”,推荐使用ubuntu18.04的镜像;系统盘设置为100GiB。具体操作请参考购买并登录弹性云服务器。 图2 选择镜像和磁盘 购买弹性公网IP并绑定到弹性云服务器。具体操作请参考配置网络。 配置VM环境。 在docker机器中,使用如下命令下载安装脚本。 wget https://cnnorth4-modelarts-sdk.obs.cn-north-4.myhuaweicloud.com/modelarts/custom-image-build/install_on_ubuntu1804.sh 当前仅支持ubuntu系统的脚本。 在docker机器中并执行如下命令,即可完成环境配置。 bash install_on_ubuntu1804.sh 图3 配置成功 source /etc/profile 安装脚本依次执行了如下任务: 安装docker。 如果挂载了GPU,则会安装nvidia-docker2,用以将GPU挂载到docker容器中。
  • 使用场景和构建流程说明 用户可以使用ModelArts提供的基础镜像或第三方的镜像来编写Dockerfile,在ECS服务器上构建出完全适合自己的镜像。然后将镜像进行注册,用以创建新的开发环境,满足自己的业务需求。 本案例将基于ModelArts提供的PyTorch基础镜像,安装pytorch 1.8、ffmpeg 3和gcc 8,构建一个面向AI开发的新环境。 主要流程如下图所示: 图1 构建与调测镜像流程 本案例适用于华为云-北京四Region。
  • Notebook自定义镜像规范 制作自定义镜像时,Base镜像需满足如下规范: 基于昇腾、Dockerhub官网等官方开源的镜像制作,开源镜像需要满足如下操作系统约束: x86:Ubuntu18.04、Ubuntu20.04 ARM:Euler2.8.3、Euler2.10.7 Ubuntu20.04.6可能有兼容性问题,请优先使用低于该版本的操作系统。 不满足以上镜像规范,所制作的镜像使用可能会出现故障,请用户检查镜像规范,并参考Notebook自定义镜像故障基础排查自行排查,如未解决请联系华为技术工程师协助解决。
  • 上传镜像至SWR服务 登录容器镜像服务控制台,选择区域,要和ModelArts区域保持一致,否则无法选择到镜像。 单击右上角“创建组织”,输入组织名称完成组织创建。请自定义组织名称,本示例使用“deep-learning”,下面的命令中涉及到组织名称“deep-learning”也请替换为自定义的值。 单击右上角“登录指令”,获取登录访问指令,本文选择复制临时登录指令。 以root用户登录本地环境,输入复制的SWR临时登录指令。 上传镜像至容器镜像服务镜像仓库。 使用docker tag命令给上传镜像打标签。 #region和domain信息请替换为实际值,组织名称deep-learning也请替换为自定义的值。 sudo docker tag pytorch:2.1.0-cann7.0.0 swr.{region-id}.{domain}/deep-learning/pytorch:2.1.0-cann7.0.0 #此处以华为云cn-north-4为例 sudo docker tagpytorch:2.1.0-cann7.0.0 swr.cn-north-4.myhuaweicloud.com/deep-learning/pytorch:2.1.0-cann7.0.0 使用docker push命令上传镜像。 #region和domain信息请替换为实际值,组织名称deep-learning也请替换为自定义的值。 sudo docker push swr.{region-id}.{domain}/deep-learning/pytorch:2.1.0-cann7.0.0 #此处以华为云cn-north-4为例 sudo docker push swr.cn-north-4.myhuaweicloud.com/deep-learning/pytorch:2.1.0-cann7.0.0 完成镜像上传后,在容器镜像服务控制台的“我的镜像”页面可查看已上传的自定义镜像。 “swr.cn-north-4.myhuaweicloud.com/deep-learning/pytorch:2.1.0-cann7.0.0”即为此自定义镜像的“SWR_URL”。
  • 准备工作 准备一套可以连接外部网络,装有Linux系统并安装18.09.7及以上版本docker的虚拟机或物理机用作镜像构建节点,以下称“构建节点”。 可以通过执行docker pull、apt-get update/upgrade和pip install命令判断是否可正常访问外部可用的开源软件仓库,若可以正常访问表示环境已连接外部网络。 上述的虚拟机或物理机需要为arm64架构。 建议构建节点安装的Linux系统版本为Ubuntu 18.04。 本指导使用/opt目录作为构建任务承载目录,请确保该目录下可用存储空间大于30GB。 Docker的安装可以参考官方文档:Install Docker Engine on Ubuntu。MiniConda与tflite安装包为第三方安装包,ModelArts不对其安全相关问题进行负责,如用户有安全方面的需求,可以对该安装包进行加固后发布成同样名称的文件上传到构建节点。
  • 统一镜像列表 ModelArts提供了ARM+Ascend规格的统一镜像,包括MindSpore、PyTorch。适用于开发环境,模型训练,服务部署,请参考统一镜像列表。 表1 MindSpore 预置镜像 适配芯片 适用范围 mindspore_2.3.0-cann_8.0.rc1-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 mindspore_2.2.0-cann_7.0.1-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 mindspore_2.1.0-cann_6.3.2-py_3.7-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 mindspore_2.2.12-cann_7.0.1.1-py_3.9-euler_2.10.7-aarch64-snt3p Ascend snt3p Notebook、训练、推理部署 mindspore_2.3.0-cann_8.0.rc2-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 表2 PyTorch 预置镜像 适配芯片 适用范围 pytorch_2.1.0-cann_8.0.rc1-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_1.11.0-cann_8.0.rc1-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_1.11.0-cann_6.3.2-py_3.7-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_2.1.0-cann_7.0.1.1-py_3.9-euler_2.10.7-aarch64-snt3p Ascend snt3p Notebook、训练、推理部署 pytorch_2.1.0-cann_8.0.rc2-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_1.11.0-cann_8.0.rc2-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署
  • 前提条件 制作私有镜像前,需先购买华为云弹性 云服务器ECS ,在ECS上完成安装部署。 关于ECS配置说明: 建议选择公共镜像类型。 建议选择通用计算型或通用计算增强型规格。 目前华为云云商店支持基于华为云提供的公共镜像制作系统盘镜像发布到云商店,建议制作私有镜像的云服务器选择以下区域,制作完成后可复制到其他区域。 区域 RegionCode 备注 新加坡 AP-Singapore 推荐使用 为确保后续安全扫描通过,商家需按照镜像安全扫描标准自检确保镜像无安全漏洞。 为确保后续安全扫描正常进行,商家需为镜像开启远程登陆服务: 如果是linux,请修改ssh服务配置文件,将sudo vi /etc/ssh/sshd_config中的PermitRootLogin参数值调整为yes(华为提供的linux公共镜像已默认开启无需配置)。 如果是windows镜像,请开启WinRM服务。
  • 前提条件 制作私有镜像前,需先购买华为云弹性云服务器ECS,在ECS上完成安装部署。 关于ECS配置说明: 建议选择公共镜像类型。 建议选择通用计算型或通用计算增强型规格。 商家需按照镜像资产安全检测标准自检确保镜像无安全漏洞。 为确保后续安全扫描正常进行,商家需为镜像开启远程登陆服务: 如果是linux,请修改ssh服务配置文件,将sudo vi /etc/ssh/sshd_config中的PermitRootLogin参数值调整为yes(华为提供的linux公共镜像已默认开启无需配置)。 如果是windows镜像,请参考指南开启WinRM服务。
  • 操作步骤 下载virtio驱动。 下载地址:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso 其他版本获取地址如下: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/ 解压1中下载的“virtio-win.iso”文件,解压后得到“virtio-win-0.1.189”文件夹,如图1所示。 图1 “virtio-win-0.1.189”文件夹 解压缩ISO镜像文件,并将2中解压的“virtio-win-0.1.189”文件夹的所有文件复制到ISO文件父节点下,和boot等文件夹同级目录。
  • 制作镜像简介 如果您需要使用裸金属服务器私有镜像,可以通过外部镜像文件创建私有镜像。本文档提供了完整的私有镜像制作流程(包括创建虚拟机、为虚拟机安装操作系统、软件、驱动等),并枚举了多种类型的操作系统,指导您完成私有镜像的制作。当然,您还可以根据实际需要选择安装其他软件,定制您的私有镜像。 私有镜像文件制作完成后,需要在云平台上进行注册,具体操作请参见《裸金属服务器用户指南》的“注册私有镜像”章节。注册成功后,您才可以在申请裸金属服务器时选择到该私有镜像。 父主题: 制作镜像准备
  • 操作步骤 登录宿主机,执行以下命令设置权限。 chmod +x qemu-img-hw 执行以下命令进行镜像格式转换。 qemu-img-hw命令格式: ./qemu-img-hw convert -p -O {目标镜像格式} {待转换镜像文件} {目标镜像文件} 以将“image01.qcow2”格式文件转换成“image01.zvhd2”格式为例: [root]# ./qemu-img-hw convert -p -O zvhd2 image01.qcow2 image01.zvhd2
  • 功能介绍 使用上传至OBS桶中的超大外部镜像文件制作私有镜像,目前仅支持RAW或ZVHD2格式镜像文件。且要求镜像文件大小不能超过1TB。 由于快速导入功能要求提前转换镜像文件格式为RAW或ZVHD2格式,因此镜像文件小于128GB时推荐您优先使用常规的创建私有镜像的方式。 作为异步接口,调用成功,只是说明后台收到了制作请求,镜像是否制作成功需要通过异步任务查询接口查询该任务的执行状态,具体请参考异步任务查询。
  • 请求示例 使用上传至OBS桶的外部镜像文件制作系统盘镜像,其中,OBS桶中外部镜像文件地址为“ims-image:centos70.zvhd2”,镜像标签数据格式为tags。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 POST https://{Endpoint}/v2/cloudimages/quickimport/action { "name": "ims_test_file", "description": "OBS文件制作镜像", "image_url": "ims-image:centos70.zvhd2", "os_version": "CentOS 7.0 64bit", "min_disk": 40, "type": "ECS", "tags": [ "aaa.111", "bbb.333", "ccc.444" ] } 使用上传至OBS桶的外部镜像文件制作系统盘镜像,其中,OBS桶中外部镜像文件地址为“ims-image:centos70.zvhd2”,镜像标签数据格式为image_tags。 1 2 3 4 5 6 7 8 9 10 POST https://{Endpoint}/v2/cloudimages/quickimport/action { "name": "ims_test_file", "description": "OBS文件制作镜像", "image_url": "ims-image:centos70.zvhd2", "os_version": "CentOS 7.0 64bit", "min_disk": 40, "type": "ECS", "image_tags": [{"key":"key2","value":"value2"},{"key":"key1","value":"value1"}] } 使用上传至OBS桶的外部镜像文件制作数据盘镜像,其中,OBS桶中外部镜像文件地址为“ims-image:centos70.zvhd2”,镜像标签数据格式为tags。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 POST https://{Endpoint}/v2/cloudimages/quickimport/action { "name": "ims_test_file", "description": "OBS文件制作镜像", "image_url": "ims-image:centos70.zvhd2", "os_type": "Linux", "min_disk": 40, "type": "DataImage", "tags": [ "aaa.111", "bbb.333", "ccc.444" ] } 使用上传至OBS桶的外部镜像文件制作数据盘镜像,其中,OBS桶中外部镜像文件地址为“ims-image:centos70.zvhd2”,镜像标签数据格式为image_tags。 1 2 3 4 5 6 7 8 9 10 POST https://{Endpoint}/v2/cloudimages/quickimport/action { "name": "ims_test_file", "description": "OBS文件制作镜像", "image_url": "ims-image:centos70.zvhd2", "os_type": "Linux", "min_disk": 40, "type": "DataImage", "image_tags": [{"key":"key2","value":"value2"},{"key":"key1","value":"value1"}] }