云服务器内容精选

  • 步骤五:在每个节点进入容器并启动推理服务 进入容器。 docker exec -it -u root ${container-name} /bin/bash 修改MindIE文件权限。 cd /usr/local/Ascend/mindie/latest chmod 750 mindie-service chmod -R 550 mindie-service/bin chmod -R 500 mindie-service/bin/mindie_llm_backend_connector chmod 550 mindie-service/lib chmod 440 mindie-service/lib/* chmod 550 mindie-service/lib/grpc chmod 440 mindie-service/lib/grpc/* chmod -R 550 mindie-service/include chmod -R 550 mindie-service/scripts chmod 750 mindie-service/logs chmod 750 mindie-service/conf chmod 640 mindie-service/conf/config.json chmod 700 mindie-service/security chmod -R 700 mindie-service/security/* 启动推理前需要先配置服务化环境变量。 source /usr/local/Ascend/ascend-toolkit/set_env.sh source /usr/local/Ascend/nnal/atb/set_env.sh source /usr/local/Ascend/atb-models/set_env.sh export HCCL_OP_EXPANSION_MODE="AIV" export ATB_LLM_HCCL_ENABLE=1 export ATB_LLM_COMM_BACKEND="hccl" export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True export MIES_CONTAINER_IP=${container_ip} export RANKTABLEFILE=${RANKTABLEFILE} export HCCL_DETERMINISTIC=false export PARALLEL_PA RAM S=[1,16,1,16,-1,-1] export ATB_WORKSPACE_MEM_ALLOC_ALG_TYPE=3 export ATB_WORKSPACE_MEM_ALLOC_GLOBAL=1 export NPU_MEMORY_FRACTION=0.96 export HCCL_CONNECT_TIMEOUT=7200 export HCCL_EXEC_TIMEOUT=0 ${container_ip}:当前容器的IP地址,和rank_table_file.json文件中配置的container_ip保持一致。 expandable_segments-使能内存池扩展段功能,即虚拟内存特性。 ${RANKTABLEFILE}:rank_table_file.json文件挂载到容器中的地址${container_work_dir}/rank_table_file.json。 PARALLEL_PARAMS=[dp,tp,moe_tp,moe_ep,pp,microbatch_size],当前推荐配置为 tp=16, moe_ep=16。 NPU_MEMORY_FRACTION:表示显存比。 修改config.json文件中的服务化参数。config.json文件修改要求和样例参考附录:config.json文件。 cd /usr/local/Ascend/mindie/latest/mindie-service/ vim conf/config.json 启动推理服务。 # 拉起服务化 cd /usr/local/Ascend/mindie/latest/mindie-service/ ./bin/mindieservice_daemon 执行命令后出现“Daemon start success!”,表示服务成功启动。
  • 步骤六:调用 调用DeepSeek-V3 curl -ik -H 'Content-Type: application/json' -d '{"messages":[{"role":"user","content":"请讲一个笑话"}],"model":"DeepSeek-V3","temperature":0,"max_tokens":128}' -X POST http://${ip}:${port}/v1/chat/completions 调用DeepSeek-R1 curl -ik -H 'Content-Type: application/json' -d '{"messages":[{"role":"user","content":"请讲一个笑话"}],"model":"DeepSeek-R1","temperature":0,"max_tokens":128}' -X POST http://${ip}:${port}/v1/chat/completions ip:为步骤五:在每个节点进入容器并启动推理服务第4小步中配置的config.json中ipAddress值 port:为步骤五:在每个节点进入容器并启动推理服务第4小步中配置的config.json中port字段的值 请求调用返回json参考如下:
  • 步骤二:获取推理镜像 镜像获取命令如下。 docker pull swr.cn-southwest-2.myhuaweicloud.com/ei-mindie/mindie:2.0.T3-800I-A2-py311-openeuler24.03-lts 如果是权限导致的镜像拉取失败,请参考昇腾社区提供的MindIE镜像申请并下载2.0.T3-800I-A2-py311-openeuler24.03-lts版本的镜像。
  • 步骤四:启动容器 启动容器镜像前请先按照参数说明修改${}中的参数。docker启动失败会有对应的error提示,启动成功会有对应的docker id生成,并且不会报错。 docker run -itd --privileged \ --device=/dev/davinci0 \ --device=/dev/davinci1 \ --device=/dev/davinci2 \ --device=/dev/davinci3 \ --device=/dev/davinci4 \ --device=/dev/davinci5 \ --device=/dev/davinci6 \ --device=/dev/davinci7 \ -v /etc/localtime:/etc/localtime \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /var/log/npu/:/usr/slog \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v ${dir}:${container_work_dir} \ --net=host \ --name ${container_name} \ ${image_id} \ /bin/bash 参数说明: --device=/dev/davinci0,..., --device=/dev/davinci7:挂载NPU设备,挂载了8张卡davinci0~davinci7。 -v ${dir}:${container_work_dir} 表示需要在容器中挂载宿主机中文件在目录。dir为宿主机中的${path-to-file}目录,存放的是权重文件和rank_table_file.json文件,${container_work_dir}为要挂载到的容器中的目录。为方便两个地址可以相同。 容器不能挂载到/home/ma-user目录,此目录为ma-user用户家目录。如果容器挂载到/home/ma-user下,拉起容器时会与基础镜像冲突,导致基础镜像不可用。 driver及npu-smi需同时挂载至容器。 不要将同一个NPU挂载给多个容器使用,会导致后续的容器无法正常使用NPU功能。 --name ${container_name}:容器名称,进入容器时会用到,此处可以自己定义一个容器名称。 {image_id} 为docker镜像的ID,在宿主机上可通过docker images查询得到。
  • 步骤一:检查环境 SSH登录机器后,检查NPU设备检查。如果驱动版本不是24.1.0,请先升级驱动和对应固件。 npu-smi info -t board -i 1 | egrep -i "software|firmware" #查看驱动和固件版本 24.1.0版本驱动文件为Ascend-hdk-910b-npu-driver_24.1.0_linux-aarch64.run,对应固件文件为Ascend-hdk-910b-npu-firmware_7.5.0.3.220.run,请申请下载。 安装固件命令如下,安装完后需要reboot重启机器。 chmod 700 *.run ./Ascend-hdk-910b-npu-firmware_7.5.0.3.220.run --full reboot 安装24.1.0驱动命令如下: ./Ascend-hdk-910b-npu-driver_24.1.0_linux-aarch64.run --full --install-for-all 安装完成后再使用如下命令查看是否安装正确。 npu-smi info -t board -i 1 | egrep -i "software|firmware" 检查docker是否安装。 docker -v #检查docker是否安装 如尚未安装,运行以下命令安装docker。 yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。 sysctl -p | grep net.ipv4.ip_forward 如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。 sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
  • 步骤三:创建rank_table_file.json 在启动容器前需要使用rank_table_file.json文件用于多机部署。 检查机器网络情况 # 检查物理链接 for i in {0..7}; do hccn_tool -i $i -lldp -g | grep Ifname; done # 检查链接情况 for i in {0..7}; do hccn_tool -i $i -link -g ; done # 检查网络健康情况 for i in {0..7}; do hccn_tool -i $i -net_health -g ; done # 查看侦测ip的配置是否正确 for i in {0..7}; do hccn_tool -i $i -netdetect -g ; done # 查看网关是否配置正确 for i in {0..7}; do hccn_tool -i $i -gateway -g ; done # 检查NPU底层tls校验行为一致性,建议全0 for i in {0..7}; do hccn_tool -i $i -tls -g ; done | grep switch # NPU底层tls校验行为置0操作 for i in {0..7};do hccn_tool -i $i -tls -s enable 0;done 获取每张卡的IP地址。 for i in {0..7};do hccn_tool -i $i -ip -g; done 配置rank_table_file.json文件,并复制到每台机器上的${path-to-file}目录中。存放路径例如:/home/data/rank_table_file.json。详细样例参见附录:rank_table_file.json文件。注意:样例为4机部署配置,如果是2机部署则需要删除多余的配置,仅保留2机16卡的配置。 设置rank_table_file.json文件权限。进入rank_table_file.json文件存放目录${path-to-file},执行如下命令。 chmod 640 rank_table_file.json
  • 附录:rank_table_file.json文件 rank_table_file.json文件样例如下,需要根据实际修改server_count,device_ip,server_id,container_ip参数,每台机器上的rank_table_file.json文件内容一致。在步骤三:创建rank_table_file.json步骤中会用到。 server_count:节点个数。4机部署为4,2机部署为2。当2机部署时,server_list中填写的内容也只需要2机16卡的相关信息,当前样例为4机32卡,2机时请删除多余的信息。 device_ip:当前卡的IP地址,每台机器共8张卡。device_ip查询命令 for i in {0..7};do hccn_tool -i $i -ip -g; done server_id:当前Server节点的IP地址,涉及4台机器。 container_ip:容器IP地址,无特殊配置时与server_id保存一致。 { "server_count": "4", "server_list": [ { "device": [ { "device_id": "0", "device_ip": "29.82.85.12", "rank_id": "0" }, { "device_id": "1", "device_ip": "29.82.98.67", "rank_id": "1" }, { "device_id": "2", "device_ip": "29.82.133.21", "rank_id": "2" }, { "device_id": "3", "device_ip": "29.82.175.69", "rank_id": "3" }, { "device_id": "4", "device_ip": "29.82.13.154", "rank_id": "4" }, { "device_id": "5", "device_ip": "29.82.140.51", "rank_id": "5" }, { "device_id": "6", "device_ip": "29.82.157.87", "rank_id": "6" }, { "device_id": "7", "device_ip": "29.82.15.225", "rank_id": "7" } ], "server_id": "7.242.110.112", "container_ip": "7.242.110.112" }, { "device": [ { "device_id": "0", "device_ip": "29.82.177.28", "rank_id": "8" }, { "device_id": "1", "device_ip": "29.82.41.231", "rank_id": "9" }, { "device_id": "2", "device_ip": "29.82.16.3", "rank_id": "10" }, { "device_id": "3", "device_ip": "29.82.154.20", "rank_id": "11" }, { "device_id": "4", "device_ip": "29.82.56.73", "rank_id": "12" }, { "device_id": "5", "device_ip": "29.82.177.138", "rank_id": "13" }, { "device_id": "6", "device_ip": "29.82.29.230", "rank_id": "14" }, { "device_id": "7", "device_ip": "29.82.1.176", "rank_id": "15" } ], "server_id": "7.242.104.54", "container_ip": "7.242.104.54" }, { "device": [ { "device_id": "0", "device_ip": "29.82.107.58", "rank_id": "16" }, { "device_id": "1", "device_ip": "29.82.179.159", "rank_id": "17" }, { "device_id": "2", "device_ip": "29.82.140.144", "rank_id": "18" }, { "device_id": "3", "device_ip": "29.82.6.71", "rank_id": "19" }, { "device_id": "4", "device_ip": "29.82.145.96", "rank_id": "20" }, { "device_id": "5", "device_ip": "29.82.0.173", "rank_id": "21" }, { "device_id": "6", "device_ip": "29.82.122.160", "rank_id": "22" }, { "device_id": "7", "device_ip": "29.82.155.63", "rank_id": "23" } ], "server_id": "7.242.111.217", "container_ip": "7.242.111.217" }, { "device": [ { "device_id": "0", "device_ip": "29.82.106.127", "rank_id": "24" }, { "device_id": "1", "device_ip": "29.82.102.14", "rank_id": "25" }, { "device_id": "2", "device_ip": "29.82.145.46", "rank_id": "26" }, { "device_id": "3", "device_ip": "29.82.119.165", "rank_id": "27" }, { "device_id": "4", "device_ip": "29.82.58.169", "rank_id": "28" }, { "device_id": "5", "device_ip": "29.82.9.114", "rank_id": "29" }, { "device_id": "6", "device_ip": "29.82.117.18", "rank_id": "30" }, { "device_id": "7", "device_ip": "29.82.17.169", "rank_id": "31" } ], "server_id": "7.242.108.165", "container_ip": "7.242.108.165" } ], "status": "completed", "version": "1.0" } 父主题: DeepSeek模型基于ModelArts Lite Server适配MindIE推理部署指导
  • 背景信息 华为乾坤需要识别攻击的发出区域、到达区域属于的安全域类型用于分析威胁事件。 华为乾坤提供以下几种类型的安全域: 信任域:用户信任的安全区域,通常用来定义用户的内部网络,华为乾坤不会对该区域发起的“威胁流量”进行封禁。 混合域:介于信任域和非信任域之间安全区域,属于一个特殊的网络,华为乾坤不会对该区域发起的“威胁流量”进行封禁。 非信任域:属于用户不信任的安全区域,通常用来定义Internet等不安全的网络,华为乾坤会自动封禁从该区域发起的“威胁流量”。
  • 前提条件 只能在应用下新增组件,需要先创建应用,请参考创建应用。 组件需要部署在指定环境下,需要先创建环境并纳管资源,请参考环境管理。 需要将软件包上传至CodeArts软件发布库、SWR软件仓库或者OBS对象存储中。 将软件包上传至CodeArts软件发布库,请参考上传软件包。 将软件包上传至SWR软件仓库,请参考上传软件包。 将软件包上传至OBS对象存储中,请参考流式上传(PUT上传)。 如果组件来源为软件包且需要使用例如JFrog(制品仓库)作为软件包存储仓库,支持自定义HTTP/HTTPS协议的文件地址下载。您需要提前将软件包上传至对应的自定义文件地址下。 如果上传软件包失败,请参考如何解决上传软件包失败的问题?。 如果您需要基于组件草稿创建组件,请参考本章节保存组件草稿。
  • 安装KooCLI命令行工具 安装KooCLI命令行工具 远程登录购买的 ECS云服务器 ,执行如下命令安装KooCLI: curl -sSL https://hwcloudcli.obs.cn-north-1.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh 图2 安装命令行工具 初始化KooCLI命令行工具 使用如下命令初始化KooCLI命令行工具: hcloud configure init 需要输入Access Key ID、Secret Access key和Region Name,获取方法请参见3、4。 图3 初始化KooCLI命令行工具 获取访问密钥(Access Key ID和Secret Access key) 如果您有登录密码,可以登录控制台,可以在我的凭证中获取自己的访问密钥AK/SK。请参见:新增访问密钥。可以下载得到AK/SK文件,文件名一般为:credentials.csv。如下图所示,文件包含了用户名称(User Name),AK(Access Key Id),SK(Secret Access Key)。 图4 credentials.csv文件内容 如果您没有登录密码,不能登录控制台,在访问密钥异常丢失或者需要重置时,可以请账号管理员在 IAM 中生成您的访问密钥,并发送给您。请参见:管理IAM用户访问密钥。 获取Region Name 请参见:地区和终端节点。 图5 获取区域
  • IaC简介 基础设施即代码(Infrastructure as Code,简称IaC)是一种以YAML作为输入,经由云原生环境管理服务、IaC执行引擎、Operator平台解析和执行,实现环境自动部署以及管理动态基础设施的方法。它强调一致,可重复的供给和变更系统及其配置。当代码发生变更后,可以进行自动化测试,测试完成后可自动化的应用变更到运行系统中。使用基础设施即代码的方法,可以使用敏捷工程的优秀实践(如测试驱动开发,持续集成,持续发布)来更加快速安全的变更基础设施。
  • IaC代码结构介绍 IaC代码支持单文件描述结构、多文件描述结构以及带global的多文件描述结构,具体介绍请参见IaC代码结构介绍。 单文件描述结构:在IaC主体描述文件meta.yaml中进行变更流程编排同时定义所有资源。 多文件描述结构:通过引入resources.yaml和文件引用语法,将单文件结构改造为多文件描述目录结构,避免诸多资源的描述都集中于meta.yaml,而造成文件内容过长难以管理。 带global的多文件描述结构:为解决不同规格目录间配置复用问题,IaC3.0支持带global的多文件描述结构。 带global的多文件描述结构为IaC3.0的典型目录结构,IaC Spec目录结构请参见IaC Spec包典型目录结构。
  • IaC代码开发介绍 在一次完整的业务变更中,往往会涵盖多种类型、多个模块的变更,如集群扩容、申请ELB、创建数据库、软件升级等等。在IaC的语境下,每一个变更本质上都是IaC资源的变更。在一次完整的业务变更中,部分资源的变更依赖于其他资源的变更,如为一个微服务创建NUWA实例之前往往需要先创建该微服务的数据库。 通过IaC代码对各资源在具体变更过程中的依赖关系、先后顺序进行代码化描述。本质上就是描述各模块、各资源之间的依赖关系。在变更过程中,IaC将根据由依赖关系生成的有向无环图顺序执行各资源的变更过程。 IaC代码开发主要围绕声明资源和变更流程编排两个方面展开。 在IaC代码中声明资源 定义component:定义component是IaC将一个环境的资源组织起来的方式,将同一类资源组织起来成为一个component。 定义资源:一个component下可以定义多个资源,所有的资源描述都存放于resources.yaml中。 在IaC代码中定义流水线 component间的编排在spec包中的meta.yaml文件中描述,用户可以根据自己的需求定义整个环境在变更时的执行过程。
  • 操作步骤 创建总部站点的WAN链路模板(“Double_RR_Mix”),供Hub1、Hub2站点使用。 单击“WAN链路模板”页签。 图1 WAN链路模板页签 ,单击“创建”,填写链路信息,如图2所示。配置完成后,单击“确定”。 图2 “Double_RR_Mix”模板 创建“Single_CPE_Mix”的站点模板,供Site1站点使用。 图3 “Single_CPE_Mix”模板 创建“Double_CPE_Mix”的站点模板,供Site2站点使用。 图4 “Double_CPE_Mix”模板
  • 硬件安装 根据网络规划时的网络设备安装点位设计、设备间互联等信息,完成网络设备的硬件安装、连线、上电等操作,参见表1。 表1 硬件安装与布线任务一览表 任务 任务说明 参考链接 安装硬件设备 硬件设备安装需要遵循施工规范,常见的硬件施工规范有: 物理设备必须可靠接地。 物理设备谨慎搬运,要连带外纸箱或泡沫垫,不要裸机搬运。 所有光纤、网线、高速电缆和电源线分开布线,规范折弯有序捆扎。 所有光纤、网线和电源线需要考虑长度和传输距离是否能够满足环境的需求。 请单击以下设备名称,查看对应设备详细的硬件安装指导: AP 交换机 AR WAC 防火墙 连接线缆 根据布线规划完成线缆连接,连接时注意按照规范在线缆两端打上标签。 设备配电、上电 请按照规划的配电参数和各个产品的产品文档来执行设备上电操作。 父主题: 网络部署