iSCSI Configuration

  • 格式:docx
  • 大小:639.45 KB
  • 文档页数:6

存储的基本分类:•DAS/JBOD (Direct Attached Storage)直连式存储凡是直接连接到系统的存储设备都是DAS,如本地硬盘,软驱等。

JBOD一般指磁盘阵列。

•NAS(Network-attached storage)网络接入存储以文件为基础通过网络来共享资料的存储。

如FreeNAS,SAMBA,NFS等•SAN (Storage area Network)存储区域网络将存储器从应用服务器中分离出来,进行集中管理。

这就是所说的存储网络(Storage Networks)。

一般分为IP-SAN:ISCSIFC-SAN:FCoE•NAS和SAN最本质的不同就是文件管理系统在哪里由上图可以看出,SAN结构中,文件管理系统(FS)还是分别在每一个应用服务器上;而NAS则是每个应用服务器通过网络共享协议(如:NFS、CIFS)使用同一个文件管理系统。

换句话说:NAS和SAN存储系统的区别是NAS有自己的文件系统管理。

什么是ISCSI?iSCSI(iSCSI = internet Small Computer System Interface )是由IEETF开发的网络存储标准,目的是为了用IP协议将存储设备连接在一起。

通过在IP网上传送SCSI命令和数据,ISCSI推动了数据在网际之间的传递,同时也促进了数据的远距离管理。

由于其出色的数据传输能力,ISCSI协议被认为是促进存储区域网(SAN)市场快速发展的关键因素之一。

因为IP网络的广泛应用,ISCSI能够在LAN、WAN甚至internet上进行数据传送,使得数据的存储不再受地域的现在。

红帽ISCSI驱动架构图:ISCSI的数据访问:∙Clients (initiators) send SCSI commands to remote storage devices (targets) 客户端需要执行ISCSI的发现命令才能访问服务器端,客户端跟操作系统无关。

∙Uses TCP/IP (tcp:3260, by default)∙Initiatoro Requests remote block device(s) via discovery process发送一个远程的block设备,通过发现协议来发现。

o iSCSI device driver requiredo iscsi service enables target device persistenceo Package: iscsi-initiator-utils-*.rpm∙Targeto Exports one or more block devices for initiator accesso Technology Preview in RHEL 5.1 但是5.1是预览版,正式支持需要使用5.4o Package: scsi-target-utils-*.rpmiSCSI Driver Features∙Header and data digest support∙Two way CHAP authentication∙R2T flow control support with a target∙Multipath support (RHEL4-U2)∙Target discovery mechanisms∙Dynamic target discovery∙Async event notifications for portal and target changes∙Immediate Data Support∙Dynamic driver reconfiguration∙Auto-mounting for iSCSI filesystems after a rebootiSCSI Device Names and Mounting∙Standard default kernel names are used for iSCSI devices默认内核会把ISCSI识别成一个普通的SCSI设备∙Linux assigns SCSI device names dynamically whenever detected系统会自动分配一个设备名给ISCSIo Naming may vary across rebootso SCSI commands may be sent to the wrong logical unit∙Persistent device naming (2.6 kernel)要求下次重启设备名还能生效的话,可以使用udev和UUID方式来挂载ISCSI o udevo UUID and LABEL-based mounting由于在系统读取/etc/fstab的时候,这个时候是还没有启动网络的,所以服务挂载网络文件系统,所以在系统启动到/etc/rcX.d的时候,才会通过netfs这个服务重新的挂载网络文件系统。

但是有是ISCSI是一个网络设备,不是一个网络文件系统,所以开机自动挂载就需要使用_netdev参数了,这样的话在网络启动后会自动去挂载ISCSI。

iSCSI Target Naming ISCSI的命名方式∙iSCSI Qualified Name (IQN)∙Must be globally unique 具有全局和唯一性∙The IQN string format:iqn.<date_code>.<reversed_domain>.<string>[:<substring>] ISCSI格式∙The IQN sub-fields:o Required type designator (iqn)o Date code (yyyy-mm)o Reversed domain name (tld.domain)o Any string guaranteeing uniqueness (string[[.string]...])o Optional colon-delimited sub-group string ([:substring])∙Example:.example.sales:sata.rack2.disk1配置ISCSIConfiguring the iSCSI Initiator Driver∙/etc/iscsi/iscsid.conf 可以在这个配置文件里,客户端可以配置ISCSI的认证功能∙Default configuration works unmodified (no authentication)∙Settings:o Startup - automatic or manualo CHAP - usernames and passwordso Timeouts - connections, login/logout 如果没有连接成功,多久会超时,缺省是120秒。

o iSCSI - flow control, payload size, digest checking•Lun(Logical Unit Number)逻辑单元号码通常SCSI RAID 会用多颗SCSI HD 组合成一個逻辑单元号(LUN),SCSI 控制器就可以使用单一的LUN來做存取.除了RAID 外最常遇见的就是在SAN (Fiber / iSCSI) 上面,通常SAN 指定给Server 的Hard drive 都是以Luns 来当设备名称.不过很可惜的是RedHat Enterprise Linux 预设只支持一個Lun0 ,也就是说不管SAN 指派多個Luns 给Server 但是Server 就只会看到一个Luns.比较快的解决multi - Luns 的方式.目标端共享:可以直接编辑/etc/tdt/targets.conf,来设置共享•通过命令完成设置目标端的共享,命令必须写入rc.local开机才生效!tgtadm --lld iscsi --op new --mode target --tid 1 -T .example:storagetgtadm --lld iscsi --op show --mode target(lun0 是个用来管理的controller device,是自动产生而且一但建立就无法移除.)tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1tgtadm --lld iscsi --op unbind --mode target --tid 1 -I ALL要让这些下次重启生效必须写rc.local建议直接去编辑/etc/tgt/target.conf来配置ISCSI的服务器端。

客户端:发现可用的目标端#iscsiadm -m discovery -t sendtargets -p 172.16.36.1:3260172.16.36.71:3260,1 .example:storage.disk1登录目标端:iscsiadm -m node -T .example:storage.disk1 -p 172.16.36.1:3260 –l chkconfig iscsi on注销目标端:iscsiadm -m node -T .example:storage.disk1 -p 172.16.36.1:3260 –u临时的注销ISCSI删除目标端:iscsiadm -m node -o delete -T .example:storage.disk1 -p 172.16.36.1:3260 ISCSI发现和登录的命令如果记不住的话,可以使用:man iscsiadm,在文档的最后有现成的例子,不用记!-o delete 永久删除ISCSIFirst-time Connection to an iSCSI Target∙Start the initiator service:# service iscsi start∙Discover available targets:∙# iscsiadm -m discovery -t sendtargets -p 172.16.36.1:3260172.16.36.71:3260,1 .example:storage.disk1∙Login to the target session:# iscsiadm -m node -T .example:storage.disk1 -p 172.16.36.1:3260 -l关于ISCSI的总结:使用客户端-服务器结构,服务器端Targetd在RHEL5.3之后的版本中支持;3、iSCSI亮点特性:a>一个32位的校验头,因为tcp自带的16为校验头对长距离大数据的传输来说显得有点弱;b>可支持双向验证(服务器验证客户、客户验证服务器);c>支持R2T(Ready-to-Transfer)流程(本质上就是二阶段提交,先探测后传输。