Oracle集群文件系统(OCFS2)用户指南
【IT168技术文档】
1:介绍
一个集群文件系统能使运行在集群中所有节点并发的通过标准文件系统接口来访问存储设备。这给管理跨越整个集群的应用系统带来方便。
OCFS1问世于2002年10月,它是Oracle公司为了让RAC用户避免必须要与裸设备打交道而开发出来的。这个文件系统用来存放数据库相关的文件,比如数据文件,控制文件,在线日志文件,归档日志文件等。
OCFS2是下一代的ORACLE集群文件系统,它已经被设计成为一种为通用的文件系统,它不仅可以存放数据库相关的文件,还可以存放oracle二进制文件(指Oracle_home下的软件文件-译者注)和配置文件,从而使RAC的管理更加轻松。
2:安装
OCFS2的发行版包括了2个安装包,一个称为核心模块,另一个叫工具包。
核心模块可以从以下链接下载:
http://oss.oracle.com/projects/ocfs2/files/
工具包可以从以下链接下载;
http://oss.oracle.com/projects/ocfs2-tools/files/
首先要下载相应的软件包.对于核心模块,下载时要考虑它的发行号,适用的平台,操作系统内核版本以及内核的类型(比如SMP,HUGEMEM,PSMP等),对于工具包,只要符合发行版本和平台就可以了。
工具包又分为两部分,ocfs2-tools命令行工具,ocfs2console图形工具,用户可以选择不安装这部分,但它的确可以令操作简单化。
使用rpm命令来安装软件包,使用 rpm -install 进行新的安装或者使用rpm -upgrade来升级现有的软件包。
3:配置
OCFS2有一个配置配置文件,路径为/etc/ocfs2/cluster.conf.在这个文件中,你需要指定RAC中所有的节点信息,并且所有的节点上都应该保留相同的一份。你可以动态的增加新节点到RAC,或者改变一些节点的IP,名字,但这需要重起RAC以便于使更改生效。
我们强烈建议用户使用OCFS2-CONSOLE工具来对RAC中所有的节点进行配置。
运行OCFS2-CONSOLE,进入cluster菜单,选择configure nodes.如果cluster已经停止,控制台会启动它,并且返回一个成功的信息。如果cluster.conf文件不存在,控制台将会创健一个并给一个默认的集群名字ocfs2.点击add按钮将节点添加到RAC中,每一个节点需要输入节点名称,ip和端口号。控制台从0-254顺序的分配节点序号。一旦所有的节点都添加到RAC当中,通过点击菜单cluster里propagate configration项,我们可以在任何一台节点上将配置文件cluster.conf分发到所有节点相应的位置上去,由于控制台使用的是ssh协议来传送文件,所以之前需要在所有节点上建好彼此的信任,以避免在文件传递过程中出现提出输入口令的问题。
附录A是一个cluster.conf的示例。
4:O2CB集群服务
OCFS2有自己的集群服务结构,叫做O2CB,它包括:
NM:节点管理器,它对cluster.conf文件中所有节点进行的监控。
HB:心跳服务(Heart beat service),他在节点离开或加入rac时提示up和down的消息。
TCP:控制节点间的通讯。
DLM:分布式锁管理器,它持续跟踪所有的锁,锁的所有者及状态。
CONFIGFS:用户配置文件系统驱动空间,挂节点是/config
DLMFS:用户空间和内核空间DLM的接口。
所有这些cluster服务都已经被打包在o2cb系统服务当中,所有的操作,比如format,mount等,都需要cluster可用。在使用format等命令前,要先启动这些服务。
可以通过以下方式检查所有服务的状态:
# /etc/init.d/o2cb status
Module "configfs": Not loaded
Filesystem "configfs": Not mounted
Module "ocfs2_nodemanager": Not loaded
Module "ocfs2_dlm": Not loaded
Module "ocfs2_dlmfs": Not loaded
Filesystem "ocfs2_dlmfs": Not mounted
通过以下方式启动所有服务:
# /etc/init.d/o2cb load
![]()
Loading module "configfs": OK
![]()
Mounting configfs filesystem at /config: OK
![]()
Loading module "ocfs2_nodemanager": OK
![]()
Loading module "ocfs2_dlm": OK
![]()
Loading module "ocfs2_dlmfs": OK
![]()
Mounting ocfs2_dlmfs filesystem at /dlm: OK
通过以下方式使cluster ocfs2 启动:
# /etc/init.d/o2cb online ocfs2
![]()
Starting cluster ocfs2: OK
通过以下方式停止cluster ocfs2:
# /etc/init.d/o2cb offline ocfs2
![]()
Cleaning heartbeat on ocfs2: OK
![]()
Stopping cluster ocfs2: OK
通过以下方式停止所有服务:
# /etc/init.d/o2cb unload
![]()
Unmounting ocfs2_dlmfs filesystem:
![]()
Unloading module "ocfs2_dlmfs": OK
![]()
Unmounting configfs filesystem: OK
![]()
Unloading module "configfs": OK
通过以下方式使O2CB在系统启动时自动被加载:
# /etc/init.d/o2cb configure
![]()
Configuring the O2CB driver.
![]()
This will configure the on-boot properties of the O2CB driver.
![]()
The following questions will determine whether the driver is loaded on
![]()
boot. The current values will be shown in brackets ('[]'). Hitting
![]()
<ENTER> without typing an answer will keep that current value. Ctrl-C
![]()
will abort.
![]()
Load O2CB driver on boot (y/n) [n]: y
![]()
Cluster to start on boot (Enter "none" to clear) []: ocfs2
![]()
Writing O2CB configuration: oK
![]()
#
![]()
如果cluster已经被配置为系统启动时加载,可以通过以下方式启动和停止它:
# /etc/init.d/o2cb load
Loading module "configfs": OK
Mounting configfs filesystem at /config: OK
Loading module "ocfs2_nodemanager": OK
Loading module "ocfs2_dlm": OK
Loading module "ocfs2_dlmfs": OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK