Introduction
Unit Goal
Describe multipathing
Configure dm-multipath
Unit Sections
What is Multipathing?
Configuring Multipathing
Testing Multipathing
Hands-On Activities
Configure Multipathing
Testing Multipathing
Unit Test
Configuring Multipathing
What is Multipathing?
所谓多路径是实现在服务器与磁盘阵列之间配置多条物理连接。多路径的优点有二,其一是在一条路径瘫痪时不会影响连通性,另外可以改善对存储的读写性能。
如下图,服务器有两个HBA,都是独立连接到光纤交换机,每一条连接都连接着磁盘阵列上独立的控制器上。
Red Hat Enterprise Linux 6 支持使用dm-multipath,这种方式是使用kernel磁盘映射生成一个虚拟的磁盘设备。通过multipathd的进程和multipath命令进行管理。
必要的binaries,daemons,and kernel modules可以再device-mapper-multipath 包中找到。
安装device-mapper-multipath软件包,配置并启动后,会创建/dev/mapper,多路径的SYMLINK会被创建在其中,名称可以为mpatchN[pM],或者使用WWID,管理员也可以自定义多路径设备的名称。
Important
多路径只是提供接入的冗余,防护连接出现断开。如果存储本身出现问题,即使配置多路径还是无法访问存储。
通过配置文件创建不同的路径连接存储,这些Path会被整合到不同的组中,当一个组为fails状态的时候会跳到另外一个组保证可以正常访问存储。
What is multipathing?
1. Multipathing can provide.. A,B
a. Redundancy in storage access
b. Increased performance
c. Storage redundancy
d. RAID
2. The package that provides multipathing capabilities is called.. C
a. dm-multipath
b. dm-multipathd
c. divice-mapper-multipath
d. multipathd
3. Devices nodes for multipathed storage are normally created under.. C
a. /dev/
b. /dev/multipath/
c. /dev/mapper/
d. /dev/dm-multipath
Configuring Multipathing
配置多路径之前先确保device-mapper-multipath package已安装。
配置两个网卡作为多路径的访问路径。
eth1 Link encap:Ethernet HWaddr 00:0C:29:B3:DE:A4
inet addr:172.16.1.4 Bcast:172.16.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb3:dea4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1756 (1.7 KiB) TX bytes:1000 (1000.0 b)
eth2 Link encap:Ethernet HWaddr 00:0C:29:B3:DE:AE
inet addr:172.16.2.4 Bcast:172.16.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb3:deae/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:780 (780.0 b) TX bytes:1440 (1.4 KiB)
安装完device-mapper-multipath 软件包之后开始配置multipath的配置文件,最简单的方式是使用mpathconf工具进行配置。
如果已经/etc/multipath.conf已经存在,那么可以直接使用mpathconf进行配置,如果不存在,可以再/usr/share/doc/device-mapper-multipath-*下面找到multipath.conf的模板。也可以通过mpathconf命令创建默认模板。
创建默认配置,启动和激活multipathd进程,可以使用以下命令。
mpathconf --enable --with_multipathd y --with_chkconfig y
--enable
Removes any line that blacklists all device nodes from the /etc/multipath.conf blacklist section.
--with_multipathd { y | n }
If set to y, this runs service multipathd start to start the multipathd daemon on --enable, service mul-
tipathd stop to start the multipathd daemon on --disable, and service multipathd reload to reconfigure
multipathd on --user_frindly_names and --find_multipaths. This option is set to n by default.
添加此参数会使用service multipathd start启动multipathd服务,前提是参数为y ,如果为n则为停止服务,默认为n。
--with_chkconfig { y | n }
If set to y, this runs chkconfig multipathd on to set multipathd to start automatically on --enable and
chkconfig multipathd off to stop multipathd for starting automatically on --disable. This option is set
to y by default.
如果为y,则执行chkconfig multipathd on设置开机启动,如果为n则为off关闭开机启动,默认为y。
Note
关于�user_friendly_names 参数,如果设置为y,则使用友好名称作为多路径磁盘的名称,如果设置为n,则为使用WWID作为SYMLINK的名称。使用mpathconf user_friendly_names y|n 进行设置,通过此命令会直接修改配置文件。
[root@node1 nodes]# mpathconf --user_friendly_names n
## Use user friendly names, instead of using WWIDs as names.
defaults {
user_friendly_names no
}
##
Disk /dev/mapper/1IET\x20\x20\x20\x20\x2000010001: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00001618
Device Boot Start End Blocks Id System
如果设置为y ,重启后结果为
Disk /dev/mapper/mpatha: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00001618
Device Boot Start End Blocks Id System
The multipath.conf Configuration File
在multipath.conf配置文件中包含以下5部分内容
Puppet在不同平台上的安装方法不一样,个人不是特别推荐用源码的方式,推荐使用yum和apt-get,因为既然用到了puppet环境,说明应用场景的机器数量还是很多的,yum和apt-get更为方便。很多朋友比较关心puppet master和puppet agent端的版本不一致的问题,其实就一个规则就行:puppet master的版本号是必须高于puppet agent的,二者的版本不要相差太远,差太远了就容易连接不上。
Puppet对时间要求是非常严格的,这是因为证书申请是通过SSL连接,而SSL连接依赖主机上的正确时间,如果时间不正确,得到的错误信息而导致证书申请失败,所以我们在puppet client连接puppet
master时都应该通过ntpdate命令来自动对时,如果Xen虚拟机要加入puppet环境,建议也要修改sysctrl内核,然后再通过ntpdate命令来自动对时,详见:http://andrewyu.blog.51cto.com/1604432/1301516。
定义(define)在puppet的官方文档里是没有这一说法的,我们可以理解为资源的组合容器,很多资料和文档将其翻译成函数,这里是错误的;puppet的函数是puppet master上运行的,并且也只能在puppet master上面运行,比如包含类和模块的include指令,我们将其称之为puppet的函数,函数和定义还是有区别的。
在模块中定义的类要跟模块同名的,比如nginx模块中定义的类起名也要为nginx,不然puppet客户端连接puppet服务器时会报报不到class的错误,模块可以由多个类来组成,我们可以使用::命名空间语法作为在模块中创建结构和组织的一种方法,比如nginx::install,nginx::config。
自动化运维工具puppet的工作流程、基础概念及入门学习资料见附件。
本文出自 "抚琴煮酒" 博客,请务必保留此出处http://andrewyu.blog.51cto.com/1604432/1320509
没有评论:
发表评论