1:SAN的定义
SAN是storage area network(存储区域网络)的简写,早期的san采用的是光纤通道技术,后期当iscsi协议出现以后,为了区分两者,就划分了IP SAN和FC SAN。FC SAN由于其昂贵的价格让许多企业退避三舍,IP SAN作为一个很好的代替产品出现在了人们的视线中。现在大部分存储设备提供支持基于TOE技术的接口,可以在硬件基础上处理TCP/IP协议。这意味着ISCSI设备可以处理速度已接近GigE、约100MB/秒的数据传输速率来处理I/O进程,其速率可与FC SAN的相比
2:IP-SAN的操作概要
IP SAN的操作流程大体如下:initiator作为服务器端去使用远程target上的一个lun(逻辑单元号),一个target即一个主机,一个主机上可以共享多个硬盘给initiator使用,我们把每一个硬盘叫做一个lun。为了使用iscsi协议,initiator上要封装scsi driven,iscsi driven和tcp/ip的报文通过网络发送给target上,target以此扯掉这些报文,发现对方发送的scsi协议,进而交给本地的硬盘驱动处理。所以target上不用必须装scsi的硬盘,像传统的sata盘都可以在这个架构中使用。从用户的角度来看,就像在使用本地的客户端一样,方便简单。
target --------------->Lun------------------------>Server
1:首先存储把Lun共享给server。
2:Server 去发现这个存储
3:登陆存储认证。
3:IP-SAN的配置过程
这里我们来完成一个IP SAN的实验:192.168.1.121做我们的initator
192.168.1.122做我们的target。
硬盘:
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
Target 存储端
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。
# 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的这台主机访问
Server 端
192.168.1.121的操作流程如下:# yum install iscsi-initiator-utils
# echo "InitiatorName=`iscsi-iname -p iqn.2013-05.com.qiguo.initiator1`" >/etc/iscsi/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服务启动,就会自动保存这些配置信息了
设备组合和产品类型
对于有意构建iSCSI SAN的企业来说,面对市面上林林总总的各式iSCSI产品,往往会有无所适从的感觉,而在心中浮现许多待解的问题:例如到底要购买哪些配备?而每个配备在iSCSI SAN中扮演的角色为何?企业内部的旧有配备是否可以融合到iSCSI SAN之中?这些问题关系到了成本、效益、需求及兼容性等层面及环节,接下来笔者会以范例方案的方式,来逐一解决上述的疑问,并希望藉此能给读者们有用的参考信息。
就一个完整的iSCSI SAN来说,其构成要件大致如下:
A. iSCSI适配卡(a.Gigabit网络卡)
B. iSCSI交换机(b.Gigabit交换机)
C. iSCSI存储服务器
D. iSCSI存储设备(d.SCSI存储设备)
E. iSCSI桥接器
F. iSCSI网关
理论上iSCSI接口的组件大概有上述六种,在此并以大写字母来表示,至于括号内小写字母的组件,则是可以取而代之的非iSCSI接口组件,这些组件通常也是企业内常见的既有设备。
在此要强调的是,并非以上所有的iSCSI接口组件都要购齐,才能建置iSCSI SAN,而应该是对企业自身的现阶段需求、预算成本、现有环境及配备做综合性的搭配考虑。接下来仅就成本、效能及新旧搭配等因素提供几种方案,供读者们参考。
方案一 a+b+d + E(超经济方案)
优点:这应该是最经济实惠的iSCSI-SAN方案,因为只要买iSCSI 桥接器就好。值得一提的是公司只要用既有的网卡及交换机即可,完全不用再添购任何配备,就可以构建一个iSCSI-SAN。
缺点:比起硬件式的iSCSI适配卡,iSCSI Initiator驱动程序在性能上会比较差。
先决条件:公司内部必须要有SCSI接口的存储设备,如SCSI 磁盘阵列或SCSI磁带库。另外要有Gigabit网卡及Gigabit交换机,千万不要用10/100 Base的网卡及交换机,因为性能会非常差,根本没有实用性可言。另外要提醒的是,为求性能,Initiator端主机的CPU要超过1GHz。
注意事项::必须要下载免费的iSCSI Initiator驱动程序,才可以将一般Gigabit网卡仿真成iSCSI Initiator。然后再透过iSCSI桥接器将一般SCSI接口的存储配备仿真成iSCSI Target,如此就形成一个iSCSI-SAN。
方案二 a+b+C+D(次经济方案)
优点:网络卡及交换机皆可用现成的,只要购买iSCSI存储服务器及iSCSI存储设备即可,而市面上多半都将iSCSI存储服务器及存储设备搭成一个方案销售。例如技嘉、广达推出的WSS 2003存储服务器,Promise VTrak 15200搭配DataCore SANmelody的方案都是常见的销售模式。
缺点:与方案1一样,性能上会比较差。如果主机CPU超过1GHz不会差到那里,但如果是1GHz以下,那就只能忍受性能的低下了,再不然就要另外花费做升级CPU的动作。
先决条件:要有Gigabit网卡及Gigabit交换机。此外,Initiator端主机的CPU要超过1GHz。
注意事项::必须要下载免费的iSCSI Initiator驱动程序。
方案三 A+b+C+D(高性能方案)
优点:性能好,由于采用iSCSI适配卡,所以性能远比iSCSI Initiator驱动程序来得好。
缺点:比起完全免费的iSCSI Initiator驱动程序,iSCSI适配卡远比较贵。
先决条件:要有Gigabit交换机。
注意事项::iSCSI适配卡分为较便宜性能也稍逊的TOE HBA卡,以及高效能但较贵的iSCSI HBA卡,但后者却只能走iSCSI协议,而无法透过NFS或CIFS等文件系统协议与应用服务器沟通。反而TOE HBA卡iSCSI、NFS及CIFS协议都支持,所以公司需视自身的需求及成本等因素来加以选择。
方案四 A+B+C+D(超高性能方案)
优点:性能最佳,同时市面上一些iSCSI交换机还可同时内建FC、Gigabit Ethernet、iSCSI等多种接口端口,应用上还提供了存储虚拟化等高端功能。所以不论是性能、功能及应用上都颇有看头。
缺点:前面已提到iSCSI适配卡很贵,而支持多种接口及高端存储功能的iSCSI交换机更是身价非凡。
先决条件:有同时整合FC、Gigabit Ethernet配备及网络的需求者。
注意事项:同上。
方案五 Only F(iSCSI + FC SAN整合方案)
优点:可以连结iSCSI及FC两个不同协议的SAN孤岛。也可以透过iSCSI协议,让两个距离很远的FC SAN孤岛相互连结,让FC SAN也可以享受超远距传输的功能,而勿需建置更为昂贵的FCIP连结方案。
先决条件:有整合iSCSI SAN及FC SAN的需求,以及让两个以上的FC SAN孤岛远距传输的需求者。
备注:基本上,方案5不能视为初次构建iSCSI SAN的参考案例,而只是透过iSCSI技术,解决公司既有iSCSI SAN及FC SAN的互连及整合需求。
在谈过了iSCSI的技术趋势、优缺点特性、业界支持状况及构建方案等议题后,本单元将与读者一同探讨采购iSCSI配备所应注意的环节及重点,以俾提供读者采购iSCSI配备及建置iSCSI SAN的一个参考依据。以下兹分成效能及成本、安全性、可扩充性、兼容性、应用及功能等5大基本采购原则来做讨论。
性能及成本
就目前而言,iSCSI SAN在性能及成本上的高低与否,最主要的关键就在于ASIC芯片上。相对于便宜又大碗的Initiator驱动程序而言,价格不便宜的iSCSI ASIC却最能符合性能及速度上的需求,例如制造业或金融业的数据库,就需要较高的速度来运作,这时候采用内建ASIC芯片的iSCSI适配卡会是最佳选择。
一般来说,随着ASIC芯片的有无,以及等级的高低,目前iSCSI Initiator可分为以下三种:
1. iSCSI HBA卡:
所谓iSCSI HBA卡就是采用内建SCSI指令及TOE引擎的ASIC芯片的适配卡,在三种iSCSI Initiator中,价格最贵,但性能最佳。目前价格已由一开始的1000美金,下降跌至500美元。对于有高效能应用需求的企业,或是公司内部主机CPU在1GHz以下者,最好采用iSCSI HBA卡,如此才能获得最好的性能。
NetApp专家特别强调,SCSI HBA只能走iSCSI协议,而无法透过NFS或CIFS等文件系统协议与应用服务器沟通。
2. iSCSI TOE卡:
亦即只有内建TOE引擎的ASIC芯片适配卡,由于SCSI指令仍以软件方式运作,所以仍会吃掉些许的CPU资源。在三种iSCSI Initiator中,价格比iSCSI HBA便宜,但比Initiator 驱动程序贵,性能也居于两者之间。目前市面上Intel的TOE HBA仍要价高达150美金。
但在各协议的支持上,TOE HBA卡可以同时支持iSCSI、NFS及CIFS协议
3.iSCSI Initiator驱动程序
目前不论是Microsoft Windows、IBM AIX、HP-UX、Linux、Novell Netware等各家操作系统,皆已陆续提供这方面的服务,其中以微软最为积极,也最全面。在价格上,比起前两种方案,远为低廉,甚至完全免费(例如微软)。但由于Initiator驱动程序工作时会耗费大量的CPU使用率及系统资源,所以性能最差。
在此建议,最好是采用1GHz以上CPU的主机,如此才能获得较佳的效能表现,如果公司主机CPU在1GHz以下,那么最好不要采用。至于在各类协议的支持上,Initiator驱动程序可以同时支持iSCSI、NFS及CIFS协议。
由于现阶段iSCSI的管理软件仍然不多,所以比起FC SAN,所能提供的应用及功能相对地较不完备,一旦应用及功能增加,管理性能自然大大提升。微软的存储管理平台——Windows Storage Server 2003似乎成为了众所期望的解决之道。未来,在微软提供的标准平台之下,可以包容各家不同应用功能的管理软件,如此一来,不但对iSCSI应用层面的推广有极大的帮助,同时集中化的控管、On
Demand的需求调整等功能也可以有效降低管理维护成本,并促进管理效能的提升。
安全性
在安全性方面,目前iSCSI已支持HA(High Available,高可用性)及冗余等功能,不但可以避免因为单调故障所导致的系统停机,可以在不关机、视需求(On Demand)的情况下调整指派存储空间。更重要的是,还提供不同等级的系统停机时间(Down-Time),此即业界俗称的几个9安全标准,藉由不同等级严格要求一年停机时不超过一定时间(如一年不超过1小时,或以99.999%等数字来划分等级),当然等级愈高,价格也愈贵。此外,在数据保护机制上,也要注意产品是否提供快照、远距备份及灾难复原等功能。
可扩充性
另一个要注意的重点就是,存储应用管理软件或存储配备的可扩充性,包括存储配备的容量是否可以在不关机的条件下,机动调整扩充,以及iSCSI相关硬件的扩充性,例如配备上的接口,是否支持由Giga升级到10G的预设功能。
兼容性
所谓兼容性,就是指现有环境是否可以与iSCSI标准及配备兼容,这可以分成现有操作系统、外围设备及网络来探讨。
首先企业必须确定现有操作系统是否支持iSCSI标准。换句话说,如果企业想利用现成的Gigabit网卡来仿真成iSCSI Initiator的话,那么必须先要确定公司采用的操作系统是否提供iSCSI Initiator驱动程序的下载服务,毕竟不是所有的操作系统都有提供这方面的服务。
如果基于性能的考虑,不想用上述的方案,而改用iSCSI适配卡也可,但是仍需确定操作系统的版本,因为仍有许多操作系统(Linux SuSE、Novell Netware)尚未支持iSCSI适配卡,所以这些都是在考虑建构iSCSI SAN时,特别要注意的地方。
如果在构建iSCSI SAN之前,公司内部已有其它SCSI存储设备、NAS或FC SAN,也必须考虑iSCSI与这些既有配备的整合,以扩充应用的层面及整体效益。就公司既有SCSI存储配备,可通过iSCSI桥接器来做整合;就NAS而言,如今市面上已有许多NAS及iSCSI的整合方案(例如NetApp);在iSCSI与FC SAN的整合上,可以透过iSCSI网关(如Brocade或McDATA产品)来完成。
应用及功能
至于iSCSI SAN的应用及功能,通常要视管理软件所提供的应用功能而定。通常管理软件可分为一般存储配备所附的管理软件及架构性管理软件,前者提供较简单、阳春的存储功能;后者则能提供许多强大进阶的存储应用功能。
而微软WSS 2003所提供的存储标准平台,可以加入市面上各类型及功能的存储管理软件,提供了更丰富的远程异地备份等应用功能,不但可解决长久以来iSCSI应用缺乏的问题,更可促使管理软件价格的下降,对于整体管理效能的提升,以及成本支出的降低会有重大帮助。
就应用层面而言,业界对iSCSI最大特点的普遍看法是,十分适合于具连续性、且较大文件的高速传输及备份应用。由于iSCSI具有无限距离的传输特性,所以在远程备份上最受青睐。也因为如此,目前iSCSI最常见的应用不外乎异地备份及灾难恢复(Disaster Recovery,DR) 为主,同时iSCSI也已支持快照(SnapShot)等高阶功能,可以快速地备份或灾备,达到数据保护的目的。
建联科技认为,目前公司内部至少有三种不可或缺的服务器,那就是Web Server、Mail Server及File Server(亦即数据库),其中,数据库及邮件最适合采用iSCSI SAN,例如NetApp即表示,由于ERP数据库系统采用块协议,所以非常适合建置在iSCSI SAN上。基于这方面的考虑,目前有许多厂商皆主张将NAS及SAN做一整合,以符合上述种种需求。
目前有许多厂商积极开发iSCSI to SATA的磁盘阵列解决方案,他们一致认为两者是低成本、高容量的最佳结合,可存储一些非立即性的数据,但在运用及时性上又远比磁带库好得多。尤其受目前存储行业甚为风行的信息生命周期管理(Information Lifecycle Management,ILM)观念的影响,iSCSI to SATA的磁盘阵列的青睐度及影响性与日俱增,甚至有侵蚀、乃至取代磁带库的声势。