CentOs6.9跨云主机整体系统迁移

CentOs6.9跨云主机整体系统迁移

                                                                                                             Created by    战斗的小涵

                                                                                                                            2017-10-22

一,实验环境

 从微软Azure云,迁移到AWS

主机A 操作系统CentOs6.9 内核vmlinuz-2.6.32-696.3.2.el6.x86_64

本地虚拟主机B 操作系统CentOs6.9 内核vmlinuz-2.6.32-696.el6.x86_64

保证两个主机内核版本一定要一致,如果不一致的话最好可以用yum把两个内核更新到一致的版本,这次我迁移的时候才发现两个内核版本不一致。解决方法如下

二,实验步骤

1.   在本地准备好和要迁移的主机操作系统一样的虚拟主机B,最小化安装就可以,我这里用的是VMware,开机快速按F2,进入BIOS模式,选择如下图,

 

001350_ZRpG_3571652.png

2.  进入救援模式

001357_RqnT_3571652.png

3.  选择语言

001403_0Y7b_3571652.png

4.  选择键盘

001410_nqFB_3571652.png

5.  配置网络确保能够连上你要迁移的主机

001424_PHfg_3571652.png

001429_jl9M_3571652.png

001435_WUs2_3571652.png

6.   因为是要迁移主机上所有的数据到本地虚拟机,所以,这边要选择跳过,选择继续的话,系统会挂载你的磁盘,这样,你就不好格式化根分区,所以选择Skip

001513_FBJ4_3571652.png

7.  进入到bash终端

001523_Klb6_3571652.png

001527_SG0U_3571652.png

8.  配置ssh

ssh-keygen -t rsa 

确保能够免密登陆要被克隆的主机。

9.  我这里本地虚拟机分了两个分区/dev/sda1 mount on /boot 和 /dev/sda2 mount /

在bash里我创建了个目录 /backup 并且把/dev/sda2 挂载到了这上边,一定要确保在挂载之前/dev/sda2没有其他的挂载

挂载好以后,删除/backup 目录里的所有东西,从新格式化/dev/sda2也可以,但是不建议,因为格式化完以后也需要挂载,而且格式化磁盘容易出错。

10.  准备工作完成后我们开始同步数据,这里我使用的是dump/restore

ssh  Azure@targetPC  dump -0 -f - / | restore -r -f - 

这里targetPC是你目标电脑的IP地址。参数“-0”表示完全备份,“-f-”表示使用stdin/stdout做为文件描述符,而“-r”意思是指示restore去重新创建通过网络传送的文件系统到目标电脑上去。更多内容请参考dump(8) 和 restore(8)。下面你看到的是传送主文件系统的输出。 

开始后会显示:

DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005 

DUMP: Dumping /dev/hda3 (/) to standard output 

DUMP: Label: debian 

DUMP: Writing 10 Kilobyte records 

DUMP: mapping (Pass I) [regular files] 

DUMP: mapping (Pass II) [directories] 

DUMP: estimated 547312 blocks. 

DUMP: Volume 1 started with block 1 at: Tue Feb 22 15:50:14 2005 

DUMP: dumping (Pass III) [directories] 

DUMP: dumping (Pass IV) [regular files] 

DUMP: Volume 1 completed at: Tue Feb 22 15:51:43 2005 

DUMP: Volume 1 546590 blocks (533.78MB) 

DUMP: Volume 1 took 0:01:29 

DUMP: Volume 1 transfer rate: 6141 kB/s 

DUMP: 546590 blocks (533.78MB) 

DUMP: finished in 89 seconds, throughput 6141 kBytes/sec 

DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005 

DUMP: Date this dump completed: Tue Feb 22 15:51:43 2005 

DUMP: Average transfer rate: 6141 kB/s 

DUMP: DUMP IS DONE 

Restore通常会创建一个名叫restoresymtable的文件,如果你确信在文件系统重建过程中没有错误发生,你可以将这个文件删掉。完成主文件系统的复制,下面我们依次完成其他子分区的复制。从/usr开始吧(假定你现在的工作目录是未来的主文件系统)。 

11.   数据拉取下来以后,由于云上的主机是都在一个分区,所以,直接dump / 会把系统数据全部来下来,如果还有其他挂载磁盘,直接拷贝,或者用上边dump方法都可以。

12.   我这里两台主机内核不一致,我把 从A主机拉取下来的 boot/vmlinuz-2.6.32-696.3.2.el6.x86_64  直接覆盖掉 vmlinuz-2.6.32-696.el6.x86_64,但是文件名字还是vmlinuz-2.6.32-696.el6.x86_64

和 initramfs-2.6.32-696.3.2.el6.x86_64.img  覆盖掉initramfs-2.6.32-696.el6.x86_64.img 文件名还保持initramfs-2.6.32-696.el6.x86_64.img,不变

13.   设置开机自动挂载,注意这个文件是从A主机拉取下来的,所以要把磁盘挂载情况搞清楚。本地的磁盘还是和以前的一样挂载,我这边就改了两个UUID。

15.   然后reboot,Azure云主机应该是会带一个walinuxagent的东西,启动的时候会报错,由于内核发生变化kdump也会发出警告,而且每次开机重启都会更新,进去以后把他们都关掉。

这样还不能直接导出OVA,然后上传到AWS做成AMI,可能是内核发生改变的原因,我试了好几次,浪费了不少时间,会报ClientError: Multiple different grub/menu.lst files found,这个错。然后我又从在本地最小化安装了新的虚拟机C,这次在这里边先yum update ,升级kernel,并设置开机优先使用,把主机B的kernel也调成一样的,这样在把B的主机同步到C主机,这次boot直接用本地的就可以。做好以后确定数据,机器没问题就可以导出OVA啦,然后在用生成的vmdk文件导入AWS制作成AMI,就可以在云上开心的使用啦。

aws ec2 import-image --description "CentOs6.9 VMDK" --license-type BYOL --disk-containers file://H:\1.json

1.json

001723_kjrn_3571652.jpg

 

转载于:https://my.oschina.net/u/3571652/blog/1554419

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值