在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的目录下:
1 2 3 4 5 6 7 8 9 10 11 |
E:\Oralce_Virtual_Box\ol6-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_Box\ol6-121-rac1> |
我们可以用VBoxManage modifyhd将其属性改为共享,但是,从ova导入的共享盘,变成了可变大小的磁盘,即我设置的是5G每个盘,可能只用了20M,ova restore出来也只有20M。这种可变大小的属性,是不能还原成共享的。会报错:
1 2 3 4 5 6 |
E:\Oralce_Virtual_Box\ol6-121-rac1>VBoxManage modifyhd "E:\Oralce_Virtual_Box\ol6-121-rac1\-disk2.vmdk" --type shareable VBoxManage.exe: error: Cannot change type for medium 'E:\Oralce_Virtual_Box\ol6-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_Box\ol6-121-rac1> |
我们需要将其属性改为fixed,固定大小。语句如下,同时我们也把vmdk的盘改成vdi 的盘(这个是看个人喜欢了,我比较习惯看vdi 的格式)。注:其实直接改shareable的属性是不能改的,是clone了一个带shareable的盘(因此后面还涉及了到了udev改scsi id的问题):
1 2 3 4 |
VBoxManage clonehd "E:\Oralce_Virtual_Box\ol6-121-rac1\-disk2.vmdk" "E:\Oralce_Virtual_Box\ol6-121-rac\disk2.vdi" --format VDI --variant Fixed VBoxManage clonehd "E:\Oralce_Virtual_Box\ol6-121-rac1\-disk3.vmdk" "E:\Oralce_Virtual_Box\ol6-121-rac\disk3.vdi" --format VDI --variant Fixed VBoxManage clonehd "E:\Oralce_Virtual_Box\ol6-121-rac1\-disk4.vmdk" "E:\Oralce_Virtual_Box\ol6-121-rac\disk4.vdi" --format VDI --variant Fixed VBoxManage clonehd "E:\Oralce_Virtual_Box\ol6-121-rac1\-disk5.vmdk" "E:\Oralce_Virtual_Box\ol6-121-rac\disk5.vdi" --format VDI --variant Fixed |
改完后,将上述的盘attach到2个主机上
1 2 3 4 5 6 7 8 9 |
VBoxManage storageattach ol6-121-rac1 --storagectl "SATA" --port 1 --device 0 --type hdd --medium "E:\Oralce_Virtual_Box\ol6-121-rac\disk2.vdi" --mtype shareable VBoxManage storageattach ol6-121-rac1 --storagectl "SATA" --port 2 --device 0 --type hdd --medium "E:\Oralce_Virtual_Box\ol6-121-rac\disk3.vdi" --mtype shareable VBoxManage storageattach ol6-121-rac1 --storagectl "SATA" --port 3 --device 0 --type hdd --medium "E:\Oralce_Virtual_Box\ol6-121-rac\disk4.vdi" --mtype shareable VBoxManage storageattach ol6-121-rac1 --storagectl "SATA" --port 4 --device 0 --type hdd --medium "E:\Oralce_Virtual_Box\ol6-121-rac\disk5.vdi" --mtype shareable VBoxManage storageattach ol6-121-rac2 --storagectl "SATA" --port 1 --device 0 --type hdd --medium "E:\Oralce_Virtual_Box\ol6-121-rac\disk2.vdi" --mtype shareable VBoxManage storageattach ol6-121-rac2 --storagectl "SATA" --port 2 --device 0 --type hdd --medium "E:\Oralce_Virtual_Box\ol6-121-rac\disk3.vdi" --mtype shareable VBoxManage storageattach ol6-121-rac2 --storagectl "SATA" --port 3 --device 0 --type hdd --medium "E:\Oralce_Virtual_Box\ol6-121-rac\disk4.vdi" --mtype shareable VBoxManage storageattach ol6-121-rac2 --storagectl "SATA" --port 4 --device 0 --type hdd --medium "E:\Oralce_Virtual_Box\ol6-121-rac\disk5.vdi" --mtype shareable |
在改一下shared的属性。
1 2 3 4 |
VBoxManage modifyhd "E:\Oralce_Virtual_Box\ol6-121-rac\disk2.vdi" --type shareable VBoxManage modifyhd "E:\Oralce_Virtual_Box\ol6-121-rac\disk2.vdi" --type shareable VBoxManage modifyhd "E:\Oralce_Virtual_Box\ol6-121-rac\disk4.vdi" --type shareable VBoxManage modifyhd "E:\Oralce_Virtual_Box\ol6-121-rac\disk5.vdi" --type shareable |
此时你可以在virtualbox的主界面可以看到这些磁盘已经变成共享的了。
启动这2个主机,如果你原来是使用udev来管理asm,重新启动后,可能会看不到/dev/asm*的盘,这是因为udev的问题,参考我之前的这个文档做修改/etc/udev/rules.d/99-oracle-asmdevices.rules文件:
检查scsi id
1 2 3 4 5 6 7 8 |
[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已经没有用处了。
2条评论
赞!
谢谢分享!