一、什么是multipath?
multipath是linux系统中用于实现设备路径冗余和负载均衡的一种机制。通过multipath机制,能够实现在系统中同一个设备可以存在多条路径,并且可以通过系统内部自己实现的算法,实现这些路径上的读写或访问负载均衡。同时,如果某些路径出现故障,系统也可以自动切换到其他可用的路径上。这样,可以提高系统的可靠性以及存储的效率。
二、multipath配置文件
要配置multipath,需要使用multipath.conf配置文件。该文件位于/etc/multipath.conf中。该文件中包含了一些关于multipath的基本参数设置,同时还包含了一些不同存储设备的类型信息以及对应的路径优先级,这些参数可以通过修改multipath.conf来实现。
三、配置文件详解
下面是multipath.conf文件的一个示例:
defaults {
user_friendly_names yes
find_multipaths yes
path_grouping_policy group_by_prio
path_selector "round-robin 0"
failback immediate
rr_min_io 100
}
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z][[0-9]*"
devnode "^cciss!c[0-9]*d[0-9]*"
devnode "^ssv-(.*)(zer|tic)"
}
blacklist_exceptions {
wwid ".*"
}
devices {
device {
vendor "NETAPP"
product "LUN"
path_grouping_policy group_by_prio
prio "alua"
features "1 queue_if_no_path"
hardware_handler "1 alua"
}
}
可以看到,multipath.conf文件包括了以下几个部分:
defaults: 这个部分包含了一些默认设置,如user_friendly_names(指是否启用友好设备名称)、find_multipaths(指是否查找多路径)等。 blacklist: 这个部分包含了需要屏蔽的设备类型或名称。在上面的示例中,会屏蔽一些设备类型和名称,如ram、raw、loop、fd等。 blacklist_exceptions: 这个部分包含了不需要屏蔽的设备类型或名称。在上面的示例中,所有的设备都不需要屏蔽。 devices: 这个部分包含了需要配置的设备信息。在上面的示例中,我们定义了一个设备,并指定了它的厂商、产品名称以及一些其他参数。四、命令行操作
multipath工具提供了一些命令行命令来实现对设备路径的操作。以下是一些常用命令:
multipath -ll: 查看多路径设备的信息。 multipath -l: 查看当前活动路径的设备信息。 multipath -F: 刷新multipath状态。 multipath -f: 阻止设备出现在多路径设备列表中。 multipath -r: 重新配置multipath。除此之外,还有很多其他的命令可以使用。可以通过man multipath试图获取更多的信息。
五、实例
下面是一个实例,演示在CentOS中如何配置并使用Multipath技术。
六、总结
通过这篇文章,我们详细了解了Multipath的配置和使用过程,涉及了Multipath的工作原理,Multipath配置文件的内容,命令行操作以及实例。