聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

如何还原virtualbox导出的RAC镜像文件

2014-03-18 23:15 浏览: 1947393 次 我要评论(0 条) 字号:

在virtualbox中建立虚拟机,往往是3个文件夹:节点1(ol6-121-rac1),节点2(ol6-121-rac2),共享存储文件夹(ol6-121-rac)。当我们选择“管理”-“导出虚拟电脑”,导出成ova文件备份,就能看到2个主机,每个主机一个ova文件。另外,细心的你可能会发现,在备份时,共享存储是连带一起备份成ova文件的。也就是说,2个节点,每个节点导出的ova文件都包含共享存储。

当我们做恢复时,导入ova文件后,会发现每个共享存储都变成了非共享磁盘,那么我们如何还原到原来的状态呢?

导入2个ova的镜像文件,可以看到在目录中包含主机的文件(-disk1.vmdk,12G左右大小)和共享存储(-disk2.vmdk~-disk5.vmdk),如下面的这个节点1的目录下:

E:Oralce_Virtual_Boxol6-121-rac1>ls -l
total 35562926
-rwxrwxrwa   1 Administrators  None            12757499904 Mar 18 14:56 -disk1.vmdk
-rwxrwxrwa   1 Administrators  None            23724032 Mar 18 14:56 -disk2.vmdk
-rwxrwxrwa   1 Administrators  None            17629184 Mar 18 14:56 -disk3.vmdk
-rwxrwxrwa   1 Administrators  None            20840448 Mar 18 14:56 -disk4.vmdk
-rwxrwxrwa   1 Administrators  None            19791872 Mar 18 14:56 -disk5.vmdk
-rwxrwxrwa   1 Administrators  None              11027 Mar 18 15:29 ol6-121-rac1.vbox
-rwxrwxrwa   1 Administrators  None              11027 Mar 18 15:23 ol6-121-rac1.vbox-prev
 
E:Oralce_Virtual_Boxol6-121-rac1>

我们可以用VBoxManage modifyhd将其属性改为共享,但是,从ova导入的共享盘,变成了可变大小的磁盘,即我设置的是5G每个盘,可能只用了20M,ova restore出来也只有20M。这种可变大小的属性,是不能还原成共享的。会报错:

E:Oralce_Virtual_Boxol6-121-rac1>VBoxManage modifyhd "E:Oralce_Virtual_Boxol6-121-rac1-disk2.vmdk" --type shareable
VBoxManage.exe: error: Cannot change type for medium 'E:Oralce_Virtual_Boxol6-121-rac1-disk2.vmdk' to 'Shareable' since it is a dynamic medium storage unit
VBoxManage.exe: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component Medium, interface IMedium, callee IUnknown
VBoxManage.exe: error: Context: "COMSETTER(Type)(DiskType)" at line 509 of file VBoxManageDisk.cpp
 
E:Oralce_Virtual_Boxol6-121-rac1>

我们需要将其属性改为fixed,固定大小。语句如下,同时我们也把vmdk的盘改成vdi 的盘(这个是看个人喜欢了,我比较习惯看vdi 的格式)。注:其实直接改shareable的属性是不能改的,是clone了一个带shareable的盘(因此后面还涉及了到了udev改scsi id的问题):

VBoxManage clonehd "E:Oralce_Virtual_Boxol6-121-rac1-disk2.vmdk" "E:Oralce_Virtual_Boxol6-121-racdisk2.vdi" --format VDI --variant Fixed
VBoxManage clonehd "E:Oralce_Virtual_Boxol6-121-rac1-disk3.vmdk" "E:Oralce_Virtual_Boxol6-121-racdisk3.vdi" --format VDI --variant Fixed
VBoxManage clonehd "E:Oralce_Virtual_Boxol6-121-rac1-disk4.vmdk" "E:Oralce_Virtual_Boxol6-121-racdisk4.vdi" --format VDI --variant Fixed
VBoxManage clonehd "E:Oralce_Virtual_Boxol6-121-rac1-disk5.vmdk" "E:Oralce_Virtual_Boxol6-121-racdisk5.vdi" --format VDI --variant Fixed

改完后,将上述的盘attach到2个主机上

VBoxManage storageattach ol6-121-rac1 --storagectl "SATA" --port 1 --device 0 --type hdd     --medium "E:Oralce_Virtual_Boxol6-121-racdisk2.vdi" --mtype shareable
VBoxManage storageattach ol6-121-rac1 --storagectl "SATA" --port 2 --device 0 --type hdd     --medium "E:Oralce_Virtual_Boxol6-121-racdisk3.vdi" --mtype shareable
VBoxManage storageattach ol6-121-rac1 --storagectl "SATA" --port 3 --device 0 --type hdd     --medium "E:Oralce_Virtual_Boxol6-121-racdisk4.vdi" --mtype shareable
VBoxManage storageattach ol6-121-rac1 --storagectl "SATA" --port 4 --device 0 --type hdd     --medium "E:Oralce_Virtual_Boxol6-121-racdisk5.vdi" --mtype shareable
 
VBoxManage storageattach ol6-121-rac2 --storagectl "SATA" --port 1 --device 0 --type hdd     --medium "E:Oralce_Virtual_Boxol6-121-racdisk2.vdi" --mtype shareable
VBoxManage storageattach ol6-121-rac2 --storagectl "SATA" --port 2 --device 0 --type hdd     --medium "E:Oralce_Virtual_Boxol6-121-racdisk3.vdi" --mtype shareable
VBoxManage storageattach ol6-121-rac2 --storagectl "SATA" --port 3 --device 0 --type hdd     --medium "E:Oralce_Virtual_Boxol6-121-racdisk4.vdi" --mtype shareable
VBoxManage storageattach ol6-121-rac2 --storagectl "SATA" --port 4 --device 0 --type hdd     --medium "E:Oralce_Virtual_Boxol6-121-racdisk5.vdi" --mtype shareable

在改一下shared的属性。

VBoxManage modifyhd "E:Oralce_Virtual_Boxol6-121-racdisk2.vdi" --type shareable
VBoxManage modifyhd "E:Oralce_Virtual_Boxol6-121-racdisk2.vdi" --type shareable
VBoxManage modifyhd "E:Oralce_Virtual_Boxol6-121-racdisk4.vdi" --type shareable
VBoxManage modifyhd "E:Oralce_Virtual_Boxol6-121-racdisk5.vdi" --type shareable

此时你可以在virtualbox的主界面可以看到这些磁盘已经变成共享的了。

启动这2个主机,如果你原来是使用udev来管理asm,重新启动后,可能会看不到/dev/asm*的盘,这是因为udev的问题,参考我之前的这个文档做修改/etc/udev/rules.d/99-oracle-asmdevices.rules文件:
检查scsi id

[root@ol6-121-rac1 dev]# /sbin/scsi_id -g -u -d /dev/sdb
1ATA_VBOX_HARDDISK_VB2d8805ec-7e1f9f0a
[root@ol6-121-rac1 dev]# /sbin/scsi_id -g -u -d /dev/sdc
1ATA_VBOX_HARDDISK_VB84bf601e-064dc9a5
[root@ol6-121-rac1 dev]# /sbin/scsi_id -g -u -d /dev/sdd
1ATA_VBOX_HARDDISK_VBf70234c9-5e27b258
[root@ol6-121-rac1 dev]# /sbin/scsi_id -g -u -d /dev/sde
1ATA_VBOX_HARDDISK_VB573dd430-aba1649d

修改/etc/udev/rules.d/99-oracle-asmdevices.rules文件后,更新、重启服务。即可完成。

最后,你可以删除了原来的那些-disk2.vmdk~-disk5.vmdk文件了。因为共享存储都已经到了ol6-121-rac下的disk2.vdi~disk5.vdi,在ol6-121-rac1和ol6-121-rac2下的-disk2.vmdk~-disk5.vmdk已经没有用处了。



网友评论已有0条评论, 我也要评论

发表评论

*

* (保密)

Ctrl+Enter 快捷回复