从v1.1或更早版本升级服务器
如果您的服务器是v0.15或更早版本,您必须首先完成v0.16升级程序,并在成功完成后继续此处。
在v1.2版本中,ClearML Server的MongoDB子系统已从3.6版本升级到4.4版本。这一变化需要对数据库内容进行迁移,以确保与新版本兼容。
ClearML的helm chart已经在运行 mongodb版本4.4。如果您的ClearML服务器已使用此chart部署(使用默认的mongodb bitnami chart)- 您可以停止阅读,因为不需要迁移。
迁移过程包括以下内容:
- 备份您的数据
- 创建数据的副本,该副本将用于迁移到新版本
- 顺序运行MongoDB的数据迁移:3.6->4.0, 4.0->4.2, 4.0->4.4
在过程结束时,您的数据将可在新位置使用,准备与ClearML Server v1.2一起使用。
一旦ClearML Server v1.2启动并运行,并且您确认数据完好无损,您可以安全地删除旧的数据副本。
先决条件
- 默认ClearML Server数据目录
/opt/clearml/data
及其子目录的读写权限,或者如果使用了不同的位置,则为该目录及其子目录的权限。 - 最小可用磁盘空间至少为数据大小的三倍。
- Python 版本 >=2.7 或 >=3.6,并且可以从命令行访问 Python 作为 python
开始之前
为了避免数据损坏,在应用迁移程序之前请关闭您的ClearML服务器:
-
Linux 和 macOS
docker-compose -f /opt/clearml/docker-compose.yml down
-
Windows
docker-compose -f c:\opt\clearml\docker-compose-win10.yml down
迁移数据
通过脚本迁移
提供了一个迁移脚本,可以自动为所有支持的操作系统运行此过程。
下载脚本并在您的ClearML服务器上运行它。
运行clearml-server-1.2.0-migration.py -–help
以查看执行选项。
请注意,脚本将在原始目录中创建数据的备份存档。
一旦脚本成功完成,继续您的升级。
手动迁移
以下是关于如何将您的ClearML数据从mongodb 3.6迁移到mongodb 4.4的说明。
这些命令是为Linux环境提供的,并假设ClearML已安装在其默认路径中。
如果您使用的是不同的操作系统,请将shell和docker命令替换为适合您操作系统的命令。如果您已将ClearML安装在不同的路径下,请相应地替换文件位置。
-
备份源数据文件夹:
sudo tar -zcf mongodb_upgrade.gz -C /opt/clearml/data/mongo .
-
将数据复制到新文件夹并设置权限(在Linux上需要权限):
sudo mkdir /opt/clearml/data/mongo_4
sudo tar -xzf mongodb_upgrade.gz -C /opt/clearml/data/mongo_4
sudo chown -R 1000:1000 /opt/clearml/data/mongo_4 -
运行 mongo 4.0 容器:
sudo docker run -id -v /opt/clearml/data/mongo_4/db:/data/db -v /opt/clearml/data/mongo_4/configdb:/data/configdb --name mongodb_upgrade mongo:4.0.27
-
将数据升级到mongo 4.0:
sudo docker exec mongodb_upgrade bash -c 'mongo --eval "db.adminCommand({setFeatureCompatibilityVersion:\"4.0\"})"'
此命令应返回一个
{ "ok" : 1 }
响应。 -
停止 mongo 4.0 容器:
sudo docker stop mongodb_upgrade && sudo docker rm mongodb_upgrade
-
运行 mongo 4.2 容器:
sudo docker run -id -v /opt/clearml/data/mongo_4/db:/data/db -v /opt/clearml/data/mongo_4/configdb:/data/configdb --name mongodb_upgrade mongo:4.2.16
-
将数据升级到mongo 4.2:
sudo docker exec mongodb_upgrade bash -c 'mongo --eval "db.adminCommand({setFeatureCompatibilityVersion:\"4.2\"})"'
此命令应返回一个
{ "ok" : 1 }
响应。 -
停止 mongo 4.2 容器:
sudo docker stop mongodb_upgrade && sudo docker rm mongodb_upgrade
-
运行 mongo 4.4 容器:
sudo docker run -id -v /opt/clearml/data/mongo_4/db:/data/db -v /opt/clearml/data/mongo_4/configdb:/data/configdb --name mongodb_upgrade mongo:4.4.9
-
将数据升级到MongoDB 4.4:
sudo docker exec mongodb_upgrade bash -c 'mongo --eval "db.adminCommand({setFeatureCompatibilityVersion:\"4.4\"})"'
此命令应返回一个
{ "ok" : 1 }
响应。 -
停止 mongo 4.4:
sudo docker stop mongodb_upgrade && sudo docker rm mongodb_upgrade
完成安装
继续升级您的ClearML服务器: