V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
notgood
V2EX  ›  程序员

如何克隆 GCP 系统到 BWH

  •  
  •   notgood · 2019-06-14 13:26:33 +08:00 via Android · 3197 次点击
    这是一个创建于 1749 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位 V 友好,谷歌云上有台 VPS,现在瓦工上新开了台 VPS,重新部署太麻烦了,想直接克隆谷歌云那台 VPS 镜像到瓦工上,有什么好方法求推荐
    32 条回复    2019-10-14 18:16:13 +08:00
    Ciallo
        1
    Ciallo  
       2019-06-14 13:35:22 +08:00
    之前在两台阿里云之间迁移,直接 tar 打包整个系统,然后丢到 web 服务器下,另一边直接 wget 下载,解压恢复备份,然后控制台重置下系统密码就可以了
    wellwell
        2
    wellwell  
       2019-06-14 13:36:28 +08:00
    docker ?
    okwork
        3
    okwork  
       2019-06-14 13:54:49 +08:00 via Android
    @Ciallo 同一个云服务商,不是直接可以镜像复制吗?不同的云服务商直接迁移比较麻烦
    Ciallo
        4
    Ciallo  
       2019-06-14 13:56:25 +08:00
    @okwork 阿里云 ecs 和阿里云轻量转移,提工单问了,说轻量没办法用备份
    lzvezr
        5
    lzvezr  
       2019-06-14 13:56:30 +08:00 via iPhone
    bwh 我记得可以直接用 ssh 克隆来的,不过安不安全就不知道了
    notgood
        6
    notgood  
    OP
       2019-06-14 14:26:58 +08:00 via Android
    @lzvezr 用什么工具或命令呢?谢谢
    @Ciallo A 小鸡沒有部署 WEB 服务,还没有别的办法?谢谢
    lzvezr
        7
    lzvezr  
       2019-06-14 15:04:12 +08:00 via iPhone
    @notgood 网页控制台就有,前几天通知 ovz 取消了就上去看了一眼
    pagxir
        8
    pagxir  
       2019-06-14 15:23:59 +08:00 via Android   ❤️ 3
    可以用 dd 呀,前提是 bwh 的磁盘够大。直接用 Tiny Core Linux 或者 mfslinux 引导两台 vps 进入迷你 linux,让后 dd if=/dev/vdxx bs=1M|nc -l -p 9000,另外一台机器运行 nc xxx.xxx.xx.x 9000 |dd of=/dev/vdxx bs=1M
    notgood
        9
    notgood  
    OP
       2019-06-14 18:25:35 +08:00 via Android
    @lzvezr 你是指网页控制面板的 snapshot? 那个只能是瓦工的机器之间
    Jirajine
        10
    Jirajine  
       2019-06-14 18:39:14 +08:00 via Android
    @pagxir 这种方法还要修改 fstab 的硬盘 UUID 吧。。
    pagxir
        11
    pagxir  
       2019-06-14 18:51:08 +08:00 via Android
    @Jirajine 不需要,uuid 是建文件系统或者交换分区时的保持在磁盘的一个数据。只有当你 fstab 用 /dev/sdxxx 这种需要修改。
    flynaj
        12
    flynaj  
       2019-06-14 20:21:44 +08:00 via Android
    用系统自带的备份和恢复
    notgood
        13
    notgood  
    OP
       2019-06-14 20:35:44 +08:00 via Android
    @pagxir 大佬我 GCP 硬盘只有 10G,请问瓦工的要多大才可以?另外 tiny core 沒玩过,下载 core.iso 镜像文件后写进 grub 引导?能否帮忙看看 以下命令哪里出问题吗?
    wget https://distro.ibiblio.org/tinycorelinux/9.x/x86_64/release/CorePure64-9.0.iso -O /boot/CorePure64-9.0.iso
    nano /etc/grub.d/40_custom
    #/etc/grub.d/40_custom
    menuentry "CorePure64-9.0.iso" {
    loopback loop (hd0,msdos1)/CorePure64-9.0.iso
    linux (loop)/boot/vmlinuz64
    initrd (loop)/boot/corepure64.gz
    }
    # One of
    grub2-mkconfig -o /boot/grub2/grub.cfg
    grub-mkconfig -o /boot/grub/grub.cfg
    reboot

    另外 DD 完后 GCP 如何退出回到原来系统?謝谢指点
    pagxir
        14
    pagxir  
       2019-06-14 20:54:53 +08:00 via Android
    mfslinux 因为自带 ssh-server 并且自动 dhcp 获取 IP,所以用起来可能好一些。进入 tinylinux/mfslinux 其实可以不用改 grub 的,直接安装 kexec-tools,然后把 ISO 解压(或者挂载)然后用 kexec 就可以进入迷你 linux 环境,然后操作完成之后直接 reboot 或者控制台强制开关电源即可回到原来系统。
    pagxir
        15
    pagxir  
       2019-06-14 20:56:59 +08:00 via Android
    因为你现在改了 grub,可能你要回到原来系统就需要在控制台进入 grub 系统启动菜单选择系统了,或者把你添加到系统菜单删除然后重启。
    pagxir
        16
    pagxir  
       2019-06-14 21:00:43 +08:00 via Android
    磁盘大小只需要瓦工磁盘的不小于 gcp 即可,瓦工硬盘更大也没问题。然后 dd 完成之后,如果瓦工磁盘比较大(例如 20G ),你可以调整分区表,增加新分区或者改变已有分区大小(迷你 linux 环境可以执行这个操作)
    notgood
        17
    notgood  
    OP
       2019-06-14 22:10:06 +08:00 via Android
    @pagxir 谢谢大佬!这个 append 的命令行如何写呢?
    kexec -l /boot/core.iso -append="root= ? "

    @pagxir 这个 NC 后面接的是 GCP 的 IP 地址? nc xxx.xxx.xx.x 9000 |dd of=/dev/vdxx bs=1M

    很多人提到两个 VPS 磁盘和网卡的识别信息之类的不一样,DD 后会有很多奇怪问题,请问大佬您 DD 后碰到过问题没有?
    pagxir
        18
    pagxir  
       2019-06-14 22:18:31 +08:00 via Android
    kexec -l /boot/vmlinuz --initrd /boot/tinycore.gz 后面的 append 那串不需要用。
    至于磁盘,用 uuid 是不需要改的。而网卡可能命名会变,到时候进控制台操作修改一下配置吧。
    pagxir
        19
    pagxir  
       2019-06-14 22:22:13 +08:00 via Android
    nc 命令用法最后自己查查 一般发送端加 -q 0 或者 --send-only (不同版本,参数不一致)让 nc 发送完成后自己退出。
    msg7086
        20
    msg7086  
       2019-06-14 23:01:51 +08:00
    rsync 过去就行,磁盘也不需要一样大小。新机器下需要更新 grub 还有更改 IP 地址。
    notgood
        21
    notgood  
    OP
       2019-06-15 14:50:02 +08:00 via Android
    @pagxir 好的我再研究下,谢谢你
    @pagxir
    notgood
        22
    notgood  
    OP
       2019-06-17 00:51:16 +08:00 via Android
    @msg7086 谢谢您的回复!,请问在 rsync 前记录下来新机器的 ect/network/interfaces 内容,然后
    notgood
        23
    notgood  
    OP
       2019-06-17 01:04:19 +08:00 via Android
    @msg7086 谢谢 V 友的回复!请问在 rsync 之前先记录下 新机器的 ect/network/interfaces 内容,然后 rsync 完成后再去新机器上更新回原来的 interfaces 这样可以吗?

    另外最后再执行 update grub,会自动配置 grub 引导程序吗?还是要手动修改启动菜单项?

    谢谢指点!祝好!
    msg7086
        24
    msg7086  
       2019-06-17 01:37:50 +08:00
    @notgood 可以。
    update-grub 是 Ubuntu 和 Debian 上的程序,如果不是 Debian 的话你可以自己查一下替代品。
    另外可能还需要做 grub-install,重新装一遍 grub 到虚拟磁盘上。
    其它应该没太多要折腾的,反正一次失败了就再来一次,没什么风险的。
    notgood
        25
    notgood  
    OP
       2019-06-17 02:02:52 +08:00 via Android
    @msg7086 谢谢啦!是 Ubuntu ! 正在 rsync 进行中- 请问是直接执行 grub-install 还是需要指定虚拟磁盘目径?如何查找虚拟磁盘路径?
    msg7086
        26
    msg7086  
       2019-06-17 02:05:57 +08:00
    @notgood grub-install /dev/vda 一般是这样吧,也可能是 sda。
    notgood
        27
    notgood  
    OP
       2019-10-02 18:31:28 +08:00 via iPhone
    @msg7086 V 友, 请问我想直接克隆 VPS A 的系统 到 VPS B 上, 通过 ssh 方式来运行 rsync, 下面的这个命令以及路徑 path 这样写对吗? 谢谢指导;
    rsync -avz --progress --delete [email protected]:/dev/vda /dev/vda

    VPS A 和 B 都是 centos7 , 同步完最后 VPS B 需要先执行 grub2-mkconfig -o /boot/grub2/grub.cfg ,最后是再执行 grub2-install /dev/vda 还是 grub-install /dev/vda ?
    谢谢🙏
    notgood
        28
    notgood  
    OP
       2019-10-02 19:44:19 +08:00 via iPhone
    @msg7086 V 友,另外是不是还要修改备份系统的 etc/fstab ?
    比如下面的这个该怎么修改才能让它读取到变更后的磁区呢? 谢谢🙏

    tmpfs /tmp tmpfs nodev,nosuid 0 0

    /dev/sda1 /boot ext2 defaults 0 2
    /dev/sda5 none swap defaults 0 0
    /dev/sda6 / ext4 defaults 0 1
    /dev/sda7 /home ext4 defaults 0 2
    programV2
        29
    programV2  
       2019-10-05 14:28:18 +08:00 via iPhone
    @pagxir 大佬 请问大佬有成功用 DD 迁移过不同云服务商之间 vps 的吗?方便问一下是什么云服务商吗? 我网卡也更新了,还是启动不了,谷歌也找不到成功的 vps 迁移教程, 这样的需求应该有很多才是
    pagxir
        30
    pagxir  
       2019-10-06 17:13:10 +08:00 via Android
    @programV2 你应该进 vnc 控制台看看。linux 迁移主要是引导管理器的安装,其他的只需要整个文件系统打包过去然后改改配置即可。
    programV2
        31
    programV2  
       2019-10-06 23:33:51 +08:00 via iPhone
    @pagxir 我想看的,但 gcp 控制台没有提供 vnc,请问您知道不同云服务商 vps 迁移有成功的案例吗?
    programV2
        32
    programV2  
       2019-10-14 18:16:13 +08:00 via iPhone
    @pagxir 大佬请问哪些什么情况下需要改 UUID? 谷歌了一下午都没头绪,谢谢指点🙏
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3262 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 14:05 · PVG 22:05 · LAX 07:05 · JFK 10:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.