`
Fangrn
  • 浏览: 798259 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux as4上安装 OCFS2集群文件系统

阅读更多

一 : 组件包安装 :

下载 ocfs2 软件包

http://oss.oracle.com/projects/ocfs2-tools/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 服务。
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 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
   注意,本示例未加载所有服务。我在执行 “status” 选项之前执行了 “unload” 。如果要在使用 ocfs2console 实用程序配置 OCFS2 后立即检查 o2cb 服务的状态,则将加载所有这些服务。
  /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

加载所有 OCFS2 模块
/etc/init.d/o2cb online ocfs2
Starting cluster ocfs2: OK
以上命令将使我们创建的集群 ocfs2 处于联机状态。

/etc/init.d/o2cb offline ocfs2
Unmounting ocfs2_dlmfs filesystem: OK

Unloading module "ocfs2_dlmfs": OK

Unmounting configfs filesystem: OK

Unloading module "configfs": OK
以上命令将使我们创建的集群 ocfs2 处于脱机状态。

/etc/init.d/o2cb unload
Cleaning heartbeat on ocfs2: OK

Stopping 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 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 onboot. The current values will be shown in brackets ('[]'). Hitting<ENTER> without typing an answer will keep that current value. Ctrl-Cwill abort.Load O2CB driver on boot (y/n) [n]: y

Cluster to start on boot (Enter "none" to clear) [ocfs2]: ocfs2

Writing O2CB configuration: OK

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

Starting cluster ocfs2: OK

四 : 格式化 OCFS2 文件系统

$ su -
# mkfs.ocfs2 -b 4K -C 32K -N 4 -L webdatafile /dev/sdf6

mkfs.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 ocfs2

Starting cluster ocfs2: Failed

Cluster ocfs2 created

o2cb_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配置的主机名一定要相同。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics