首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 dd 命令实现 SAN 存储的快照数据迁移(6)

使用 dd 命令实现 SAN 存储的快照数据迁移(6)

dd 命令实现 SANBoot OS 的快照数据迁移修改备份盘中操作系统的启动配置文件
备份盘上面的操作系统的启动配置文件是指向 DS4800 设备盘的,既然我们要把操作系统迁移到 DS4700,需要更改启动配置文件指向来自 DS4700 的备份盘 /dev/sdb。和启动相关的有三个配置文件:
  • /etc/fstab;
  • /boot/grub/grub.conf;
  • 内存镜像解压后的 init 文件。
首先创建新的挂载点,将 /dev/sdb 的 boot 分区和 root 分区挂载。
1
2
3
bash# mkdir /ds47k_boot /ds47k_root
bash# mount /dev/sdb2 /ds47k_root
bash# mount /dev/sdb1 /ds47k_boot




编辑 grub.conf
让 root 指向 /dev/sdb 的根分区 /dev/sdb2。
清单 5. 编辑 grub.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
bash# cd /ds47k_boot/grub
bash# vi grub.conf
bash# more /ds47k_boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-194.el5) with MPP support
       root (hd0,0)
       kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/sdb2 rhgb quiet
       initrd /mpp-2.6.18-194.el5.img




编辑 fstab
指定 boot 分区和 root 分区分别为 /dev/sdb1, /dev/sdb2,swap 分区为 /dev/sdb3。
清单 6. 编辑 fstab
1
2
3
4
5
6
7
8
9
10
bash# cd /ds47k_root/etc/
bash# vi fstab
bash# more fstab
/dev/sdb2               /                       ext3    defaults        1 1
/dev/sdb1               /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/sdb3               swap                    swap    defaults        0 0




修改备份盘的内存镜像的 init 文件
先用 cp 命令备份 /ds47k_boot 目录下的内存镜像,然后解压备份盘内存镜像,这里我们创建一个目录 /sanboot,拷贝一个当前的内存镜像放在 /sanboot 目录下,同时在 /sanboot 目录下再创建一个子目录 /sanboot/tmp/ 用于存放解压后的内存镜像文件 :
1
2
3
4
5
6
7
8
9
10
11
12
bash# cd /ds47k_boot/
bash# cp mpp-2.6.18-194.el5.img mpp-2.6.18-194.el5.img.bak
bash# mkdir /sanboot
bash# cd /sanboot
bash# cp /ds47k_boot/mpp-2.6.18-194.el5.img  ./initrd.gz
bash# gunzip initrd.gz
bash# ls
initrd
bash# mkdir tmp
bash# cd tmp
bash# cpio -id < ../initrd
16148 blocks




解压好之后,先备份一下当前的 init 文件为 init.bak,然后修改 init 文件,将 resume 指向 /dev/sdb3,root device 指向 /dev/sdb2,保存退出 init 文件。
1
2
3
4
5
6
7
8
9
bash # cd /sanboot/tmp/
bash# ls
bin  dev  etc  init  lib  proc  sbin  sys  sysroot  var
bash# cp init init.bak
bash# vi init
……
resume /dev/sdb3
echo Creating root device.
mkrootdev -t ext3 -o defaults,ro sdb2




用新的内存镜像文件覆盖之前的备份盘内存镜像,新的内存镜像先命名为 newinitrd,压缩之后,用 cp 命令覆盖当前的内存镜像:
到这里我们的启动配置文件都修改好了,接下来可以重启机器进入 HBA Utility,设置启动设备为 DS4700 的盘。
HBA Utility 配置
参照上一章 ,更改 HBA port 的 Boot Device 为 DS4700 的 LUN。
当系统起来的时候,查看一下当前操作系统,/dev/sdb 的所有分区都被挂载起来,说明操作系统已经成功的从 DS4800 迁移到 DS4700 备份盘,并且验证了 dd 命令备份成功。
清单 7. 查看文件系统
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
bash# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb2              49G  2.5G   44G   6% /
/dev/sdb1              99M   28M   66M  30% /boot
tmpfs                 7.9G     0  7.9G   0% /dev/shm
bash# mppUtil -S
H6C0T0       Active                     Active           ARCDS48K96122
            H0C0T0L000  Up             H1C0T1L000  Up
H6C0T1       Active                     Active           ARCFT900A7382
            H0C0T3L000  Up             H1C0T2L000  Up

  Missing Arrays
There are no missing arrays
bash# fdisk -l

Disk /dev/sda: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        6540    52428127+  83  Linux
/dev/sda3            6541        7584     8385930   82  Linux swap / Solaris

Disk /dev/sdb: 91.2 GB, 91268055040 bytes
255 heads, 63 sectors/track, 11096 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          13      104391   83  Linux
/dev/sdb2              14        6540    52428127+  83  Linux
/dev/sdb3            6541        7584     8385930   82  Linux swap / Solaris




到这里,我们以使用不同多路方式的 SANboot OS 的快照备份和数据迁移为例,演示了 dd 命令如何实现数据的快照备份和数据迁移。除此之外,我们从 dd 的实例看到,dd 有非常广泛的应用。
返回列表