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. 由于是服务器架构,因此也可以实现在线扩容以至动态部署。

环境介绍

+--------------------+                 |                 +-------------------+
|  [ iSCSI Target ]  | 192.168.233.101 | 192.168.233.102 |[ iSCSI Initiator ]|
|      node01        +-----------------+-----------------+      node02       |
|  192.168.233.132   |                                   |                   |
+--------------------+                                   +-------------------+
  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

    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,portal: 192.168.233.132,3260] (multiple)
Login to [iface: default,3260] successful.
Login to [iface: default,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做分区、格式化和创建逻辑卷等各种磁盘操作了,此处不表。

CentOS 7 iSCSI 多路径Multipath配置的更多相关文章

  1. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. centos+php+coreseek+sphinx+mysql之一coreseek安装篇

    这篇文章主要介绍了centos+php+coreseek+sphinx+mysql之一coreseek安装篇的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

  3. Centos7 中 Node.js安装简单方法

    这篇文章主要介绍了Centos7 中 Node.js安装简单方法,非常不错具有一定的参考借鉴价值,需要的朋友可以参考下

  4. nodejs脚本centos开机启动实操方法

    在本篇文章里小编给大家整理的是关于nodejs脚本centos开机启动实操方法,有兴趣的朋友们参考下。

  5. Centos PHP 扩展Xchche的安装教程

    这篇文章主要介绍了Centos PHP 扩展Xchche的安装教程的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

  6. Linux CentOS系统下安装node.js与express的方法

    这篇文章主要给大家介绍了在Linux CentOS系统下安装node.js与express的方法,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

  7. CentOS上安装Node.js和mongodb笔记

    这篇文章主要介绍了CentOS上安装Node.js和mongodb笔记,本文讲解了Python安装、Node.js安装、npm安装、mongodb驱动安装、mongodb数据库操作测试代码等内容,需要的朋友可以参考下

  8. centos7上编译安装php7以php-fpm方式连接apache

    这篇文章主要介绍了centos7上编译安装php7以php-fpm方式连接apache的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  9. CentOS 7.9服务器Java部署环境配置的过程详解

    这篇文章主要介绍了CentOS 7.9服务器Java部署环境配置,主要包括ftp服务器搭建过程、jdk安装方法以及mysql安装过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  10. CentOS环境中MySQL修改root密码方法

    这篇文章给大家讲述了如何遵循12条方法来写出高质量的JS代码的经验,有这方便需要的朋友参考下吧。

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部