2、配置ocfs2设备
(1)创建 OCFS2 配置文件
图形化界面,在 zhh1 上,以 root 用户身份执行
# ocfs2console
a、OCFS2 控制台:选择 Cluster,然后选择 Configure Nodes。
b、“集群堆栈已经启动”:单击 Close。
c、节点配置:单击 Add。
d、新增节点:添加以下节点,然后单击 Apply。
名称:zhh1
IP 地址: 192.168.5.235
IP 端口: 7777
名称:zhh2
IP 地址: 192.168.5.236
IP 端口: 7777
e、验证生成的配置文件。
[root@zhh1 ~]# less /etc/ocfs2/cluster.conf
node:
ip_port = 7777
ip_address = 192.168.5.235
number = 0
name = zhh1
cluster = ocfs2
node:
ip_port = 7777
ip_address = 192.168.5.236
number = 1
name = zhh2
cluster = ocfs2
cluster:
node_count = 2
name = ocfs2
f、将配置文件传播到 zhh2。可以在 zhh2 上重新运行上述步骤以生成配置文件,或者在 zhh1 的 OCFS2 控制台上选择 Cluster 和 Propagate Configuration 以将配置文件传播到 zhh2。
(2)配置 O2CB 驱动程序
O2CB 是一组集群服务,负责管理节点与集群文件系统之间的通信。下面是对各个服务的说明:
NM:用于跟踪 cluster.conf 中的所有节点的节点管理器
HB:当节点加入或离开集群时向上/向下发出通知的心跳服务
TCP:处理节点之间的通信
DLM:用于跟踪所有锁、这些锁的所有者以及状态的分布式锁管理器
CONFIGFS:在 /config 中挂载的用户空间驱动的配置文件系统
DLMFS:用户空间与内核空间 DLM 的接口
在zhh1和zhh2两个节点上执行下面的过程,将 O2CB 配置为在引导时启动。
当系统提示指定心跳死亡阈值时,必须指定一个大于 7 的值,以防止节点由于较慢的磁盘驱动器而崩溃。心跳死亡阈值是一个用于计算隔离时间的变量。
Fence time (seconds) = (heartbeat dead threshold -1) * 2
在本测试环境中,我们使用默认值。两个节点上的心跳死亡阈值应该完全相同。
在两个节点上都执行下列操作:
[root@zhh1 ~]# /etc/init.d/o2cb unload
Stopping O2CB cluster ocfs2: OK
Unmounting ocfs2_dlmfs filesystem: OK
Unloading module "ocfs2_dlmfs": OK
Unmounting configfs filesystem: OK
Unloading module "configfs": OK
[root@zhh1 ~]# /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]:
Specify heartbeat dead threshold (>=7) [31]:
Specify network idle timeout in ms (>=5000) [30000]:
Specify network keepalive delay in ms (>=1000) [2000]:
Specify network reconnect delay in ms (>=2000) [2000]:
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 O2CB cluster ocfs2: OK
在格式化和挂载文件系统之前,应验证 O2CB 在两个节点上均联机;O2CB 心跳当前没有活动,因为文件系统未挂载。
[root@zhh1 ~]# /etc/init.d/o2cb status
Module "configfs": Loaded
Filesystem "configfs": Mounted
Module "ocfs2_nodemanager": Loaded
Module "ocfs2_dlm": Loaded
Module "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster ocfs2: Online
Heartbeat dead threshold: 31
Network idle timeout: 30000
Network keepalive delay: 2000
Network reconnect delay: 2000
Checking O2CB heartbeat: Not active
(3)格式化文件系统
只需在一个节点上格式化文件系统。在 zhh1 上,图形化界面以 root 用户身份执行:
# ocfs2console
a、OCFS2 控制台:选择 Tasks、Format。
b、格式化:
可用设备:/dev/sdb1
卷标:oracle
集群大小:Auto
节点插槽数量: 4
块大小:Auto
c、OCFS2 控制台:按 CTRL-Q 退出。
d、重复abc步骤格式化/dev/sdc1
或者使用下列命令格式
mkfs.ocfs2 -L "ocr" /dev/sdb1
mkfs.ocfs2 -L "votingdisk" /dev/sdc1
(4)挂载文件系统
在zhh1和zhh2两个节点上,执行下列命令
[root@zhh1 ~]# mkdir /ocr
[root@zhh1 ~]# mount -t ocfs2 -o datavolume,nointr /dev/sdb1 /ocr
[root@zhh1 ~]# mkdir /votingdisk
[root@zhh1 ~]# mount -t ocfs2 -o datavolume,nointr /dev/sdc1 /votingdisk
[root@zhh1 ~]# less /etc/fstab
/dev/sdb1 /ocr ocfs2 _netdev,datavolume,nointr 0 0
/dev/sdc1 /votingdisk ocfs2 _netdev,datavolume,nointr 0 0
[root@zhh1 ~]# chown -R oracle:dba /ocr
[root@zhh1 ~]# chown -R oracle:dba /votingdisk
[root@zhh1 /]# /etc/init.d/o2cb status
Module "configfs": Loaded
Filesystem "configfs": Mounted
Module "ocfs2_nodemanager": Loaded
Module "ocfs2_dlm": Loaded
Module "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster ocfs2: Online
Heartbeat dead threshold: 31
Network idle timeout: 30000
Network keepalive delay: 2000
Network reconnect delay: 2000
Checking O2CB heartbeat: Active
(5)验证读写
在两个节点的共享集群文件系统上读写文件
[root@zhh1 ocr]# touch test.txt
[root@zhh2 ocr]# vi test.txt
[root@zhh1 ocr]# less test.txt
[root@zhh1 ocr]# rm test.txt
浙公网安备 33010602011771号