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.7AXS3x86_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内容(下面可以用ocfs2console打开图形界面):

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目录中,配置完成。

ps:需要在host内添加h104h105和相关IP,并且重启机器

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集群服务启动(每个节点都执行)

#开机自启动ocfs

/etc/init.d/o2cb configure

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

 #/etc/init.d/o2cb load

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

#/etc/init.d/o2cbonline ocfs2

#通过以下命令停止clusterocfs2:

#/etc/init.d/o2cboffline ocfs2

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

 #/etc/init.d/o2cb unload

通过以下命令启动停止cluster

/etc/init.d/o2cb stop

[root@rac1ocfs2]# /etc/init.d/o2cb stop

StoppingO2CB cluster ocfs2: OK

Unmountingocfs2_dlmfs filesystem: OK

Unloadingmodule "ocfs2_dlmfs": OK

Unmountingconfigfs filesystem: OK

Unloadingmodule "configfs": OK

/etc/init.d/o2cb start

Loadingfilesystem "configfs": OK

Mountingconfigfs filesystem at /sys/kernel/config: OK

Loadingfilesystem "ocfs2_dlmfs": OK

Mountingocfs2_dlmfs filesystem at /dlm: OK

StartingO2CB cluster ocfs2: OK

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

 /etc/init.d/o2cb status

7、 格式化

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

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

[root@h105~]# parted /dev/sdb

创建一个分区表:

(parted)mklabel

Warning:The existing disk label on /dev/sdb will be destroyed and all data on this diskwill be lost. Do you want to continue?

Yes/No?yes

Newdisk label type? [gpt]? Gpt

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

(parted)mkpart                                                  

分区名称?  []? KingbaseSD                                        

文件系统类型?  [ext2]? ext3                                      

起始点?500G                                                       

结束点?1000G                                                      

分完区后退出:

(parted)q

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

parted-l

Model:LSI INF-01-00 (scsi)

Disk/dev/sdb: 6743GB

Sectorsize (logical/physical): 512B/512B

PartitionTable: gpt

Number  Start  End    Size   File system Name        标志

 1     17.4kB  500GB  500GB               KingbaseSD      

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

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

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

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

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

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

例如要格式化一个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为例进行配置:

首先在h104h105上创建用户node104node105

useradd node104

useradd node105

node104node105分配密码:

passwd node104

passwd node105

接着修改node104node105的用户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文件。

11. startup shutdown

shutdown:先umount/etc/init.d/o2cb stop

startup:先/etc/init.d/o2cb startmount

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值