什么是ISCSI?ISCSI是做什么的?为什么选择ISCSI?
ISCSI技术实现了物理硬盘设备与TCP/TP网络传输协议的相互结合,使得用户可以通过互联网方便的获取到远程机房提供的共享存储资源。而NFS共享存储存在瓶颈,不适合数据量大的网络环境,当我们遇到对传输数据量高的需求时可以考虑使用ISCSI存储。

关于iscsi理论知识不在这里过多赘述了。

性能高的网络有SAN网络:
1)fc-san网络
2)ip-san网络

这里我们要用的ISCSI,属于ip-san网络。

实验环境:
准备两台虚拟机:node1、node2
node1:作为target端,存储端;额外增加1块硬盘20G
node2:作为iscsi客户端;

接下来我们分三个部分开始实验:
1)iscsi-target端,共享磁盘
2)iscsi-客户端,识别/挂载磁盘
3)iscsi的扩展命令

第一部分:iscsi-target端部署调试
1)确认额外增加的一块20G硬盘

# lsblk         
        ... ...
        vdb           252:16   0   20G  0 disk

2)额外增加的硬盘进行分区

# fdisk /dev/vdb
        Command (m for help): n         #n 新建
        Partition type:
            p   primary (0 primary, 0 extended, 4 free)
            e   extended
        Select (default p): p           #p 新建分区
        Partition number (1-4, default 1): 回车       #分区号默认         
        First sector (2048-41943039, default 2048): 回车        #起始位置默认:2048    
        Using default value 2048
        Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 回车    #大小默认:全部
        Using default value 41943039
        Partition 1 of type Linux and of size 20 GiB is set       #分区1设置为linux类型,大小20G

        Command (m for help): w          #保存,退出
        
    # partprobe /dev/vdb     #在线更新系统分区表
    # lsblk
       vdb           252:16   0   20G  0 disk 
         └─vdb1        252:17   0   20G  0 part

3)确认关闭selinux,关闭防火墙

# getenforce
    # systemctl stop firewalld && systemctl disable firewalld

4)安装targetcli

# yum -y install target*
    # systemctl start target && systemctl enable target

5)配置target

# targetcli
        创建block,指定所使用的分区
            /> /backstores/block create block1 /dev/vdb1
        创建一个iscsi target名称
            /> /iscsi create iqn.2018-11.com.baidu:rh436          
        创建ACL,客户端连接ISCSI时,验证使用
            /> /iscsi/iqn.2018-11.com.baidu:rh436/tpg1/acls create iqn.2018-11.com.baidu:xxoo
        创建lun,block的逻辑单元
        /> /iscsi/iqn.2018-11.com.baidu:rh436/tpg1/luns create /backstores/block/block1
        5)查看,退出
        /> ls
        /> exit

UOS安装使用ISCSI_uos系统安装iscsi


第二部分:iscsi-客户端识别/挂载

1)安装iscsi

# yum -y install iscsi*
    # yum -y install lsscsi*

2)修改配置文件,启动并设置开机自启

# vim /etc/iscsi/initiatorname.iscsi   
        InitiatorName=iqn.2018-11.com.baidu:xxoo
        
    # systemctl restart iscsid && systemctl enable iscsid

3)发现iscsi设备并登录

# iscsiadm -m discovery -t st -p node1       #发现iscsi设备(查看iscsi设备的ACL)
    # iscsiadm -m discovery        #显示发现的iscsi设备
    
    # iscsiadm -m node -T iqn.2018-08.cc.rhce:rh436 -p node1 -l    #连接iscsi设备
    # iscsiadm -m session     #查看已连接的iscsi

    # lsscsi    #查看已连接登陆的iscsi设备
        [4:0:0:0]    disk    LIO-ORG    block1    4.0    /dev/sda
        
    # lsblk     #这时我们就可以看到新增的磁盘了

第三部分:iscsi扩展命令

# iscsiadm -m discovery -t st -p node4       #发现iscsi设备(查看iscsi设备的ACL)
# iscsiadm -m discovery        #显示发现的iscsi设备

# iscsiadm -m node -T iqn.2018-08.cc.rhce:rh436 -p node4 -l    #连接iscsi设备
# iscsiadm -m session     #查看已连接的iscsi
# iscsiadm -m session -P0     #查看iscsi配置信息(P0/P1/P2/P3)

# iscsiadm -m node -T iqn.2018-08.cc.rhce:rh436 -p node4 -u   #退出iscsi设备(重启后自动连接)
# iscsiadm -m node -T iqn.2018-08.cc.rhce:rh436 -p node4 -o delete    #删除iscsi设备(重启后不连接)

# iscsiadm -m discovery -t st -p node4 -l    #发现所有iscsi设备,并登陆所有iscsi设备
# iscsiadm -m node -U all    #退出所有iscsi设备(重启后自动连接)
# iscsiadm -m node -o delete    #删除所有iscsi设备(重启后不连接)

# iscsiadm -m discovery -p node4 -o delete        #删除发现的iscsi设备
# iscsiadm -m discovery        #显示已发现的iscsi设备

# iscsiadm -m session -R   #刷新target配置(新增/删除lun后,iscsi客户端刷新下,自动同步)

iscsi配置文件:/etc/iscsi/iscsid.conf
iscsi配置文件修改后,需要重启服务,并需要重新发现,否则不生效。