基于ip san的iscsi操作实现过程

标签: ip san iscsi | 发表时间:2014-05-31 22:16 | 作者:z1547840014
出处:http://blog.csdn.net
    SAN是storage area network(存储区域网络)的简写,早期的san采用的是光纤通道技术,后期当iscsi协议出现以后,为了区分两者,就划分了IP SAN和FC SAN。FC SAN由于其昂贵的价格让许多企业退避三舍,IP SAN作为一个很好的代替产品出现在了人们的视线中。现在大部分存储设备提供支持基于TOE技术的接口,可以在硬件基础上处理TCP/IP协议。这意味着ISCSI设备可以处理速度已接近GigE、约100MB/秒的数据传输速率来处理I/O进程,其速率可与FC SAN的相比

    IP SAN的操作流程大体如下:
    initiator作为服务器端去使用远程target上的一个lun(逻辑单元号),一个target即一个主机,一个主机上可以共享多个硬盘给initiator使用,我们把每一个硬盘叫做一个lun。为了使用iscsi协议,initiator上要封装scsi driven,iscsi driven和tcp/ip的报文通过网络发送给target上,target以此扯掉这些报文,发现对方发送的scsi协议,进而交给本地的硬盘驱动处理。所以target上不用必须装scsi的硬盘,像传统的sata盘都可以在这个架构中使用。从用户的角度来看,就像在使用本地的客户端一样,方便简单。

    这里我们来完成一个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的3260端口以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

    如果看到两个新的硬盘,证明登陆成功,就可以对其进行分区了。

    当客户端不想使用这个iscsi设备的时候,使用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就可以把/var/lib/iscsi/sent_targets中的发现设备信息删除。当再次重新启动的时候就不会有这个设备信息了。
 
    当服务器端不想给某台主机共享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需要提供一个账号和密码供target进行认证,这种账号叫做incoming账号;基于target的认证就是当initiator连接target的时候,target需要提供一个账号和密码供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的账号必须保持一值,否则会登陆不了

    最后还要说明一点,当服务器端重启以后,服务器端上的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服务启动,就会自动保存这些配置信息了 
作者:z1547840014 发表于2014-5-31 14:16:04 原文链接
阅读:105 评论:0 查看评论

相关 [ip san iscsi] 推荐:

基于ip san的iscsi操作实现过程

- - CSDN博客系统运维推荐文章
    SAN是storage area network(存储区域网络)的简写,早期的san采用的是光纤通道技术,后期当iscsi协议出现以后,为了区分两者,就划分了IP SAN和FC SAN. FC SAN由于其昂贵的价格让许多企业退避三舍,IP SAN作为一个很好的代替产品出现在了人们的视线中.

什么是Server SAN? Server SAN精解

- - 云存储技术网--光头老蒋
Server SAN是现在一个全新的概念,现在给出的概念都太笼统. 按照老蒋的想法:Server San应该是一个利用软件将基于DAS存储(包含闪存卡,直连存储)的集合,做成一个能共享的SAN存储网络.      SAN存储区域网,大家都很熟悉. 普遍使用的就两种: FC SAN;ISCSI SAN.

在Ubuntu 12.04上配置iSCSI Target服务

- - 婉兮清扬
今天自己按照网上搜来的教程自己在Ubuntu 12.04上配置了iSCSI Target服务,在这里简单地做个纪录. 操作系统是全新安装的Ubuntu 12.04,配置一块500 GB的SATA笔记本硬盘. 安装操作系统时将硬盘划分为两个分区,其中一个50 GB的分区(/dev/sda1)挂载为操作系统的根分区;另外一个450 GB的分区(/dev/sda2)作为提供存储服务的空间,暂时不挂载.

tcp/ip调优

- Lucseeker - 在路上
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;. 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;.

获取 WAN IP

- 狗尾草 - LinuxTOY
如果你在 router 或者 firewall 后面,你直接查询 interface ,拿到可能不是 WAN 的 IP. 很久很久以前的一个版本,把它们贴到 .bashrc (Bash 专用) 或者 .profile (非 Bash 专用)里面去. .profile 即可生效,输入 myip 就能拿到 WAN IP.

[转]FC、iSCSI、NAS:服务器虚拟化环境下谁是最好存储

- - 小鸥的博客
选择合适的存储系统是服务器虚拟化环境整体架构设计的关键一环,它是我们必须面对的,也是最具挑战性的一项工作. 表面上看我们似乎有很多选择,但现实中还没有哪一种网络存储类型敢说自己一定是服务器虚拟化环境的最佳选择. 因为每个应用环境都是不同的,即使在一个地方表现良好,那也不能保证在其他地方同样合适. 对于服务器虚拟化环境来说,光纤通道存储是比较传统的选择.

TCP/IP分享——链路层

- Goingmm - 弯曲评论
在张国荣自尽8周年纪念日,也就是愚人节的前几十分钟,终于把第二章弄完了. 首席似乎不是特别有空,我就斗胆在这里自己发了,从前面2期的反响来看,相当热烈,我也是摆出一副要杀要剐,悉听尊便的架势,这可能是受最近流行霸气外露的影响,批评几句又伤不了皮毛,也影响不了我的工作和正常生活,只要给大家带来快乐,我就很开心,似乎历史上很多想法都是在争吵中诞生的.

一些IP查询网站

- 19GHz - iGFW
一些境内服务器的IP查询网站:. 一些境外服务器的IP查询网站:. https://whoer.net/ (支持https). 各网站查询到的IP归属地可能有差异,以apnic.net为准. 本文原始地址:http://igfw.tk/archives/5611.

TCP/IP重传超时--RTO

- dennis - 一个故事@MySQL DBA
Shared by 子非鱼 安知余(褚霸). 概述:本文讨论主机在发送一个TCP数据包后,如果迟迟没有收到ACK,主机多久后会重传这个数据包. 主机从发出数据包到第一次TCP重传开始,RFC中这段时间间隔称为retransmission timeout,缩写做RTO. 本文会先看看RFC中如何定义RTO,然后看看Linux中如何实现.

IP地址库介绍

- Wolf - 淘宝核心系统团队博客
在CDN系统中,IP地址库在流量调度、网络服务质量监测等方面起到重要的作用,本文主要介绍了IP地址库的功能、内容以及IP地址库的生成和评价方法. 所谓IP地址库,指的是提供了IP地址(段)同地理、ISP、结构等信息映射关系的一组数据. IP地址库应用的场合较为广泛,下面举几个常见的例子:. (1)根据客户的IP地址确定客户来源,为后期的客户行为分析提供基础,例如需要统计学生群体的访问特点,这时我们就是通过分析来自教育网的IP地址的那些请求得到的.