云服务器内容精选

  • 解决方法 检查镜像配置: 确认使用的镜像是否包含所有必要的依赖和工具。 如果使用自定义镜像,确保所有依赖已正确安装。 检查脚本或命令: 确认部署脚本中使用的命令是否正确,并且在镜像中可用。 如果脚本中有自定义命令,确保路径正确。 检查权限设置: 确保脚本文件具有执行权限。可以通过以下命令添加执行权限: chmod +x your_script.sh 检查资源情况: 如果服务启动时资源不足,可以尝试调整服务的资源规格(如CPU、内存)。 如果是在公共资源池部署,可以等待资源释放后再尝试。 重新创建服务: 如果问题仍未解决,可以尝试重新创建模型部署服务。 其他建议: 如果问题持续存在,建议联系华为云技术支持,并提供详细的日志和环境信息,以便进一步排查。
  • 离线推理 编辑一个python脚本,脚本内容如下,运行该脚本使用ascend-vllm进行模型离线推理。 from vllm import LLM, SamplingParams def main(): prompts = [ "Hello, my name is", "The president of the United States is", "The capital of France is", "The future of AI is", ] sampling_params = SamplingParams(temperature=0.8, top_p=0.95) model_path = "/path/to/model" llm = LLM(model=model_path, tensor_parallel_size=1, max_model_len=8192) outputs = llm.generate(prompts, sampling_params) # Print the outputs. for output in outputs: prompt = output.prompt generated_text = output.outputs[0].text print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}") if __name__=="__main__": main()
  • 步骤六:进入容器 进入容器。 docker exec -it -u ma-user ${container_name} /bin/bash 评估推理资源。运行如下命令,返回NPU设备信息可用的卡数。 npu-smi info # 启动推理服务之前检查卡是否被占用、端口是否被占用,是否有对应运行的进程 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装固件和驱动,或释放被挂载的NPU。 驱动版本要求是23.0.6。如果不符合要求请参考安装固件和驱动章节升级驱动。启动后容器默认端口是8080。 配置需要使用的NPU卡为容器中的第几张卡。例如:实际使用的是容器中第1张卡,此处填写“0”。 export ASCEND_RT_VISIBLE_DEVI CES =0 如果启动服务需要使用多张卡,则按容器中的卡号依次编排。例如:实际使用的是容器中第1张和第2张卡,此处填写为“0,1”,以此类推。 export ASCEND_RT_VISIBLE_DEVICES=0,1 可以通过命令npu-smi info查询NPU卡为容器中的第几张卡。例如下图查询出两张卡,如果希望使用第一和第二张卡,则“export ASCEND_RT_VISIBLE_DEVICES=0,1”,注意编号不是填4、5。 图1 查询结果 启动推理服务的具体操作步骤请参见启动推理服务。
  • 步骤一:检查环境 SSH登录机器后,检查NPU设备检查。运行如下命令,返回NPU设备信息。 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数,用来确认对应卡数已经挂载 npu-smi info -t board -i 1 | egrep -i "software|firmware" #查看驱动和固件版本 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装固件和驱动,或释放被挂载的NPU。 驱动版本要求是23.0.6。如果不符合要求请参考安装固件和驱动章节升级驱动。 检查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
  • 步骤四:制作推理镜像 解压AscendCloud压缩包及该目录下的推理代码AscendCloud-LLM-xxx.zip和算子包AscendCloud-OPP-xxx.zip,并执行build_image.sh脚本制作推理镜像。安装过程需要连接互联网git clone,请确保机器环境可以访问公网。 unzip AscendCloud-*.zip -d ./AscendCloud && cd ./AscendCloud && unzip AscendCloud-OPP-*.zip && unzip AscendCloud-OPP-*-torch-2.1.0-py39-*.zip -d ./AscendCloud-OPP && cd .. && unzip ./AscendCloud/AscendCloud-LLM-*.zip -d ./AscendCloud/AscendCloud-LLM && cd ./AscendCloud/AscendCloud-LLM/llm_inference/ascend_vllm/ && sh build_image.sh --base-image=${base_image} --image-name=${image_name} 参数说明: ${base_image}为基础镜像地址。 ${image_name}为推理镜像名称,可自行指定。 运行完后,会生成推理所需镜像。 多模态场景下,如果推理需要使用NPU加速图片预处理(仅适配了llava-1.5模型),启动时需要设置export ENABLE_USE_DVPP=1,需要安装torchvision_npu,可放到镜像制作脚本./AscendCloud/AscendCloud-LLM/llm_inference/ascend_vllm/Dockfile中。内容如下: git clone https://gitee.com/ascend/vision.git vision_npu cd vision_npu git checkout v0.16.0-6.0.rc3 # 安装依赖库 pip3 install -r requirement.txt # 编包 python setup.py bdist_wheel # 安装 cd dist pip install torchvision_npu-0.16.*.whl
  • 步骤五:启动容器 启动容器镜像前请先按照参数说明修改${}中的参数。docker启动失败会有对应的error提示,启动成功会有对应的docker id生成,并且不会报错。 docker run -itd \ --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 /etc/ascend_install.info:/etc/ascend_install.info \ --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为宿主机中文件目录,${container_work_dir}为要挂载到的容器中的目录。为方便两个地址可以相同。 容器不能挂载到/home/ma-user目录,此目录为ma-user用户家目录。如果容器挂载到/home/ma-user下,拉起容器时会与基础镜像冲突,导致基础镜像不可用。 driver及npu-smi需同时挂载至容器。 不要将多个容器绑到同一个NPU上,会导致后续的容器无法正常使用NPU功能。 --name ${container_name}:容器名称,进入容器时会用到,此处可以自己定义一个容器名称。 {image_id} 为docker镜像的ID,即第四步中生成的新镜像id,在宿主机上可通过docker images查询得到。
  • 步骤三:上传代码包和权重文件 上传安装依赖软件推理代码AscendCloud-LLM-xxx.zip和算子包AscendCloud-OPP-xxx.zip到主机中,包获取路径请参见表2。 将权重文件上传到DevServer机器中。权重文件的格式要求为Huggingface格式。开源权重文件获取地址请参见支持的模型列表。 如果使用模型训练后的权重文件进行推理,模型训练及训练后的权重文件转换操作可以参考大模型训练相关文档。 权重要求放在磁盘的指定目录,并做目录大小检查,参考命令如下。 df -h
  • 健康检查配置有问题 镜像如果配置了健康检查,服务启动失败,从以下两个方面进行排查: 健康检查端口是否可以正常工作 自定义镜像中配置了健康检查,需要在测试镜像时,同步测试健康检查接口是否可以正常工作,具体参考从0-1制作自定义镜像并创建AI应用中的本地验证镜像方法。 创建模型界面上配置的健康检查地址与实际配置的是否一致 如果使用的是ModelArts提供的基础镜像创建模型,健康检查URL默认必须为/health。 图4 设置健康检查URL
  • 镜像中配置的端口错误 模型可以正常启动,但是因为镜像中启用的端口非8080,或者镜像启用的端口与创建模型时配置的端口不一致,导致部署服务时register-agent无法与模型通信,超过一定时间后(最长20分钟)认为模型启动失败。 需要检查两个地方:自定义镜像中的代码开放的端口和创建模型界面上配置的端口。确认两处端口保持一致。模型创建界面如果不填端口信息,则ModelArts会默认监听8080端口,即镜像代码中启用的端口必须是8080。 图2 自定义镜像中的代码开放的端口 图3 创建模型界面上配置的端口
  • 环境部署 如果部署过单机版,需先停止所有服务并卸载所有组件才能继续完成安装。 这里以安装包在opt目录为例。 # cd /opt/edi-RTPS-el7/bin# sh stop_all.sh# cd /opt# rm -rf edi-RTPS-el7 卸载完毕后: 下载edi-RTPS-el7.zip文件,解压后进入edi-RTPS-el7目录下的conf目录,配置slaves文件,然后执行install_all.sh文件进行部署。 假设把安装包放在opt目录下,命令如下: # unzip -q /opt/edi-RTPS-el7.zip -C /opt (解压安装包)# cd /opt/edi-RTPS-el7/bin# vi /opt/edi-RTPS-el7/conf/slaves(然后按 【ip 主机名 密码】 格式编写,以空格分隔) 图1 图示 # sh install_all.sh 表2 附录 文件路径 功能描述 edi-RTPS-el7/bin/start_all.sh 启动所有服务(默认安装后直接启动) edi-RTPS-el7/bin/stop_all.sh 停止所有服务 edi-RTPS-el7/bin/status_all.sh 检查所有服务状态 edi-RTPS-el7/installdir 各服务安装目录 数据工厂所在服务器需添加实时处理服务器IP和主机名映射,例: 172.17.3.252 test252 172.17.3.253 test253 172.17.3.254 test254 实时处理服务器(所有节点:test252 test253 test254)也应添加数据工厂所在服务器主机名映射。例: 172.17.3.237 edi
  • 安装PostgreSQL 服务信息如下: 表1 服务信息2 服务名 服务器 安装目录 端口 账号/密码 Postgresql-9.6.8 10.190.x.x(主库) 10.190.x.x(从库) /app/postgresql 5432 Postgres/****** 安装PG 准备安装包 将编译好的在ARM架构欧拉系统编译通过的PostgreSQL+PostGIS软件包放到服务器/app目录下并解压: tar xf postgresql_9.6.8_arm_eulerOS.tar.gz 添加用户并授权 groupadd postgresuseradd postgres -g postgres -m -d /home/postgreschown -R postgres:postgres /app/postgresql 切换用户,启动PG su - postgrescd /app/postgresql./bin/pg_ctl -D data -l logfile start 配置主从同步 以172.16.1.22(主),172.16.1.21(从)为例,编辑主节点配置 vi /app/pg/data/pg_hba.conf #如下:host all all slave1ip/32 trust #允许连接到主服务器host replication replica slave1ip/32 md5 #允许用replica复制 这里在最下面添加两行: host all all 172.16.1.21/32 trusthost replication replica 172.16.1.21/32 trust vi /app/postgresql/data/postgresql.conf #如下:data_directory = '/app/postgresql/data' #自定义data目录listen_addresses = '*' #监听所有iparchive_mode = on #允许归档archive_command = 'cp %p /app/postgresql/data/pg_archive/%f' #使用命令归档wal_level = replica #选择热备replica或logicalmax_wal_senders = 16 #最多多少个流复制链接wal_keep_segments = 256 #流复制保留最多的xlog数wal_sender_timeout = 60s #流复制主机发送数据超时时间max_connections = 5000 #从库的max_connections必须大于主库的 创建用户replica进行主从同步,并赋予登录和复制的权限 登录到数据库里(主节点) su postgrescd /app/postgresql/./bin/psqlCREATE ROLE replica login replication encrypted password 'replica';./bin/pg_ctl -D data -l logfile restart slave1部分:#先备份数据,再同步数据 ./bin/pg_ctl -D data -l logfile stop ## 保持服务处于关闭状态#自定义存档目录,先把旧的data全部移走mkdir /home/postgres/pg_archive/mv /app/postgresql/data/ /home/postgres/pg_archive/chmod 700 pg_archive && chown postgres:postgres pg_archive/su postgresrm -rf /app/postgresql/data/* #先将data目录下的数据都清空#为空的情况下,把主节点的数据用pg_basebackup同步到从节点cd /app/postgresql/binpg_basebackup -P -h masterip -U replica -D /app/postgresql/data -X stream./pg_basebackup -P -h 172.16.1.22 -U replica -D /app/postgresql/data -X stream#配置recovery.conf,最底下添加三行。cp /app/postgresql/share/recovery.conf.sample /app/postgresql/data/recovery.confvi /app/postgresql/data/recovery.confstandby_mode = on #该节点为从primary_conninfo = 'host=$masterip port=5432 user=replica password=replica' #主服务器的ip、userrecovery_target_timeline = 'latest'##trigger_file = '/tmp/trigger_file0'#配置postgresql.conf ## 添加到75行位置,其余内容不需修改。vi /app/postgresql/data/postgresql.confmax_connections = 5500 #尽量大于主连接数的10%max_standby_streaming_delay = 30swal_receiver_status_interval = 10shot_standby = on ##从节点默认用off , 配置on启动psql可查询数据。hot_standby_feedback = on #出现错误复制,向主机反馈#开启从数据库../bin/pg_ctl -D data -l logfile startnetstat -tlnp 查看复制状态(主库172.16.1.22) ./bin/psqlselect client_addr,sync_state from pg_stat_replication; 图1 查看复制状态 ##主从节点的进程多了wal进程:ps -ef | grep postgrespostgres: wal sender process replica 172.16.1.21postgres: wal receiver process streaming#用pg_controldata命令查询主从集群运行状态[postgres@host-172-16-1-22 bin]$ ./pg_controldata /app/postgresql/data/pg_control version number: 960Catalog version number: 201608131Database system identifier: 7127200572656879006Database cluster state: in production[postgres@host-172-16-1-21 bin]$ ./pg_controldata /app/postgresql/data/pg_control version number: 960Catalog version number: 201608131Database system identifier: 7127200572656879006Database cluster state: in archive recovery 主从搭建成功后,主库的集群状态是in production,从库是in archive recovery,当主库崩溃,可以切换从库为主库。这时候主库状态是shut down,而从库是in production。 父主题: 数据库及中间件服务部署
  • 数据层服务安装 数据层服务安装全部使用普通用户,执行: su - dpe 上传dpe-control-plane-data-svcs-x.y.m.n.tar.gz安装包到/home/dpe 解压 tar -zxvf dpe-control-plane-data-svcs-x.y.m.n.tar.gz && cd dpe-control-plane-data-svcs 修改配置文件 vi /home/dpe/dpe-control-plane-data-svcs/dpe-common.propertiesmysql_user=dpemysql_password=dpe@mysql123mysql_host=dpe-control-plane-data-svrmysql_port=3306###############################################################################pgsql的ippg_host=dpe-control-plane-data-svr#pgsql端口pg_port=5432#pgsql数据库用户名pg_user=kong#pgsql数据库密码pg_password=SXkjkong2022dpe#pgsql数据库名pg_database=kong##############################################################################平台elastic帐号信息配置platform_elastic_user=elasticplatform_elastic_password=7yjBvwdEgFC8platform_elastic_hosts=dpe-control-plane-data-svr:9200,dpe-control-plane-data-svr:9201,dpe-control-plane-data-svr:9202##开放空间落地数据elastic帐号信息配置openspace_elastic_user=elasticopenspace_elastic_password=UxgfKqjzDPylopenspace_elastic_hosts=dpe-open-space-cc-svr:9500,dpe-open-space-cc-svr:9501,dpe-open-space-cc-svr:9502##redis集群信息配置rediscluster_serverlist=dpe-control-plane-data-svr:7000,dpe-control-plane-data-svr:7001,dpe-control-plane-data-svr:7002,dpe-control-plane-data-svr:7003,dpe-control-plane-data-svr:7004,dpe-control-plane-data-svr:7005rediscluster_auth=qwersxkj1234将dpe-control-plane-data-svr修改为数据层服务所在的服务器ip地址将dpe-open-space-cc-svr修改为计算与缓存所在服务器的ip地址vi /home/dpe/dpe-control-plane-data-svcs/dpe-master-data.properties#本机ip地址local_ipaddress=当前服务器的ip地址############################################平台访问URLadmin_accessurlprefix=http://dpe-control-plane-mgr-svr:18433dpe-master-data.properties只需要修改这两个配置项 执行安装脚本 bash ./config-all.shbash ./install-all.shbash ./start-all.sh 父主题: DPE软件服务部署
  • 边缘服务器安装Docker docker 查看docker版本,版本建议20以上 sudo docker --version 安装教程 sudo apt updatesudo apt install docker-ce docker-ce-cli containerd.io nvidia-docker 查看nvidia-docker版本 sudo nvidia-docker --version 安装教程参考:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#install-guide distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \&& curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container.list | \sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.listsudo apt-get updatesudo apt-get install -y nvidia-docker2sudo systemctl restart docker 父主题: 边缘服务部署
  • 后续操作(可选) 已部署的服务,支持查看创建、删除等操作记录。左侧操作状态栏会展示已有操作记录的状态,操作状态类型包括:进行中、成功和失败。 图1 华为云 区块链 引擎操作记录 系统将保留最近三天的操作记录。 登录华为云区块链引擎服务管理控制台,单击左侧导航栏中的“服务管理”,选择华为云区块链引擎。 单击“操作记录”,查看各个资源的操作记录。 您可以按资源名称搜索操作记录,还可以在资源所在行进行“操作详情”及“删除”操作。
  • 部署华为云区块链引擎服务 完成环境准备工作后,可按照如下步骤购买并部署华为云区块链引擎服务。 登录华为云区块链引擎服务管理控制台,进入“服务管理”,在华为云区块链引擎页面单击“购买”。 已部署的服务,单击左侧导航栏中的“服务管理”,单击右侧的“操作记录”,查看操作记录并在服务右侧进行“操作详情”及“删除”操作。 根据界面提示,配置区块链基本信息,参数如表1所示。 表1 基本信息配置 参数 描述 示例 计费模式 华为云区块链引擎服务管理收费模式,支持包年/包月。 包年/包月 区域 区块链基础设施所在的区域,建议选择与业务应用系统相同的地域。 使用默认区域 区块链服务名称 支持英文字符、数字及中划线,不能以中划线开头,长度为4-24个字符。 说明: 目前区块链名称不支持修改,只能删除重新创建。 hbs-wh 管理模式 选择云端管理:使用华为云资源管理区块链数据。 云端管理 版本类型 HBS提供专业版、企业版和铂金版供您选择。 专业版 组织配置 支持增加组织成员数。 专业版支持最大成员组织数2个,企业版支持最大成员组织数10个,铂金版支持最大成员组织数100个。 - 高级设置 共识策略:区块链网络中节点之间达成共识需要遵从的规则。默认为Raft(CFT)策略。 安全机制:保证数据安全的加密算法,默认为ECDSA;支持国密算法。 - 购买时长 支持自定义购买服务的使用时间,最短1个月。 您可根据需要选择勾选自动续费,按月购买的自动续费周期为1个月,按年购买的自动续费周期为1年。 默认1个月 单击“立即创建”。 确认配置信息无误后,勾选协议和免责声明,并单击“提交”。 进入支付页面,确认订单费用无误后,单击“确认付款”,订单支付成功后,即可返回华为云区块链引擎服务控制台查看正在创建的服务。 服务创建大概需要18-25分钟,请耐心等待。服务创建成功后,查看服务状态变为“正常”后,表示华为云区块链引擎服务部署完成。