数字资源存储、仓储和发布的标准规范建设
上QQ阅读APP看书,第一时间看更新

1.4.4 IP SAN

IP SAN的技术可融合和应用于各种不同的用户环境中。FC存储和IP存储在组织机构中协同使用,其中核心任务应用使用FC存储,关键业务应用和办公应用则使用IP SAN,而灾难恢复解决方案可以同时使用这些技术。

iSCSI和FCIP(fibre channel over IP)是现行的两种主要的基于IP网络的传输协议。iSCSI协议是对主机发送或接收的SCSI数据进行封装,使其成为IP数据包,然后由以太网网卡或iSCSI HBA设备进行传输。IP数据可以路由至一个能够从IP封装包中解析SCSI I/O的网关设备或者路由至一个iSCSI存储阵列。然后,网关设备将解析之后的SCSI I/O发送给一个基于FC的外部存储阵列。如果是发送给iSCSI阵列,该阵列自身可以直接进行解析和处理封装的I/O操作。FCIP使用TCP/IP作为数据传输协议,通过FCIP网关以桥接的方式对现有的FC-SAN网络进行扩展和连接,而且这种方法可以实现长距离的FC-SAN网络之间的互联。

目前,由于成本相对较低且易于实现,iSCSI已经被广泛应用于服务器和存储设备之间的连接,特别是在原来没有部署FC-SAN的环境中。FCIP也广泛应用于灾难恢复之中,数据通过FCIP被复制到备份站点的磁盘或者磁带上。

1.iSCSI

在Internet协议(IP)统治着局域网和广域网的今天,数据存储的需要也在日益增长。这两股力量似乎不可避免地要汇聚在一点上。Internet小型计算机系统接口(internet small computer system interface, iSCSI)协议整合了存储和IP网络,使通过IP网络完成存储数据块的传输成为现实。它建立在两个已被广泛应用的技术之上,即为存储而建立的SCSI命令和为网络化而建立的IP协议。

iSCSI是一种端到端的协议,用于在IP网络中传输存储I/O数据块。该协议被使用于服务器(initiator)、存储设备(target)和协议传输网关设备。iSCSI使用标准的以太网交换机和路由器,将数据从服务器转移到存储设备。它还使得IP和以太网基础设施可以被用于对SAN存储系统的扩展访问,跨过任意距离完成对SAN的扩展接入。

发起方(一般是主机)、目标方(一般是存储系统)和基于IP的网络是iSCSI存储环境的主要组件。最简单的iSCSI实现方案不需要任何FC组件。例如,部署一个支持iSCSI的存储阵列,主机本身可以作为一个iSCSI发起方,并直接通过IP网络与存储设备通信。然而,在复杂的实现方案中,如果要实现iSCSI连接现有的光纤阵列,那么将使用iSCSI网关或路由器连接到现有的FC-SAN。这些设备将完成IP数据包和FC数据包之间的互相转换,并由此来实现IP和FC环境的桥接。

支持iSCSI的主机需要一个硬件设备,例如支持iSCSI发起方的或者一块iSCSI HBA卡。需要注意的是,TCP/IP网络协议栈上需要加载iSCSI发起方或者其他翻译模块,以便进行SCSI命令和TCP/IP协议栈的转换。

标准NIC, TOE NIC(TOE, TCP/IP Offload Engine,一种专用的TCP/IP协议高速协处理器)及iSCSI HBA,是三种可选的iSCSI物理连接设备。

标准NIC是最简单和最便宜的选择。因为大多数的服务器至少有一个,而且在许多情况下有两个内置NIC。标准NIC只要加载一个iSCSI发起方软件。然而,由于网卡不具有额外的数据处理能力,因此它需要主机CPU来执行所有TCP/IP和iSCSI转换工作,这对主机CPU来说是一种额外的负担。

如果标准NIC用于大量I/O负载,主机CPU可能成为瓶颈;而TOE NIC可以帮助减轻这一负担。TOE NIC可以完成TCP/IP协议栈的工作,仅将iSCSI的解析和处理工作交给主机CPU来完成。主机将iSCSI数据发送给TOE NIC,然后TOE NIC使用TCP/IP协议将数据发送到目的地。虽然这种解决方案可以提高性能,但是iSCSI的功能仍然是由iSCSI发起方的软件来完成的,也就是说,仍然需要占用部分主机的CPU资源。

SCSI HBA则可以提供性能上的优势,因为它独自承担整个iSCSI功能和TCP/IP协议栈功能。iSCSI HBA也是一种从SAN环境通过iSCSI来引导主机启动的最简单的方法。如果没有iSCSI HBA卡,必须对已有操作系统做出额外修改后才能从存储设备上启动主机,因为NIC需要操作系统在加载之前获取一个IP地址。iSCSI HBA的功能与FC HBA的功能非常相似,但它是最昂贵的方式。

不论什么类型的物理连接,都可以使用基于主机的多路径软件来实现支持容错的主机连接解决方案,也可以通过链路聚合技术绑定多块NIC来提供容错或负载均衡功能。复杂的解决方案还可能包括使用特定供应商的存储阵列软件,使得iSCSI主机通过多个NIC或HBA卡连接到阵列上的多个端口。

iSCSI的拓扑结构可分为两类:本地模式和桥接模式。本地模式的拓扑结构中没有任何的FC组件,所有的通信通过IP网络来进行。iSCSI发起方可以直接连接到iSCSI存储设备上,或者连接到标准的IP路由器或交换机。桥接模式通过提供iSCSI到FC的桥接功能以实现FC与IP共存。例如,iSCSI发起方可以在IP环境内,而存储设备仍然留在FC-SAN环境内。

如果要部署一个存储阵列,本地模式的拓扑结构不需要任何FC-SAN组件。阵列中有一个或多个以太网网卡连接到一个标准的以太网交换机,并配置了一个IP地址和侦听端口。一旦iSCSI发起方或客户端配置了适当的目标存储设备的信息,它就可以连接到阵列,并请求所有可用的逻辑单元号(LUN)。只要阵列可以处理足够的存储流量,单一阵列端口可以同时服务多个主机或iSCSI发起方。

许多阵列可以配置多个接口,以满足高可靠性的设计需求,或者将iSCSI发起方配置成具有多个目标存储的设备。一些NAS设备也能够作为iSCSI目标存储,使得这些NAS成为一种集中存储,能够提供文件级和块级的数据访问服务,为没有iSCSI/FC桥接的NAS设备的存储环境提供了更多的选择。

iSCSI桥接模式的解决方案需要FC组件。一般的阵列本身不具有任何iSCSI功能,也就是说,它没有任何以太网端口。因此,必须用桥接器、路由器、网关或者多协议路由器这些外部设备实现从IP网络到光纤通道SAN之间的协议转换和通信。这些设备可以是独立的,或者在多数情况下是集成到现有的FC交换机中的一个模块。桥接设备通过以太网端口与IP网络进行连接,同时使用FC端口与存储设备进行连接。这些端口也需要分配IP地址,类似于具备iSCSI功能的阵列上的端口。

iSCSI发起方/主机将桥接器的IP地址配置为目标存储。这个桥接器同时也配置了一个或者多个FC发起方,称之为虚拟发起方,因为没有HBA那样的物理设备来产生发起方记录。

FCP和iSCSI本机模式可以组合使用。在这种情况下,存储阵列可以在不借助任何外部桥接设备的情况下,对外提供FC和iSCSI存储服务。因为不再需要进行桥接设备配置,部署iSCSI的复杂性就被降低了。可是,对存储阵列也提出了更高的要求,因为它需要同时处理FC和iSCSI流量。

iSCSI是工作在OSI模型的应用层的命令型协议。发起方/主机和目标方使用SCSI命令和应答来互相通信。SCSI命令描述块、数据和状态的信息被封装入TCP/IP数据包,然后通过网络在发起方/主机和目标方之间传输。

iSCSI是一种会话层协议,它启动了可以识别SCSI命令和TCP/IP的设备之间的可靠会话。iSCSI会话层接口负责处理登录、验证、目标发现和会话管理。TCP可以为iSCSI在传输层上提供可靠的传输服务。

TCP被用来控制消息流、窗口、错误恢复和重发功能。它依赖于OSI模型的网络层提供全局地址和连接。此模型数据链路层的第2层协议允许通过单独的物理网络提供节点到节点的通信。

发起方/主机在与可用目标建立会话之前必须可以发现目标在网络上的位置以及目标的名字。这种发现可以通过两种方式来实现:发送目标发现和网络存储名称服务(Internet storage name Service, iSNS)。

在发送方发现中,发起方/主机需要手动配置目标方的iSCSI端口的网络信息,用来与目标的iSCSI服务建立发现会话。发起方/主机发出发送目标的命令,目标方会以主机的可用名称和地址来响应。

iSNS协议能自动发现IP网络上的iSCSI设备。发起方/主机和目标方可以配置为在iSNS服务器上自动登记。每当发起方/主机想知道它可以访问的目标时,它可以通过查询iSNS服务器来获取可用目标列表。

发现也可以通过服务定位协议(service location protocol, SLP)来实现。然而,相比发送目标发现和iSCSI来说,这种方式比较少见。

全球唯一的iSCSI的标识符,称为iSCSI名称,用来命名iSCSI网络内的发起方/主机和目标方,以便于它们之间的通信。这种唯一标识符可以用来识别和管理存储资源,它可以是部门、应用、制造商名称、序号、资产数量或任何标记的组合。

iSCSI有两种类型的名称:

(1)iSCSI认证名称(IQN):一个组织必须拥有一个注册域名,以便生成iSCSI IQN。此域名不需要映射到激活的或已解析的地址。它只是保留下来以防止其他组织使用相同的域名来产生iSCSI名称。名称中包含日期,以避免转让域名所造成的潜在冲突;该组织必须在该日期内拥有该域名。IQN的例子如下:

iqn.2008-02.eom.example:optional_ string

optional_string可以由序号、资产数量或任何存储设备标识符组成。

(2)扩展的唯一标识符(EUI):EUI是基于IEEE EUI-64命名标准的全局唯一标识符。扩展唯一标识符包括EUI前缀和后续16个十六进制字符名字,例如:

eui.0300732A32598D26a

这16个字符包括由IEEE分配的24位的公司名称和40位的唯一ID,如序列号。尽管对用户来说不太友好,但这样可以更加精简,因为由此产生的iSCSI名称是由EUI加上十六进制字符组成的WWN。

在这两种格式中,允许的特殊字符包括点、短画线和空格。iSCSI的合格名称使得存储管理员可以为存储设备分配有意义的名字,从而使管理更加容易。

网络地址授权(NAA)是一种额外的iSCSI节点名字类型,是由国际信息技术标准光纤通道(FC)协议委员会(INCITS)T11所制定的全球命名格式并应用于串行连接SCSI (SAS)中。

iSCSI会话是在发起方/主机和目标方之间建立的。会话ID (SSID)标识一个会话,它包括发起方/主机ID (ISID)和目标方ID (TSID)。会话可以为下列中的一项而建立:

• 发现发起方/主机的可用目标和指定目标方在网络的位置;

• iSCSI正常运行(发起方和目标方之间的数据传输)。

在会话过程中可能会增加和删除TCP连接数。每个iSCSI连接会话都具有唯一的连接ID(CID)。

iSCSI发起方/主机和目标方使用iSCSI协议数据单元(protocol data unit, PDU)进行通信。所有的iSCSIPDU都包含一个或多个报头部分,其后没有或跟随多个数据段。PDU被封装进IP数据包以便传送。

发起方/主机和目标方之间的iSCSI通信是基于请求—应答的命令序列来进行的。一个命令序列可能会生成多个PDU。一个iSCSI会话中的命令序列号(CmdSN)是用来给会话中的发起方/主机到目标方的命令PDU进行编号的。这个编号用来确保每个命令的传输和发送顺序相同,和会话中的TCP连接无关。

命令编序从第一个登录命令开始,其后每一个命令的CmdSN是递增1的。iSCSI目标协议层负责按CmdSN定义的顺序将命令传送到SCSI协议层。即使发起方/主机和使用端口组的目标方之间存在多个TCP连接,目标接收到的数据和命令也有正确的顺序。

类似于命令编号,状态序列号(StatSN)用于对状态应答进行顺序编号。

当目标方准备好接收数据时,会向发起方/主机发出请求一到一传送(R2T)PDU。数据序列号(DataSN)确保在同一命令内为数据提供正确的传送顺序。DataSN和R2T序列号分别为PDU和R2T的数据编序。每个序列号由iSCSI定义的一个无符号32位整数计数器存储在本地。这些序列号在命令、状态和数据交换过程中,通过适当的iSCSIPDU在发起方/主机和目标方之间传输。

在进行读操作时,DataSN初始值为零,其后在该命令序列中每一个数据单元的序列号将逐一递增。如果是写操作,第一个主动提供的数据单元或第一个R2T响应的数据单元的DataSN初始值为零,其后每一个数据单元序列号也逐一递增。R2TSN命令初始化时设定为0,其后目标方每发送一个R2T命令,序号就逐一递增。

iSCSI协议在IP数据传送过程中处理错误情况。命令编序用于流量控制。序列号用来监测丢失的命令、应答和数据块。除了TCP校验和以太网CRC校验之外,使用可选的消息摘要可以改善通信完整性。

iSCSI中的错误检测和恢复可分为三个级别:Level 0,会话恢复;Level 1,故障恢复;Level 2,连接恢复。错误恢复级别在登录期间进行协商。

• Level 0:如果一个iSCSI会话被破坏,所有的TCP连接都需要关闭,所有的任务和未完成的SCSI命令应该继续完成。然后,通过登录来重新启动会话。

• Level 1:为了能恢复数据的传输,每个节点应该能够有选择地恢复会话中丢失或损坏的PDU。在这个级别上,识别iSCSI任务的错误并进行数据恢复,而后试图重复传输遗失的或损坏的PDU。

• Level 2:建立新的TCP连接以取代失败的连接。新连接将从失败连接的地方开始重新传输。

iSCSI可能会在未受保护的IP网络中出现安全漏洞。可以使用某些安全方案,例如IPSec和验证解决方案[如Kerberos和CHAP(挑战握手认证协议)]来加强安全性。

2.FCIP

业界目前正在寻找在整个企业中传送数据的新方式,这种方式适用于本地的SAN以及更长的距离,并确保数据可以被所有需要它的用户访问。实现这一目标的极佳方式之一是通过可靠的高速连接实现地理上分散的SAN的互联。这种方法需要在整个企业内使用现有的IP基础设施进行FC块数据传送。

FCIP标准作为一个可管理、能发挥成本效益的方案迅速获得认可,它结合了FC块数据存储以及成熟并广泛部署的IP基础设施两者的优势。FCIP是一种隧道协议,使分散的FC-SAN孤岛通过现有的IP网络可以透明地在局域网、城域网和广域网之间进行互联。因此,企业现在有了一个更好的方式来利用现有的投资和技术进行数据的保护、存储和迁移。

FCIP使用TCP/IP作为其底层协议。在FCIP中,FC帧封装成IP有效载荷。FCIP不会控制FC帧(为传输转换FC ID)。

当SAN孤岛使用FCIP互相连接时,每个双向连接被称为FCIP连接。两个SAN孤岛之间的每一个成功的FCIP连接将产生一个完全合并的FC光纤网络。

当SAN的数据合并、复制、备份时,FCIP可能需要较高的网络带宽。FCIP自己不进行限速或流控,这些都是由光纤网络中的FC交换机和其他设备来完成的。

一个FCIP环境就像是一个单一的、连贯的SAN。在分散的SAN孤岛被合并之前,SAN只包括功能齐全的第二层网络。这个第二层网络是一个标准的SAN结构。这些物理上独立的光纤网络通过IP链路连接合并成一个单一的光纤网络。

FCIP网关路由器通过标准的FC连接和每一个光纤网络相连。光纤网络将这些路由器当作第二层的光纤网络交换机。路由器上的另外一个端口连接到IP网络,并且分配一个IP地址。这类似于给网关上的iSCSI端口分配IP地址。一旦IP网络连通,两个独立的光纤网络就会合并成一个。当两个光纤网络合并时,所有交换机和路由器都要有各自的唯一的域名ID,而且网络需要包含唯一的分区集合名,否则整个光纤网络将被分割。在连接的每一边的FC地址对另一边的网络都是可见的,在新的网络环境内可以对任何实体进行分区和屏蔽。

性能、可靠性和安全性是存储解决方案必须考虑的因素。FCIP方案也不例外。

从性能的角度来说,在第二层网络中从不同交换机上到多FCIP网关的多路径连接消除了单点故障,并提供了更高带宽。在长距离的情况下,如果没有足够的带宽,IP网络可能会成为瓶颈。从用户角度来看,由于FCIP创建了一个统一的光纤网络,底层IP网络的中断可导致SAN环境的不稳定,例如被分割、过度RSCN和主机连接超时。

FC交换机的供应商已经认识到这些弊端,并已实现了一些功能来提供更高的稳定性,如将FCIP流量分流到一个分隔的虚拟光纤网络。

安全是另一个FCIP解决方案需要考虑的因素,这是因为数据会在公共的IP网络上进行传输。不同的路由器提供各种安全选项来保护数据。IPSec就是这样一种可实施在FCIP环境中的安全措施。

iSCSI可以使IT组织在合理的花费下获得存储网络架构带来的便利。通过混合IP SAN技术,存储网络现在可以分散在不同的地区,从而提高整个企业的存储利用率。FCIP已成为企业中一种可实现业务连续性的解决方案。

由于IP SAN是基于标准的以太网协议的,管理员对其概念、安全机制和管理工具都很熟悉,这使得IP SAN可以快速被采纳。某些对块I/O有需求的应用不能用NAS来实现,却可以通过iSCSI来实现。