Chinaunix首页 | 论坛 | 博客
  • 博客访问: 546650
  • 博文数量: 105
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1132
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 09:57
文章分类

全部博文(105)

文章存档

2011年(1)

2009年(41)

2008年(63)

我的朋友

分类: LINUX

2009-06-08 10:21:08

 某项目中,使用双服务器、单盘柜构建Oracle RAC集群环境。但在配置OCFS2磁盘时,格式化分区正常,挂载分区时报错:

引用

[root@rac1 /]# mount -t ocfs2 -o datavolume /dev/sdb1 /mnt/disk
mount.ocfs2: Invalid argument while mounting /dev/sdb1 on /mnt/disk. Check 'dmesg' for more information on this error.


    
经分析,该问题与kernel中的ocfs2模块驱动版本,及ocfs2-toolsocfs2console软件包版本有关。

一、前言
该项目,运行在红旗Asianux 3.0 SP1 for x86_64平台上。
硬件环境为:

引用

Dell PowerEdge R900 2
HBA
卡:Qlogic 2560 每台机器两块
Dell EMC CLARiiON AX-4-5
盘柜 一台


操作系统版本:红旗Asianux 3.0 SP1 for x86_64
经测试,操作系统版本不提供Qlogic 2560的驱动,从Qlogic的网站拿到驱动源码编译安装后,发现不能支持双HBA链路,也不能正确识别AX-4-5盘柜映射的多个LUN设备。
通过查询相关的兼容列表,升级到2.6.18-128后的核心,问题解决。

参考 一文,部署和配置OCFS2分区。

二、错误信息
设定OCFS2的环境和配置文件,请见附录说明。
设定完成后,对分区进行格式化:

# mkfs.ocfs /dev/sdb1


挂载时,报错:

# mount -t ocfs2 -o datavolume /dev/sdb1 /mnt/disk


在图形界面下,运行ocfs2console工具,包同样的错误:
点击在新窗口中浏览此图片
后台日志,或dmesg中信息为:

引用

Jun  5 05:13:54 rac1 kernel: (0,0):o2hb_bio_end_io:230 ERROR: IO Error 65536
Jun  5 05:13:54 rac1 kernel: (0,0):o2hb_bio_end_io:230 ERROR: IO Error 65024
Jun  5 05:13:54 rac1 kernel: (9022,0):o2hb_populate_slot_data:1212 ERROR: status = 65024
Jun  5 05:13:54 rac1 kernel: (9022,0):o2hb_region_dev_write:1313 ERROR: status = 65024


三、排查问题
Asianux 3.0 SP1是已确认通过Oracle官方认证的版本,出现该问题,怀疑与升级核心的操作有关。
保持其他配置不变的情况下,回退到SP1的标准核心2.6.18-53.11AXS3,进行mount的操作,挂载正常。

对比升级前后的两核心:2.6.18-53.11AXS32.6.18-128.5AXS3,发现核心模块中的ocfs2版本不同:

引用

# pwd
/lib/modules/2.6.18-53.11AXS3/kernel/fs/ocfs2
# modinfo ocfs2.ko|grep version
version:        
1.2.8
# cd /lib/modules/2.6.18-128.5AXS3/kernel/fs/ocfs2/
# modinfo ocfs2.ko|grep version
version:        
1.4.1
srcversion:     02D91FFF3D6B18352652A6C


然后查询与ocfs2相关的ocfs2-tools包:

引用

# rpm -qa|grep ocfs2
ocfs2-tools-1.2.6-1.1AX
ocfs2console-1.2.6-1.1AX


可见,当前使用的ocfs2模块版本,与匹配的ocfs2-tools工具不相符。

四、解决问题
1、升级ocfs2-tools版本
Oracle官方网站获取对应的1.4.1版本(对应红帽5x86_64平台):

本地下载:

下载文件


升级:

# rpm -Uvh ocfs2-tools-1.4.1-1.el5.x86_64.rpm ocfs2console-1.4.1-1.el5.x86_64.rpm


再次测试,还是报同样的错误。

2、重编译ocfs2模块
我怀疑因单独安装SP2的核心,导致系统编译环境有差别,决定重编ocfs2模块。
关闭o2cb服务:

# service o2cb stop


Oracle官方网站获取对应的1.4.1版本,源码:

本地下载:

下载文件


2.6.18-128环境中,不能使用1.2.6等低版本。

编译:

# tar xzvf ocfs2-1.4.1.tar.gz
# cd ocfs2-1.4.1
# ./configure
# make
# make clean
# make install


新模块被拷贝到/lib/modules/2.6.18-128.5AXS3/extra/目录中:

引用

# cd /lib/modules/2.6.18-128.5AXS3/extra/ocfs2
# modinfo ocfs2.ko |grep version
version:        
1.4.1
srcversion:     7B694EE1694E983F8BE779F


替换旧模块:

# cd /lib/modules/2.6.18-128.5AXS3
# rm -rf kernel/fs/ocfs2/
# mv extra/ocfs2/ kernel/fs/


重建驱动间依赖关系后,启动o2cb服务,测试挂载:

# depmod -a
# service o2cb start
# mount -t ocfs2 /dev/sdb1 /mnt/disk


挂载成功。后台日志信息为:

引用

# mount|grep /mnt/disk
/dev/sdb1 on /mnt/disk type ocfs2 (rw,_netdev,heartbeat=local)
OCFS2 Node Manager 1.4.1 Fri Jun  5 07:26:42 CST 2009 (build 304d9ff0c301f79f846e3cc423c30674)
OCFS2 DLM 1.4.1 Fri Jun  5 07:26:42 CST 2009 (build 96988c7961cf38309cc33396bb27b400)
OCFS2 DLMFS 1.4.1 Fri Jun  5 07:26:42 CST 2009 (build 96988c7961cf38309cc33396bb27b400)
OCFS2 User DLM kernel interface loaded
OCFS2 1.4.1 Fri Jun  5 07:26:38 CST 2009 (build a1974724e90d3f07ae88531f6a9547a9)
ocfs2_dlm: Nodes in domain ("D463A4E990FE4158AF2A80835C6342F4"): 1
kjournald starting.  Commit interval 5 seconds
ocfs2: Mounting device (8,17) on (node 1, slot 0) with ordered data mode.


问题解决。

五、附录
Asianux 3.0上配置OCFS2的相关配置文件:
1/etc/hosts文件

引用

# cat /etc/hosts
127.0.0.1               localhost.localdomain localhost
192.168.228.11          rac1 rac1.linuxfly.cn
192.168.228.12          rac2 rac2.linuxfly.cn
10.0.0.1                rac1-vip
10.0.0.2                rac2-vip


2/etc/ocfs2/cluster.conf文件

引用

# cat /etc/ocfs2/cluster.conf
node:
        ip_port = 7777
        ip_address = 192.168.228.11
        number = 0
        name = rac1.linuxfly.cn
        cluster = ocfs2

node:
        ip_port = 7777
        ip_address = 192.168.228.12
        number = 1
        name = rac2.linuxfly.cn
        cluster = ocfs2

cluster:
        node_count = 2
        name = ocfs2


3、红旗提供的ocfs2-tools 1.4.1版本
i386
版本:

下载文件


x86_64
版本:

下载文件


安装时,请使用nodeps参数。

4、现成的ocfs2模块驱动
适用于2.6.18-128.5AXS3.x86_64核心环境:

下载文件


使用如下命令安装即可:

# tar xzvf ocfs2-2.6.18-128.5AXS3.x86_64.tar.gz -C /


5Asinuax 3.0 SP2核心
2.6.18-128.5AXS3 x86_64
版本:

下载文件

 

下载文件

点击这里下载文件

 

阅读(3158) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~