iscsi+multipath 實現DM多路經存儲

系統環境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

相關文章
相關標籤/搜索