CentOS 7 iSCSI 多路径(Multipath)配置

前端之家收集整理的这篇文章主要介绍了CentOS 7 iSCSI 多路径(Multipath)配置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

iSCSI简介

iSCSI(Internet Small Computer System Interface,发音为/аɪskʌzi/),Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。与传统的SCSI技术比较起来,iSCSI技术有以下三个革命性的变化:

  1. 把原来只用于本机的SCSI协义通过TCP/IP网络发送,使连接距离可作无限的地域延伸;

  2. 连接的服务器数量无限(原来的SCSI-3的上限是15);

  3. 由于是服务器架构,因此也可以实现在线扩容以至动态部署。

环境介绍

  1. +--------------------+ | +-------------------+
  2. | [ iSCSI Target ] | 192.168.233.101 | 192.168.233.102 |[ iSCSI Initiator ]|
  3. | node01 +-----------------+-----------------+ node02 |
  4. | 192.168.233.132 | | |
  5. +--------------------+ +-------------------+
  1. 两台主机node01和node02,都是Vmware出来的虚拟机,安装CentOS 7最小系统;

  2. node01准备用来配置iSCSI target,为了配置多路径,配有两块网卡eth0eth1,ip分别是192.168.233.101192.168.233.132

  3. node02用来配置iSCSI initiator,只有一块网卡eth0,ip为192.168.233.102;

  4. node01和node02都带有/dev/sdb/dev/sdc两块硬盘,接下来的配置,将会把node01的/dev/sdb作为iSCSI块设备共享给node02。

安装前准备

  • 关闭selinux

    1. setenforce 0
    2. sed -i '/^SELINUX=.*/ s//SELINUX=disabled/' /etc/selinux/config
  • 关闭防火墙

    1. systemctl stop firewalld.service
    2. systemctl disable firewalld.service
  • 安装epel扩展包

    1. yum install -y epel-release

target设置

安装 scsi-target-utils

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

配置

  1. vi /etc/tgt/target.conf

添加如下配置

  1. <target iqn.2016-06.airborne007.com:target00>
  2. # 把/dev/sdb作为块设备共享出去
  3. backing-store /dev/sdb
  4. # 可选,iSCSI Initiator限制
  5. initiator-address 192.168.233.102
  6. # 可选,认证配置,username和password配置成你自己的信息
  7. incominguser username password
  8. </target>

开启服务

  1. systemctl enable tgtd.service
  2. systemctl start tgtd.service

查看服务

  1. tgtadm --mode target --op show

结果如下:

  1. Target 1: iqn.2016-06.airborne007.com:target00
  2. System information:
  3. Driver: iSCSI
  4. State: ready
  5. I_T nexus information:
  6. LUN information:
  7. LUN: 0
  8. Type: controller
  9. SCSI ID: IET 00010000
  10. SCSI SN: beaf10
  11. Size: 0 MB,Block size: 1
  12. Online: Yes
  13. Removable media: No
  14. Prevent removal: No
  15. Readonly: No
  16. SWP: No
  17. Thin-provisioning: No
  18. Backing store type: null
  19. Backing store path: None
  20. Backing store flags:
  21. LUN: 1
  22. Type: disk
  23. SCSI ID: IET 00010001
  24. SCSI SN: beaf11
  25. Size: 32212 MB,Block size: 512
  26. Online: Yes
  27. Removable media: No
  28. Prevent removal: No
  29. Readonly: No
  30. SWP: No
  31. Thin-provisioning: No
  32. Backing store type: rdwr
  33. Backing store path: /dev/sdb
  34. Backing store flags:
  35. Account information:
  36. admin
  37. ACL information:
  38. 192.168.233.102

Initiator配置

安装

  1. yum -y install iSCSI-initiator-utils

配置

  1. # vi /etc/iSCSI/initiatorname.iSCSI
  2. InitiatorName=iqn.2016-06.airborne007.com:target00
  1. # vi /etc/iSCSI/iSCSId.conf
  2.  
  3. # 以下配置,如果你target没有配置ACL限制,可以直接跳过,使用默认配置即可
  4. # 57行:取消注释
  5. node.session.auth.authmethod = CHAP
  6. # 61,62行:取消注释,用户名和密码设置成前面在target里面设置好的
  7. node.session.auth.username = username
  8. node.session.auth.password = password

扫描设备并展示设备

  1. # iSCSIadm -m discovery -t sendtargets -p 192.168.244.101
  2. 192.168.233.101:3260,1 iqn.2016-06.airborne007.com:target00
  1. # iSCSIadm -m discovery -t sendtargets -p 192.168.233.132
  2. 192.168.233.132:3260,1 iqn.2016-06.airborne007.com:target00
  1. # iSCSIadm -m node -o show
  2. # BEGIN RECORD 6.2.0.873-33
  3. node.name = iqn.2016-06.airborne007.com:target00
  4. node.tpgt = 1
  5. node.startup = automatic
  6. node.leading_login = No
  7. ...
  8. node.conn[0].iSCSI.IFMarker = No
  9. node.conn[0].iSCSI.OFMarker = No
  10. # END RECORD
  11. # BEGIN RECORD 6.2.0.873-33
  12. node.name = iqn.2016-06.airborne007.com:target00
  13. node.tpgt = 1
  14. node.startup = automatic
  15. node.leading_login = No
  16. ...
  17. node.conn[0].iSCSI.IFMarker = No
  18. node.conn[0].iSCSI.OFMarker = No
  19. # END RECORD

登陆

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

确认信息

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

确认分区信息

  1. # cat /proc/partitions
  2. major minor #blocks name
  3.  
  4. 11 0 617472 sr0
  5. 8 0 20971520 sda
  6. 8 1 512000 sda1
  7. 8 2 20458496 sda2
  8. 8 16 31457280 sdb
  9. 8 32 31457280 sdc
  10. 253 0 18317312 dm-0
  11. 253 1 2097152 dm-1
  12. 8 48 31457280 sdd
  13. 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 路径的逻辑设备,就可以有效提高后端存储系统的可靠性。

安装

  1. yum install device-mapper-multipath

设置开机启动

  1. systemctl enable multipathd.service

添加配置文件

需要multipath正常工作只需要如下配置即可,如果想要了解详细的配置,请参考Multipath

  1. # vi /etc/multipath.conf
  2. blacklist {
  3. devnode "^sda"
  4. }
  5. defaults {
  6. user_friendly_names yes
  7. path_grouping_policy multibus
  8. failback immediate
  9. no_path_retry fail
  10. }

启动服务

  1. systemctl start multipathd.service

查看服务

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

此时,执行lsblk命令就可以看到多路径磁盘mpatha了:

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

接下来,就可以对mpatha做分区、格式化和创建逻辑卷等各种磁盘操作了,此处不表。

猜你在找的CentOS相关文章