百度经验
页面数据加载中...
ASM磁盘多路径及udev配置
如果使用双网卡通道连接存储,那么需要使用多路径技术生成根据wwid固定iscsi设备和通过udev技术修改多路径固定后的iscsi设备读写权限。如果使用双通道,两者是必须的。以下是我的RAC部署。必须使用两个交换机。
以下是我的两台服务器IP设置和两台存储IP设置:
主机1: eth2 10.10.10.5 eth3 10.10.11.5
主机2: eth2 10.10.10.7 eth3 10.10.11.7
存储1: eth1 10.10.10.20 eth2 10.10.11.20
存储2: eth1 10.10.10.21 eth2 10.10.11.21
实施步骤:
1:多路径扫描设备
2:重启服务器,iscsi设备自动挂载
3:找出iqn映射到Linux的设备别名
4:生成wwid号
5:YUM安装多路径软件
6:启动多路径服务并配置永久生效
7:编辑配置文件/etc/multipath.conf
8:使用udev规则修改设备读写权限
9:加载设备
10:加载udev规则并启动udev
注意:以下实验都是在rhel6.4 ORACLE 11.2.0.4下测试成功。
1:多路径扫描设备
[root@node2 ~]# iscsiadm -m discovery -t sendtargets -p 10.10.10.21:3260
[root@node2 ~]# iscsiadm -m discovery -t sendtargets -p 10.10.11.21:3260
[root@node1 ~]# iscsiadm -m discovery -t sendtargets -p 10.10.10.20:3260
[root@node1 ~]# iscsiadm -m discovery -t sendtargets -p 10.10.11.20:3260
注意:记得每个存储两个IP都要扫描
如果是rac,节点1和节点2都要执行。
2:重启服务器,iscsi设备自动挂载
两个节点扫描之后重启服务器,重启之后rhel6.4 就会自动挂载iscsi设备。因为如果iscsi设备很多的话,一个一个挂载很麻烦,尽管能够双通道挂载。以下图片是双通道挂载。
iscsiadm -m node -T iqn.2001-04.com.KingStore-blockA0:71a01ebeb045 –p 10.10.10.20:3260 -l 执行这个命令同时相当于iscsiadm -m node -T iqn.2001-04.com.KingStore-blockA0:71a01ebeb045 –p 10.10.11.20:3260 -l 只要执行一个就行,就能够双通道挂载
具体挂载iscsi设备可以参考我的经验:rhel 6挂载以及卸载iscsi存储
http://jingyan.baidu.com/article/046a7b3edda53bf9c27fa9a2.html
3:找出iqn映射到Linux的设备别名
在节点1上
service iscsi status 就能找到iscsi设备映射到Linux服务器的别名了。
node1:上
iqn.2001-04.com.KingStore-blockA1:e7fe838f5c2e sde sdc
iqn.2001-04.com.KingStore-blockB0:63e12abcea4c sdl sdk
iqn.2001-04.com.KingStore-blockA2:ad9ac7a8dbc5 sdi sdj
iqn.2001-04.com.KingStore-blockB1:cc5eff2db421 sdh sdf
iqn.2001-04.com.KingStore-blockB2:55c6742987b sdm sdb
iqn.2001-04.com.KingStore-blockA0:4535387a44ea sdg sdd
5:YUM安装多路径软件
核心软件:
device-mapper-multipath-0.4.9-64.el6.x86_64
device-mapper-1.02.77-9.el6.x86_64
multipath-tools。主要提供multipathd和multipath等工具和 multipath.conf等配置文件。这些工具通过device mapper的ioctr的接口创建和配置multipath设备(调用device-mapper的用户空间库。创建的多路径设备会在/dev/mapper中)
device-mapper:主要包括两大部分:内核部分和用户部分。内核部分主要由device mapper核心(dm.ko)和一些target driver(md-multipath.ko)。核心完成设备的映射,而target根据映射关系和自身特点具体处理从mappered device 下来的i/o。同时,在核心部分,提供了一个接口,用户通过ioctr可和内核部分通信,以指导内核驱动的行为,比如如何创建mappered device,这些divece的属性等。linux device mapper的用户空间部分主要包括device-mapper这个包。其中包括dmsetup工具和一些帮助创建和配置mappered device的库。这些库主要抽象,封装了与ioctr通信的接口,以便方便创建和配置mappered device。multipath-tool的程序中就需要调用这些库
YUM软件安装可以参考我的经验:rhel6.4 yum本地yum源配置
http://jingyan.baidu.com/article/59a015e340de67f7948865bc.html
6:启动多路径服务并配置永久生效
[root@node1 Packages]# /etc/init.d/multipathd start
Starting multipathd daemon: [ OK ]
[root@node1 Packages]# chkconfig --list | grep multipathd
multipathd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@node1 Packages]# chkconfig --level 345 multipathd on
[root@node1 Packages]# chkconfig --list | grep multipathd
multipathd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
7:编辑配置文件/etc/multipath.conf
[root@node1 dev]# cat /etc/multipath.conf
defaults {
user_friendly_names yes
}
multipaths {
multipath {
wwid "1a7131bd2c389eb5e79ff34b15e79cb1b"
alias ocr1
path_grouping_policy multibus
uid 1300
gid 1301
mode 666
}
multipath {
wwid "106a6ab4342a408070ba5cf81fcaeb88c"
alias data11
path_grouping_policy multibus
uid 1200
gid 1000
mode 666
}
multipath {
wwid "11ef74500552e6ed7a3c8c80c2ead9306"
alias ocr2
path_grouping_policy multibus
uid 1300
gid 1301
mode 666
}
multipath {
wwid "17f715a111c0c7ef8d05ed2298ab4c412"
alias data22
path_grouping_policy multibus
uid 1200
gid 1000
mode 666
}
multipath {
wwid "196d1ca5c3dfead0634b120b019d48443"
alias data12
path_grouping_policy multibus
uid 1200
gid 1000
mode 666
}
multipath {
wwid "15c660fd0fc09e3c02d1612ca0c4511af"
alias data21
path_grouping_policy multibus
uid 1200
gid 1000
mode 666
}
}
编辑完之后重启多路径服务,就会发现/dev/mapper目录下生成了指定的设备名称,但是真正的设备在/dev/dm-*。/dev/mapper是安装ASM时指定的路径。但是发现这些设备名称的权限都是root(不需要更改),且/dev/dm-*读写权限设定是无效的(需要更改)。
虽然ASM中使用的/dev/mapper/下的设备,但是这些设备最终还是连接到/dev/dm-*这些设备。所以如果需要使用/dev/mapper/下的设备,必须udev修改/dev/dm-*这些设备读写权限。虽然/dev/dm-*这些设备读写权限能够通过chmod更改,但是一定重启存储或者重启服务器之后之前更改的权限又变回来了。所以必须使用udev修改这些设备权限。