# 旧版在线服务迁移至新版在线服务
#### 使用场景
ModelArts在线服务（旧版）即将下线，对于AI模型部署场景，如果用户当前使用ModelArts在线服务（旧版）部署的服务，会因旧版服务即将下线导致服务中断。ModelArts推出的新版在线服务支持全形态大模型、分布式部署等能力，提供更全面的指标监控和更流畅的运维体验。因此，如何将旧版服务平滑迁移至新版服务成为用户普遍诉求。本章节提供了基于旧版在线服务配置及模型镜像路径，在新版在线服务页面创建对应推理服务的迁移方法。
![](https://support.huaweicloud.com/inference-modelarts/figure/zh-cn_image_0000002592307176.png)
#### 方案概述
新版在线服务对架构进行了演进，推出了KubeInfer全新的分布式推理技术方案，分布式推理通过多节点并行计算，可显著提升大规模模型的推理效率。通过架构兼容设计，新版在线服务在支持分布式推理的同时，保留了对单机推理场景的兼容性。因此，您可以在新版在线服务页面上部署旧版在线服务的模型和镜像。
#### 权限说明
需要具备新版推理的权限集，详情请见[配置推理部署的基本权限](https://support.huaweicloud.com/permission-modelarts/inference2.0-modelarts-0036.html)。
#### 计费影响
当前新版在线服务仅支持部署在专属资源池，专属资源池会产生计算资源的计费，具体如[表1]所示。
在创建专属资源池时，从节点创建成功起开始计费，驱动升级和安装过程也视为创建成功的一部分。
 表1计费项 
| 计费项                                                                                      || 计费项说明                                                                                                                                                                                 | 适用的计费模式     | 计费公式                              |
|:---|---|:---|:---|:---|
| 计算资源 | 专属资源池 | 使用计算资源的用量。 具体费用可参见[ModelArts价格详情](https://www.huaweicloud.com/pricing/calculator.html?tab=detail#/modelarts)。 | 按需计费       | 规格单价 \* 计算节点个数 \* 使用时长           |
| 计算资源 | 专属资源池 | 使用计算资源的用量。 具体费用可参见[ModelArts价格详情](https://www.huaweicloud.com/pricing/calculator.html?tab=detail#/modelarts)。 | 包年/包月         | 规格单价 \* 计算节点个数 \* 购买时长              |
| 存储资源 | 云硬盘EVS   | 用户挂载的容器数据盘。 创建专属资源池时，挂载了容器数据盘（EVS），则这部分存储计费。                                                                | 跟随专属资源池计费模式 | 规格单价 \* 磁盘大小 \* 磁盘数量 \* 使用时长或购买时长 |
   
 #### 准备工作
准备"作业类型"为"模型部署"的专属资源池，可购买专属资源池或修改已有专属资源池的作业类型。
- 购买专属资源池，作业类型选择"模型部署"，详情请见[创建专属资源池](https://support.huaweicloud.com/resmgmt-modelarts/resmgmt-modelarts_0004.html)。
- 修改专属资源池的作业类型，将已有资源池的作业类型增加"模型部署"选项，详情请见[修改专属资源池支持的作业类型](https://support.huaweicloud.com/resmgmt-modelarts/resmgmt-modelarts_0008.html)。
  如果您的旧版推理服务依然在运行，作业类型请不要把模型部署选项取消勾选，等上层业务迁移完后，可以再把模型部署（旧版）作业类型取消勾选。
  
 
#### 步骤一：获取旧版在线服务部署信息
1. 登录[ModelArts管理控制台](https://console.huaweicloud.com/modelarts/)，在左侧菜单栏中选择"模型部署 \> 在线服务 旧版"，进入"在线服务 旧版"管理页面。
2. 单击待迁移的旧版服务名称，进入服务详情页面。
3. 切换到"配置更新记录"页签，在当前配置的模型列表单击模型名称，查看模型详情，获取模型镜像对应的配置信息。
   图1模型详情   
   ![](https://support.huaweicloud.com/inference-modelarts/figure/zh-cn_image_0000002581279876.png)
   
   新版在线服务与旧版在线服务模型及服务部署的参数映射关系如[表2]所示。
    表2新旧版在线服务模型配置参数映射 
   | 旧版在线服务模型参数         | 旧版在线服务模型参数值                     | 新版在线服务参数                  | 新版在线服务参数值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   |:---|:---|:---|:---|
   | 元模型来源             | 从训练中选择                         | 部署配置\>模型配置\>模型来源  | - 模型来源："自定义模型"。  - 存储类型："对象存储OBS-对象桶"  - 存储地址：训练作业的输出路径。前往控制台训练作业详情获取"输出-输出路径"参数值。详情请见[查看训练作业详情](https://support.huaweicloud.com/develop-modelarts/develop-modelarts-0013.html)。  - 挂载路径：根据新业务自定义。  - 本地存储加速：根据新业务选择开启。   |
   | 元模型来源             | 从对象存储（OBS）中选择                 | 部署配置\>模型配置\>模型来源  | - 模型来源："自定义模型"。  - 存储类型："对象存储OBS-对象桶"  - 存储地址：与旧版在线服务"元模型存储路径"一致。  - 挂载路径：根据新业务自定义。  - 本地存储加速：根据新业务自定义。                                                                                                                  |
   | 元模型来源             | 从容器镜像中选择                     | 部署配置\>单元配置\>镜像类型          | 无需配置模型，直接在镜像中配置。 - 镜像类型："自定义镜像"  - 选择镜像：与旧版在线服务的"容器镜像存储路径"保持一致。                                                                                                                                                                                                                                                                                                                                                                                                              |
   | AI引擎          | TensorFlow, PyTorch, MindSpore | 部署配置\>单元配置\>镜像类型        | - 镜像类型："预置镜像"  - 选择镜像：预置镜像，选择对应框架的镜像。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | AI引擎          | Custom                        | 部署配置\>单元配置\>镜像类型        | - 镜像类型："自定义镜像"  - 选择镜像：与旧版在线服务的"容器镜像存储路径"保持一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 容器调用接口（AI引擎为Custom） | 提供协议和端口号。                    | 部署配置\>部署管理配置\>容器端口       | 与旧版在线服务保持一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 健康检查（AI引擎为Custom） | 选择开启启动探针、就绪探针、存活探针。         | 部署配置\>单元配置\>健康检查         | 与旧版在线服务保持一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 模型说明                   | 设置模型"文档名称"及其文档链接地址。           | 部署配置\>基础配置\>描述（可选）     | 服务描述可以增加对应的模型描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 系统运行架构              | 设置所创建模型的系统架构。                 | /                      | 不维护此关系，由用户自己保证运行架构的正确性                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 推理加速卡                | 选择是否使用加速卡。                    | /                        | 不维护此关系，由用户自己保证加速卡的正确性                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 部署类型                 | 在线服务。                         | /                        | 在"模型部署 \> 在线服务"页面创建在线服务即可。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 启动命令                | 自定义启动命令。                      | 部署配置\>单元配置\>更多配置\>启动命令  | 与旧版在线服务保持一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
      
   
4. 返回旧版在线服务列表页面，单击待迁移的旧版服务操作列的修改，进入修改页面，获取旧版在线服务部署信息。
   新版在线服务与旧版在线服务模型及服务部署的参数映射关系如[表3]所示。
    表3新旧版在线服务部署配置参数映射 
   | 旧版在线服务参数         | 旧版在线服务参数值                                                                                                                                                                                                                                                                                                                        | 新版在线服务参数                                                                                                                      | 新版在线服务参数值                                                                                                                                                                                                                                                                                                                                                                      |
   |:---|:---|:---|:---|
   | 是否自动停止               | 开启开关/关闭开关。                                                                                                                                                                                                                                                                                                                      | 服务信息\>基础信息\>自动停止                                                                                                                 | 勾选/不勾选。                                                                                                                                                                                                                                                                                                                                                                         |
   | 资源池             | 公共资源池/专属资源池。                                                                                                                                                                                                                                                                                                                     | 部署配置\>资源配置\>资源池                                                                                                                | 当前新版在线服务只支持专属资源池，选择[准备工作]中准备好的专属资源池。                                                                                                                                                                                                                                                                                        |
   | 多池负载均衡          | 开启开关/关闭开关。                                                                                                                                                                                                                                                                                                                       | /                                                                                                                                 | 创建服务后，添加多个部署在不同专属资源池上，添加部署请见在线服务部署具体操作请参见[部署在线服务-部署配置](https://support.huaweicloud.com/inference-modelarts/inference2.0-modelarts-0004.html#ZH-CN_TOPIC_0000002606698915__section17871155203218)。                                                                                                                                                                              |
   | 选择模型及配置\>模型来源  | 订阅模型。                                                                                                                                                                                                                                                                                                                            | /                                                                                                                               | 不支持                                                                                                                                                                                                                                                                                                                                                                             |
   | 选择模型及配置\>模型来源     | 自定义模型\&选择模型及版本。                                                                                                                                                                                                                                                                                                                   | 部署配置\>模型配置\>模型来源 部署配置\>单元配置\>镜像类型                                                  | 根据[表2]"元模型来源"参数对应配置。                                                                                                                                                                                                                                                                                                         |
   | 选择模型及配置\>分流（%）   | 自定义值。                                                                                                                                                                                                                                                                                                                           | 创建服务后，添加多个部署，不同部署可以配置不同的流量配比，详情请见[流量策略](https://support.huaweicloud.com/inference-modelarts/inference2.0-modelarts-0089.html)。 | 与旧版在线推理保持一致。                                                                                                                                                                                                                                                                                                                                                                     |
   | 选择模型及配置\>实例规格      | 下拉框选择实例规格。                                                                                                                                                                                                                                                                                                                       | 部署配置\>单元配置\>单元实例规格                                                                                                                | 与旧版在线推理保持一致。                                                                                                                                                                                                                                                                                                                                                                    |
   | 选择模型及配置\>节点亲和部署  | 开启开关，选择优先部署的目标节点。                                                                                                                                                                                                                                                                                                                | 部署配置\>单元配置\>更多配置\>亲和调度                                                                                                          | 设置亲和类型和强度，选择亲和部署的目标节点，与旧版在线服务保持一致。                                                                                                                                                                                                                                                                                                                                            |
   | 选择模型及配置\>实例数      | 自定义值。                                                                                                                                                                                                                                                                                                                            | 部署配置\>资源配置\>部署副本数                                                                                                               | 与旧版在线推理保持一致。                                                                                                                                                                                                                                                                                                                                                                    |
   | 选择模型及配置\>环境变量    | 输入环境变量值。                                                                                                                                                                                                                                                                                                                          | 部署配置\>单元配置\>环境变量                                                                                                                | 与旧版在线推理保持一致。                                                                                                                                                                                                                                                                                                                                                                     |
   | 选择模型及配置\>部署超时时间 | 自定义值。                                                                                                                                                                                                                                                                                                                            | 部署配置\>部署管理配置\>更多配置\>部署超时时间（分钟）                                                                                                  | 与旧版在线推理保持一致。                                                                                                                                                                                                                                                                                                                                                                     |
   | 选择模型及配置\>存储挂载     | - 存储卷类型：OBS桶/OBS并行文件系统  - 源地址  - 挂载路径   | 存储模型或代码文件： 部署配置\>单元配置\>文件存储挂载                                                       | - 存储类型：与旧版在线服务"存储卷类型"一致。  - 存储地址：与旧版在线服务"源地址"一致。  - 挂载路径：与旧版在线服务"挂载路径"一致。             |
   | 选择模型及配置\>存储挂载     | - 存储卷类型：SFS Turbo  - 源地址  - 挂载路径        | 存储模型或代码文件： 部署配置\>单元配置\>文件存储挂载                                                       | - 存储类型：与旧版在线服务"存储卷类型"一致。  - 文件系统：与旧版在线服务"文件系统名称"一致。  - 挂载路径：与旧版在线服务"挂载路径"一致。   |
   | 服务流量限制            | 输入每秒流量限制次数。                                                                                                                                                                                                                                                                                                                       | 服务信息\>高可用配置\>流控策略\>每秒请求上限（次）                                                                                                    | 与旧版在线服务保持一致。                                                                                                                                                                                                                                                                                                                                                                     |
   | 升级为WebSocket    | 开启开关/关闭开关。                                                                                                                                                                                                                                                                                                                        | 服务信息\>网络配置\>服务协议                                                                                                                 | 旧版在线服务开启开关，新版在线服务选择"WSS"。                                                                                                                                                                                                                                                                                                                                                      |
   | 运行日志输出            | 开启开关/关闭开关。                                                                                                                                                                                                                                                                                                                      | 服务信息\>高级配置\>日志对接LTS                                                                                                              | 与旧版在线服务保持一致。                                                                                                                                                                                                                                                                                                                                                                   |
   | 日志转储              | 开启开关/关闭开关。                                                                                                                                                                                                                                                                                                                      | 服务信息\>高级配置\>日志对接LTS                                                                                                            | 与旧版在线服务保持一致。                                                                                                                                                                                                                                                                                                                                                                   |
   | 支持APP认证           | 开启开关/关闭开关。                                                                                                                                                                                                                                                                                                                         | 服务信息\>网络配置\>认证方式                                                                                                                 | 不支持，可以在服务信息中认证方式选择"API KEY认证"作为替代。                                                                                                                                                                                                                                                                                                                                               |
   | 订阅信息            | 开启开关/关闭开关。                                                                                                                                                                                                                                                                                                                        | /                                                                                                                              | 不支持                                                                                                                                                                                                                                                                                                                                                                            |
   | 高级选项\>标签           | 输入标签键和标签值。                                                                                                                                                                                                                                                                                                                        | 服务信息\>高级配置\>标签                                                                                                                    | 添加标签，标签键和标签值与旧版在线服务保持一致。                                                                                                                                                                                                                                                                                                                                                       |
   | 高级选项\>IPV6       | 开启开关/关闭开关。                                                                                                                                                                                                                                                                                                                         | /                                                                                                                                 | 不支持                                                                                                                                                                                                                                                                                                                                                                             |
      
   
#### 部署二：检查镜像
如果在旧版推理中，业务镜像中有使用rank_table信息做业务编排，在新版推理中，该信息由Modelarts-Infers-Operator组件生成：
表4镜像rank_table说明 
| 字段 | 说明                                    |
|:---|:---|
| ``` status ```                                   | completed 表示就绪，incomplete 表示未就绪（需等待） |
| ``` server_group_count ```                       | Instance下Role的数量                      |
| ``` group_id ```                                 | Role编号（从0开始），Role 0 通常对外提供服务         |
| ``` server_count ```                             | 该Role下的Pod数量                         |
| ``` server_id ```                                | Pod所在宿主机的Host IP                     |
| ``` server_ip ```                                | Pod的访问IP                              |
| ``` pod_name ```                                 | Pod名称（唯一标识）                          |
| ``` device ```                                   | Pod使用的NPU列表                          |
| ``` device_id ```                                | NPU在宿主机上的编号（不一定从0开始或连续）               |
| ``` device_ip ```                                | NPU的访问IP                              |
| ``` device_logical_id ```                        | NPU在Pod内的逻辑编号（从0开始）                    |
| ``` rank_id ```                                  | NPU在Role内的逻辑编号（从0开始）                  |
   
```
{
    "version": "1.0",
    "status": "completed",
    "server_group_count": "2",
    "server_group_list": [
        {
            "group_id": "0",
            "server_count": "1",
            "server_list": [
                {
                    "server_id": "192.xxx.xxx.238",
                    "server_ip": "172.xxx.xxx.139",
                    "pod_name": "infer-xxx-role-0-xxx",
                    "device": [
                        {"device_id": "0", "device_ip": "29.xxx.xxx.197", "rank_id": "0"},
                        ...
                    ]
                }
            ]
        },
        {
            "group_id": "1",
            "server_count": "2",
            "server_list": [
                {
                    "server_id": "192.xxx.xxx.0",
                    "server_ip": "172.xxx.xxx.54",
                    "pod_name": "infer-xxx-role-1-xxx",
                    "device": [
                        {"device_id": "0", "device_ip": "29.xxx.xxx.74", "rank_id": "0"},
                        ...
                    ]
                },
                ...
            ]
        }
    ]
}
```
其中，在使用rank table时，需要等到status 为"completed"状态。参考脚本rank_table_checker.py：
```
import json
import os
import time
GLOBAL_RANK_TABLE_ENV = 'GLOBAL_RANK_TABLE_FILE_PATH'
POD_IP_ENV = 'POD_IP'
def wait_completed_global_rank_table():
    while True:
        try:
            pod_ip = os.getenv(POD_IP_ENV)
            global_rank_table_path = os.getenv(GLOBAL_RANK_TABLE_ENV)
            if not global_rank_table_path:
                print('read env \"{}\" failed'.format(GLOBAL_RANK_TABLE_ENV))
            with open(global_rank_table_path, 'r') as file:
                buf = file.read()
            rank_table = json.loads(buf)
            if rank_table["status"] == "completed":
                server_group_list = rank_table['server_group_list']
                for group in server_group_list:
                    server_list = group["server_list"]
                    for i in range(len(server_list)):
                        if server_list[i]["server_ip"] == pod_ip:
                            return
                print("cannot find local ip in ranktable!")
            else:
                print("status of ranktable is not completed!")
        except Exception as e:
            print(e)
        time.sleep(1)
if __name__ == "__main__":
    wait_completed_global_rank_table()
```
#### 步骤三：创建新版在线服务
1. 登录[ModelArts管理控制台](https://console.huaweicloud.com/modelarts/)，在左侧菜单栏中选择"模型部署 \> 在线服务"，进入"在线服务"管理页面。
2. 在"在线服务"列表中，单击"部署"。
3. 在"部署在线服务"页面，参考[表2]和[表3]中旧版在线服务的配置信息，配置新版在线服务的服务信息和部署信息，更多参数说明请见《用户指南：部署模型为在线服务》。
4. 服务信息和部署配置完成后，在"部署在线服务\>确认配置"页面，确认配置信息无误后，单击"确认部署"。 部署服务一般需要运行一段时间，根据您选择的数据量和资源不同，部署时间将耗时几分钟到几十分钟不等。
   您可以前往在线服务列表，查看在线服务的基本情况。在线服务列表中，刚部署的服务"状态"为"部署中"，当在线服务的"状态"变为"运行中"时，表示服务部署完成。
   
 
#### 后续操作
部署完成后可以在预测页面进行业务验证，详情请见[在线服务预测](https://support.huaweicloud.com/inference-modelarts/inference2.0-modelarts-0100.html#ZH-CN_TOPIC_0000002606699295__zh-cn_topic_0000002266128298_section48701112105014)。
如果功能没问题后，可以根据业务诉求，参考[通过专属APIG\&WAF\&VPC\&ELB连接内网访问在线服务](https://support.huaweicloud.com/bestpractice-modelarts/inference2.0-modelarts-0043.html)和[通过负载均衡连接内网访问在线服务](https://support.huaweicloud.com/inference-modelarts/inference2.0-modelarts-0104.html)建设公网访问链路。
