注册
【达梦P系列一体机】多路径简介
技术分享/ 文章详情 /

【达梦P系列一体机】多路径简介

余友 2024/06/07 913 0 0

使用过达梦P系列集中式数据库一体机的读者可能会在计算节点中发现,使用lsblk命令会发现存在很多磁盘,而实际上存储划卷并没有这么多,比如:
• 某存储划卷 11 个:
image.png
• 从计算节点看到远超 11 个:
image.png
这与存储和计算的架构有关,需要理解多路径概念。
注1:上面说的是集中式数据库一体机,因为分布式数据库一体机不存在多路径,至于原因,相信读者看完本篇内容后便会知晓。

达梦P系列集中式数据库一体机存储架构

image.png
图 1-1 达梦P系列集中式数据库一体机存储架构拓扑图
在达梦P系列集中式数据库一体机中,采用的是存算分离架构+SAN(Storage Area Network 存储区域网络),计算节点、网络节点和存储节点均采用冗余架构:
• 计算节点配置2张FC HBA卡
• 网络节点采用2台FC交换机聚合+冗余设计
• 存储节点采用双阵列控制器(可采用Active-Standby主备方式,也可采用Dual-Active互备方式)
冗余架构的一个设计,虽然保证了安全性,但在使用上会给应用带来一个新的问题:即开篇提及的冗余磁盘问题。
如图1-1所示,假设存储中存在 1 个LUN1,该LUN存在8条路径被计算服务器1访问,因此在计算服务器1中显示出每个LUN都有8个冗余值。

啥是多路径

从上文我们了解到,计算服务器1中显示多份磁盘(也是操作系统识别出多份磁盘),那如何解决这个问题呢?
办法就是在操作系统上安装软件,这个软件识别并分析FC卡提交上来的LUN。如果是两个物理上相同的LUN,软件就向操作系统卷管理程序提交单份LUN。如果某块FC卡故障,只要主机上还有其他的FC卡可以维持到FC网络的通路,那么这个软件依然会像操作系统提交单份LUN。
这个软件就叫做“多路径”软件。从前面介绍当中可知,多路径不仅可以做到冗余高可用,还可以做到负载均衡。

多路径怎么识别同一个LUN

答案便是需要人为提前配置,Linux当中默认安装有multipath服务:

systemctl status multipathd.service

需要multipath正常工作只需要如下配置即可:

[root@h1 ~]# cat /etc/multipath.conf
blacklist {
  devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
  devnode "^(td|ha)d[a-z]"
  devnode "^nvme*"
  ...
}
defaults {
  user_friendly_names       yes
  polling_interval          10
  queue_without_daemon      no
  flush_on_last_del         yes
  checker_timeout 120
}
...

multipaths {
  multipath {
    wwid 36005076708810866f000000000000299
    alias oraocr01
  }
  multipath {
    wwid 36005076708810866f00000000000028f
    alias oraocr02
...
-- blacklist部分用于指定哪些设备不应该被多路径软件管理。
-- multipaths部分指定了哪些设备应该被多路径软件管理

配置成功后,我们有如下方式可以查看是否配置成功:
• 方式一:lsblk

[root@h1 ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
...
sdc           8:32   0   1.8T  0 disk
sdd           8:48   0   500G  0 disk
└─oradata01 253:0    0   500G  0 mpath
sde           8:64   0   500G  0 disk
└─oradata02 253:1    0   500G  0 mpath
sdf           8:80   0   500G  0 disk
└─oradata03 253:3    0   500G  0 mpath
sdg           8:96   0   500G  0 disk
## 会出现mpath字样

• 方式二:ll /dev/mapper

--在/dev/mapper/目录下多出mpath0、mpath1(自动分配的名称)等之类设备,不过如果在配置的时候起了别名,会使用别名来代替自动分配的名称
[root@h1 ~]# ll /dev/mapper/
total 0
lrwxrwxrwx 1 root root       8 May 31 16:44 bs1-app1 -> ../dm-11
lrwxrwxrwx 1 root root       8 May 31 16:44 bs1-app2 -> ../dm-13
lrwxrwxrwx 1 root root       8 May 31 16:44 bs1-app3 -> ../dm-15
lrwxrwxrwx 1 root root       8 May 31 16:44 bs1-data1 -> ../dm-12
lrwxrwxrwx 1 root root       8 May 31 16:44 bs1-data2 -> ../dm-14
lrwxrwxrwx 1 root root       8 May 31 16:44 bs1-data3 -> ../dm-16
...

• 方式三:multipath -l

--显示出每个磁盘的通道情况
[root@h1 ~]# multipath -l
orasys (36005076708810866f000000000000292) dm-2 STORAGE ,MCS
size=300G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=0 status=active
  |- 49:0:0:10 sdn  8:208  active undef running
  |- 50:0:0:10 sdaq 66:160 active undef running
  |- 49:0:1:10 sdab 65:176 active undef running
  |- 50:0:1:10 sdbm 68:0   active undef running
  |- 49:0:2:10 sdax 67:16  active undef running
  |- 50:0:2:10 sdbx 68:176 active undef running
  |- 49:0:3:10 sdci 69:96  active undef running
  `- 50:0:3:10 sdcm 69:160 active undef running
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服