ASM磁盘多路径及udev配置

  • 原创
  • |
  • 浏览:4357
  • |
  • 更新:

    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下测试成功。

ASM磁盘多路径及udev配置
ASM磁盘多路径及udev配置

方法/步骤

  1. 1

    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都要执行。

    ASM磁盘多路径及udev配置
  2. 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

    ASM磁盘多路径及udev配置
    ASM磁盘多路径及udev配置
  3. 3

    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

    ASM磁盘多路径及udev配置
  4. 4

    4:生成wwid号

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sdb

    1a7131bd2c389eb5e79ff34b15e79cb1b

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sdc

    15c660fd0fc09e3c02d1612ca0c4511af

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sdd

    17f715a111c0c7ef8d05ed2298ab4c412

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sde

    196d1ca5c3dfead0634b120b019d48443

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sdf

    11ef74500552e6ed7a3c8c80c2ead9306

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sdg

    1a7131bd2c389eb5e79ff34b15e79cb1b

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sdh

    106a6ab4342a408070ba5cf81fcaeb88c

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sdi

    11ef74500552e6ed7a3c8c80c2ead9306

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sdj

    17f715a111c0c7ef8d05ed2298ab4c412

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sdk

    196d1ca5c3dfead0634b120b019d48443

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sdl

    15c660fd0fc09e3c02d1612ca0c4511af

    [root@node1 ~]# /sbin/scsi_id -g -u -d /dev/sdm

    106a6ab4342a408070ba5cf81fcaeb88c

    可以看到两两重复的

    然后规划好,哪些设备存放集群信息,哪些设备用来存放数据

  5. 5

    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

    ASM磁盘多路径及udev配置
    ASM磁盘多路径及udev配置
  6. 6

    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

    ASM磁盘多路径及udev配置
  7. 6
    相关内容未经授权抓取自百度经验
  8. 7

    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修改这些设备权限。

    ASM磁盘多路径及udev配置
    ASM磁盘多路径及udev配置
  9. 8

    8:使用udev规则修改设备读写权限

    vi /etc/udev/rules.d/99-oracle-asmdevices.rules

    KERNEL=="dm-0", OWNER="grid", GROUP="asmadmin", MODE="0660"

    KERNEL=="dm-1", OWNER="oracle", GROUP="oinstall", MODE="0660"

    KERNEL=="dm-2", OWNER="oracle", GROUP="oinstall", MODE="0660"

    KERNEL=="dm-3", OWNER="grid", GROUP="asmadmin", MODE="0660"

    KERNEL=="dm-4", OWNER="oracle", GROUP="oinstall", MODE="0660"

    KERNEL=="dm-5", OWNER="oracle", GROUP="oinstall", MODE="0660"

    注意:

    /dev/目录下有多少个dm-*就写多少个,OWNER和asmadmin可以不用这么严格,但是MODE权限必须设置成0660。比如dm-1现在对应的是data11这个设备,但是如果其中一台存储宕机,dm-1对应的一定不是data11了。

  10. 9

    9:加载设备

    [root@node1 mapper]# partprobe /dev/sdb

    [root@node1 mapper]# partprobe /dev/sdc

    [root@node1 mapper]# partprobe /dev/sdd

    [root@node1 mapper]# partprobe /dev/sde

    [root@node1 mapper]# partprobe /dev/sdf

    [root@node1 mapper]# partprobe /dev/sdg

    [root@node1 mapper]# partprobe /dev/sdh

    [root@node1 mapper]# partprobe /dev/sdi

    [root@node1 mapper]# partprobe /dev/sdj

    [root@node1 mapper]# partprobe /dev/sdk

    [root@node1 mapper]# partprobe /dev/sdl

    [root@node1 mapper]# partprobe /dev/sdm

  11. 10

    10:加载udev规则并启动udev

    [root@node1 mapper]# /sbin/udevadm control --reload-rules

    [root@node1 mapper]# /sbin/start_udev

    Starting udev:                                             [  OK  ]

    [root@node1 mapper]# cd ../

    [root@node1 dev]# ll dm-*

    brw-rw----. 1 grid   asmadmin 253, 0 Jul 16 12:03 dm-0

    brw-rw----. 1 oracle oinstall 253, 1 Jul 16 12:03 dm-1

    brw-rw----. 1 oracle oinstall 253, 2 Jul 16 12:03 dm-2

    brw-rw----. 1 grid   asmadmin 253, 3 Jul 16 12:03 dm-3

    brw-rw----. 1 oracle oinstall 253, 4 Jul 16 12:03 dm-4

    brw-rw----. 1 oracle oinstall 253, 5 Jul 16 12:03 dm-5

    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部