Linux多路径控制器详解 (linux多路径控制器)

Linux作为一种流行的操作系统,在数据中心和企业级部署中得到了广泛的使用。为了提高系统的性能和可靠性,用户经常会选择使用多个存储设备,在其中保持数据的一致性和可用性。然而,在使用多个存储设备时,需要对多个路径执行某一存储设备上的相同数据。这时便需要一种工具或技术来管理这些路径,保持数据的一致性和可用性。在Linux操作系统中,多路径控制器就是一种非常有用的技术,它可以实现多个存储路径之间的负载均衡和故障转移。

什么是多路径控制器?

多路径控制器是Linux内核提供的一种技术,它可以使多条路径同时访问单个存储设备。多路径控制器支持多个存储路径,每个路径都有一个唯一的标识符,称为WWPN或iSCSI名称。此外,多路径控制器还支持多个路径选择策略,用于确定哪个路径应该用于访问存储设备,以提高系统的性能和可靠性。

多路径控制器的优势

多路径控制器可以带来多种优势。它可以提高存储系统的性能,通过使用多个路径访问存储设备,将增加带宽,降低延迟,并提高I/O吞吐量。多路径控制器可以增加存储系统的可靠性。当出现路径故障时,多路径控制器可以自动切换到其他路径,避免了单点故障。此外,由于多路径控制器支持多个路径选择策略,管理员可以根据应用程序的需求和工作负载来选择最适合的策略,从而进一步提高系统的性能。

多路径控制器的实现

多路径控制器在Linux中的实现涉及多个组件,如多路径内核模块、多路径状态检测程序、多路径管理程序等。下面分别对这些组件进行介绍。

多路径内核模块

多路径内核模块是多路径控制器的关键组件,它实现了多个路径之间的负载均衡和故障转移。多路径内核模块将多个路径组织成一组,每个组都有一个唯一的标识符,称为多路径组名称或mpath。在多路径组内,所有路径都被视为等价,多路径模块会周期性地向所有路径发送探测包来确定它们的连通性。当路径故障时,多路径模块将其从多路径组中删除,并将数据传输切换到其他路径。

多路径状态检测程序

多路径状态检测程序是多路径控制器的另一个重要组件,它用于监视存储设备的状态和路径的连通性。多路径状态检测程序会向存储设备发送探测包,以确定存储设备的状态,并在路径故障时切换到其他路径。

多路径管理程序

多路径管理程序是多路径控制器的用户接口,它提供了控制和配置多路径控制器的命令行工具和图形界面。通过多路径管理程序,管理员可以配置多个路径选择策略、监视多个路径的状态和故障转移,以及管理多个存储设备和多个多路径组。

多路径控制器的配置

要在Linux中配置多路径控制器,需要按照以下步骤进行操作。

1. 安装多路径软件包。多数Linux发行版都包括多路径软件包,如果没有包含,则可以从互联网上下载和安装。多路径软件包包括多路径内核模块、多路径状态检测程序、多路径管理程序等组件。

2. 配置多路径内核模块。可编辑/etc/multipath.conf文件来配置内核模块。这个文件包含了多个存储设备的设备属性、多路径组的配置信息、路径选择策略等。根据实际情况对其进行适当配置。

3. 启动多路径状态检测程序。多路径状态检测程序的启动命令如下:

# service multipathd start

4. 配置多路径管理程序。可通过命令multipath来管理多路径控制器。通常,管理员使用multipath命令查看状态、故障转移等操作。例如:

# multipath -ll

会显示所有已配置的多路径设备和路径。

Linux多路径控制器是一种重要的技术,在企业级部署和数据中心中得到广泛的应用。通过使用多路径控制器,管理员可以实现存储系统的负载均衡和故障转移,并提高存储系统的可靠性和性能。尽管多路径控制器需要一些配置和管理,但是从长远来看,多路径控制器可以为企业带来显著的经济效益和业务增长。

相关问题拓展阅读:

linux上安装RAC时不使用alib的多路径怎么配置

如果使用了 多路径方案, 可以直接使用multipath 绑定设备名 不需要用培链卖到 alib或UDEV

请直接参考 文配逗档:Configuring non-raw multipath devices for Oracle Clusterware 11g (11.1.0, 11.2.0) on RHEL5/OL5

# for i in `cat /proc/partitions | awk ‘{print $4}’ |grep sd | grep $`; do echo “### $i: `scsi_id -g -u -s /block/$i`”; done

### sda: SATA_VBOX_HARDDISK_VB83d4445f-b_

### sdb: SATA_VBOX_HARDDISK_VB0db2fe0_

### sdc: SATA_VBOX_HARDDISK_VBa56f2571-0dd27b33_

### sdd: SATA_VBOX_HARDDISK_VBf6b74ff7-871d1de8_

### sde: SATA_VBOX_HARDDISK_VB5af4eb9a_

### sdf: SATA_VBOX_HARDDISK_VB4915e6e3-737b312e_

### sdg: SATA_VBOX_HARDDISK_VB512c8f75-37f4a0e9_

### sdh: SATA_VBOX_HARDDISK_VBc0115ef6-a48bc15d_

### sdi: SATA_VBOX_HARDDISK_VB3ab72391d_

### sdj: SATA_VBOX_HARDDISK_VB7ec8476c-08641bd4_

### sdk: SATA_VBOX_HARDDISK_VB743e1567-d_

# grep -v ^# /etc/multipath.conf

defaults {

user_friendly_names yes

}

defaults {

udev_dir /dev

polling_interval 10

selector “round-robin 0”

path_grouping_policy failover

getuid_callout “/in/scsi_id -g -u -s /block/%n”

prio_callout /bin/唤携true

path_checker readsector0

rr_min_io 100

rr_weight priorities

failback immediate

#no_path_retry fail

user_friendly_name yes

}

devnode_blacklist {

devnode “^(ram|raw|loop|fd|md|dm-|sr|scd|st)*”

devnode “^hd”

devnode “^cciss!cd*”

}

multipaths {

multipath {

wwid SATA_VBOX_HARDDISK_VB0db2fe0_

alias voting1

path_grouping_policy failover

}

multipath {

wwid SATA_VBOX_HARDDISK_VBa56f2571-0dd27b33_

alias voting2

path_grouping_policy failover

}

multipath {

wwid SATA_VBOX_HARDDISK_VBf6b74ff7-871d1de8_

alias voting3

path_grouping_policy failover

}

multipath {

wwid SATA_VBOX_HARDDISK_VB5af4eb9a_

alias ocr1

path_grouping_policy failover

}

multipath {

wwid SATA_VBOX_HARDDISK_VB4915e6e3-737b312e_

alias ocr2

path_grouping_policy failover

}

multipath {

wwid SATA_VBOX_HARDDISK_VB512c8f75-37f4a0e9_

alias ocr3

path_grouping_policy failover

}

}

# multipath

# multipath -ll

mpath2 (SATA_VBOX_HARDDISK_VB3ab72391d_) dm-9 ATA,VBOX HARDDISK

size=5.0G features=’0′ hwhandler=’0′ wp=rw

`-+- policy=’round-robin 0′ prio=1 status=active

`- 8:0:0:0 sdi 8:128 active ready running

mpath1 (SATA_VBOX_HARDDISK_VBc0115ef6-a48bc15d_) dm-8 ATA,VBOX HARDDISK

size=5.0G features=’0′ hwhandler=’0′ wp=rw

`-+- policy=’round-robin 0′ prio=1 status=active

`- 7:0:0:0 sdh 8:112 active ready running

ocr3 (SATA_VBOX_HARDDISK_VB512c8f75-37f4a0e9_) dm-7 ATA,VBOX HARDDISK

size=5.0G features=’0′ hwhandler=’0′ wp=rw

`-+- policy=’round-robin 0′ prio=1 status=active

`- 6:0:0:0 sdg 8:96 active ready running

ocr2 (SATA_VBOX_HARDDISK_VB4915e6e3-737b312e_) dm-6 ATA,VBOX HARDDISK

size=5.0G features=’0′ hwhandler=’0′ wp=rw

`-+- policy=’round-robin 0′ prio=1 status=active

`- 5:0:0:0 sdf 8:80 active ready running

ocr1 (SATA_VBOX_HARDDISK_VB5af4eb9a_) dm-5 ATA,VBOX HARDDISK

size=5.0G features=’0′ hwhandler=’0′ wp=rw

`-+- policy=’round-robin 0′ prio=1 status=active

`- 4:0:0:0 sde 8:64 active ready running

voting3 (SATA_VBOX_HARDDISK_VBf6b74ff7-871d1de8_) dm-4 ATA,VBOX HARDDISK

size=40G features=’0′ hwhandler=’0′ wp=rw

`-+- policy=’round-robin 0′ prio=1 status=active

`- 3:0:0:0 sdd 8:48 active ready running

voting2 (SATA_VBOX_HARDDISK_VBa56f2571-0dd27b33_) dm-3 ATA,VBOX HARDDISK

size=40G features=’0′ hwhandler=’0′ wp=rw

`-+- policy=’round-robin 0′ prio=1 status=active

`- 2:0:0:0 sdc 8:32 active ready running

voting1 (SATA_VBOX_HARDDISK_VB0db2fe0_) dm-2 ATA,VBOX HARDDISK

size=40G features=’0′ hwhandler=’0′ wp=rw

`-+- policy=’round-robin 0′ prio=1 status=active

`- 1:0:0:0 sdb 8:16 active ready running

mpath4 (SATA_VBOX_HARDDISK_VB743e1567-d_) dm-11 ATA,VBOX HARDDISK

size=5.0G features=’0′ hwhandler=’0′ wp=rw

`-+- policy=’round-robin 0′ prio=1 status=active

`- 10:0:0:0 sdk 8:160 active ready running

mpath3 (SATA_VBOX_HARDDISK_VB7ec8476c-08641bd4_) dm-10 ATA,VBOX HARDDISK

size=5.0G features=’0′ hwhandler=’0′ wp=rw

`-+- policy=’round-robin 0′ prio=1 status=active

`- 9:0:0:0 sdj 8:144 active ready running

# dmsetup ls | sort

mpath1 (253, 8)

mpath2 (253, 9)

mpath3 (253, 10)

mpath4 (253, 11)

ocr1 (253, 5)

ocr2 (253, 6)

ocr3 (253, 7)

VolGroup00-LogVol(253, 0)

VolGroup00-LogVol(253, 1)

voting1 (253, 2)

voting2 (253, 3)

voting3 (253, 4)

# ls -l /dev/mapper/*

crwroot root 10, 62 Oct 17 09:58 /dev/mapper/control

brw-rwroot disk 253, 8 Oct 19 00:11 /dev/mapper/mpath1

brw-rwroot disk 253, 9 Oct 19 00:11 /dev/mapper/mpath2

brw-rwroot disk 253, 10 Oct 19 00:11 /dev/mapper/mpath3

brw-rwroot disk 253, 11 Oct 19 00:11 /dev/mapper/mpath4

brw-rwroot disk 253, 5 Oct 19 00:11 /dev/mapper/ocr1

brw-rwroot disk 253, 6 Oct 19 00:11 /dev/mapper/ocr2

brw-rwroot disk 253, 7 Oct 19 00:11 /dev/mapper/ocr3

brw-rwroot disk 253, 0 Oct 17 09:58 /dev/mapper/VolGroup00-LogVol00

brw-rwroot disk 253, 1 Oct 17 09:58 /dev/mapper/VolGroup00-LogVol01

brw-rwroot disk 253, 2 Oct 19 00:11 /dev/mapper/voting1

brw-rwroot disk 253, 3 Oct 19 00:11 /dev/mapper/voting2

brw-rwroot disk 253, 4 Oct 19 00:11 /dev/mapper/voting3

# ls -l /dev/dm*

brw-rwroot root 253, 0 Oct 17 09:58 /dev/dm-0

brw-rwroot root 253, 1 Oct 17 09:58 /dev/dm-1

brw-rwroot root 253, 10 Oct 19 00:11 /dev/dm-10

brw-rwroot root 253, 11 Oct 19 00:11 /dev/dm-11

brw-rwroot root 253, 2 Oct 19 00:11 /dev/dm-2

brw-rwroot root 253, 3 Oct 19 00:11 /dev/dm-3

brw-rwroot root 253, 4 Oct 19 00:11 /dev/dm-4

brw-rwroot root 253, 5 Oct 19 00:11 /dev/dm-5

brw-rwroot root 253, 6 Oct 19 00:11 /dev/dm-6

brw-rwroot root 253, 7 Oct 19 00:11 /dev/dm-7

brw-rwroot root 253, 8 Oct 19 00:11 /dev/dm-8

brw-rwroot root 253, 9 Oct 19 00:11 /dev/dm-9

# ls -l /dev/disk/by-id/

total 0

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB0db2fe0 -> ../../a-diskb

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB3ab72391d -> ../../a-diski

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB4915e6e3-737b312e -> ../../a-diskf

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB512c8f75-37f4a0e9 -> ../../a-diskg

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB5af4eb9a -> ../../a-diske

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB743e1567-d> ../../a-diskk

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB7ec8476c-08641bd4 -> ../../a-diskj

lrwxrwxrwx 1 root root 9 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB83d4445f-b> ../../sda

lrwxrwxrwx 1 root root 10 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB83d4445f-bpart1 -> ../../sda1

lrwxrwxrwx 1 root root 10 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB83d4445f-bpart2 -> ../../sda2

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VBa56f2571-0dd27b33 -> ../../a-diskc

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VBc0115ef6-a48bc15d -> ../../a-diskh

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VBf6b74ff7-871d1de8 -> ../../a-diskd

Report Abuse Like (0)

2. Re: a磁盘使用链路聚合设备名,IO性能只有非聚合设备的1/6!

LiuMaclean(刘相兵)

Expert

LiuMaclean(刘相兵) Jul 21,:09 AM (in response to 13628)

step 1:

$ cat /etc/multipath.conf

multipaths {

multipath {

wwid SATA_VBOX_HARDDISK_VBf6b74ff7-871d1de8_

alias a-disk1

mode 660

uid 501

gid 503

}

multipath {

wwid SATA_VBOX_HARDDISK_VB0db2fe0_

alias a-disk2

mode 660

uid 501

gid 503

}

multipath {

wwid SATA_VBOX_HARDDISK_VBa56f2571-0dd27b33_

alias a-disk3

mode 660

uid 501

gid 503

}

}

第二步:

reboot or service multipathd restart

第三步:

$ ls -l /dev/mapper/a-disk*

brw-rwgrid aadmin 253, 4 Jul 21 07:02 /dev/mapper/a-disk1

brw-rwgrid aadmin 253, 2 Jul 21 07:02 /dev/mapper/a-disk2

linux多路径控制器的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux多路径控制器,Linux多路径控制器详解,linux上安装RAC时不使用alib的多路径怎么配置的信息别忘了在本站进行查找喔。


数据运维技术 » Linux多路径控制器详解 (linux多路径控制器)