从v0.15或更早版本升级到ClearML服务器
如果您正在将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索引。
- 终止迁移容器。
- 将原始数据目录重命名以避免意外重用。
一旦迁移过程成功完成,旧版本的Trains Server将无法再访问数据,需要安装ClearML Server。
先决条件
- 对默认的Trains Server数据目录
/opt/clearml/data
及其子目录的读写权限,或者,如果未使用此默认目录,则对所使用的目录及其子目录的权限。 - 系统内存至少为8 GB。
- 最小可用磁盘空间至少为30%加上数据大小的两倍。
- Python 版本 >=2.7 或 >=3.6,并且可以从命令行访问 Python,命令为
python
迁移数据
迁移数据的步骤:
-
如果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
-
-
对于Kubernetes和使用Helm的Kubernetes,连接到Kubernetes集群中标记为
app=trains
的节点。 -
下载迁移包存档:
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。
-
解压存档:
unzip trains-server-0.16.0-migration.zip -d /opt/trains
-
迁移数据:
-
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
(orc:\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
(orc:\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 ofFalse
(Performs backup)parallel
- Copy several indices in parallel to utilize more CPU cores. If not specified, parallel indexing is turned off.
-
Kubernetes
-
克隆
trains-server-k8s
仓库并切换到新的trains-server-k8s/upgrade-elastic
目录:git clone https://github.com/allegroai/clearml-server-k8s.git && cd clearml-server-k8s/upgrade-elastic
-
创建
upgrade-elastic
命名空间和部署:kubectl apply -k overlays/current_version
等待作业完成。要检查是否完成,请运行:
kubectl get jobs -n upgrade-elastic
-
-
使用Helm的Kubernetes
-
将
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
。 -
在集群上安装
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
如果迁移脚本未成功完成,迁移脚本将打印错误。
升级到 ClearML Server v.1.2 或更新版本
如果您正在将ClearML Server升级到1.2或更高版本,您需要迁移数据库内容以兼容新版本。请参阅此处的说明。否则,请继续下面的说明。
完成安装
在验证数据迁移成功完成后,继续升级您的服务器: