系統環境redhat6.5 selinux and ipitables disabled
所需主機: 網卡 所裝軟件
vm5 eth0:172.25.254.5 scsi-target-utils
eth1:172.25.254.15
vm6 eth0:172.25.254.6 iscsi-initiator-utils
device-mapper-multipath
1.給主機vm5添加一塊網卡,配置其IP,並添加一塊硬盤經過iscsi服務用做vm6主機的遠程存儲
[root@vm5 ~]# yum install scsi-target-utils -y
[root@vm5 ~]# vim /etc/tgt/targets.conf
38 <target iqn.2015-07.com.example:server.target1>
39 backing-store /dev/vda
40 initiator-address 172.25.254.6
41 </target>
42
[root@vm5 ~]# /etc/init.d/tgtd start
Starting SCSI target daemon: [ OK ]
2.切換到vm6主機,iscsi配置
[root@vm6 ~]# yum install Iscsi-initiator-utils device-mapper-multipath -y
[root@vm6 ~]# iscsiadm -m discovery -t st -p 172.25.254.5
[root@vm6 ~]# iscsiadm -m node -l
[root@vm6 ~]# iscsiadm -m discovery -t st -p 172.25.254.15
[root@vm6 ~]# iscsiadm -m node -l
3.DM 配置
配置文件模板:
#/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
[root@vm6 ~]# mpathconf --enable #生成主配置文件,而且會自動啓用 multipathd.
[root@vm6 ~]# vim /etc/multipath.conf
blacklist {
devnode "vda" #禁止使用/dev/vda 設備
}
defaults {
user_friendly_names yes
udev_dir /dev #生成 udev 設備節點的目錄,默認值爲 /dev。
path_grouping_policy failover #failover 爲主備模式; multibus 爲負載均衡模式
failback immediate #指定當即恢復到包含活躍路徑的最高級別路徑族羣
no_path_retry fail #這個屬性的數字值指定系統在禁用隊列前應該試圖使用失敗的路徑的次數.fail 值代表當即失敗,無需排隊。
}
[root@vm6 ~]# /etc/init.d/multipathd start
[root@vm6 ~]# cat /proc/partitions
major minor #blocks name
8 0 8388608 sda
8 1 512000 sda1
8 2 7875584 sda2
253 0 7036928 dm-0
253 1 835584 dm-1
8 16 8388608 sdb
8 32 8388608 sdc
253 2 8388608 dm-2
[root@vm6 ~]# multipath -l
mpathb (1IET 00010001) dm-2 IET,VIRTUAL-DISK
size=8.0G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=0 status=active
| `- 2:0:0:1 sdb 8:16 active undef running
`-+- policy='round-robin 0' prio=0 status=enabled
`- 3:0:0:1 sdc 8:32 active undef running
能夠看到 sdb 和 sdc 兩條鏈路複合成一條鏈路 mpatha,此爲 Failover(主備)狀況,當你 mpatha 設備讀寫時,處於 active 狀態的 sdb 鏈路有數據流,而處於 enabled 狀態的sdc 鏈路無數據流;當 sdb 鏈路出現問題時,纔會切換到 sdc 鏈路上。
4.測試
安裝 sysstat 監控個通道流量
[root@vm6 ~]# yum install -y sysstat
[root@vm6 ~]# mount /dev/mapper/mpathb /mnt
[root@vm6 ~]# cd /mnt/
[root@vm6 mnt]# dd if=/dev/zero of=bigfile bs=1M count=1000
[root@vm6 mnt]# iostat -k 2
若是成功你會發現,當斷開鏈路 sdb 時,等待片刻,會自動切換到鏈路 sdc 上,並不會形成寫
入失敗。
手動切換模式:(若是須要永久生效直接修改 multipath.conf,並從新 reload)
[root@vm6 mnt]# multipath -F # 刷新全部的多路徑設備映射
[root@vm6 mnt]# multipath -p multibus -v0 # 切換成負載均衡模式
[root@vm6 mnt]# multipath -l
mpatha (1IET
00010001) dm-0 IET,VIRTUAL-DISK
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 2:0:0:1 sdb 8:0 active ready running
`- 3:0:0:1 sdc 8:16 active ready running
若是成功你會發現它會根據輪叫方式調度鏈路 sdb 和 sdc,從而實現負載均衡。
node