分类: Oracle
2011-05-29 23:21:10
今天在虚拟机上安装oracle rac,进行到格式化ocfs磁盘时出现了错误,只能在一个节点上mount。
[root@rac02 ~]# mount -t ocfs2 -o datavolume,nointr /dev/sdb1 /ocfs
ocfs2_hb_ctl: OCFS2 DIRECTORY corrupted WHILE reading uuid
mount.ocfs2: Error WHEN attempting TO run /sbin/ocfs2_hb_ctl: "Operation not permitted"
使用强制格式化后再尝试两个节点挂载仍然出错。
[root@rac02 ~]# mkfs.ocfs2 -b 4K -C 32K -N 4 --force -L oradatafiles /dev/sdb1
mkfs.ocfs2 1.2.0
Overwriting existing ocfs2 PARTITION.
WARNING: CLUSTER CHECK disabled.
Proceed (y/N): y
Filesystem label=oradatafiles
Block SIZE=4096 (bits=12)
CLUSTER SIZE=32768 (bits=15)
Volume SIZE=536854528 (16383 clusters) (131064 blocks)
1 CLUSTER groups (tail covers 16383 clusters, rest cover 16383 clusters)
Journal SIZE=16777216
INITIAL NUMBER OF node slots: 4
Creating bitmaps: done
Initializing superblock: done
Writing SYSTEM files: done
Writing superblock: done
Writing lost+found: done
mkfs.ocfs2 SUCCESSFUL
[root@rac02 ~]# mount -t ocfs2 -o datavolume,nointr /dev/sdb1 /ocfs
[root@rac02 ~]# cd /ocfs
[root@rac02 ocfs]# ls
[root@rac01 /]# mounted.ocfs2 -f
Device FS Nodes
/dev/sdb1 ocfs2 Unknown: Bad magic NUMBER IN inode
经过检查发现,这个问题是由于在为虚拟机创建磁盘的时候没有选择“allocate all disk space now”,导致ocfs在加入第二个节点时出错,关掉虚拟机删除该磁盘,重新创建一个立即分配空间的盘再格式化,两个节点都能正常mount了。
在正式的生产环境下,这个错误出现的概率应该是很小。但如今虚拟机使用的越来越广泛,有时候出现这种错误难免让人摸不着头脑。特别是在磁盘活动较频繁,或磁盘大小增长快速时,更有可能出现这种问题,因此建议ocfs这类盘还是使用预先分配所有空间为好。