SCSI:Small Computer System Interface
SCSI是一种I/O技术
SCSI规范了一种并行的I/O总线和相关的协议
SCSI的数据传输是以块的方式进行的
SCSI的特点:
设备无关性
多设备并行
高带宽
低系统开销
SCSI总线是SCSI设备之间传输数据的通路(又称为SCSI通道)
安装iSCSI需要在服务器端和客户端分别安装scsi-target-utils和iscsi-initiator-utils
下载源码:http://iscsitarget.sourceforge.net
iSCSI Target: scsi-target-utils
端口:3260
客户端认正方式:
1、基于IP
2、基于用户,CHAP
iSCSI Initiator: iscsi-initiator-utils
open-iscsi
不支持discovery认证;
如果使用基于用户的认证,必须首先开放基于IP的认证;
scsi-target-utils主要的文件:
/etc/tgt/targets.conf:主配置文件,设置共享磁盘的格式与那几块
/usr/sbin/tgt-admin:在线查询、删除等功能的设置工具
/usr/sbin/tgt-setup-lun:建立target以及设置共享磁盘与可用客户端工具
/usr/sbin/tgtadm:手动管理的管理员工具
/usr/sbin/tgtd:主要提供iSCSI target服务主进程
/usr/sbin/tgtimg:搭建预计共享的映像文件设备的工具(以映像文件为仿真磁盘)
iscsi-initiator-utils主要的文件:
/etc/iscsi/iscsid.conf:主配置文件,用于连接iSCSI target
/sbin/iscsid:启动iSCSI initiator的主要服务进程
/sbin/iscsiadm:用来管理iSCSI initiator的主要设置程序
/etc/init.d/iscsid:让本机模拟成为iSCSI initiator主要服务
/etc/init.d/iscsi:在本机成为iSCSI initiator后,启动服务,登录iSCSI target。
/sbin/iscsi-iname:自动生成initiatorName(-p:指定前缀,保存在/etc/iscsi/initiator.iscsi中)
/var/lib/iscsi目录
/var/lib/iscsi/ifaces:各网卡接口
/var/lib/iscsi/send_targets目录:生成一个或多个以iSCSI存储服务器的IP和端口命名的文件夹
/var/lib/iscsi/nodes目录:一个或多个以iSCSI服务器上的target名命名的文件夹,下有iSCSI protal IP,端口号的配置文件参数,登录target的参数,由/etc/iscsi/iscsi.conf继承
tgtadm模式化的命令
–mode
常用模式:target、logicalunit、account
target --op
new、delete、show、update、bind、unbind
logicalunit --op
new、delete
account --op
new、delete、bind、unbind
--lld, -L
--tid, -t
--lun, -l
--backing-store , -b
--initiator-address , -I
-T, --targetname
targetname:
iqn.yyyy-mm.[:identifier]
iqn.2013-05.com.chen:tstore.disk1
iscsiadm模式化的命令
-m {discovery|node|session|iface}
discovery: 发现某服务器是否有target输出,以及输出了哪些target;
node: 管理跟某target的关联关系;
session: 会话管理
iface: 接口管理
iscsiadm -m discovery [ -d debug_level ] [ -P printlevel ] [ -I iface -t type -p ip:port [ -l ] ]
-d: 0-8 调试级别
-P:显示信息
-I: 通过哪个接口向外输出
-t type: SendTargets(st), SLP, and iSNS
-p: IP:port
iscsiadm -m discovery -d 2 -t st -p 172.16.100.100
iscsiadm -m node [ -d debug_level ] [ -L all,manual,automatic ] | [ -U all,manual,automatic ]
iscsiadm -m node [ -d debug_level ] [ [ -T targetname -p ip:port -I ifaceN ] [ -l | -u ] ] [ [ -o operation ] [ -n name ] [ -v value ] ]
登录:iscsiadm -m node -T TargetName -p IP:Port -l(--login)
登出:iscsiadm -m node -T TargetName -p IP:Port -u(--logout)
iscsiadm -m node -o [delete|new|update] -T TargetName
-o delete:删除连接信息(/var/lib/iscsi/node/*)
-o update:更新相关数据
-o new:增加新的target信息
配置实例:
server ip:192.168.163.3
client ip:192.168.163.4
在服务器端安装scsi-target-utils
#yum -y install scsi-target-utils
查看安装的文件:
#rpm -ql scsi-target-utils
/etc/rc.d/init.d/tgtd
/etc/sysconfig/tgtd
/etc/tgt/targets.conf
/usr/sbin/tgt-admin
/usr/sbin/tgt-setup-lun
/usr/sbin/tgtadm
/usr/sbin/tgtd
/usr/sbin/tgtimg
/usr/share/doc/scsi-target-utils-1.0.24
/usr/share/doc/scsi-target-utils-1.0.24/README
/usr/share/doc/scsi-target-utils-1.0.24/README.iscsi
/usr/share/doc/scsi-target-utils-1.0.24/README.iser
/usr/share/doc/scsi-target-utils-1.0.24/README.lu_configuration
/usr/share/doc/scsi-target-utils-1.0.24/README.mmc
/usr/share/man/man5/targets.conf.5.gz
/usr/share/man/man8/tgt-admin.8.gz
/usr/share/man/man8/tgt-setup-lun.8.gz
/usr/share/man/man8/tgtadm.8.gz
在server端创建一个新的分区/dev/sdb1,也可以是映像文件,LVM,本例使用/dev/sdb1
启动服务:
#service tgtd start
通过tgtadm来管理iSCSI target
#tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2016-10.com.chen:tstore.disk1
#tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sdb1
查看:
#tgtadm --lld iscsi --mode target --op show
绑定客户端ip为192.168.163.0网段:
#tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.163.0/24
在client端安装iscsi-initiator-utils:
#yum -y install iscsi-initiator-utils
生成initiatorname:
#echo "InitiatorName=`iscsi-iname -p iqn.2016-10.com.chen`" > /etc/iscsi/initiator.iscsi
启动iscsi服务时,它会先启动iscsid服务:
#service iscsi start
使用iscsiadm命令来管理:
发现server的target输出
#iscsiadm -m discovery -d 2 -t st -p 192.168.163.3
登录target:
#iscsiadm -m node -T iqn.2016-10.com.chen:tstore.disk1 -l
登录后就可以像管理本地磁盘一样管理iSCSI了
个人博客地址:http://www.chenxujiang.club(持续更新中)