CentOS 7 iSCSI 多路徑(Multipath)配置

iSCSI簡介

iSCSI(Internet Small Computer System Interface,發音爲/аɪskʌzi/),Internet小型計算機系統接口,又稱爲IP-SAN,是一種基於因特網及SCSI-3協議下的存儲技術,由IETF提出,並於2003年2月11日成爲正式的標準。與傳統的SCSI技術比較起來,iSCSI技術有如下三個革命性的變化:html

  1. 把原來只用於本機的SCSI協義經過TCP/IP網絡發送,使鏈接距離可做無限的地域延伸;node

  2. 鏈接的服務器數量無限(原來的SCSI-3的上限是15);linux

  3. 因爲是服務器架構,所以也能夠實如今線擴容以致動態部署。後端

環境介紹

+--------------------+                 |                 +-------------------+
|  [ iSCSI Target ]  | 192.168.233.101 | 192.168.233.102 |[ iSCSI Initiator ]|
|      node01        +-----------------+-----------------+      node02       |
|  192.168.233.132   |                                   |                   |
+--------------------+                                   +-------------------+
  1. 兩臺主機node01和node02, 都是Vmware出來的虛擬機,安裝CentOS 7最小系統;centos

  2. node01準備用來配置iSCSI target,爲了配置多路徑,配有兩塊網卡eth0eth1,ip分別是192.168.233.101192.168.233.132bash

  3. node02用來配置iSCSI initiator,只有一塊網卡eth0,ip爲192.168.233.102;服務器

  4. node01和node02都帶有/dev/sdb/dev/sdc兩塊硬盤,接下來的配置,將會把node01的/dev/sdb做爲iSCSI塊設備共享給node02。網絡

安裝前準備

  • 關閉selinuxsession

    setenforce 0
    sed -i '/^SELINUX=.*/ s//SELINUX=disabled/' /etc/selinux/config
  • 關閉防火牆架構

    systemctl stop firewalld.service
    systemctl disable firewalld.service
  • 安裝epel擴展包

    yum install -y epel-release

target設置

安裝 scsi-target-utils

yum --enablerepo=epel -y install scsi-target-utils

配置

vi /etc/tgt/target.conf

添加以下配置

<target iqn.2016-06.airborne007.com:target00>
    # 把/dev/sdb做爲塊設備共享出去
    backing-store /dev/sdb
    # 可選,iSCSI Initiator限制
    initiator-address 192.168.233.102
    # 可選,認證配置,username和password配置成你本身的信息
    incominguser username password
</target>

開啓服務

systemctl enable tgtd.service
systemctl start tgtd.service

查看服務

tgtadm --mode target --op show

結果以下:

Target 1: iqn.2016-06.airborne007.com:target00
    System information:
        Driver: iSCSI
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 32212 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rdwr
            Backing store path: /dev/sdb
            Backing store flags:
    Account information:
        admin
    ACL information:
        192.168.233.102

Initiator配置

安裝

yum -y install iSCSI-initiator-utils

配置

# vi /etc/iSCSI/initiatorname.iSCSI
InitiatorName=iqn.2016-06.airborne007.com:target00
# vi /etc/iSCSI/iSCSId.conf

# 如下配置,若是你target沒有配置ACL限制,能夠直接跳過,使用默認配置便可
# 57行:取消註釋
node.session.auth.authmethod = CHAP
# 61,62行:取消註釋,用戶名和密碼設置成前面在target裏面設置好的
node.session.auth.username = username
node.session.auth.password = password

掃描設備並展現設備

# iSCSIadm -m discovery -t sendtargets -p 192.168.244.101
192.168.233.101:3260,1 iqn.2016-06.airborne007.com:target00
# iSCSIadm -m discovery -t sendtargets -p 192.168.233.132
192.168.233.132:3260,1 iqn.2016-06.airborne007.com:target00
# iSCSIadm -m node -o show
# BEGIN RECORD 6.2.0.873-33
node.name = iqn.2016-06.airborne007.com:target00
node.tpgt = 1
node.startup = automatic
node.leading_login = No
...
node.conn[0].iSCSI.IFMarker = No
node.conn[0].iSCSI.OFMarker = No
# END RECORD
# BEGIN RECORD 6.2.0.873-33
node.name = iqn.2016-06.airborne007.com:target00
node.tpgt = 1
node.startup = automatic
node.leading_login = No
...
node.conn[0].iSCSI.IFMarker = No
node.conn[0].iSCSI.OFMarker = No
# END RECORD

登錄

# iSCSIadm -m node --login
iSCSIadm -m node --login
Logging in to [iface: default, target: iqn.2016-06.airborne007.com:target00, portal: 192.168.233.101,3260] (multiple)
Logging in to [iface: default, target: iqn.2016-06.airborne007.com:target00, portal: 192.168.233.132,3260] (multiple)
Login to [iface: default, target: iqn.2016-06.airborne007.com:target00, portal: 192.168.233.101,3260] successful.
Login to [iface: default, target: iqn.2016-06.airborne007.com:target00, portal: 192.168.233.132,3260] successful.

確認信息

# iSCSIadm -m session -o show
tcp: [1] 192.168.233.101:3260,1 iqn.2016-06.airborne007.com:target00 (non-flash)
tcp: [2] 192.168.233.132:3260,1 iqn.2016-06.airborne007.com:target00 (non-flash)

確認分區信息

# cat /proc/partitions
major minor  #blocks  name

  11        0     617472 sr0
   8        0   20971520 sda
   8        1     512000 sda1
   8        2   20458496 sda2
   8       16   31457280 sdb
   8       32   31457280 sdc
 253        0   18317312 dm-0
 253        1    2097152 dm-1
   8       48   31457280 sdd
   8       64   31457280 sde

能夠看到,sddsde就是經過iSCSI掛載獲得的磁盤,此時經過fdisk -l命令,你能夠發現這兩塊磁盤和node01的/dev/sdb徹底同樣,爲了正常使用這塊磁盤,咱們還須要配置磁盤多路徑。

配置多路徑軟件(Multipath)

什麼是多路徑?

普通的電腦主機都是一個硬盤掛接到一個總線上,這裏是一對一的關係。而到了有光纖組成的SAN環境,或者由iSCSI組成的IPSAN環境,因爲主機和存儲經過了光纖交換機或者多塊網卡及IP來鏈接,這樣的話,就構成了多對多的關係。也就是說,主機到存儲能夠有多條路徑能夠選擇。主機到存儲之間的IO由多條路徑能夠選擇。每一個主機到所對應的存儲能夠通過幾條不一樣的路徑,若是是同時使用的話,I/O流量如何分配?其中一條路徑壞掉了,如何處理?還有在操做系統的角度來看,每條路徑,操做系統會認爲是一個實際存在的物理盤,但實際上只是通向同一個物理盤的不一樣路徑而已,這樣是在使用的時候,就給用戶帶來了困惑。多路徑軟件就是爲了解決上面的問題應運而生的。

多路徑的主要功能就是和存儲設備一塊兒配合實現以下功能:

  1. 故障的切換和恢復

  2. IO流量的負載均衡

  3. 磁盤的虛擬化

爲了主機可使用 iSCSI 多路徑訪問存儲設備,咱們須要在主機上安裝多路徑設備映射器 (DM-Multipath)。多路徑設備映射器能夠實現主機節點和後端存儲之間的多個 I/O 路徑配置爲一個單一邏輯設備,從而能夠提供鏈路冗餘和提升性能。主機經過訪問包含多個 I/O 路徑的邏輯設備,就能夠有效提升後端存儲系統的可靠性。

安裝

yum install device-mapper-multipath

設置開機啓動

systemctl enable multipathd.service

添加配置文件

須要multipath正常工做只須要以下配置便可,若是想要了解詳細的配置,請參考Multipath

# vi /etc/multipath.conf
blacklist {
    devnode "^sda"
}
defaults {
    user_friendly_names yes
    path_grouping_policy multibus
    failback immediate
    no_path_retry fail
}

啓動服務

systemctl start multipathd.service

查看服務

# multipath -ll
mpatha (360000000000000000e00000000010001) dm-2 IET     ,VIRTUAL-DISK
size=30G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 3:0:0:1 sdd 8:48 active ready running
  `- 4:0:0:1 sde 8:64 active ready running

此時,執行lsblk命令就能夠看到多路徑磁盤mpatha了:

# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  500M  0 part  /boot
└─sda2            8:2    0 19.5G  0 part
  ├─centos-root 253:0    0 17.5G  0 lvm   /
  └─centos-swap 253:1    0    2G  0 lvm   [SWAP]
sdb               8:16   0   30G  0 disk
sdc               8:32   0   30G  0 disk
sdd               8:48   0   30G  0 disk
└─mpatha        253:2    0   30G  0 mpath
sde               8:64   0   30G  0 disk
└─mpatha        253:2    0   30G  0 mpath
sr0              11:0    1  603M  0 rom

接下來,就能夠對mpatha作分區、格式化和建立邏輯卷等各類磁盤操做了,此處不表。

相關文章
相關標籤/搜索