Linux as4上安装Oracle OCFS2集群文件系统
Linux as4上安装Oracle OCFS2集群文件系统
一:组件包安装:下载ocfs2软件包http://oss.oracle.com/projects/ocfs2-tools/files/http://oss.oracle.com/projects/ocfs2/files/]http://oss.oracle.com/projects/ocfs2/files/安装:$ su -
# rpm -Uvh ocfs2-2.6.9-42.EL-1.2.3-1.i686.rpm \
ocfs2console-1.2.1-1.i386.rpm \
ocfs2-tools-1.2.1-1.i386.rpm
Preparing... ############################## [100%]
1:ocfs2-tools ############################## [ 33%]
2:ocfs2-2.6.9-42.EL ######################### [ 67%]
3:ocfs2console ############################# [100%]
禁用 SELinux(RHEL4 U2 以及更高版本) 向 RHEL4 U2 以及更高版本(CentOS 4.4 基于 RHEL4 U2)的用户提供一个建议,即 OCFS2 当前无法在启用 SELinux 的情况下运行。如果您使用的是 RHEL4 U2 或更高版本(由于我们使用的是 CentOS 4.4,因此我们也包括在内),则您需要禁用 SELinux(使用工具 system-config-securitylevel)才能执行 O2CB 服务。 [color=#ffffff]http://bbs.ixdba.net/][color=#ffffff]IXDBA.NET技术社区
要禁用 SELinux,运行“Security Level Configuration”GUI 实用程序: # /usr/bin/system-config-securitylevel &现在,单击 SELinux 选项卡并取消选中“Enabled”复选框。单击 [OK] 后,将显示一个警告对话框。只需单击“Yes”确认该警告。禁用 SELinux 选项,
在集群中的两个节点上进行此更改后,将需要重新引导每个节点以实施更改:在继续配置 OCFS2 之前,必须禁用 SELinux!# init 6
配置 OCFS2 下一步是在集群中的两个节点上生成和配置 /etc/ocfs2/cluster.conf 文件。完成此操作最简单的方法是运行 GUI 工具 ocfs2console。在本节中,我们不但使用 ocfs2console 创建和配置 /etc/ocfs2/cluster.conf 文件,而且还创建和启动集群堆栈 O2CB。如果 /etc/ocfs2/cluster.conf 文件不存在(本示例中便是这种情况),ocfs2console 工具将创建该文件以及一个默认集群名为 ocfs2 的新集群堆栈服务 (O2CB)。您将需要以 root 用户帐户在集群中的两个节点上执行该操作: $ su -# ocfs2console &使用 ocfs2console GUI 工具执行以下步骤: 选择 [Cluster] -> [Configure Nodes...]。这将启动 OCFS2 集群堆栈并显示“Node Configuration”对话框。
在“Node Configuration”对话框上,单击 [Add] 按钮。
这将显示“Add Node”对话框。
在“Add Node”对话框中,输入集群中第一个节点的 Host name 和 IP address。将 IP Port 设置为默认值 7777。在我的示例中,我添加了两个节点,即使用 linux1 / 192.168.1.100 表示第一个节点,并使用 linux2 / 192.168.1.101 表示第二个节点。
单击“Node Configuration”对话框上的 [Apply] — 所有节点现在将处于“Active”状态.
单击“Node Configuration”对话框上的 [Close]。
确认所有值均正确后,使用 [File] -> [Quit] 退出应用程序。需要在集群的两个节点上执行该操作。退出 ocfs2console 后,将获得一个类似如下所示的 /etc/ocfs2/cluster.conf。需要在集群中的两个节点上完成该过程,并且所有节点的 OCFS2 配置文件必须完全相同:
node: ip_port = 7777 ip_address = 192.168.1.100 number = 0 name = linux1 cluster = ocfs2node:ip_port = 7777 ip_address = 192.168.1.101 number = 1 name = linux2 cluster = ocfs2cluster: node_count = 2 name = ocfs2二:O2CB 集群服务 在使用 OCFS2 执行任何操作(如格式化或挂载文件系统)之前,我们需要先运行 OCFS2 的集群堆栈 O2CB(它将是以上执行的配置过程的结果)。此堆栈包含以下服务: NM:用于跟踪 cluster.conf 中的所有节点的节点管理器
HB:当节点加入或离开集群时向上/向下发出通知的心跳服务
TCP:处理节点之间的通信
DLM:用于跟踪所有锁、这些锁的所有者和状态的分布式锁管理器
CONFIGFS:在 /config 中挂载的用户空间驱动的配置文件系统
DLMFS:用户空间与内核空间 DLM 的接口
已将以上所有集群服务打包到 o2cb 系统服务 (/etc/init.d/o2cb) 中。以下是 o2cb 系统服务的某些更有用的命令和选项的简要列表。 注意:以下命令仅用于演示目的,不应在安装和配置 OCFS2 时运行! /etc/init.d/o2cb status
Module "configfs": Not loadedFilesystem "configfs": Not mountedModule "ocfs2_nodemanager": Not loadedModule "ocfs2_dlm": Not loadedModule "ocfs2_dlmfs": Not loadedFilesystem "ocfs2_dlmfs": Not mounted
注意,本示例未加载所有服务。我在执行“status”选项之前执行了“unload”。如果要在使用 ocfs2console 实用程序配置 OCFS2 后立即检查 o2cb 服务的状态,则将加载所有这些服务。
/etc/init.d/o2cb load
Loading module "configfs": OKMounting configfs filesystem at /config: OKLoading module "ocfs2_nodemanager": OKLoading module "ocfs2_dlm": OKLoading module "ocfs2_dlmfs": OKMounting ocfs2_dlmfs filesystem at /dlm: OK
加载所有 OCFS2 模块
/etc/init.d/o2cb online ocfs2
Starting cluster ocfs2: OK
以上命令将使我们创建的集群 ocfs2 处于联机状态。
/etc/init.d/o2cb offline ocfs2
Unmounting ocfs2_dlmfs filesystem: OKUnloading module "ocfs2_dlmfs": OKUnmounting configfs filesystem: OKUnloading module "configfs": OK
以上命令将使我们创建的集群 ocfs2 处于脱机状态。
/etc/init.d/o2cb unload
Cleaning heartbeat on ocfs2: OKStopping cluster ocfs2: OK
以上命令将卸载所有 OCFS2 模块。
三:将 O2CB 配置为在引导时启动 您现在需要配置 OC2B 驱动程序的引导属性,以便在每次引导时将启动集群堆栈服务。需要在集群的所有节点上执行本节中的所有任务。 注意:OCFS2 1.2.1 之前的版本中 包含一个错误,即不会在每次引导时加载驱动程序,即使将引导属性配置为执行此操作后也是如此。OCFS2 1.2.1 版中已经修复了该错误,本文不再赘述。然而,如果您使用的是 OCFS2 1.2.1 之前的版本,请参阅疑难解答一节以获取有关该错误的变通方法。
按如下所示设置引导属性: # /etc/init.d/o2cb offline ocfs2# /etc/init.d/o2cb unload# /etc/init.d/o2cb configureConfiguring the O2CB driver.This will configure the on-boot properties of the O2CB driver.The following questions will determine whether the driver is loaded onboot. The current values will be shown in brackets ('[]'). Hitting
四:格式化 OCFS2 文件系统 $ su -
# mkfs.ocfs2 -b 4K -C 32K -N 4 -L webdatafile /dev/sde1mkfs.ocfs2 1.2.1
Filesystem label=oracrsfiles
Block size=4096 (bits=12)
Cluster size=32768 (bits=15)
Volume size=2145943552 (65489 clusters) (523912 blocks)
3 cluster groups (tail covers 977 clusters, rest cover 32256 clusters)
Journal size=67108864
Initial number of node slots: 4
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Formatting Journals: done
Writing lost+found: done
mkfs.ocfs2 successful五:挂载 OCFS2 文件系统现在已经创建了此文件系统,接下来我们便可以载入它了。首先,使用命令行进行挂载,然后我将介绍如何将它包含在 /etc/fstab 中以在每次引导时挂载它。注意:需要使用 OCFS2 标签 webdatafile 以 root 用户帐户在集群中的两个节点上执行文件系统挂载!首先,此处介绍了如何从命令行手动挂载 OCFS2 文件。注意,需要以 root 用户帐户执行该操作:$ su –# mount -t ocfs2 -o datavolume,nointr -L "webdatafile" /webdata
如果挂载成功,您将只是获得提示。但我们应运行以下检查来确保文件系统挂载正确。首先,使用 mount 命令确保成功挂载了新文件系统。应在集群的两个节点上执行该操作:# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/hda1 on /boot type ext3 (rw)
none on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
cartman:SHARE2 on /cartman type nfs (rw,addr=192.168.1.120)
configfs on /config type configfs (rw)
ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw)
/dev/sde1 on /u02/oradata/orcl type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local)注意:请记下我挂载新文件系统所使用的 datavolume 选项。Oracle 数据库用户必须使用 datavolume 挂载选项安装任何将包含表决磁盘文件、集群注册表 (OCR)、数据文件、重做日志、归档日志以及控制文件的卷,以确保 Oracle 进程打开包含 o_direct 标志的文件。nointr 选项确保 I/O 不会由于信号而中断。 不应使用该挂载选项挂载任何其他类型的卷,其中包括 Oracle 主目录(本指南未使用它)。为什么挂载卷需要花费这么长的时间?挂载一个卷大约需要 5 秒钟。它这样做是为了使心跳线程保持稳定。在以后的版本中,Oracle 计划增加对全局心跳(这将使大多数挂载瞬间完成)的支持。六:将 OCFS2 配置为在启动时自动挂载让我们了解一下到目前为止已经执行的操作。您下载并安装了 OCFS2,它将用于存储集群管理器 文件所需的文件。安装后,您将 OCFS2 模块加载到内核中,然后对集群文件系统进行了格式化。最后,您使用 OCFS2 标签“webdatafile”挂载了新建的文件系统。本节将逐步完成在每次使用 OCFS2 标签引导计算机时负责挂载新 OCFS2 文件系统的步骤。 首先将以下行添加到集群中两个节点上的 /etc/fstab 文件中: LABEL= webdatafile /webdata ocfs2 _netdev,datavolume,nointr 0 0
注意用于挂载此文件系统的“_netdev”选项。OCFS2 卷必须使用 _netdev 挂载选项。该挂载选项指示将在网络启动后挂载该卷,在关闭网络前卸载该卷。现在,让我们确保已经加载了 ocfs2.ko 内核模块,并确保将在引导过程中安装文件系统。 配置过程可能出现的问题# /etc/init.d/o2cb online ocfs2Starting cluster ocfs2: FailedCluster ocfs2 createdo2cb_ctl: Configuration error discovered while populating cluster ocfs2. None of its nodes were considered local. A node is considered local when its node name in the configuration maches this machine's host name.Stopping cluster ocfs2: OK主机名问题,检查more /etc/ocfs2/cluster.conf以及/etc/hosts文件信息,修改相应的主机名即可,
注意:为了保证开机能自动挂载ocfs2文件系统,需要在/etc/fstab加入自动启动选项后,必须在/etc/hosts中加入两个节点的主机名和ip的对应解析,主机名和 /etc/ocfs2/cluster.conf配置的主机名一定要相同。检查是否已经mount在各个节点上[root@rac2 bin]# mounted.ocfs2 -f
Device FS Nodes
/dev/sde1 ocfs2 rac2, rac1
[root@rac1 bin]# mounted.ocfs2 -f
Device FS Nodes
/dev/sde1 ocfs2 rac2, rac1然后就可以用dbca 来创建cluster file system 选 择/dev/sde1 ocfs2 文件系统 来存储了