ISCSI的使用

iscsi是一种IP-SAN设备,通过TCP/IP网络封装scsi协议形成的廉价SAN设备。设备类型的介绍大家可以去看我这里DRBD那一篇,这里就不多介绍了。

iscsi与DRBD的不同在于,iscsi是封装的是scsi协议,存储端可以模拟多个target,而target下面还有lun,可以做一个专业的存储服务了,而DRBD只是用来同步双节点的。

目录

一、简单介绍

二、服务端tgtadm安装使用

三、客户端使用

四、服务端配置文件创建target

最后、用户认证

一、简单介绍:

我们先来看看scsi的一般工作方式。简单了解下什么是target,什么是lun(Logical Unit Number,逻辑单元号)。

这是没有lun的图:

真是够简陋的。如上面也看到了,从SCSI控制器连出来的各个scsi磁盘,都是串在一起的,各个磁盘称之为target,各个target都有编号,用以区分不同的磁盘,从scsi控制器发送出来的数据都是已经封装了scsi协议报文的,scsi报文中就有target编号。最后的磁盘的另一端要有终结器来终结scsi的数据,不然会反弹干扰。

但是现在问题来了,在scsi中窄带的可以连8个target,宽带的可以连16个,再多磁盘的话难道要加控制器吗?那要加多少啊。所以就有了lun的概念。

target不再是磁盘了,而是一个target控制器,每个target下面都可以连接32个lun(也就是逻辑存储设备,主要就是磁盘)。这就简单多了,宽带的scsi可以连接16个设备,除了scsi控制器,就是可以连接15个target了。每个target又可以连接32个lun。而这是一种逻辑的概念,每一个lun就好像是target的一个分区一样。

接着看我们的iscsi。

数据从用户到内核,经过scsi驱动封装scsi协议,然后再到scsi控制器。正常是这样的。而iscsi就是横在scsi驱动到scsi控制器之间的家伙。iscsi收到scsi数据(封装了scsi报文的数据)以后自己再封装iscsi报文,然后由tcp/ip再次封装发送。而在存储服务端,收到数据以后,拆iscsi报文然后给scsi驱动拆scsi报文,然后就是光溜溜的数据了,再然后就是存储了。

客户端也就是发起人称为Initiator,服务端称为target。以上就是数据处理的过程。全部都是在内核中完成。而且双方都是通过网络连接,连接之间没有scsi控制器。

有意思的是,服务端存储的时候可以存在任何磁盘(可以不是scsi磁盘),因为已经是纯数据了,可以经过sata存到sata盘,也可以经过ide存到ide盘。而更有意思的是,如果要存在scsi磁盘中,就还要再经过scsi驱动,然后scsi控制器存储到各个scsi磁盘中。

因为双方iscsi连接之间的机制,数据在存储端会还原成纯数据,再怎么存储就是另一回事了。

二、服务端tgtadm安装使用:

iscsi和scsi默认都会被编译进内核,如我们这里的CentOS6.5,内核默认就有这个功能。所以我们只要安装用户管理工具即可。

iscsi是一种公共协议,所以有很多为它开发工具的组织。我们这里就使用CentOS6.5自带的。光盘中就有。

服务端工具:scsi-target-utils

客户端工具:iscsi-initiator-utils

[[email protected] ~]# 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        #磁盘映象管理。
。。。。各种Man文档.


iscsi配置有两种方式,一是用tgtadm命令来配置,重启失效,一是在配置文件中配置。

我们先来用tgtadm命令来配置,因为对理解这种机制有帮助。

安装并启动服务。

[[email protected] ~]# yum install scsi-target-utils
[[email protected] ~]# service tgtd start
Starting SCSI target daemon:                               [  OK  ]
[[email protected] ~]# chkconfig tgtd on

这个服务默认是监听3260端口的。我们先来创建个分区,或者来个单独的磁盘。

如果是分区的话,有意思的是:

呈现在initiator端也还是整个磁盘,也是可以分区的,也是要写入分区表的。而在target端也可以用fdisk /dev/sda1之类的命令可以查看,。虽说在target端只是分区,可分区的头512字节中的64字节可能被写入分区表信息了。

tgtadm是一种模式化的管理工具,tatadm常用于管理三类对象:1、target的管理。2、lun的管理。3、认证的管理。

tgtadm [OPTIONS]... [-C --control-port <port>] [-L --lld <driver>] [-o --op <operation>] [-m --mode <mode>]
                           [-t --tid <id>] [-T --targetname <targetname>] [-Y --device-type <type>] [-l --lun <lun>]
                           [-b --backing-store <path>] [-E --bstype <type>] [-I --initiator-address <address>]
                           [-Q --initiator-name <name>] [-n --name <parameter>] [-v --value <value>]
                           [-P --params <param=value[,param=value...]>] [-F --force] [-h --help]

常用选项

  • -L --lld    是用来指定驱动,在我们这里就是iscsi的驱动了
  • -o --op    动作:new,show,delete,bind,unbind.
  • -m --mode    是用来指定操作对象:target, logicalunit等。
  • -t --tid    指定target的ID。绑定lun的时候就要指定要绑定到哪个target ID上。
  • -T --targetname    指定target名称。为了保证全局唯一,命名要遵循IQN规范。客户端连接时要用。
  • -l --lun指定LUN的号码。小写L。
  • -b --backing-store  关联到指定的LUN上的后端存储设备,可以是分区或硬盘,建议硬盘。
  • -I --initiator-address指定授权访问的IP地址,可以是网络地址。大写i。

建立步骤:

  1. 创建target.
  2. 在target上创建lun.
  3. 访问控制,有两种(IP访问控制,用户认证)


创建target:-t指定targetID,-T指定target名称

[[email protected] ~]# tgtadm -L iscsi -o new -m target -t 1 -T iqn.2015-07.iscsi.tgt:1

iqn是一种命名规范: iqn.yyyy-mm.reverse_domain.STRING[:substring]。

由“iqn.日期.反向域名.自定义字串”组成。

查看状态

[[email protected] ~]# tgtadm -L iscsi -o show -m target
Target 1: iqn.2015-07.iscsi.tgt:1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0                    #这个是lun控制器,并没有关联存储设备。
            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
            Backing store type: null
            Backing store path: None
            Backing store flags: 
    Account information:
    ACL information:

也可以查看指定的target参数信息:

[[email protected] ~]# tgtadm -L iscsi -o show -m target -t 1
MaxRecvDataSegmentLength=8192
MaxXmitDataSegmentLength=8192
HeaderDigest=None
DataDigest=None
InitialR2T=Yes
MaxOutstandingR2T=1
ImmediateData=Yes
FirstBurstLength=65536
MaxBurstLength=262144
DataPDUInOrder=Yes
DataSequenceInOrder=Yes
ErrorRecoveryLevel=0
IFMarker=No
OFMarker=No
DefaultTime2Wait=2
DefaultTime2Retain=20
OFMarkInt=Reject
IFMarkInt=Reject
MaxConnections=1
RDMAExtensions=Yes
TargetRecvDataSegmentLength=262144
InitiatorRecvDataSegmentLength=262144
MaxOutstandingUnexpectedPDUs=0
[[email protected] ~]#

创建LUN:-t指定target,-l指定lun,-b指定存储。

[[email protected] ~]# tgtadm -L iscsi -o new -m logicalunit -t 1 -l 1 -b /dev/sdb1

再查看下状态:

[[email protected] ~]# tgtadm -L iscsi -o show -m target
Target 1: iqn.2015-07.iscsi.tgt:1
    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
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1                    #刚才创建的lun1。
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 10742 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb1    #所关联的存储。
            Backing store flags: 
    Account information:
    ACL information:

访问控制-ip:-t指定的target,-I指定的IP。

[[email protected] ~]# tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.1.20
[[email protected] ~]# tgtadm -L iscsi -o show -m target
Target 1: iqn.2015-07.iscsi.tgt:1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
。。。。。。。。。。。。。此处省略
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 10742 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb1
            Backing store flags: 
    Account information:
    ACL information:            #这是作用的整个target,不能指定单个lun.
        192.168.1.20            #可允许访问的IP地址,可以是网络地址。
[[email protected] ~]#

如果不指定访问控制,Initiator端是不能访问服务存储的。

现在存储服务就算是建起来了,可以建立多个target然后每个target多个tun。服务器都会模拟出来这种状态给客户端。

删除lun

[[email protected] ~]# tgtadm -L iscsi -o delete -m logicalunit -t 1 -l 1
[[email protected] ~]# tgtadm -L iscsi -o show -m target
Target 1: iqn.2015-07.iscsi.tgt:1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0                    #只有lun0,lun1删除了。
            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
            Backing store type: null
            Backing store path: None
            Backing store flags: 
    Account information:
    ACL information:
        192.168.1.20
[[email protected] ~]#

删除target:也可以在没有删除lun的情况下直接删除target.

[[email protected] ~]# tgtadm -L iscsi -o delete -m target -t 1
[[email protected] ~]# tgtadm -L iscsi -o show -m target
[[email protected] ~]#

连起来看下

[[email protected] ~]# tgtadm -L iscsi -o new -m target -t 1 -T iqn.2015-07-05.tgt1
[[email protected] ~]# tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.1.0/24
[[email protected] ~]# tgtadm -L iscsi -o new -m logicalunit -t 1 -l 1 -b /dev/sdb1
[[email protected] ~]# tgtadm -L iscsi -o show -m target
Target 1: iqn.2015-07-05.tgt1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
。。。。。。。。。。LUN0省略
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 10742 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb1
            Backing store flags: 
    Account information:
    ACL information:
        192.168.1.0/24
[[email protected] ~]#

解绑IP。指定target,指定ip.

[[email protected] ~]# tgtadm -L iscsi -o unbind -m target -t 1 -I 192.168.1.0/24
[[email protected] ~]#

我们再重新绑定IP,来看看客户端怎么配置。注意:如果没有访问控制,客户端是发现不了target设备的。



三、客户端使用

客户端配置:

安装客户端工具:iscsi-initiator-utils

[[email protected] ~]# yum install iscsi-initiator-utils
[[email protected] ~]# rpm -ql iscsi-initiator-utils
/etc/iscsi/iscsid.conf            #配置文件
/etc/logrotate.d/iscsiuiolog
/etc/rc.d/init.d/iscsi         #这个服务要启动起来。
/etc/rc.d/init.d/iscsid        #这个服务要启动起来,会去读取iscsid.conf配置文件。
/sbin/brcm_iscsiuio
/sbin/iscsi-iname                #建立名称。
/sbin/iscsiadm                 #手动去发现和使用lun,iscsi服务也会去执行。
/sbin/iscsid                    #iscsid会执行
/sbin/iscsistart
/sbin/iscsiuio

客户端名称:

每个客户端都应该有一个唯一的名子来让服务端可以识别。

[[email protected] ~]# echo "InitiatorName=`iscsi-iname -p iqn.2015-07-05.test.access:01`" > /etc/iscsi/initiatorname.iscsi
[[email protected] ~]# echo "InitiatorAlias=initiator01" >> /etc/iscsi/initiatorname.iscsi
[[email protected] ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2015-07-05.test.access:01:1118742a35c0
InitiatorAlias=initiator01
[[email protected] ~]#

iscsi-iname会在所指定的名子后加上随机字符,这样不用我们自己去编了。

在/etc/iscsi/initiatorname.iscsi文件中指定客户端的名称,别名。上面第二个指定的就是别名了。

/etc/init.d/iscsi这个脚本会去读这个文件,还有iscsid命令也默认会去读这个文件。

启动服务:

客户端也要启动服务,来初始化内核模块,初始化已经发现的各Lun,让内核可以识别lun并可以挂载。

所以我们启动服务:

[[email protected] iscsi]# service iscsi start
[[email protected] iscsi]# service iscsid start
[[email protected] iscsi]# chkconfig iscsi on
[[email protected] iscsi]# chkconfig iscsid on

在客户端发现并连接服务端存储以后,会在/var/lib/iscsi生成一些数据,如,发现的lun信息,已经使用的存储信息。上面这两个服务在启动的时候就会去读取这些数据,从而可以自动的发现lun,然后自动的连接。

iscsiadm -m discovery [ -d debug_level ] [ -P printlevel ] [ -I iface -t type -p ip:port [ -l ] ] 
iscsiadm -m node [ -d debug_level ] [ -P printlevel ] [ -L all,manual,automatic ] [ -U all,manual,automatic ] [ [ -T tar-getname -p ip:port -I iface ] [ -l | -u | -R | -s] ] [ [ -o operation ]
  • -d, --debug=debug_level   显示debug信息,级别为0-8;
  • -l, --login    连接target设备。
  • -t, --type=type  可以使用的类型为sendtargets(可简写为st)、slp、fw和 isns,此选项仅用于discovery模式,且目前仅支持st、fw和isns;其中st表示允许每个iSCSI target发送一个可用target列表给initiator;
  • -p, --portal=ip[:port]  指定target服务的IP和端口;如果是默认端口,可以省略。
  • -m, --mode 可用的mode有discovery,node,fw,host,iface和session。这里只介绍discovery和node。
  • -T, --targetname=targetname  用于指定target的名字
  • -u, --logout
  • -o, --op=OPEARTION:指定针对discoverydb数据库的操作,其仅能为new、delete、update、show和nonpersistent其中之一;
  • -I, --interface=[iface]:指定执行操作的iSCSI接口,这些接口定义在/var/lib/iscsi/ifaces中;
  • -s    显示状态

看起来挺多的,不过只是简单使用,也就两条指令了。

discovery是用来发现target设备的。

node是用来连接和注销target设备的。

发现target

[[email protected] iscsi]# iscsiadm -m discovery -t sendtargets -p 192.168.1.10
Starting iscsid:                                           [  OK  ]
192.168.1.10:3260,1 iqn.2015-07-05.tgt1    #target名称。

连接target:-T指定target,-p指定IP端口,-l登录连接。我这里没有加-p。

现在已经连上了,上面的/dev/sdd就是了。然后可以对它分区格式化挂载。

分完区以后:

查看状态

[[email protected] iscsi]# iscsiadm -m node -s

注销连接:最好把分区卸载以后再注销。

只是把后面的-l变成了-u。

在发现和连接过target以后,在/var/lib/iscsi目录下会有相关数据,如果以后不想再用这个target了,就可以用iscsiadm把信息删除,然后再把这个目录下相关的文件删除,注意:最好不要直接删除文件。

删除连接

[[email protected] lib]# iscsiadm -m node -T iqn.2015-07-05.tgt1 -o delete

[[email protected] lib]# iscsiadm -m node -T iqn.2015-07-05.tgt1 -l
iscsiadm: No records found        #删除相关信息以后,就连接不上了,如果想用就再次发现。

现在可以把/var/lib/iscsi目录下的所有文件直接删除了。




一般使用就这样了,但是像上面服务端所做的操作,一重启服务就都没了。所以我们要把配置写在配置文件中。

四、服务端配置文件创建target.

首先客户端断开连接,服务端重启服务。服务端刚才所做的操作全部归零。

可以打开 /etc/tgt/targets.conf 这个文件看一下,最下面有很多的实例。

我这里的配置:

<target iqn.2015-07.com.test:iscsi.target1>    #这里是target的名称
        backing-store /dev/sdb1                #指定存储
        initiator-address 192.168.1.0/24        #指定访问控制
</target>

<target iqn.2015-07.com.test:iscsi.target2>
        backing-store /dev/sdb2
        backing-store /dev/sdb3
        initiator-address 192.168.1.0/24
</target>

第一个target只有一个存储,那就是那个target里的lun1。 下面这个target里面有两个,就是有lun1和lun2。这些都是由tgt-admin命令自动读取执行的。

重启tgtd服务,看一下状态。这里lun0就不省略了,因为上面有编号信息。

[[email protected] ~]# tgtadm -L iscsi -o show -m target
Target 1: iqn.2015-07.com.test:iscsi.target1
    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
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 10742 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb1            #文件中指定的存储
            Backing store flags: 
    Account information:
    ACL information:
        192.168.1.0/24
Target 2: iqn.2015-07.com.test:iscsi.target2
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00020000
            SCSI SN: beaf20
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1
            Type: disk
            SCSI ID: IET     00020001
            SCSI SN: beaf21
            Size: 21484 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb2        #文件中指定的存储
            Backing store flags: 
        LUN: 2
            Type: disk
            SCSI ID: IET     00020002
            SCSI SN: beaf22
            Size: 255 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb3        #文件中指定的存储
            Backing store flags: 
    Account information:
    ACL information:
        192.168.1.0/24
[[email protected] ~]#

如果只是用起来还是很简单的,里面也有各种各样的参数,朋友们有兴趣就man吧。

我们看下客户端:

[[email protected] iscsi]# iscsiadm -m discovery -t sendtargets -p 192.168.1.10
192.168.1.10:3260,1 iqn.2015-07.com.test:iscsi.target1
192.168.1.10:3260,1 iqn.2015-07.com.test:iscsi.target2

发现了两个target。全部连上看看。

[[email protected] iscsi]# iscsiadm -m node -T iqn.2015-07.com.test:iscsi.target1 -l
Logging in to [iface: default, target: iqn.2015-07.com.test:iscsi.target1, portal: 192.168.1.10,3260] (multiple)
Login to [iface: default, target: iqn.2015-07.com.test:iscsi.target1, portal: 192.168.1.10,3260] successful.
[[email protected] iscsi]# iscsiadm -m node -T iqn.2015-07.com.test:iscsi.target2 -l
Logging in to [iface: default, target: iqn.2015-07.com.test:iscsi.target2, portal: 192.168.1.10,3260] (multiple)
Login to [iface: default, target: iqn.2015-07.com.test:iscsi.target2, portal: 192.168.1.10,3260] successful.

我们上面给一sdd盘分区,还记得吗。只不过在这里变成sde了。多了sde、sdf、sdg三个盘。



对了,如果用fstab挂载的时候,最好加上_netdev挂载选项。如:

[[email protected] ~]# mount
/dev/mapper/vg_test-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sr0 on /media/cdrom type iso9660 (ro)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdd1 on /mnt type ext4 (rw)
/dev/sde1 on /mnt type ext4 (rw,_netdev)            #_netdev选项。


用户认证:

访问控制还有用户认证,但是没有Ip认证常用,而且虽说用户密码是加密的,可是在网络上传输是明文的,如果要跨互联网,就要用VPN来保证链路的加密。

密码认证有单向也有双向,单向就是只认证一方的,一般就是服务器端确认客户端的身份。双向的就是服务器要确认客户端的身份,而客户端也要确认服务器的身份。我想你应该不想把机密数据都写到我电脑上来吧。


我们这里在客户端安装的iscsi-initiator-utils工具只支持提供帐号密码给服务器验证,而不支持验证服务器端的帐号密码。

所以在客户端的配置文件中提供帐号密码就可以了。

在服务器端,可以在tgtadm中指定要验证的客户端账号密码也可以在配置文件中指定。


在客户端的配置:

编辑主配置文件,配置客户端登录target时使用的帐号和密码:

# vim /etc/iscsi/iscsid.conf

取消下面3行的注释。并设置账号密码。CHAP是一种认证方式。

node.session.auth.authmethod = CHAP            #开启CHAP认证
node.session.auth.username = username
node.session.auth.password = password

如:

如果没有连接过target,客户端这就可以发现并连接登录了。但是我们上面已经连接过了。

就要断开所有连接,删除iscsi信息,然后删除/var/lib/iscsi/send_targets下面所对应的target。最后再重启iscsid服务。

使用iscsiadm -m node -s来查看登录了哪些target。然后就可以把登入的target断开了。

[[email protected] iscsi]# iscsiadm -m node -T iqn.2015-07.com.test:iscsi.target1 -u
Logging out of session [sid: 12, target: iqn.2015-07.com.test:iscsi.target1, portal: 192.168.1.10,3260]
Logout of [sid: 12, target: iqn.2015-07.com.test:iscsi.target1, portal: 192.168.1.10,3260] successful.
[[email protected] iscsi]# iscsiadm -m node -T iqn.2015-07.com.test:iscsi.target2 -u
Logging out of session [sid: 13, target: iqn.2015-07.com.test:iscsi.target2, portal: 192.168.1.10,3260]
Logout of [sid: 13, target: iqn.2015-07.com.test:iscsi.target2, portal: 192.168.1.10,3260] successful.
[[email protected] iscsi]# 
[[email protected] iscsi]# iscsiadm -m node -T iqn.2015-07.com.test:iscsi.target1 -o delete
[[email protected] iscsi]# iscsiadm -m node -T iqn.2015-07.com.test:iscsi.target2 -o delete
[[email protected] iscsi]# rm -rf /var/lib/iscsi/send_targets/192.168.1.10,3260/
[[email protected] iscsi]# service iscsid restart
Stopping iscsid: 
Starting iscsid:                                           [  OK  ]
[[email protected] iscsi]#

服务端配置

1、tgtadm配置:

[[email protected] ~]# tgtadm -L iscsi -o new -m account --user tgtuser --password tgtpasswd
[[email protected] ~]# tgtadm -L iscsi -o bind -m account -t 1 --user tgtuser  #给target1添加用户认证。
[[email protected] ~]# tgtadm -L iscsi -o show -m account
Account list:
    tgtuser

如果这时客户端没有配置帐号密码:

[[email protected] ~]# iscsiadm -m node -T iqn.2015-07.com.test:iscsi.target1 -l
Logging in to [iface: default, target: iqn.2015-07.com.test:iscsi.target1, portal: 192.168.1.10,3260] (multiple)
iscsiadm: Could not login to [iface: default, target: iqn.2015-07.com.test:iscsi.target1, portal: 192.168.1.10,3260].
iscsiadm: initiator reported error (24 - iSCSI login failed due to authorization failure)
iscsiadm: Could not log into all portals
[[email protected] ~]#

如果因为密码错了,或者什么原因认证错误,一定要删除所有有关的target信息,修改配置文件,并重启iscsid服务。然后重新发现并连接。

[[email protected] ~]#  iscsiadm -m discovery -t sendtargets -p 192.168.1.10
192.168.1.10:3260,1 iqn.2015-07.com.test:iscsi.target1
192.168.1.10:3260,1 iqn.2015-07.com.test:iscsi.target2
[[email protected] ~]# iscsiadm -m node -T iqn.2015-07.com.test:iscsi.target1 -l
Logging in to [iface: default, target: iqn.2015-07.com.test:iscsi.target1, portal: 192.168.1.10,3260] (multiple)
Login to [iface: default, target: iqn.2015-07.com.test:iscsi.target1, portal: 192.168.1.10,3260] successful.

2、配置文件:

只有在配置文件中才会重启服务不会丢失。

<target iqn.2015-07.com.test:iscsi.target1>
        backing-store /dev/sdb1
        incominguser tgtuser tgtpasswd        #指定用户和密码
        initiator-address 192.168.1.0/24
</target>

加进去一行"incominguser USER PASSWORD”就可以了。

在配置文件里看起来比命令简单多了,这个target一共也就四行就完成定义了。

[[email protected] ~]# tgtadm -L iscsi -o show -m account
Account list:
    tgtuser            #绑定的这个用户。
[[email protected] ~]#



就写到这里吧,朋友们如果有不明白的地方尽管问,一起学习。如果发现错误或诡异的地方还望指出。谢谢了。

时间: 2024-10-24 22:39:50

ISCSI的使用的相关文章

iSCSI配置

iSCSI介绍 几种存储的架构: 直接存取 (direct-attached storage):例如本机上面的磁盘,就是直接存取设备: 透过储存局域网络 (SAN):来自网络内的其他储存设备提供的磁盘(block device) 网络文件系统 (NAS):来自 NAS 提供的文件系统,只能直接使用,不可进行格式化(NFS/SMB等). iSCSI架构将存储和使用主机分为两个部分: iSCSI target:就是储存设备端,存放磁盘或 RAID 的设备,目前也能够将 Linux 主机仿真成 iSC

通过iscsi配置在aix上挂载存储设备

本文中我们利用starwind虚拟存储进行设置,以下为实验环境说明: Windows环境:win7,ip address:10.3.5.7,iscsi initiator name :iqn.2008-08.com.starwindsoftware:joker-pc-aix Aix环境:ip address 10.3.5.250 ,iscsi initiator name:iqn.localhost.hostid.7f000001 一.starwind配置说明 如图,打开starwind,右键选

Linux下挂载iscsi存储

1. 检查系统是否安装iSCSI initiator [[email protected] ~]# rpm -qa|grep iscsi [[email protected] ~]#  [[email protected] ~]# mount /dev/cdrom /mnt/ mount: block device /dev/sr0 is write-protected, mounting read-only [[email protected] ~]# cd /mnt/ [[email pro

Hyper-V 2016 系列教程32 StartWind 虚拟NFS,iSCSI软件

大家在学习Hyper-V的过程中,如果企业有用来测试用iSCSI或者NFS类型存储器的话,这是最好不过的了,如果没有条件购买的话,我们这时可以用第三方模拟软件来满足我们实验的目的,iSCSI模拟软件一般有StarWind,还有就是Windows Server 2016自带了模拟iSCSI和NFS的功能,大家有兴趣可以测试一下,如果要使用微软的iSCSI服务器的话,可以参考本博客中的关于配置Windows Server 2016作为iSCSI服务器的完整过程的文章. 这里我们推荐是StarWind

linxu iSCSI设备共享

1.iscsI 概念 SCSI 支持从客客户端通过IP向远程服务器上的iscsI 存储设备发送SCSI命令.默认情况下,网络通信是至iSCSI目标上的端口3260/tcp的明文端口 2.软件安装 [[email protected] ~]# yum install targetcil -y [[email protected] ~]# systemctl  start target [[email protected] ~]# systemctl enable target 3.一般的磁盘共享

Linux下搭建iSCSI共享存储

一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备.主机和客户机等之间的相互连接,并创建存储区域网

搭建iscsi服务

搭建iscsi服务服务端1,通过yum安装target 软件包2,对服务硬盘分区fdisk 设备文件路径3,配置target 服务设置iqn 配置acl 客户端iqn号Lun 服务ip退出并保存4,重启并加入开机启动, 客户端1,修改iscsi配置文件中iqn 号,客户端的2,重启iscsid 服务3,链接iscsi 服务端iscsiadm -m discovery -t st -p 服务端服务ip 4,扫描服务端可用磁盘iscsiadm -m node -T 服务端iqn -t5,分区已扫描到

ISCSI共享存储-2017-2-23

这个实验比较有成就感,毕竟不是为我做的,而是给班上的其他人和老师,凭这个赢得了老师的信任(以及更多的任务),当然毕业实习也拿了优秀.个人收获上,也有收获,但是理论方面,没有深究很多,我相信以后会有机会的,因为这是openstack云计算有可能需要的东西 1.在192.168.1.21部署target ,最好在VM workstation单独加一块硬盘用来测试,默认添加后就是/dev/sdb[[email protected] ~]# ifconfig eth0eth0: flags=4163<U

CentOS 6.5 安装部署iSCSi共享存储

 CentOS 6.5 安装部署iSCSi共享存储 一.前言 1.什么是iSCSI? iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI:Internet 小型计算机系统接口 (iSCSI:

iSCSI网络存储技术-实例解读

1 iSCSI介绍 网络存储服务器主要有三种解决方案--DAS直连存储,SAN区域网路存储 ,NAS网络附加存储,san和nas的主要区别在于,nas共享的是文件系统,san共享的是块设备. iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备.主机和客户机等之间的相互连接,并创建存储区域网络(SAN).SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行.SCSI 结构基于C/S模式,其通常应用环境是: