猴子都能懂的ISCSI参考手册(基于CentOS 7)

1.前言

近段时间iscsi用得蛮多的,奈何这东西好用的中文资料异常之少,大部分又还是Ubuntu的,Centos下安装要麻烦许多,尤其是有添加模块/编译安装的需求的时候,干脆自己整理了一个文档。本文主要包含以下内容:
ISCSI自动安装,ISCSI常见命令,ISCSI常见错误信息,ISCSI挂载Ceph卷与模块扩展和编译安装,以及参考资料。

2. ISCSI自动安装

yum install iscsi\*

3. ISCSI常见命令

target端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#创建target
tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.name:name

#创建lun(CephRBD作为后端)
tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store volumename --bstype rbd

#删除target
tgtadm --lld iscsi --mode target --op delete --tid 1

#将指定的target的权限设置为ALL
tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL

#显示所有的target
tgtadm --lld iscsi --op show --mode target

initiator端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

#发现指定ip的target端的target
iscsiadm -m discovery -t sendtargets -p 172.16.5.8

#挂载指定的target(卷)
iscsiadm -m node -T [target_name] -l
iscsiadm -m node -T iqn.2001-04.com.example-test -p 192.168.1.1 --login

#卸载已经挂载的target
iscsiadm --mode node --targetname [target_name] --portal [ip:port] --logout

#查询设备的真实信息
udevadm info -q path -n /dev/sda

#查询设备的详细信息
udevadm info -q env -p /devices/platform/host2/session1/target2:0:0/2:0:0:1/block/sda

4 ISCSI常见错误信息

4.1 Discovery 错误

####4.1.1 被访问节点未安装ISCSI target

错误信息:

iscsiadm: Discovery record [172.16.4.5,3260] not found!

4.1.2 被访问的节点没有ISCSI target

说明:
错误导致原因是验证失败,一般会导致验证失败是因为没有建立target。

错误信息:

1
2
3
4
5
iscsiadm: Connection to Discovery Address 172.16.5.8 failed
iscsiadm: Login I/O error, failed to receive a PDU
iscsiadm: retrying discovery login to 172.16.5.8
iscsiadm: connection login retries (reopen_max) 5 exceeded
iscsiadm: Could not perform SendTargets discovery: encountered iSCSI login failure

4.2 删除target发生的错误

4.2.1 无法删除target

说明:
可能的导致原因包括
1.挂载target的ip与卸载时所用的ip不一样。
2.target不存在

执行的命令:

iscsiadm --mode node --targetname iqn.2016-10.5a030e88-3fc3-4e17-9cb2-5722038ebf2a:iscsi --portal 172.16.5.5:3260 --logout

错误信息:

iscsiadm: No matching sessions found

4.3 挂载target发生的错误

4.3.1 target正在被使用

说明:target被mount后对target进行挂载会出现此错误

错误信息

1
2
3
4
5
6
Logging in to [iface: default, target: iqn.2016-10.5a030e88-3fc3-4e17-9cb2-5722038ebf2a:iscsi, portal: 192.168.1.181,3260] (multiple)
Logging in to [iface: default, target: iqn.2016-10.5a030e88-3fc3-4e17-9cb2-5722038ebf2a:iscsi, portal: 192.168.1.157,3260] (multiple)
iscsiadm: Could not login to [iface: default, target: iqn.2016-10.5a030e88-3fc3-4e17-9cb2-5722038ebf2a:iscsi, portal: 192.168.1.181,3260].
iscsiadm: initiator reported error (8 - connection timed out)
Login to [iface: default, target: iqn.2016-10.5a030e88-3fc3-4e17-9cb2-5722038ebf2a:iscsi, portal: 192.168.1.157,3260] successful.
iscsiadm: Could not log into all portals

4.3.2 target不存在

错误信息

iscsiadm: No records found

5.ISCSI挂载Ceph卷与模块扩展和编译安装

1
2
3
4
5
6
7
8

#下载较新版本的源代码(含Ceph模块即可)
git clone https://github.com/fujita/tgt.git
export CEPH_RBD=1
make
make install

#完成安装后具体使用参考常用命令一节

这里需要注意的是,如果在一个环境下编译了后在另外的环境下安装,也需要设置环境变量,如果不设置的话则不会安装RBD模块。

6.参考资料

http://stackoverflow.com/questions/35453153/how-to-enable-support-for-ceph-in-centos-scsi-target-utils-package
How to enable support for ceph in CentOS scsi-target-utils package