在进行ASM的实验中,如果没有多余的硬盘来做测试。则可以在Linux下使用文件来模拟磁盘,以供测试目的。
其模拟过程如下所示,摘录自《Oracle数据库核心技术与实务详解-教你如何成为Oracle 10g OCP》一书。
1)以root用户创建一个ASM磁盘所在的目录。
[root@book u01]# mkdir –p /u01/asmdisks
2)通过dd命令创建6个400M大小的文件,每个文件代表一块磁盘。
QUOTE:
[root@book u01]# cd asmdisks
[root@book asmdisks]# dd if=/dev/zero f=asm_disk1 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero f=asm_disk2 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero f=asm_disk3 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero f=asm_disk4 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero f=asm_disk5 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero f=asm_disk6 bs=1024k count=400
3)将这些文件与裸设备关联。
QUOTE:
[root@book asmdisks]# chmod 777 asm_disk*
[root@book asmdisks]# losetup /dev/loop1 asm_disk1
[root@book asmdisks]# losetup /dev/loop2 asm_disk2
[root@book asmdisks]# losetup /dev/loop3 asm_disk3
[root@book asmdisks]# losetup /dev/loop4 asm_disk4
[root@book asmdisks]# losetup /dev/loop5 asm_disk5
[root@book asmdisks]# losetup /dev/loop6 asm_disk6
[root@book asmdisks]# raw /dev/raw/raw1 /dev/loop1
[root@book asmdisks]# raw /dev/raw/raw2 /dev/loop2
[root@book asmdisks]# raw /dev/raw/raw3 /dev/loop3
[root@book asmdisks]# raw /dev/raw/raw4 /dev/loop4
[root@book asmdisks]# raw /dev/raw/raw5 /dev/loop5
[root@book asmdisks]# raw /dev/raw/raw6 /dev/loop6
[root@book asmdisks]# chown oracle:dba /dev/raw/raw1
[root@book asmdisks]# chown oracle:dba /dev/raw/raw2
[root@book asmdisks]# chown oracle:dba /dev/raw/raw3
[root@book asmdisks]# chown oracle:dba /dev/raw/raw4
[root@book asmdisks]# chown oracle:dba /dev/raw/raw5
[root@book asmdisks]# chown oracle:dba /dev/raw/raw6
注意:如果要删除通过dd模拟出的虚拟磁盘文件的话,直接删除模拟出的磁盘文件(也就是asm_disk1、asm_disk2…asm_disk6)还不够,还必须执行losetup -d /dev/loopN,在这里N从1到6。否则,磁盘文件所占用的磁盘空间不能释放。