您的位置:首页 > 数据库 > Oracle

OEL 5.9 配置OCFS2共享存储

2013-11-23 11:13 351 查看

1. 环境准备

1.1. 软件信息

虚拟机:VirtualBox 4.2
操作系统:Oracle Linux Server release 5.9
OCFS2:ocfs2-2.6.18-348.el5-1.4.10-1.el5.x86_64.rpm

1.2. 主机配置

1.2.1. Hosts文件[root@skynode1 ~]# more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost
# skynode1
192.168.1.241 skynode1
192.168.1.242 skynode1-vip
# skynode2
192.168.1.245 skynode2
192.168.1.246 skynode2-vip
192.168.1.250 sky-cluster sky-cluster-scan
10.11.11.11 skynode1-priv
10.11.11.12 skynode2-priv
当前主机是模拟rac环境使用,因此我们使用私有网卡,作为ocfs2集群的通信地址。当然生产环境当中是不能这么做的,这样会给私有网卡带来严重的性能压力。建议添加单独的网卡来作为ocfs2集群的通信网卡。

1.2.2. 磁盘空间添加一块独立的磁盘用于ocfs2集群测试




1.3. 安装ocfs2

操作系统安装好以后,默认已经安装了ocfs2-tools,需要手工进行ocfs2的安装。每个使用ocfs2共享文件系统的节点都需要安装。
[oracle@skynode1 ~]$ rpm -qa | grep ocfs
ocfs2-tools-1.8.0-10.el5

选择使用yum的方式进行ocfs2安装。
[root@skynode1 Server]# yum list | grep ocfs2
This system is not registered with ULN.
You can use up2date --register to register.
ULN support will be disabled.
ocfs2-tools.x86_64 1.8.0-10.el5 installed
ocfs2-2.6.18-348.el5.x86_64 1.4.10-1.el5 oel5
ocfs2-2.6.18-348.el5debug.x86_64 1.4.10-1.el5 oel5
ocfs2-2.6.18-348.el5xen.x86_64 1.4.10-1.el5 oel5
ocfs2-tools-devel.x86_64 1.8.0-10.el5 oel5

[root@skynode1 Server]# yum install ocfs2-2.6.18-348.el5.x86_64
Loaded plugins: rhnplugin, security
This system is not registered with ULN.
You can use up2date --register to register.
ULN support will be disabled.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ocfs2-2.6.18-348.el5.x86_64 0:1.4.10-1.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===================================================================
Package Arch Version Repository Size
===================================================================
Installing:
ocfs2-2.6.18-348.el5 x86_64 1.4.10-1.el5 oel5 323 k
Transaction Summary
===================================================================
Install 1 Package(s)
Upgrade 0 Package(s)
Total download size: 323 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : ocfs2-2.6.18-348.el5 1/1
Installed:
ocfs2-2.6.18-348.el5.x86_64 0:1.4.10-1.el5
Complete!

没有太多的依赖关系,安装很顺利。

注意:
新版本的OEL系统中,已经不再提供ocfs2-console这个图形化工具进行ocfs的配置。
ocfs2-tools 是一个字符界面工具。因此我们通过ocfs2-tools命令行进行ocfs2集群的配置。
USER'S GUIDE FOR RELEASE 1.6
ocfs2-tools (CLI) and ocfs2console (GUI).
其他节点选择rpm方式直接安装
[root@skynode2 ~]# rpm -ivh ocfs2-2.6.18-348.el5-1.4.10-1.el5.x86_64.rpm
warning: ocfs2-2.6.18-348.el5-1.4.10-1.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:ocfs2-2.6.18-348.el5 ########################################### [100%]

2. 配置集群

集群的配置可以使用模版文件或者命令行的方式,/etc/ocfs2/cluster.conf 这个文件对格式有一定的要求,复制、粘贴很容易照成配置异常,建议通过命令行进行配置。
实际在生产系统中使用这种方式配置共享存储的使用很少,因此我们只做简单的测试,不考虑性能等问题。

2.1. 使用o2cb 命令配置集群

o2cb 是集群配置命令,简单的配置我们只需要关注2个参数,一个是添加集群,一个是添加节点。
The commands are:
add-cluster Add cluster to the config file.
add-node Adds a node to the cluster in the config file.

2.1.1. add-cluster[root@skynode1 ~]# o2cb add-cluster
o2cb: usage: add-cluster <clustername>
添加集群,只需要指定集群名称即可。命令执行成功后,会自动创建集群配置文件 /etc/ocfs2/cluster.conf。如果是通过模版方式创建集群,则需要手工创建该文件。
2.1.2. add-node[root@skynode1 ~]# o2cb add-node
o2cb: usage: add-node [--ip <ip>] [--port <port>] [--number <num>] <clustername> <nodename>
添加节点命令,需要指定节点ip,节点间通信的端口,当前节点的编号,以及节点所属集群和节点的名称。
2.1.3. 创建集群和节点需要在所有节点使用root口令执行下面命令:
o2cb add-cluster racfs
o2cb add-node --ip 10.11.11.11 --port 7777 --number 1 racfs skynode1
o2cb add-node --ip 10.11.11.12 --port 7777 --number 2 racfs skynode2
[root@skynode1 ~]# o2cb add-cluster racfs
[root@skynode1 ~]# o2cb add-node --ip 10.11.11.11 --port 7777 --number 1 racfs skynode1
[root@skynode1 ~]# o2cb add-node --ip 10.11.11.12 --port 7777 --number 2 racfs skynode2
执行成功后,检查配置文件
[root@skynode1 ~]# ls -la /etc/ocfs2/cluster.conf
-rw-r--r-- 1 root root 254 Nov 23 02:14 /etc/ocfs2/cluster.conf
[root@skynode1 ~]# more /etc/ocfs2/cluster.conf
node:
ip_port = 7777
ip_address = 10.11.11.11
number = 1
name = skynode1
cluster = racfs
node:
ip_port = 7777
ip_address = 10.11.11.12
number = 2
name = skynode2
cluster = racfs
cluster:
node_count = 2
heartbeat_mode = local
name = racfs
要确保配置文件中的ip地址,主机名是可以正常访问的。
2.1.4. 配置集群服务在所有节点运行集群服务配置命令。
[root@skynode1 ~]# service 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)
: y
Cluster stack backing O2CB [o2cb]:
Cluster to start on boot (Enter "none" to clear) [ocfs2]: racfs
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 filesystem "configfs": OK
Mounting configfs filesystem at /sys/kernel/config: OK
Loading stack plugin "o2cb": OK
Loading filesystem "ocfs2_dlmfs": OK
Creating directory '/dlm': OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Setting cluster stack "o2cb": OK
Registering O2CB cluster "racfs": OK
Setting O2CB cluster timeouts : OK
注意修改集群名称与上面创建的集群名称一致。确保所有返回结果均为 OK。
集群服务的配置信息,存放在 /etc/sysconfig/o2cb 文件中。可以手工进行修改,修改后,建议重新执行服务配置命令。
2.1.5. 配置参数调整参数调整需要在所有节点进行操作。
l O2CB_HEARTBEAT_THRESHOLD
建议值为:
O2CB_HEARTBEAT_THRESHOLD = (((timeout in seconds) / 2) + 1)
The default for this is 31 (60 secs). A setting of 61 is recommended for multipath users.
使用默认值,不做改动。
l Network Idle Timeout
l Network Keepalive Delay
l Network Reconnect Delay
上述参数,均使用默认值。
l Kernel Configuration
kernel.panic_on_oops = 1
kernel.panic = 30
修改 /etc/sysctl.conf 参数文件, 使用 sysctl -p 命令使参数生效。

2.2. 启动集群

在所有节点执行 service o2cb online 命令,启动ocfs2集群。如果此时配置文件存在,会有报错信息出现,要及时处理报错。
[root@skynode1 ~]# service o2cb online
Setting cluster stack "o2cb": OK
Cluster racfs already online

2.3. 检查集群状态

在所有节点执行 service o2cb status 命令,检查ocfs2集群状态。
[root@skynode1 ~]# service o2cb status
Driver for "configfs": Loaded
Filesystem "configfs": Mounted
Stack glue driver: Loaded
Stack plugin "o2cb": Loaded
Driver for "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster "racfs": Online
Heartbeat dead threshold: 31
Network idle timeout: 30000
Network keepalive delay: 2000
Network reconnect delay: 2000
Heartbeat mode: Local
Checking O2CB heartbeat: Not active
由于此时还没有共享磁盘使用,因此心跳的状态为未激活。

3. 格式化共享磁盘

3.1. 共享磁盘分区

3.1.1. 检查新添加的共享磁盘在所有节点都进行检查,确认磁盘是否添加正常。
[root@skynode1 ~]# ls -la /dev/sd*
brw-r----- 1 root disk 8, 0 Nov 23 2013 /dev/sda
brw-r----- 1 root disk 8, 1 Nov 23 02:13 /dev/sda1
brw-r----- 1 root disk 8, 2 Nov 23 2013 /dev/sda2
brw-rw---- 1 root root 8, 16 Nov 23 2013 /dev/sdb
brw-rw---- 1 root root 8, 32 Nov 23 2013 /dev/sdc
brw-rw---- 1 root root 8, 48 Nov 23 2013 /dev/sdd
brw-r----- 1 root disk 8, 64 Nov 23 2013 /dev/sde
3.1.2. 磁盘分区在单个节点进行操作即可。使用全部磁盘空间进行分区操作。
[root@skynode1 ~]# fdisk /dev/sde
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1305, default 1305):
Using default value 1305
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
3.1.3. 检查分区后的磁盘信息[root@skynode1 ~]# ls -la /dev/sde*
brw-r----- 1 root disk 8, 64 Nov 23 02:36 /dev/sde
brw-r----- 1 root disk 8, 65 Nov 23 02:36 /dev/sde1
3.1.4. 其他节点进行磁盘发现操作[root@skynode2 ~]# partprobe
[root@skynode2 ~]# ls -la /dev/sde*
brw-r----- 1 root disk 8, 64 Nov 23 2013 /dev/sde
brw-r----- 1 root disk 8, 65 Nov 23 02:38 /dev/sde1
其他节点可以正常看到该磁盘分区。表明磁盘分区操作成功。

3.2. 磁盘分区格式化

这里我们选择datafiles 类型,用于存放数据库的数据文件。单个节点操作即可。
[root@skynode1 ~]# mkfs.ocfs2 -T datafiles -L "RACFS" /dev/sde1
mkfs.ocfs2 1.8.0
Cluster stack: classic o2cb
Filesystem Type of datafiles
Label: RACFS
Features: sparse extended-slotmap backup-super unwritten inline-data strict-journal-super xattr indexed-dirs refcount discontig-bg
Block size: 4096 (12 bits)
Cluster size: 131072 (17 bits)
Volume size: 10733879296 (81893 clusters) (2620576 blocks)
Cluster groups: 3 (tail covers 17381 clusters, rest cover 32256 clusters)
Extent allocator size: 8388608 (2 groups)
Journal size: 33554432
Node slots: 4
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 2 block(s)
Formatting Journals: done
Growing extent allocator: done
Formatting slot map: done
Formatting quota files: done
Writing lost+found: done
mkfs.ocfs2 successful
在其他节点重复格式化时,会出现提示是否覆盖ocsfs2分区。
[root@skynode2 ~]# mkfs.ocfs2 -T datafiles -L "RACFS" /dev/sde1
mkfs.ocfs2 1.8.0
Cluster stack: classic o2cb
Overwriting existing ocfs2 partition.
Proceed (y/N): n
Aborting operation.

3.3. 挂载磁盘

l 创建挂载点
在所有节点创建相同的目录,修改目录属组为oracle用户。
[root@skynode1 ~]# cd /
[root@skynode1 /]# mkdir oradata
[root@skynode1 /]# chown oracle:oinstall /oradata/
l 挂载磁盘分区
所有节点都进行挂载操作
[root@skynode1 /]# mount -t ocfs2 /dev/sde1 /oradata/
l 检查共享磁盘
所有节点检查目录权限是否正确
[root@skynode1 /]# cd / ; ll | grep ora
drwxr-xr-x 7 oracle oinstall 4096 Aug 24 15:35 oracle
drwxr-xr-x 3 oracle oinstall 3896 Nov 23 02:48 oradata
在单个节点创建一个测试文件
[root@skynode1 /]# cd /oradata/
[root@skynode1 oradata]# echo hello > 1.txt
其他节点进行文件内容检查
[root@skynode2 /]# cd /oradata/
[root@skynode2 oradata]# more 1.txt
Hello

3.4. 配置磁盘自动挂载

3.4.1. 配置/etc/fstab所有节点修改 /etc/fstab 配置文件,新增ocfs2共享磁盘配置。
[root@skynode1 ~]# vi /etc/fstab
/dev/sde1 /oradata ocfs2 _netdev,datavolume,nointr 0 0
所有节点卸载挂载目录
[root@skynode1 ~]# umount /oradata
所有节点重新挂载
[root@skynode1 ~]# mount /oradata
3.4.2. 挂载参数说明l _netdev
是针对ocfs2设备的特殊mount选项,此挂载选择指示将在网络启动后挂载改卷,在关闭网络前卸载改卷。
l datavolume
该挂载属性,表面挂载的磁盘用于存放oracle数据文件,控制文件,重做日志,归档日志,表决磁盘,集群注册表等。
l intr / nointr
The default, nointr, blocks signals from interrupting certain cluster operations. 与集群信号中断有关设置。

4. 共享磁盘使用测试

下面操作使用oracle用户进行验证。

4.1. 创建测试目录

[oracle@skynode1 ~]$ cd /oradata/
[oracle@skynode1 oradata]$ mkdir acct

4.2. 添加表空间

SQL> create tablespace OCFS_TBS datafile '/oradata/acct/OCFS_TBS.dbf' size 100m;
Tablespace created.

4.3. 各节点测试读写操作

4.3.1. 节点1创建表,写入测试数据SQL> show parameter instance_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string acct1
SQL> create table t (id number);
Table created.
SQL> insert into t values (1);
1 row created.
SQL> commit;
Commit complete.
4.3.2. 节点2读取数据,写入测试数据SQL> show parameter instance_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string acct2
SQL> select * from t;
ID
----------
1
SQL> insert into t values (2);
1 row created.
SQL> commit;
Commit complete.
4.3.3. 节点1验证节点2写入的数据SQL> show parameter instance_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string acct1
SQL> select * from t;
ID
----------
1
2

5. 重启主机进行验证

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息