部署Multipath多路径环境

2案例2:部署Multipath多路径环境

2.1问题

通过Multipath,实现以下目标:

  • 在共享存储服务商配置iscsi,为应用服务器共享存储空间
  • 应用服务器上配置iscsi,发现远程共享存储
  • 应用服务器上配置Multipath,将相同的共享存储映射为同一个名称

2.2方案

配置2台虚拟机,每台虚拟机均为两块网卡:

  • eth0和eth1都可用于iscsi存储通讯
  • 具体配置如表所示:

多路径示意图,如图所示:

2.3步骤

实现此案例需要按照如下步骤进行。

步骤一:存储服务器上添加额外的磁盘(如果已经完成案例1,此步骤可以忽略)

使用kvm软件新建(或修改)虚拟机,为虚拟机额外添加一块硬盘。

步骤二:存储服务骑上安装并配置共享存储(如果已经完成案例1,此步骤可用忽略)

1)定义后端存储

[root@proxy ~]# targetcli
/> ls
/> backstores/block create store /dev/vdb1

2)创建iqn对象

/> /iscsi create iqn.2018-01.cn.tedu:server1

3)授权客户机访问

/> iscsi/iqn.2018-01.cn.tedu:server1/tpg1/acls create iqn.2018-01.cn.tedu:client1

4)绑定存储

/>iscsi/iqn.2018-01.cn.tedu:server1/tpg1/luns create /backstores/block/store 

5)绑定存储绑定监听地址,并保存配置、

/> iscsi/iqn.2018-01.cn.tedu:server1/tpg1/portals/ create 0.0.0.0
/> saveconfig 
/> exit

步骤三:在client服务器上安装并配置iscsi客户端

1)安装客户端软件(前面的案例1已经完成的情况下,可以忽略此步骤)

[root@web1 ~]# yum list | grep iscsi
iscsi-initiator-utils.x86_64           6.2.0.873-14.el6
[root@web1 ~]#  yum install -y iscsi-initiator-utils

2)发现存储服务器的共享磁盘

因为有两条链路可以连接到共享存储,所以需要在两条链路上都发现它。

注意:两次发现使用的IP地址不同!

[root@web1 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.2.5 --discover
192.168.2.5:3260,1 iqn.2018-01.cn.tedu:client1
[root@web1 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.5 --discover
192.168.4.5:3260,1 iqn.2018-01.cn.tedu:client1

3)登录共享存储

只需要将iscsi服务重启就可以自动登录(就不需要再login了) 

在login之前,只能看到本地存储,登录后,将会多出两块新的硬盘

[root@web1 ~]# service iscsi restart
停止 iscsi:                                               [确定]
正在启动 iscsi:                                           [确定]
[root@web1 ~]# lsblk 
NAME                        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                           8:0    0   20G   0 disk 
├─sda1                        8:1    0   20G  0 part
sdb                           8:0    0   20G   0 disk 
├─sdb1                        8:1    0   20G  0 part
vda                           252:0   0   20G  0 disk
├─vda1                       252:1   0    1G  0 part  /boot

 提示:登录的是同一个服务器的同一个iscsi,的客户端看到的是两个独立的设备,sda和sdb,其实,这两个设备是同一个设备。

 4)设置开机自启动

iscsi用于自动login远程存储,iscsid是守护进程

[root@web1 ~]# systemctl enable iscsid
[root@web1 ~]# systemctl enable iscsi

步骤四:配置Multipath多路径

1)安装多路径软件包

[root@web1 ~]# yum list | grep multipath
device-mapper-multipath.x86_64         0.4.9-111.el7                       Server
device-mapper-multipath-libs.i686      0.4.9-111.el7                       Server
device-mapper-multipath-libs.x86_64    0.4.9-111.el7                       Server
[root@web1 ~]# yum install -y device-mapper-multipath

2)生成配置文件

[root@web1 ~]# cd /usr/share/doc/device-mapper-multipath-0.4.9/
[root@web1 ~]# ls multipath.conf
[root@web1 ~]# cp multipath.conf  /etc/multipath.conf

3)获取wwid

登录共享存储后,系统多了两块硬盘,这两块硬盘实际上是同一个存储设备。应用服务器使用哪个都可以,但是如果使用sdb时,sdb设备线路出现故障,他不会自动切换到sda。

为了能够实现系统自动选择使用哪条链路,需要将这两块磁盘绑定为一个名称。

通过磁盘的wwid来判定哪些磁盘是相同的。

取得一块磁盘wwid的方法如下:

[root@web1 ~]# /usr/lib/udev/scsi_id --whitelisted --device=/dev/sdb 
360014059e8ba68638854e9093f3ba3a0

4)修改配置文件

首先声明自动发现多路径:

[root@web1 ~]# vim /etc/multipath.conf
defaults {
        user_friendly_names yes
find_multipaths yes
}

然后在文件的最后加入多路径声明,如果哪个存储设备的wwid和第(3)部获取的wwid一样,那么,为其取一个别名,角mapath

multipaths {
    multipath {
        wwid    "360014059e8ba68638854e9093f3ba3a0"
        alias   mpatha
    }
}

步骤五:启用Multipath多路径,并测试

注意:如果做案例1时,已经挂载了iscsi设备,一定要先umount卸载掉在启动多路径。

1)启动Multipath,并设置为开机自动启动

[root@web1 ~]# systemctl start multipathd
[root@web1 ~]# systemctl enable multipathd

2)检查多路径设备文件

如果多路径设置成功,那么将在/dev/mapper下面生成名为mpatha的设备文件:

[root@web1 ~]# ls /dev/mapper/
control  mpatha  mpatha1

3)对多路路径设备文件执行分区、格式化、挂载操作

提示:如果前面已经对iscsi做过分区操作,则这里可以直接识别到mpatha1(就不需要再次分区了)

[root@web1 ~]# fdisk -cu /dev/mapper/mpatha 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x205c887e.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n      #创建分区
Command action
   e   extended
   p   primary partition (1-4)
p                      #分区类型为主分区
Partition number (1-4): 1      #分区编号为1
First sector (2048-4194303, default 2048):   #起始扇区回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303):  #回车
Using default value 4194303
Command (m for help): w       #保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.

新的分区名称应该是/dev/mapper/mapath1,如果改文件不存在,则执行以下命令进行配置的重新载入: 

[root@web1 ~]# ls /dev/mapper/    #再次查看,将会看到新的分区
control  mpatha  mpatha1  

创建目录并挂载(如果已经格式化,这里就不需要再次格式化,直接挂载即可):

[root@web1 ~]# mkfs.xfs /dev/mapper/mpatha1
[root@web1 ~]# mkdir /data
[root@web1 ~]# mount /dev/mapper/mpatha1 /data/
[root@web1 ~]# df -h /data/
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/mpatha1   20G  3.0M  19G   1%   /data

4)验证多路径

查看多路径,sda和sdb都是running状态

[root@web1 ~]# multipath -rr
reload: mpatha (360014059e8ba68638854e9093f3ba3a0) undef LIO-ORG ,store           
size=9.3G features='0' hwhandler='0' wp=undef
|-+- policy='service-time 0' prio=1 status=undef
| `- 2:0:0:0 sda 8:0  active ready running
`-+- policy='service-time 0' prio=1 status=undef
  `- 3:0:0:0 sdb 8:16 active ready running

关闭某个链路后,再次查看效果,此时会发现sdb为运行失败状态。

[root@web1 ~]# nmcli connection down eth1
[root@web1 ~]# multipath -rr
reject: mpatha (360014059e8ba68638854e9093f3ba3a0) undef LIO-ORG ,store           
size=9.3G features='0' hwhandler='0' wp=undef
|-+- policy='service-time 0' prio=0 status=undef
| `- 2:0:0:0 sda 8:0  active undef running
`-+- policy='service-time 0' prio=0 status=undef
  `- 3:0:0:0 sdb 8:16 active faulty running

使用-ll选项查看,仅sda为有效运行状态

[root@web1 ~]# multipath -ll
reject: mpatha (360014059e8ba68638854e9093f3ba3a0) undef LIO-ORG ,store           
size=9.3G features='0' hwhandler='0' wp=undef
`-+- policy='service-time 0' prio=0 status=undef
  `- 2:0:0:0 sda 8:0  active undef running

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值