admin 发表于 2018-8-5 21:33:18

OCFS2在Linux下配置文档

OCFS2在Linux下配置文档
1、简介

OCFS2是下一代的ORACLE集群文件系统,它已经被设计成为一种为通用的文件系统。OCFS2能使运行在集群中所有节点并发的通过标准文件系统接口来访问存储备。

2、 下载

OCFS2的发行版包括了2个安装包,一个称为核心模块,另一个叫工具包。

核心模块链接下载:

http://oss.oracle.com/projects/ocfs2/files/

工具包链接下载:

http://oss.oracle.com/projects/ocfs2-tools/files/

首先要下载相应的软件包,对于核心模块,下载时要考虑它的发行号,适用的平台,操作系统内核版本以及内核的类型(比如SMP,HUGEMEM,PSMP等),对于工具包,只要符合发行版本和平台就可以了。

工具包又分为两部分,ocfs2-tools命令行工具,ocfs2console图形工具,用户可以选择不安装这部分,但它的确可以令操作简单化。

3、安装(每个节点都安装)

以Linux2.6.18-128.7AXS3 服务器安装为例:

操作系统:Linux

操作系统版本:2.6.18-128.7AXS3 x86_64

OCFS2核心模块安装包:

ocfs2console-1.4.1-1AXS3.x86_64.rpm

OCFS2工具安装包:

ocfs2-tools-1.4.1-1AXS3.x86_64.rpm

切换root用户进行安装:

rpm -ivh ocfs2console-1.4.1-1AXS3.x86_64.rpm

rpm –ivh ocfs2-tools-1.4.1-1AXS3.x86_64.rpm

安装后,若执行/etc/init.d/ocfs2出现:

Usage: /etc/init.d/ocfs2 {start|stop|status|reload|force-reload|restart|try-restart}

执行/etc/init.d/o2cb出现

Usage: /etc/init.d/o2cb {start|stop|restart|force-reload|enable|disable|configure|load|unload|online|offline|force-offline|status}

说明OCFS2核心模块和工具包安装成功。

4、 OCFS2配置文件(每个节点都配置)

OCFS2有一个配置文件,路径为/etc/ocfs2/cluster.conf。在这个配置文件中,你需要指定集群中所有的节点信息,并且所有的节点上都应该保留相同的一份。你可以动态的增加新节点到集群,或者改变一些节点的IP,名字,但这需要重起OCFS2以便使更改生效。

以两台Linux2.6.18-128.7AXS3服务器配置为例,保证两台机器相互ping通:

服务器主机名:h104、h105

服务器IP地址:192.168.4.104、192.168.4.105

下图为配置文件cluster.cof内容:

node:

ip_port = 7777
ip_address = 192.168.4.104
number = 0
name = h104
cluster = ocfs2

node:
ip_port = 7777
ip_address = 192.168.4.105
number = 1
name = h105
cluster = ocfs2

cluster:
node_count = 2
name = ocfs2

该配置文件分别放在两台服务器/etc/ocfs2目录中,配置完成。

5、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等命令前,要先启动这些服务。

6、 OCFS2集群服务启动(每个节点都执行)

通过以下命令启动所有服务:

/etc/init.d/o2cb load

通过以下命令使cluster ocfs2 启动:

/etc/init.d/o2cb online ocfs2

通过以下命令停止cluster ocfs2:

/etc/init.d/o2cb offline ocfs2

通过以下命令停止所有服务:

/etc/init.d/o2cb unload

通过以下命令检查所有服务的状态:

/etc/init.d/o2cb status

7、 格式化

首先采用parted工具对共享磁盘进行分区,分出一个KingbaseSD区供OCFS2集群使用。详细分区命令如下:

选择要分区的硬盘,此处为/dev/sdb:

# parted /dev/sdb

创建一个分区表:

(parted) mklabel
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes

New disk label type? ? Gpt

执行mkpart命令,分别输入分区名称,文件系统和分区的起止位置:

(parted) mkpart                                                   

分区名称?[]? KingbaseSD                                       

文件系统类型?? ext3                                       

起始点?500G                                                      

结束点?1000G                                                      

分完区后退出:

(parted) q

最后查看下分完区后的结果:

parted -l

Model: LSI INF-01-00 (scsi)

Disk /dev/sdb: 6743GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

NumberStart   End    Size   File systemName      标志

1      17.4kB500GB500GB               KingbaseSD      

如果O2CB CLUSTER没有启动,首先启动它。格式化操作依赖于这些服务。同时它需要你确保所有的节点上都没有挂载需要格式化的设备。

为要格式化的设备输入一个标签,为了便于管理,我们建议你输入一个标签,你仍然可以在格式化之后修改它。

为设备选择一个集群单元大小(clustersize),它支持从4k到1M。如果这个设备用来存储数据文件或者大的文件,比较合适的大小是128K。

选择一个块单元大小(block size),它支持从512字节到4k,由于OCFS2在格式化的时候并不分配一个静态的inode 区域,所以4k是我们强烈推荐的大小,它几乎适合所有的磁盘大小,换句话说,即时这些磁盘支持512字节,但我们仍然不建议使用小的单元。

一旦格式化完毕,集群单元和块单元都不可以再改变。

输入一个节点槽位(node slots),这个数值决定了允许多少节点同时挂载这个设备。这个数值随后可以修改,但只能增加,不能减小。

例如要格式化一个3k块大小,32k集群单元大小,包括4个节点的设备,在命令行下,可以通过mkfs.ocfs2工具按如下操作完成(在一个节点执行格式化即可):

# mkfs.ocfs2 -b 4K -C 32K -N 4 -L KingbaseSD /dev/sdb1

可以通过man 获得mkfs.ocfs2的帮助信息。

8、 挂载

把共享磁盘挂载到所有节点上,首先在每个节点上创建一个共同的目录名,例如在h104和h105创建/home/kingbasesd_DATA目录名:

h104:mkdir –p /home/kingbasesd_DATA

h105: mkdir –p /home/kingbasesd_DATA

创建完目录后,通过以下命令把共享磁盘挂载到本地,以h104、h105为例:

h104:mount -t ocfs2 /dev/sdb1 /home/kingbasesd_DATA/

h105:mount -t ocfs2 /dev/sdb1 /home/kingbasesd_DATA/

注意:在OCFS2文件集群系统退出时,每个节点要卸载已挂载的共享磁盘,以防对共享磁盘损坏,通过以下命令卸载:

umount /dev/sdb1

9、挂载本地的共享磁盘配置

为了使每个节点对挂载到本地的共享磁盘都有读写权限,需要创建专门的用户对共享磁盘访问,并且每个节点创建的用户ID必须一致。以h104,、h105为例进行配置:

首先在h104、h105上创建用户node104、node105:

useradd node104

useradd node105

为node104、node105分配密码:

passwd node104

passwd node105

接着修改node104和node105的用户ID和用户组ID都为808:

在h105上:

usermod -d 808 node105

groupmod -g 808 node105

在h104上:

usermod -d 808 node104

groupmod -g 808 node104

最后在其中一个节点上修改/home/kingbasesd_DATA用户属组:

chown -R node104:node104 /home/kingbasesd_DATA/

10、 测试

在h104上/home/kingbasesd_DATA 目录上创建一个test文件,在h105上/home/kingbasesd_DATA目录上可以看到,在h105上/home/kingbasesd_DATA上删除test文件,在h104上看不到test文件。

页: [1]
查看完整版本: OCFS2在Linux下配置文档