iSCSI简介
iSCSI是一种在Internet协议上,特别是以太网上进行数据块传输的标准,它是一种基于Ip Storage理论的新型存储技术,该技术是将存储行业广泛应用的SCSI接口与IP网络技术相结合,可以在IP网络上构建SAN存储区域网络,简单地说,iSCSI就是在IP网络上运行SCSI协议的一种网络存储技术。
iSCSI 主要是透过 TCP/IP 的技术,将储存设备端透过 iSCSI target (iSCSI 目标) 功能,做成可以提供磁盘的服务器端,再透过 iSCSI initiator (iSCSI 初始化用户) 功能,做成能够挂载使用 iSCSI target 的客户端,如此便能透过 iSCSI 协议来进行磁盘的应用了。
也就是说,iSCSI 这个架构主要将储存装置与使用的主机分为两个部分,分别是:
- iSCSI target:就是储存设备端,存放磁盘或 RAID 的设备,目前也能够将 Linux 主机仿真成 iSCSI target 了!目的在提供其他主机使用的『磁盘』;
- iSCSI initiator:就是能够使用 target 的客户端,通常是服务器。 也就是说,想要连接到 iSCSI target 的服务器,也必须要安装 iSCSI initiator 的相关功能后才能够使用 iSCSI target 提供的磁盘就是了。
服务器端配置
安装软件
1 | yum -y install targetcli |
新建块存储
1 | fdisk /dev/sdb |
进入targetcli界面
1 | > /backstores/block create disk01 /dev/sdb1 #建立块存储disk01 |
防火墙设置
1 | firewall=cmd --permanent --add-port=3260/tcp |
启动服务
1 | systemctl start target |
客户端设置
安装
1 | yum -y install iscsi-initiator-utils |
配置访问主机标识名
1 | echo "InitiatorName=iqn.2018-14.com.iecas.worker01:initiator01" > /etc/iscsi/initiatorname.iscsi |
编辑配置文件(未设置用户密码则不需要)
1 | vim /etc/iscsi/iscsid.conf |
启动
1 | systemctl start iscsi |
客户端操作
发现目标
1 | [root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 192.168.136.139:3260 |
登陆节点
1 |
|
系统启动时自动登陆
1 | iscsiadm -m node –T iqn.2018-14.com.iecas.store01:tartget01 -p 192.168.136.139:3260 --op update -n node.startup -v automatic |
查看磁盘信息
1 |
|
登出节点
1 | [root@localhost ~]# iscsiadm -m node –T iqn.2018-14.com.iecas.store01:tartget01 -p 192.168.136.139:3260 -u |
刷新节点
1 | iscsiadm -m session –R |
注销所有节点
1 | iscsiadm -m node --logoutall=all |
其它
如果存储上的Target下新挂载了一个SAN资源,如何在服务器上连接并识别?
1
2
3
4
5
6
7
8
9
10
11如果一个Target下新增了一个SAN资源,在服务器可以使用iscsiadm –m session –R命令刷新(rescan)已连接的iSCSI session以识别新的SAN资源
[root@pe03 /]# iscsiadm -m session –R
可以使用cat /proc/scsi/scsi或者fdisk -l来查看连接过来的卷,例如下面的scsi7 Channel: 00 Id: 00 Lun: 01即为新连接的SAN卷:
[root@pe03 /]# cat /proc/scsi/scsi
…………………………………
Host: scsi7 Channel: 00 Id: 00 Lun: 00
Vendor: H3C Model: H3C ISCSI DISK Rev: v1.0
Type: Direct-Access ANSI SCSI revision: 04
Host: scsi7 Channel: 00 Id: 00 Lun: 01
Vendor: H3C Model: H3C ISCSI DISK Rev: v1.0
Type: Direct-Access ANSI SCSI revision: 04如何注销到target的连接?
1
2
3
4
5如果要注销到某一个特定的Target的连接,可以使用下列的命令:
[root@pe03 /]# iscsiadm -m node -T iqn.2007-04.acme.com:h3c:200realm.rhel5 -p 200.200.10.200:3260 –u
其中,iqn.2007-04.acme.com:h3c:200realm.rhel5是Target的名称,200.200.10.200是Target服务器的IP,实际使用时请根据实际情况修改。
如果要注销到所有targets的连接,可以使用下列命令:
[root@pe03 /]# iscsiadm -m node --logoutall=all如何重启iscsi服务?
1
停止对iSCSI磁盘的读写,卸载该磁盘上的文件系统,如果使用了LVM,则还需要去激活使用到该磁盘的VG,之后使用service iscsi restart重启iscsi服务
如何停止iscsi服务?
1
停止对iSCSI磁盘的读写,卸载该磁盘上的文件系统,如果使用了LVM,则还需要去激活使用到该磁盘的VG,之后使用service iscsi stop停止iscsi服务
如何针对不同的target设置不同的CHAP认证?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15如果有多个目标服务器启用了CHAP认证,并且它们的用户名和密码不一样,此时需要手动更改node文件。
通过iscsiadm -m node -t sendtargets命令发现Target以后,在/var/lib/iscsi/nodes目录下会生成一个或多个以目的服务器上的Target名命名的文件夹,文件夹中有一个文件。此文件中是initiator登录target要使用到的配置参数,可以通过更改此参数文件来配置登录到每个Target的CHAP认证信息。
可直接编辑该文件,在该文件中添加(或修改)此Target的CHAP认证用户名和密码:
node.session.auth.authmethod = CHAP
node.session.auth.username = xxxxxx ――CHAP认证用户名
node.session.auth.password = xxxxxx ――CHAP认证密码(至少12个字符)
修改完成后重新登录Target即可
也可以使用iscsiadm命令对登录某个target的CHAP认证参数进行修改
[root@pe03 /]#iscsiadm -m node -T iqn.2000-03.com.h3c:.h3c-1.pe05-61 -p 200.200.10.101:3260 -o update --name=node.session.auth.authmethod --value=CHAP
[root@pe03 /]#iscsiadm -m node -T iqn.2000-03.com.h3c:.h3c-1.pe05-61 -p 200.200.10.101:3260 -o update --name= node.session.auth.username --value=xxxxxxx
[root@pe03 /]#iscsiadm -m node -T iqn.2000-03.com.h3c:.h3c-1.pe05-61 -p 200.200.10.101:3260 -o update --name= node.session.auth.password --value=xxxxxxx
需要注意的是,发现Target的命令(iscsiadm -m node -t sendtargets)会自动按照/etc/iscsi/iscsi.conf文件中的参数配置刷新/var/lib/iscsi/nodes下initiator登录target要使用的参数文件,所以如果通过修改/var/lib/iscsi/nodes下的文件设置好CHAP认证后又对该存储服务器执行了发现target的操作,则需要再次修改该文件。如何从操作系统中删除一个target的信息?
1
2[root@pe03 /]# iscsiadm -m node -o delete -T iqn.2005-03.com.max -p 192.168.0.4:3260
其中iqn.2005-03.com.max代表target的名称,192.168.0.4代表target的IP地址如何查看就有哪些target记录在了Open-iSCSI数据库中?
1
使用iscsiadm -m node命令