• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rjagge
V2EX  ›  程序员

如何迁移整个深度学习服务器? [目标服务器不能连接外网]

  •  
  •   rjagge · Nov 11, 2024 · 2826 views
    This topic created in 555 days ago, the information mentioned may be changed or developed.

    各位老哥, 接到老板需求需要迁移深度学习平台从[旧服务器]到[新服务器]: 需要把这些旧服务器环境, 数据, 和 llm 的模型参数全部搬迁到一个新服务器

    [旧服务器介绍] 是 ubuntu 系统, 然后通过 pytorch, trasnformers 等框架进行大语言模型的训练, 然后使用 conda 进行 python 的包管理[大概的意思, 标准的深度学习环境]. 旧服务器下载了三个 70b 的模型,用于本地部署.

    [新服务器介绍] 新服务器有安全保护限制不能够连接到互联网. 也就是说, pip install, apt install 以及下载模型参数都不被允许.

    [可能的方案] 我个人有限的认知是通过 docker 一次性打包.

    我接到的通知是, 我只能够通过在机房内通过物理上传的方式进行实验环境的移植. 老哥们有什么好的方法和建议, 能够方便的做这个移植的事情吗?[小弟从未搞过离线移植]

    23 replies    2024-11-11 20:07:06 +08:00
    chihiro2014
        1
    chihiro2014  
       Nov 11, 2024
    把硬盘拔了,装到新服务器
    defunct9
        2
    defunct9  
       Nov 11, 2024
    docker 是行不通的。直接打包旧服务器的东西,然后传到新服务器上即可。难度不大,就是细节,不要遗漏
    rjagge
        3
    rjagge  
    OP
       Nov 11, 2024
    @defunct9 为什么 docker 行不通呢?
    rjagge
        4
    rjagge  
    OP
       Nov 11, 2024
    @defunct9 [直接打包旧服务器的东西] 我的理解是打包 conda 环境, apt 依赖, 数据和模型; 还有其它我遗漏的吗
    rjagge
        5
    rjagge  
    OP
       Nov 11, 2024
    @chihiro2014 那必然是不行的....我们原来的服务器还要继续使用..
    defunct9
        6
    defunct9  
       Nov 11, 2024
    东西得在 docker 里才能用 docker 打包,不在你打进去也没用啊。看你的描述没在里面
    Vraw5
        7
    Vraw5  
       Nov 11, 2024   ❤️ 3
    dd 拷整个硬盘过去
    sampeng
        8
    sampeng  
       Nov 11, 2024
    把新服务器搬出来装好再放回去。。。
    k9982874
        9
    k9982874  
       Nov 11, 2024 via Android
    7 楼正解,硬件差别不大直接 dd 过去,改 boot loader 完事
    ugpu
        10
    ugpu  
       Nov 11, 2024
    除非可以克隆硬盘, 或者镜像.
    不然就写脚本重新部署 & 找个脚本打印所有系统环境安装的版本信息? github 找找?

    这种所谓的 手动“迁移” 到最后 你会发现莫名其妙的启不来 & 少了 lib & lib 版本对不上
    momocraft
        11
    momocraft  
       Nov 11, 2024   ❤️ 1
    写个 Dockerfile ,在 docker build 时把需要下载的东西全部下载好
    docker export 成文件
    在内网机器 docker import 那个文件
    riazjack218
        12
    riazjack218  
       Nov 11, 2024
    如果有群辉的话,可以尝试下群辉的系统备份
    mgrddsj
        13
    mgrddsj  
       Nov 11, 2024
    Conda 环境可以通过 `conda info -e` 找到位置。
    Transformer 等模型如果是通过 Hugging Face 下载的话,那应该会在 `~/.cache/huggingface/` 目录下,这玩意估计挺容易忽略的。
    以及由于数据通常都比较大,推荐用 ncdu 命令(或单纯的 du )找到大文件的位置,并迁移。
    其它的就只有搬完之后试试才知道了。
    Solix
        14
    Solix  
       Nov 11, 2024
    整盘做个镜像,然后镜像恢复呢
    paopjian
        15
    paopjian  
       Nov 11, 2024
    除了 cuda 驱动问题,其他一切都不是问题,恶心的只有环境问题, 省事的方法就是模拟新机器环境,先用 pip 把包都下好,再压缩放到新机器里
    rjagge
        16
    rjagge  
    OP
       Nov 11, 2024
    @Vraw5
    @k9982874 这个我考虑过, 目标服务器是一个集群, 不是我们单独拥有的, 不知道能不能这样搞- -
    Vraw5
        17
    Vraw5  
       Nov 11, 2024
    @rjagge #16 开多方会议,确定能不能行。如果不 dd 的话,先把旧的数据 rsync 到临时硬盘,需要的镜像啥的都弄进去,临时硬盘插新机器上,新机器做新部署,需要啥东西就从临时硬盘 rsync
    Hengtang
        18
    Hengtang  
       Nov 11, 2024
    conda 好说,包默认都在 conda 目录下面,pip 的包也相对集中。

    如果只是这俩安装的依赖倒还简单,直接复制就行,然后把模型的目录拷一下,一般是.cache 。

    但是如果有其它依赖比如 apt 那就不好弄了,基本得重装或者磁盘拷贝。

    dd 整机备份就行,服务器集群无非就是还原到虚拟盘的事情。
    ```shell
    dd status=progress if=/dev/sda | gzip > /mnt/mounted_drive/backup.gz
    ```
    Vraw5
        19
    Vraw5  
       Nov 11, 2024
    @Vraw5 #17 另外一个方法就是新机器硬盘拿出来,找个其他联网机器做环境,然后插回去(有无引入安全隐患靠自己判断)
    coefu
        20
    coefu  
       Nov 11, 2024
    https://docs.vmware.com/en/vCenter-Converter-Standalone/index.html 可以试试这个工具。新的机器虚拟化更好。
    coefu
        21
    coefu  
       Nov 11, 2024
    VMware 这种工业级的东西,应该还是靠谱的。
    pagxir
        22
    pagxir  
       Nov 11, 2024 via Android
    @rjagge #3 因为他不会。直接整个系统打包过去就好了,你可以用 lxc/lxd/docker/libvirt-lxc 运行老的环境,如果需要安装新系统但是不想重新配置老环境的话。
    bigdogbigpig
        23
    bigdogbigpig  
    PRO
       Nov 11, 2024
    换硬盘
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5686 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 03:16 · PVG 11:16 · LAX 20:16 · JFK 23:16
    ♥ Do have faith in what you're doing.