Skip to main content

从v0.15或更早版本升级到ClearML服务器

updating to ClearML Server v1.2+

如果您正在将ClearML Server升级到1.2或更高版本,您需要迁移数据库内容以兼容新版本,在执行以下迁移说明后。

在v0.16版本中,Trains Server的Elasticsearch子系统从5.6版本升级到了7.6版本。这一变化需要对数据库内容进行迁移,以适应不同版本之间索引结构的变化。

本页面提供了执行迁移过程的说明。如果您使用的是Trains Server版本0.15或更早版本,并且正在升级到ClearML Server,请遵循此过程。

迁移过程利用一个脚本自动执行以下操作:

  • 备份现有的Trains Server Elasticsearch数据。
  • 启动一对Elasticsearch 5和Elasticsearch 7迁移容器。
  • 使用迁移容器复制Elasticsearch索引。
  • 终止迁移容器。
  • 将原始数据目录重命名以避免意外重用。
warning

一旦迁移过程成功完成,旧版本的Trains Server将无法再访问数据,需要安装ClearML Server。

先决条件

  • 对默认的Trains Server数据目录/opt/clearml/data及其子目录的读写权限,或者,如果未使用此默认目录,则对所使用的目录及其子目录的权限。
  • 系统内存至少为8 GB。
  • 最小可用磁盘空间至少为30%加上数据大小的两倍。
  • Python 版本 >=2.7 或 >=3.6,并且可以从命令行访问 Python,命令为 python

迁移数据

迁移数据的步骤:

  1. 如果Trains Server正在运行,请关闭它:

    • Linux 和 macOS

      docker-compose -f /opt/trains/docker-compose.yml down
    • Windows

      docker-compose -f c:\opt\trains\docker-compose-win10.yml down
    • Kubernetes

      kubectl delete -k overlays/current_version
    • 使用Helm的Kubernetes

      helm del --purge trains-server
      kubectl delete namespace trains
  2. 对于Kubernetes使用Helm的Kubernetes,连接到Kubernetes集群中标记为app=trains的节点。

  3. 下载迁移包存档:

    curl -L -O  https://github.com/allegroai/clearml-server/releases/download/0.16.0/trains-server-0.16.0-migration.zip

    如果文件需要手动下载,请使用此直接链接:trains-server-0.16.0-migration.zip

  4. 解压存档:

    unzip trains-server-0.16.0-migration.zip  -d /opt/trains
  5. 迁移数据:

    • Linux, macOS, 和 Windows - 如果管理自己的容器。

      运行迁移脚本。如果使用提升的权限来运行Docker(在Linux中使用sudo,或在Windows中使用管理员权限),则使用提升的权限来运行迁移脚本。

      python elastic_upgrade.py [-s|--source <source_path>] [-t|--target <target_path>] [-n|--no-backup] [-p|--parallel]

      以下可选命令行参数可用于控制迁移脚本的执行:

      • <source_path> - The path to the Elasticsearch data directory in the current Trains Server deployment.
        If not specified, uses the default value of /opt/trains/data/elastic (or c:\opt\trains\data\elastic in Windows)
      • <target_path> - The path to the Elasticsearch data directory in the current Trains Server deployment.
        If not specified, uses the default value of /opt/trains/data/elastic_7 (or c:\opt\trains\data\elastic_7 in Windows)
      • no-backup - Skip creating a backup of the existing Elasticsearch data directory before performing the migration.
        If not specified, takes on the default value of False (Performs backup)
      • parallel - Copy several indices in parallel to utilize more CPU cores. If not specified, parallel indexing is turned off.
    • Kubernetes

      1. 克隆trains-server-k8s仓库并切换到新的trains-server-k8s/upgrade-elastic目录:

        git clone https://github.com/allegroai/clearml-server-k8s.git && cd clearml-server-k8s/upgrade-elastic
      2. 创建 upgrade-elastic 命名空间和部署:

        kubectl apply -k overlays/current_version

        等待作业完成。要检查是否完成,请运行:

        kubectl get jobs -n upgrade-elastic
    • 使用Helm的Kubernetes

      1. clearml-server仓库添加到Helm客户端。

        helm repo add allegroai https://allegroai.github.io/clearml-server-helm/

        确认clearml-server仓库现在已在Helm客户端中。

        helm search clearml

        helm search 的结果必须包括 allegroai/upgrade-elastic-helm

      2. 在集群上安装 upgrade-elastic-helm

        helm install allegroai/upgrade-elastic-helm --namespace=upgrade-elastic --name upgrade

        在集群中创建了一个可升级的namespace,并在其中部署了升级。

        等待作业完成。要检查是否完成,请执行以下命令:

        kubectl get jobs -n upgrade-elastic

验证数据迁移

成功完成后,迁移脚本会重命名原始的Trains Server目录,该目录包含现已迁移的数据,并打印完成消息:

Renaming the source directory /opt/trains/data/elastic to /opt/trains/data/elastic_migrated_<date_time>.
Upgrade completed.

迁移脚本执行期间的所有控制台输出都保存到迁移脚本执行目录中的日志文件中:

<path_to_script>/upgrade_to_7_<date_time>.log

如果迁移脚本未成功完成,迁移脚本将打印错误。

important

如需解决迁移问题,请查看ClearMLSlack频道GitHub问题以及FAQ中的ClearML Server部分。

升级到 ClearML Server v.1.2 或更新版本

如果您正在将ClearML Server升级到1.2或更高版本,您需要迁移数据库内容以兼容新版本。请参阅此处的说明。否则,请继续下面的说明。

完成安装

在验证数据迁移成功完成后,继续升级您的服务器: