OCFS2的问题汇总

通用的

1、如何使用OCFS2

a)下载安装OCFS2模块和rpm包

b)创建cluster.conf并复制到其他节点

c)配置并启动o2cb服务

d)format卷

e)mount卷




2、如何知道当前运行的OCFS2的版本

# cat /proc/fs/ocfs2/version
OCFS2 1.2.8 Tue Feb 12 20:22:48 EST 2008 (build 9c7ae8bb50ef6d8791df2912775adcc5)

3、如何配置我的系统在遇到kernel-panic的时候自动重启

配置系统遇到kernel panic后60秒重启

# echo 60 > /proc/sys/kernel/panic

保证以上的配置在系统启动后能继续应用,在/etc/sysctl.conf文件内加入:kernel.panic = 60

下载和安装部分

4、从哪里下载OCFS2包

如果是Oracle Enterprise Linux 4 and 5可以使用up2date下载:

# up2date --install ocfs2-tools ocfs2console
# up2date --install ocfs2-`uname -r`

如果是SLE9可以使用yast升级内核到最后的SP3以安装相关的模块,同样也安装了ocfs2-tools 和 ocfs2console 包。

如果是SLE10,安装ocfs2-tools and ocfs2console包。

如果是Red Hat's RHEL4 and RHEL5下载并安装适当的模块和2个工具包ocfs2-tools and ocfs2console,

5、最后的OCFS2包的 版本是什么?

1.2.9-1 =》Enterprise Linux 4 and 5

tools/console package version is 1.2.7-1 =》Enterprise Linux 4 and 5.6.

6、我如何去理解ocfs2-2.6.9-22.0.1.ELsmp-1.2.1-1.i686.rpm这个包的名称?

这个包名包含许多部分通过‘-’分割

* ocfs2 - 包名

* 2.6.9-22.0.1.ELsmp - 内核版本
* 1.2.1 - 包的版本
* 1 - 包的子版本
* i686 - 结构
7、如何知道在我的环境中应该安装什么版本?

# uname -r
2.6.9-22.0.1.ELsmp

# rpm -qf /boot/vmlinuz-`uname -r` --queryformat "%{ARCH}n"
i686

8、如何安装rpms包

首先安装tools和console包:

# rpm -Uvh ocfs2-tools-1.2.1-1.i386.rpm ocfs2console-1.2.1-1.i386.rpm

然后安装合适的模块包:

# rpm -Uvh ocfs2-2.6.9-22.0.1.ELsmp-1.2.1-1.i686.rpm
9、是否必须安装console包?

不是的,可以不安装,但是建议安装,为了管理方便。

10、ocfs2console包和其他的模块有什么依赖?

ocfs2console需要e2fsprogs,glib2 2.2.3或者更新的,vte 0.11.10 或者更新,pygtk2(RHEL4)或者python-gtk(SLE9)1.99.16或者更新的,python 2.3 或者更新的以及ocfs2-tools

11、OCFS2 1.2安装完后安装了那些模块?

* configfs.ko
* ocfs2.ko
* ocfs2_dlm.ko
* ocfs2_dlmfs.ko
* ocfs2_nodemanager.ko
* debugfs
在Enterprise Linux 5还包含了configfs.ko 和 debugfs.ko

12、ocfs2-tools安装了那些工具?

* mkfs.ocfs2
* fsck.ocfs2
* tunefs.ocfs2
* debugfs.ocfs2
* mount.ocfs2
* mounted.ocfs2
* ocfs2cdsl
* ocfs2_hb_ctl
* o2cb_ctl
* o2cb - init service to start/stop the cluster
* ocfs2 - init service to mount/umount ocfs2 volumes
* ocfs2console - installed with the console package

13、debugfs和debugfs.ocfs2之间有什么关系吗?

"debugfs是内存中的文件系统由Greg Kroah - Hartman的发展。这对于调试非常有用,因为它允许内核空间轻松导出数据到用户空间。这是目前正在使用的OCFS2的转储文件系统锁定列表,可用于在未来更多的使用。这是捆绑在一起的OCFS2作为各种发行目前没有捆绑它。虽然debugfs和debugfs.ocfs2表现一般无关,后者是作为前由前年底提供的调试信息。例如,请参阅故障排除部分。"

配置部分

14、如何创建/etc/ocfs2/cluster.conf?

如果你安装了console,可以使用它去创建,如果你没有安装,可以通过查看用户手册通过看一个例子来理解里面的结构组成,不要忘掉了在各个节点上同步cluster.conf文件。

15、可以使用public或者private IP来进行连接么?

"使用私有互连建议。虽然OCFS2的并不需要很多的带宽,它需要的节点在网络上活着,定期发送keepalive报文,以确保他们的会话。为了避免网络延迟被视为一个节点在网络上消失可能导致一个节点死掉,private互连建议。人们可以使用相同的Oracle RAC互连和OCFS2。"

16、节点的名称必须要和IP地址匹配么?

"节点名称必须匹配的主机名。 IP地址不必与该主机名关联的。正如在任何有效的IP地址在该节点上都可以使用。 OCFS2的不会尝试匹配的节点名称与指定的IP地址(主机名)。"

17、我如何修改cluster.conf里面已经存在的例如IP、端口以及其他的信息?

虽然可以使用ocfs2console 动态的添加一个可用的节点到集群环境中,但是其他的操作都要降cluster离线,停止所有的cluster在所有的节点上,编辑 /etc/ocfs2/cluster.conf 在某个节点上,然后拷贝最新的cluster.conf文件到每个节点上,保证所有的节点上使用的同一份cluster.conf的拷贝。

18、如果在线的增加一个新的节点?

你可以通过colsole来增加,但是你要保证在所有的节点上都应该同步,但是 如果操作失败了就会有很多BUG之类的问题( bug#741),在这种情况下,你可以使用o2cb_ctl 工具在每个节点上执行:

# o2cb_ctl -C -i -n NODENAME -t node -a number=NODENUM -a ip_address=IPADDR -a ip_port=IPPORT -a cluster=CLUSTERNAME

19、如果在一个离线的cluster环境中增加新的节点?

你可以使用console或者o2cb_ctl或者直接手动的修改cluster.conf文件,然后通过console或者直接拷贝cluster.conf文件到所有的节点,如果是使用o2cb_ctl可以按照下面的操作来执行:

# o2cb_ctl -C -n NODENAME -t node -a number=NODENUM -a ip_address=IPADDR -a ip_port=IPPORT -a cluster=CLUSTERNAME
参数“-i”在一个离线的cluster环境中是不需要的。

O2CB 集群服务部分

20、我如何配置cluster服务?

# /etc/init.d/o2cb configure

输入'Y'如果你希望在cluster.conf中的集群自动启动知道超时。

21、我如何启动集群服务?

*首先加载模块:

# /etc/init.d/o2cb load
*使模块online:

# /etc/init.d/o2cb online [cluster_name]

*如果你想使服务在系统启动的时候启动可以执行:

# /etc/init.d/o2cb start [cluster_name]

这集群名称是不需要的,如果你在配置的时候指定了。

22、如何停止集群服务?

*停止集群

# /etc/init.d/o2cb offline [cluster_name]

*unload模块:

# /etc/init.d/o2cb unload
*如果你想使服务在系统启动的时候启动可以执行:

# /etc/init.d/o2cb stop [cluster_name]
这集群名称是不需要的,如果你在配置的时候指定了。

23、如何了解集群服务的状态?

# /etc/init.d/o2cb status

24、如果我不能启动集群服务,是什么原因导致的?

首先查看cluster.conf文件是否和hostname一致的,并且每一个在cluster.conf中的节点都应该是在线的。

FORMAT部分


25、我必须要对硬盘进行分区么?

是的,分区是一个建议,即使是计划使用OCFS2的整个磁盘。

26、我如何格式化卷?

你可以通过console或者mkfs.ocfs2来进行格式化,如果使用console你可以通过查看用户手册。

mkfs.ocfs2 -L "oracle_home" /dev/sdX
或者

# mkfs.ocfs2 -b 4k -C 32K -L "oracle_home" -N 4 /dev/sdX

以上格式化的卷为节点4的,block大小为4K,cluster size是32K

27、在格式化的时候节点的槽号是什么?

槽号指的是同时可以连接卷的最大并发数,这个数值可以在格式化的时候指定也可以后期通过tunefs.ocfs2修改。

28、如果确定node slots的大小?

OCFS2使用的是文件系统,因为这个值可以动态设置的,所以开始的时候也不必设置很大,满足则可。

29、每个节点上的NODE SLOTS都要一样么?

不用的,可以不一样

30、多大的block size是比较合适的?

这block size是指定空间 扩张的最小单位,OCFS2支持512bytes、1K、2K和4K,这block size后期是不可以改变 的,在大部分的环境中4K是推荐使用的,还有其他的一些环境也可以使用512BYTES。

31、多大的cluster size比较合适?

cluster size是用来指定在文件中每次扩张的最小的空间值,OCFS2支持4K8K16K32K64K128K256K512K和1M,如果是数据库卷,cluster size 推荐128K或者更大,如果是ORACLE HOME文件,推荐32K到64K。

32、通过对卷进行标签化有什么优势?

在一个硬盘共享的环境中,硬盘的名称(/dev/sdX)在每个节点上挂载后的信息是不一样的,进行标签化是为了容易标示,你可以在mount的时候来指定标签:

# mount -L "label" /dir
可以通过tunefs.ocfs2工具来修改卷的标签。

RESIZE 部分

33、OCFS2的文件大小可以增长么?

可以的,你可以使用tunefs.ocfs2来操作,但是这个工具只是来增加文件的大小,不能增加分区的大小,如果想要增加分区的大小可以使用fdisk或者其他的工具来操作。

34、当我用fdisk去重置分区大小的时候需要注意什么?

通过fdisk(8)来增加分区大小的时候,你要先删除现有分区然后在重建,当你重建的时候,你要保证先前起始的柱面一致,并且结束的柱面大于先前的柱面,另外,在你resize失败后会丢失数据,所以在操作前需要对数据进行备份

35、突然的重启,我如果去得到集群环境中其他节点的分区?

可以使用blockdev(8)在集群环境中的某个节点上重启扫描分区的表区,

# blockdev --rereadpt /dev/sdX

36、tunefs.ocfs2在resize文件的时候语法是什么?

# tunefs.ocfs2 -S /dev/sdX

更多的可以查看帮助。

37、当OCFS2在运行的时候是否可以增加大小?

不能,tunefs.ocfs2 1.2.2 只能在OCFS2离线情况下操作,并且文件系统没有挂载在任何节点上,在线的resize操作会在后续版本中增加

38、OCFS2可以 收缩空间大小吗?

不能,现在也没打算将这个功能进行增加,如果你确实觉得需要的话可以理出足够的理由以BUG的形式提交给我们


MOUNT部分

39、我如何mount一个卷?

你可以使用console或者使用mount文件的形式,如果使用console可以查看相关的用户手册。

# mount -t ocfs2 /dev/sdX /dir
以上的命令会将/dev/sdX挂载在dir目录下。

40、我如何通过label来挂载?

# mount -L "label" /dir

41、当我将挂载添加到/etc/fstab中的时候,对于ocfs2类型的卷我需要增加额外的什么参数?

/dev/sdX /dir ocfs2 _netdev 0 0

_netdev 参数代表了当网络启动以后才进行挂载。

42、当系统启动的时候我就将ocfs2卷挂载需要怎么做?

*将o2cb服务加到启动进程里

# chkconfig --add o2cb

*将ocfs2加入启动进程

# chkconfig --add ocfs2

*配置o2cb满足系统启动时加载

# /etc/init.d/o2cb configure

*在/etc/fstab加入新的列表

/dev/sdX /dir ocfs2 _netdev 0 0

43、我如何确定我的卷是否已经挂载?

*输入不加任何参数的mount命令:

# mount

*列出/etc/mtab的内容

# cat /etc/mtab

*列出 /proc/mounts内容

# cat /proc/mounts

*执行ocfs2服务

# /etc/init.d/ocfs2 status

mount命令会读取、/etc/mtab的内容加以显示

44、/config 和/dml挂载的作用是什么?

OCFS2其实是捆绑了两个内存文件系统configfs和ocfs2_dlmfs,configfs是用OCFS2中的管理节点以及集群的名单,以及心跳信息;ocfs2_dlmfs用户OCFS2的工具,和DLM模块进行通话,取得并释放资源集群的锁。

45、为什么会花费很多的时间来挂载卷?

大概需要5秒钟的时间,以后准备增加一个全局的心跳。。

46、为什么在unmount的时候会花费很多时间?

当unmount的时候,这dlm要移动所有的抓有的锁到集群环境中的其他的节点,在1.2版本中,这锁移动式同步的,在后期的版本中是异步的,可以在所有的dlm环境 中找到锁的数量:

# cat /proc/fs/ocfs2_dlm/*/stat
local=60624, remote=1, unknown=0, key=0x8619a8da

ORACLE RAC部分

47、在RAC环境中是否有一些专有的标志?

OCFS2卷包含 票决磁盘文件(Voting disk CRS)和Cluster registry(OCR)、DATAFILE 、redo log、 archive log以及控制文件必须通过datavolume和nointr选项挂载,这datavolume选项,用来保证oracle进行可以在打开文件的时候通过o_direct标记,nointr选项保证IO信号不被中断。


# mount -o datavolume,nointr -t ocfs2 /dev/sda1 /u01/db

48、挂载用于存放ORACLE HOME的磁盘需要注意什么吗?

当挂载一块用于安装oracle home的磁盘时候只需要正常的挂载即可,不需要datavolumn和nointr选项

# mount -t ocfs2 /dev/sdb1 /software/orahome

但是OCFS2当前不支持共享复写mmap,这健康检查(GIMH)文件$ORACLE_HOME/dbs/hc_ORACLESID.dat 以及ASM文件 $ASM_HOME/dbs/ab_ORACLESID.dat 要放到本地的文件系统内,这个问题将在OCFS2 1.4中得到改善以得到支持。

49、以上之意是否说明我的数据文件和oracle的安装文件不能放在同一个卷内?

是的。

(http://www.oraforum.net/redirect.php?tid=6009&goto=lastpost)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值