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

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

                                                                                                             Created by    战斗的小涵linux

                                                                                                                            2017-10-22json

一,实验环境bash

 从微软Azure云,迁移到AWS网络

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

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

保证两个主机内核版本必定要一致,若是不一致的话最好能够用yum把两个内核更新到一致的版本,此次我迁移的时候才发现两个内核版本不一致。解决方法以下this

二,实验步骤spa

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

 

2.  进入救援模式rest

3.  选择语言

4.  选择键盘

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

6.   由于是要迁移主机上全部的数据到本地虚拟机,因此,这边要选择跳过,选择继续的话,系统会挂载你的磁盘,这样,你就很差格式化根分区,因此选择Skip

7.  进入到bash终端

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

相关文章
相关标签/搜索