OracleRAC环境搭建前,如何使用Multipath做存储多路径融合

【引言】
本文阅读预计15min

在配置OracleRAC+ADG环境时,存储部分会使用udev进行管理,然后使用asmca进行磁盘组管理,然后安装RAC环境。生产环境中,由光纤组成的SAN环境,或由iSCSI组成的IPSAN环境,主机和存储通过光纤交换机或多块网卡及IP来连接,构成了多对多的关系。主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。主机到所对应的存储可有几条不同的路径。会有如下几个疑问。

  1. 同时使用的话,I/O流量如何分配?
  2. 其中一条路径坏掉了,如何处理?
  3. 在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。

多路径软件就是为了解决上面的问题应运而生的。本文重点介绍一种多路径技术multipath。

多路径的主要功能:
1.故障的切换和恢复
2.IO流量的负载均衡
3.磁盘的虚拟化

由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,提供了不同的版本。RedHat和Suse的2.6的内核中都自带了免费的多路径软件包,可免费使用。在CentOS 5中,最小安装系统时multipath已经被安装。

Multipath工作原理
当multipath启动的时候,它通过系统命令scsi_id -eg -s /block/sdX得到proc/partitions 里面所有块设备的 UUID(universally unique identify),然后把所有具有同一个UUID的块设备组成一个Group,在/dev/mapper 生产一个对应的单独的设备。当设备生成后就可以使用fdisk或者parted进行分区,分区可以使用kpartx命令进行注册,然后就可以是用系统命令进行创建文件系统和mount 。

1、device-mapper-multipath:即multipath-tools。主要提供multipathd和multipath等工具和 multipath.conf等配置文件。通过device mapper的ioctr的接口创建和配置multipath设备(调用device-mapper的用户空间库。创建的多路径设备会在/dev /mapper中)。

2、 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的程序中就需要调用这些库。

3、dm-multipath.ko和dm.ko:dm.ko是device mapper驱动。它是实现multipath的基础。dm-multipath其实是dm的一个target驱动。

4、scsi_id: 包含在udev程序包中,可以在multipath.conf中配置该程序来获取scsi设备的序号。通过序号,便可以判断多个路径对应了同一设备。这个是多路径实现的关键。scsi_id是通过sg驱动,向设备发送EVPD page80或page83 的inquery命令来查询scsi设备的标识。但一些设备并不支持EVPD 的inquery命令,所以无法被用来生成multipath设备。但可以改写scsi_id,为不能提供scsi设备标识的设备虚拟一个标识符,并输出到标准输出。multipath程序在创建multipath设备时,会调用scsi_id,从其标准输出中获得该设备的scsi id。在改写时,需要修改scsi_id程序的返回值为0。因为在multipath程序中,会检查该直来确定scsi id是否已经成功得到。

安装步骤

1. 安装多路径软件(multi-path)
yum源安装和加载多路径软件包
#yum -y install device-mapper
#yum -y install device-mapper-multipath

2. 检查多路径模块是否加载成功
#rpm -qa | grep multipath
device-mapper-multipath-0.4.9-123.el7.x86_64
device-mapper-multipath-libs-0.4.9-123.el7.x86_64

如出现DM multipath kernel driver not loaded,DM模块没有加载成功,请使用下列命初始化DM,或重启系统。
#modprobe dm-multipath
#modprobe dm-round-robin

3. 启动服务
#service multipathd start
加入开机自启动
#检查DM模块是否加载成功

#lsmod |grep dm_multipath 信息如下:

[root@crm-testdb01 ~]# lsmod |grep dm_multipath 
dm_multipath           27792  8 dm_round_robin,dm_service_time
dm_mod                124407  22 dm_multipath,dm_log,dm_mirror

重新查看是否加载成功

[root@crm-testdb01 ~]# multipath -ll
Dec 17 15:20:44 | /etc/multipath/.conf does not exist,blocklisting all devices.
Dec 17 15:20:44 | A sample multipath.conf file is located at 
Dec 17 15:20:44 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf 
Dec 17 15:20:44 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf 

从上面的提示可以看到,DM模块是成功加载,但是/etc/下没有multipath.conf 配置文件。

4. 配置multipath 配置文件:
扫盘

echo '- - -' > /sys/class/scsi_host/host2/scan
echo '- - -' > /sys/class/scsi_host/host2/scan
scsi_id --whitelist /dev/mapper/mpathc

更改multipath.conf配置文件

  #cd  /usr/share/doc/device-mapper-multipath-0.4.9/
  #cp  -a  multipath.conf  /etc/
  #vim  /etc/multipath.conf

5. 修改/etc/multipath.conf文件
编辑/etc/multipath.conf的配置文件
multipath.conf主要包括blacklist、multipaths、devices三部分的配置

blacklist配置
blacklist {
devnode "^sda"
}

Multipaths部分配置multipaths和devices两部分的配置。

multipaths {
multipath {
wwid **************** #此值multipath -v3可以看到
alias iscsi-dm0 #映射后的别名,可以随便取
path_grouping_policy multibus #路径组策略
path_checker tur #决定路径状态的方法
path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法
}
} 

Devices部分配置
devices {
device {
vendor "iSCSI-Enterprise" #厂商名称
product "Virtual disk" #产品型号
path_grouping_policy multibus #默认的路径组策略
getuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号使用的默认程序
prio_callout      "/sbin/acs_prio_alua %d" #获取有限级数值使用的默认程序
path_checker readsector0 #决定路径状态的方法
path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法
failback        immediate #故障恢复的模式
   no_path_retry      queue #在disable queue之前系统尝试使用失效路径的次数的数值
  rr_min_io       100 #在当前的用户组中,在切换到另外一条路径之前的IO请求的数目
}
}

本案例中,做了如下配置:
注释#掉之前配置文件/etc /multipath.conf 里的内容,增加内容如下:

blacklist{
        devnode"^sda"
#忽略本地磁盘及其他不需要用多链路的磁盘自项根据自身系统决定忽略那些不相关的信息。

        }
defaults{
        user_friendly_names yes
        path_grouping_policy multibus
        failback immediate
        no_path_retry fail
        }

wq 保存退出

  1. 重启服务
    [root@crm-testdb01 init.d]# /usr/sbin/multipathd restart

7.重新识别链路

#multipath -l
mpathb(360002ac0000000000000007d0001ddbf) dm-7 3PARdata,VV              
size=300G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
  |- 1:0:0:3 sde 8:64   active ready running
  |- 1:0:1:3 sdk 8:160  active ready running
  |- 3:0:0:3 sdq 65:0   active ready running
  `- 3:0:1:3 sdw 65:96  active ready running

重新整合后的磁盘名为mpathb,磁盘大小为300G ,由四条链路组成。
整合后目录/dev/mapper/下会多了个文件夹mpathb。

之后检查磁盘信息后就可以发现最后多了一项关于mpathb的相关信息。
#fdisk -l 查看系统磁盘信息,mpathb的信息如下:
Disk /dev/mapper/mpathb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 16777216 bytes

之后就可以针对mpathb盘做扩容及其他工作。

multipath基本操作命令

#/etc/init.d/multipathd start 		#开启mulitipath服务 
#multipath -F 						#删除现有路径 
#multipath -v2 					#格式化路径 
#multipath -ll 						#查看多路径

至此,multipath 配置结束。

【参考】
https://www.linuxidc.com/Linux/2015-04/116415.htm
【参考】
https://blog.51cto.com/sfy0512141/1341305

以下是个人微信公众号“一森咖记”,欢迎关注
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle RAC搭建需要进行多个步骤,以下是基本的Oracle RAC搭建步骤: 1. 确认硬件和软件要求:在开始Oracle RAC搭建之,需要确认硬件和软件要求是否符合Oracle RAC的要求,比如CPU、内存、硬盘空间、操作系统版本等。 2. 安装Oracle软件:在所有节点上安装Oracle软件,可以使用Oracle Universal Installer进行安装,选择Oracle RAC选项。 3. 安装共享存储:在所有节点上都可以访问的存储设备上安装共享文件系统或共享存储,这是Oracle RAC的基础。 4. 配置公共网络:所有节点必须在同一个网络环境下,并配置一个公共网络用于Oracle RAC的通信。 5. 创建数据库:使用Oracle创建向导创建RAC数据库,需要指定数据库名称、实例名称、共享存储位置等。 6. 配置监听程序:配置Oracle监听程序,使其可以监听所有节点上的Oracle实例。 7. 配置Oracle Clusterware:Oracle Clusterware是Oracle提供的一种高可用性解决方案,用于管理集群节点和资源。 8. 配置Oracle Automatic Storage Management(ASM):ASM是一种Oracle提供的存储管理解决方案,可以管理Oracle RAC中的共享存储。 9. 配置故障转移:Oracle RAC可以自动检测节点故障,并将活动的连接和会话转移到其他可用节点上。 10. 测试集群:在Oracle RAC集群中进行测试,确保所有节点都可以正常工作,并且在节点故障时可以自动切换。 以上是一个基本的Oracle RAC搭建步骤,可以根据具体的要求进行调整和优化,以满足不同的业务需求。需要注意的是,Oracle RAC搭建需要涉及到多个技术领域,建议在进行Oracle RAC搭建之确认所需技术人员的能力和经验,以确保系统的稳定性和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值