IP SAN的操作流程大体例如以下:
initiator作为server端去使用远程target上的一个lun(逻辑单元号),一个target即一个主机。一个主机上能够共享多个硬盘给initiator使用。我们把每个硬盘叫做一个lun。为了使用iscsi协议。initiator上要封装scsi driven,iscsi driven和tcp/ip的报文通过网络发送给target上,target以此扯掉这些报文。发现对方发送的scsi协议,进而交给本地的硬盘驱动处理。所以target上不用必须装scsi的硬盘。像传统的sata盘都能够在这个架构中使用。从用户的角度来看,就像在使用本地的client一样,方便简单。
这里我们来完毕一个IP SAN的实验:
192.168.1.121做我们的initator
192.168.1.122做我们的target,而且提供1块10G的IDE硬盘和10G的SCSI硬盘输出。(当然也能够创建一个分区输出。可是不建议这样做)
第一块硬盘:
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
第二块硬盘:
Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
192.168.1.122的操作流程例如以下:
# yum install scsi-target-utils
# rpm -ql scsi-target-utils(能够查看一些包信息)
# service tgtd restart
# chkconfig tgtd on
# tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2014-05.com.qiguo.node:target1
解释:--lld指定driven。--mode指定模式。--op指定模式操作,--tid指定target_id。--targetname指定target的名称,这里使用iqn的命名方式,这里就是新增了一个target,而且target_id为1。target的名称为iqn.2014-05.com.qiguo.node:target1
# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sda
解释:这里就是在target_id为1的上面添加了一个lun。其值为1。后端的存储设备为/dev/sda,一个target上最多存储32个lun
# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 2 --backing-store /dev/sdc
# tgtadm --lld iscsi --mode target --op show
解释:能够查看当前的target信息和lun信息
# tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.1.121
解释:target_id为1的同意IP为192.168.1.121的这台主机訪问
192.168.1.121的操作流程例如以下:
# yum install iscsi-initiator-utils
# echo "InitiatorName=`iscsi-iname -p iqn.2013-05.com.qiguo.initiator1`" > initiatorname.iscsi #生成initiator的名称
# iscsiadm -m discovery -t st -p 192.168.1.122:3260 #使用的时候会自己主动启动iscsid进程。意思为在192.168.1.122的3260port以sendtargets的类型寻找iscsi target设备
显示内容例如以下:192.168.1.122:3260,1 iqn.2014-05.com.qiguo.node:target1
# iscsiadm -m node -d 2 -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -l #-d显示debug的级别,-T指定远程主机的targetName,-l选择登陆到远程主机
# fdisk -l
假设看到两个新的硬盘。证明登陆成功。就能够对其进行分区了。
当client不想使用这个iscsi设备的时候,使用iscsiadm -m node -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -u就可以。
可是这仅仅是在当前有效,当重新启动以后,仅仅要server端继续在共享这个设备。client仍然会看到这个设备。这时须要删除数据库的信息。使用iscsiadm -m node -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -o delete就能够把/var/lib/iscsi/sent_targets中的发现设备信息删除。当再次又一次启动的时候就不会有这个设备信息了。
当server端不想给某台主机共享iscsi设备的时候。能够使用tgtadm --lld iscsi --mode target --op unbind --tid 1 --initiator-address 192.168.1.121;假设不想提供某个lun的时候能够使用tgtadm --lld iscsi --mode logicalunit --op delete --tid 1 --lun 2;假设不想提供target的时候能够使用tgtadm --lld iscsi --mode target --op delete --tid 1。
iscsi不只能够使用基于ip的认证,还能够做使用用户的认证,其认证用的是CHAP(Challenge Handshake Authentication Protocol)挑战试握手认证协议。iscsi默认支持两种级别的CHAP认证。
基于initiator的认证和基于target的认证。基于initiator的认证就是当initiator连接target的时候,initiator须要提供一个账号和password供target进行认证,这样的账号叫做incoming账号。基于target的认证就是当initiator连接target的时候,target须要提供一个账号和password供initiator进行认证。这样的账号叫做outcoming账号。
initiator认证能够单独使用,而target认证须要同一时候使用initiator认证。以下再来配置一个双向认证的过程,主机仍然是上面的主机。
在target上面的操作例如以下:
# tgtadm --lld iscsi --mode account --op new --user qiguo --pass qiguo 创建一个incoming账号
# tgtadm --lld iscsi --mode account --op new --user qiguoin --pass qiguoin 创建一个outcomming账号
# tgtadm --lld iscsi --mode account --op bind --tid 1 --user qiguo
# tgtadm --lld iscsi --mode account --op bind --tid 1 --user qiguoin --outgoing
在initiator上面的操作例如以下:
编辑配置文件/etc/iscsi/iscsid.conf,改动例如以下几项
node.session.auth.authmethod = CHAP
node.session.auth.username = qiguo
node.session.auth.password = qiguo
node.session.auth.username_in = qiguoin
node.session.auth.password_in = qiguoin
# iscsiadm -m node -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -u
# iscsiadm -m node -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -o delete
# rm -rf /var/lib/iscsi/send_targets/
# iscsiadm -m discovery -t st -p 192.168.1.122:3260
# iscsiadm -m node -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -l
基于CHAP的双向认证过程,须要做到下面几点:
1.CHAP不支持discovery的发现认证,所以在发现的时候须要借用到ip的认证
2.改动配置文件iscsid.conf以后。须要删除曾经的发现信息。要保证/var/lib/iscsi/文件夹中的send_targets,nodes,ifaces文件夹下没有不论什么内容
3.要保证incoming和outcoming的账号必须保持一值。否则会登陆不了
最后还要说明一点,当server端重新启动以后,server端上的target和lun就会不见。要想让其有效,须要使用配置文件/etc/tgt/targets.conf,使用上面介绍的双向认证的配置文件为:
<target iqn.2014-05.com.qiguo.node:target1>
backing-store /dev/sda
backing-store /dev/sdc
initiator-address 192.168.1.121
incominguser qiguo qiguo
outgoinguser qiguoin qiguoin
</target>
此番启动后再次。只有到tgtd服务启动。会不会自己主动保存的配置信息
版权声明:本文博主原创文章,博客,未经同意不得转载。