非置信服务器环境中san管理的安全系统和方法

文档序号:7581180阅读:382来源:国知局
专利名称:非置信服务器环境中san管理的安全系统和方法
技术领域
本发明一般地涉及存储区域网络。特别地,本发明涉及一种用于操作多个服务器共享一个光纤通道适配器的服务器环境中的存储区域网络的方法及系统。
背景技术
光纤通道是一种用来将可分开几十公里的输入/输出(I/O)设备与主机系统互连的高速、全双工、串行通信技术。它将常规I/O接口的最佳特性,例如SCSI及PCI中所具有的吞吐量和可靠性,与联网接口的最佳特性,例如以太网和令牌网中所具有的连接性和可伸缩性相结合。它提供用于传送现有命令的传送机制,并提供通过允许巨量处理在硬件中执行而获得高性能的体系结构。它能够以遗留协议和驱动器,例如SCSI和IP进行工作,使得它能够容易地引入到现有基础设施中。
光纤通道在源和信息用户之间传送信息。该信息可以包括命令、控制、文件、图形、视频及声音。光纤通道连接建立在位于I/O设备、主机系统及互连它们的网络的光纤通道端口之间。网络包括用来互连光纤通道端口的元件,例如交换器、集线器、桥接器和中继器。
在光纤通道体系结构中定义有三种光纤通道拓扑。这些是点对点、交换结构及仲裁环路。
光纤通道交换器(或交换结构)也包括通常称作分区的功能。这些功能使用户可以将交换器端口划分成端口群。端口群或分区内的端口仅可以与相同端口群(分区)内的其他端口通信。通过使用分区,一组主机和设备的I/O可以与任何其他组的I/O完全隔开,从而防止组群之间任何干扰的可能性。
这也称为“软分区”。该软分区工作的方式是用户根据节点的全球名——全球端口名(WWPN)或全球节点名(WWNN)将节点分配到分区。名字服务器捕捉该信息,这是嵌入交换器中的功能。然后,每当端口与名字服务器通信以找出它允许连接哪个节点时,名字服务器将仅以该端口的分区内的节点应答。
因为标准光纤通道设备驱动器确实以这种方式与名字服务器通信,该类型分区适用于大部分情形。但是,设备驱动器设计成企图访问不在其允许连接的列表中的节点是可能的。如果这发生,交换器将不预防也不检测违规。
为了防止这种情况,除了软分区之外,交换器也可选地实施一种称为“硬分区”的机制,其中交换器网络仅基于每个帧的源和目的地址来决定该帧是否允许传送。
光纤通道存储区域网络(SAN)是将存储设备连接到主服务器的网络。它们建立于作为联网基础设施的光纤通道技术。区分SAN和先前互连方案的是以下基本概念,即所有(或几乎所有)存储器可以合并成一个大的“存储区域”,使得除了主服务器和存储器之间的任意对任意连接性以外还允许集中化(简化)管理。
光纤通道SAN有可能允许相同网络中的开放系统和存储器(即非z系列)像z系列系统和存储器一样互连。这是可能的,因为开放附件和z系列附件两者的协议都映射到光纤通道体系结构的FC-4层。
在光纤通道附件中,LUN与主机的光纤通道适配器具有密切关系(通过适配器的全球唯一标识符,也叫做全球端口名),而与主机连上哪个ESS(IBM企业存储服务器)光纤通道端口无关。因此,在单个光纤通道主机可以具有到ESS上多个光纤通道端口的通路的交换结构配置中,可以被光纤通道主机访问的这组LUN与ESS端口的每个上的相同。
该实施的一个结果是,使用光纤通道,不同于在SCSI中,通过到相同光纤通道端口的结构连上ESS的主机可能不会“看见”相同的LUN,因为LUN屏蔽可能对各个光纤通道主机是不同的。换句话说,每个ESS可以定义哪个主机具有到哪个LUN的通道。
另一种方法是在交换器中创建分区,使得每个主机的每个光纤通道端口被强制连上ESS上的一个光纤通道端口,从而允许主机仅通过一条路径看到LUN。
光纤通道规范的细节在以下标准中展示光纤通道物理和信号接口(FC-PH),ANSI X3.230-1994;光纤通道第二代物理接口(FC-PH-2),ANSI X3.297-1997;光纤通道第三代物理接口(FC-PH-3),ANSIX3.303-199X,修订版9.4,以及光纤通道仲裁环路(FC-AL),ANSIX3.272-1996。更多的相关标准是FC-FS,FC-GS-3。
有关光纤通道的更多信息在光纤通道顾问——全面介绍(Robert W.Kembel,1998)和光纤通道顾问——仲裁环路(Robert W.Kembel,1996)中公开。
于2000年12月22日提交的、2001年7月11日公布的、BarryStanley Barnett等人的、转让给国际商业机器公司,Armonk,NY,US的EP 1 115 225 A2“存储区域网络的端到端问题确定及故障隔离的方法及系统”公开存储区域网络(SAN)中的问题确定及故障隔离的方法及系统。多个厂商主机系统、FC交换器及存储器外围的复杂配置通过通信体系结构(CA)在SAN中连接。通信体系结构元素(CAE)是已成功地通过网络服务协议向主计算机上的通信体系结构管理器(CAM)登记的网络连接设备,并且CAM包含SAN的问题确定(PD)功能性并保存SAN PD信息表(SPDIT)。CA包括能够传送存储于SPDIT中的信息的所有网络连接元件。CAM使用SAN拓扑图,并且SPDIT用来创建SAN诊断表(SDT)。特定设备中的故障部件可能产生错误,其导致沿着相同网络连接路径的设备产生错误。当CAM接收到错误包或错误信息时,错误被存储于SDT中,并且每个错误通过将该错误与SDT中其他错误在时间和空间上相比较来分析。如果CAE被确定为产生错误的候选者,那么CAE被报告替换,如果可能的话。
于2001年2月9日提交的、2001年12月20日公布的、SawaoIwatani,Kawasaki,Japan的US 2001/0054093 Al“存储区域网络管理系统、方法及计算机可读媒介”公开一种综合并管理单个源的常规分散安全系统的存储区域网络(SAN)的综合管理机制并使SAN中的安全管理自动化。该综合管理机制综合并管理SAN,并且被配置使得SAN的主计算机与存储设备的访问关系使用综合管理机制管理。基于管理机制的访问路径,包括从主计算机试图访问的存储设备的区域、访问该存储器时所使用的光纤通道适配器及主总线适配器(HBA)被配置。基于所配置的访问路径信息,综合管理机制建立主计算机的SAN管理机制、交换器的分区设置机制及存储设备的存储管理机制的相应存储器设置、分区设置及可访问区域权限。

发明内容
基于上述考虑,本发明的目的在于提供一种用于操作多个服务器共享一个光纤通道适配器的服务器环境中的存储区域网络的、具有改进安全机制的方法及系统。
前述目的通过独立权利要求中所展示的方法及系统来实现。本发明更优越的实施方案在子权利要求中描述,并且在下面的说明书中讲授。
根据本发明,一种方法及系统被提供以操作多个服务器共享一个光纤通道适配器的服务器环境中的存储区域网络(SAN)。SAN管理服务器管理存储器系统中的区域及安全性和/或检测错误并配置SAN,光纤通道网络提供到存储设备的连接,并且多个操作系统镜像在所述服务器环境中运行。此外,置信SAN管理客户端单元连接到所述SAN管理服务器及光纤通道适配器,由此置信SAN管理客户端单元被配置以代替所述操作系统镜像的每个在所述光纤通道网络中发出指令。
在本发明的优选实施方案中,服务器环境包括虚拟服务器和/或分区服务器。
优选地,SAN管理服务器被配置以区别第一组命令和第二组命令,由此第一组命令由SM客户端和所述SAN一起处理,并且由此所述第二组命令由所述OS镜像处理而不用访问所述SAN。有利地,光纤通道适配器(FC适配器)被配置以验证所述置信SAN管理客户端单元。
有利地,FC适配器和所述SAN可以适合于将非置信OS镜像的访问限制于最小必要指令集。可选地,FC适配器和虚拟服务器的虚拟层可以适合于将非置信OS镜像的访问限制于最小必要指令集。
在本发明的另一种实施方案中,仅一个SM客户端被提供,以便保持服务器负载小。可选地,一个或多个后备SM客户端被提供,以便提供冗余。
有利地,仅SM客户端被登记以接收来自SAN的信息,并且SM客户端被配置以将所述信息仅转发给所述SM服务器。可选地,FC适配器被配置以将不需要登记的所有信息仅转发给SM客户端而不转发给非置信OS镜像。
在本发明的另外实施方案中,服务器装备有两级代理,也就是SM客户端和远程访问服务器(RA服务器)。优选地,服务器装备有用于保存访问RA服务器的授权数据的储存库。
优选地,仅SM客户端和FC适配器被配置来收集用于记帐每个非置信OS镜像的资源使用的信息。有利地,SM构架适合于与防火墙控制应用通信,以便设置访问权限。
在本发明的又一种实施方案中,SM客户端适合于用作从SM服务器到RA服务器的请求的路由器。优选地,现有telnet/sshd服务器构成RA服务器。
此外,本发明可以实施为用于操作多个操作系统镜像共享一个光纤通道适配器的服务器环境中的存储区域网络(SAN)的方法,其中SAN由具有到所述光纤通道适配器的通信路径的具有至少SAN管理服务器和至少SAN管理客户端的SAN管理软件来管理。由SAN发出的请求分成至少两组,也就是第一组以代替共享相同适配器的其他操作系统的对应于置信路径的SM客户端的名义由光纤通道适配器和SAN处理,并且第二组由其他操作系统处理而不需要发送请求到FC适配器和SAN或者接受来自FC适配器和SAN的请求。
在该方法的优选实施方案中,包含于SAN和FC适配器中所产生的未经请求信息里的所有信息由SAN管理客户端路由到SAN管理器。优选地,HBA_API绑定请求用来修改防火墙。
可选地,从SAN管理客户端到适配器的通信路径被操作,使得它不能被其他操作系统镜像修改或窃听。在更优选实施方案中,有关记账各个操作系统镜像的所有信息在适配器中产生,并且在置信路径上由SAN客户端通过SAN路由到SAN管理器。
有利地,SM服务器向SM客户端提供授权数据,以执行来自所述第一组的请求。可选地,SM服务器和SM客户端向其他OS镜像提供授权数据,以执行来自所述第二组的请求。优选地,OS镜像被操作,使得它们在SAN中仅能够执行有限的命令集。
很多操作系统(>256,4000个虚拟服务器在2004年是有可能的)不得不分享具有共享FC适配器的SAN。适配器在这种情况下被共享,因为成本原因和可管理原因。具有256个FC适配器的服务器需要例如从适配器到交换器的256根电缆和交换器网络中的256个端口。
在服务器主机环境中,每个OS镜像需要不能被其他OS镜像访问的私有数据(例如服务器配置)和共享的读写数据,例如共享的数据库对于通过相同适配器由OS镜像共享的LUN共享只读数据例如预安装的操作系统镜像(unix系统中/usr),保证完全scsi顺应行为(例如,由SAM-2定义的保存/释放、NACA处理、排队规则)是不可能的。
每个“非置信操作系统镜像”由潜在危险的实体所拥有,例如彼此竞争的两个公司或黑客。拥有意味着实体实际具有根访问权限并且能够改变每片操作系统镜像包括所有SM客户端或其他软件。OS镜像拥有者不具有访问权限并且不能够以其自身名义修改硬件,而需要机器拥有者来做这些。机器拥有者(IT部门/ASP/ISP)具有关于SAN中所有硬件、映射及策略的完全控制。机器拥有者分配SAN中的资源(最可能是磁盘控制器中的LUN)给操作系统镜像。机器拥有者需要在SAN中执行错误检测及错误隔离的工具,以防止操作系统镜像的停机。机器拥有者可能想要将其硬件分成多个实体和可独立于其他子网来管理的子网(归类多个服务器或LPAR)。共享的适配器不能跨过子网但可以跨过LPAR。
每个OS镜像或者在单独服务器(刀片服务器)上运行或者作为虚拟服务器。虚拟服务器环境可以由例如LPAR-z系列固件、z系列VM操作系统或基于Intel服务器的VM件来创建。
SAN管理器用户接口中SAN资源的表示应当以这样的方式执行,即机器拥有者可以将OS镜像从虚拟服务器移动到物理服务器,而不用获得由SM服务器用户接口表示的完全不同种类的视图。
每个OS镜像的访问可以由FC适配器中的防火墙或不属于OS镜像的其他实体(否则在该OS镜像上具有完全控制的拥有根访问权限的用户具有废止它的能力)所限制。
每个非置信OS镜像中的FC到SCSI映射可以通过FC设备驱动器映射和配置接口MAP_IF来配置。例如,z系列上某些版本的光纤通道上的MAP_IF由称作进程文件系统的Linux专用配置方法来实现,以设置并查询所述映射。SM服务器不应当依赖于MAP_IF所报告的正确数据(访问强制由防火墙来执行,因此或者OS协作或者根本不能看到任何数据)。用于记账的测量不能在非置信OS镜像中执行(因为根用户能够自由修改数据)。因此,适配器或其他实体必须提供所要求的测量数据。
其他实施方案可以提供多个WWPN,虽然WWPN的数目会低于每个适配器所支持OS镜像的数量。


本发明的上面及另外的目的、特性及优点将在下面详细书写的说明书中变得明白。
本发明的新特性在附加权利要求书中陈述。但是,本发明本身及其优选使用方式、另外的目的及优点将通过结合附图阅读时参考下面示范实施方案的详细描述而最好地理解,其中图1显示说明根据本发明的系统的第一实施方案的框图;图2显示说明根据本发明的系统的第二实施方案的框图;图3显示说明根据本发明的用于操作多个服务器共享一个光纤通道适配器的服务器环境中的存储区域网络的方法的流程图;图4显示说明关于上述类型结构的HBA_API命令的简化信号和流程的流程图;图5显示说明上述类型FCP到SCSI映射的HBA_API命令的简化信号和流程的流程图;以及图6显示说明处理由SAN发起的ELS请求的上述类型HBA_API命令的简化信号和流程的流程图。
具体实施例方式
参考图1,其描绘了说明根据本发明的系统100的第一实施方案的框图。系统100包括全部适合于通过具有WWPN 1(全球端口名)的一个公共光纤通道适配器112来访问SAN 110的多个计算机系统104,105及106。为了清楚,仅描绘三个计算机系统。公认地,计算机系统的数目可以是上百个甚至上千个。具有这些高数目的计算机系统,多于一个光纤通道适配器可以在系统中存在,但是即使在这种情况下,多个计算机系统将共享一个相同的光纤通道适配器。
作为计算机系统104,105及106的每个与光纤通道适配器之间的网关,防火墙114,115及116被分别提供,以保证计算机系统的每个仅能够访问SAN 110的允许部分。防火墙114,115及116可以集成于光纤通道适配器中或连上它。另一方面,所有计算机系统104,105及106连接到网络120,例如以太网。
此外,系统100包括连接到网络120的两台另外的计算机系统122及123,分别具有运行于操作系统(OS)131上的SAN管理服务器130(SM服务器)和SAN管理客户端132(SM客户端)。SM服务器130运行SAN管理系统,例如Tivoli存储网络管理器的服务器部分(http//www.tivoli.com/products/index/storage_net_mgr/),而SM客户端132运行这种系统的相应的客户端部分。
SM服务器130通过通信线路进一步连接到防火墙控制应用134,而SM客户端132具有到光纤通道适配器112的通信链路。防火墙控制应用134提供有到防火墙114,115及116的每个的通信链路,或者通过光纤通道适配器(如所描绘的)或者直接到它们的每一个。
SM服务器130通过相应的安全外壳接口144,145及146,即用于登陆远程计算机以及在远程计算机上执行命令的程序来访问计算机系统104,105及106的每个。在每个计算机系统104,105及106中提供的映射接口MAP_IF 154,155,156维护光纤通道到SCSI(小型计算机系统接口)映射。这可以例如实施为命令行接口或配置文件。
每个计算机系统104,105及106运行可能是“非置信”的操作系统164,165及166。该上下文中的“非置信”指的是可能被潜在危险的实体,例如一段恶意代码,例如计算机病毒或篡改操作系统以便访问或修改所述实体应当不能得到的SAN中信息的个人企图所控制或操纵的操作系统。操作系统本身可以由各种操作系统,例如国际商业机器公司的AIX或z/OS、UNIX及Linux的任何一种构成。
因为根据本发明的安全机制考虑到未经授权的SAN访问请求可能由计算机系统104,105及106的任何一个发出,相应防火墙114,115及116过滤所有SAN访问请求,并且仅接受由防火墙控制应用授权的那些请求。只有计算机系统104,105及106的任何一个都不能访问的防火墙控制应用134能够修改指定授权SAN访问请求的防火墙设置。根据本发明的第一实施方案,SM服务器130控制防火墙控制应用134。
SM客户端132在HBA_API 168(主总线适配器应用程序接口)上运行,HBA_API 168在必须是“置信”的即操作系统由不试图篡改SAN访问权限等的实体来管理的操作系统170之上。光纤通道适配器112适合于区别非置信和置信操作系统。该授权可以通过识别操作系统170或SM客户端132来实现,这是依靠某些众所周知的授权方案例如固定源地址(例如硬件ID)、密钥及加密算法或密码,这些不是本发明的一部分。涉及紧要信息例如SAN配置、SAN组成、SAN访问权限,错误信息、统计数字或记账信息的请求只有来自于运行SM客户端132的置信操作系统170的可以被接受。相应地,这些请求的结果仅返回给置信操作系统170。换句话说,由SM服务器控制的并担当代替非置信操作系统的SM客户端132单独执行SAN管理。
SM服务器130包括发出请求以便查询并设置SAN中和被管理操作系统中的信息的SM核心引擎(没有显示)以及将来自核心引擎的请求及应答路由到客户端的通信模块(没有显示)。通信模块可以或者实施为SM服务器的一部分或者分布在位于“置信”环境中的SM服务器和SM客户端部件上。
安全外壳守护进程sshd和OS专用FC配置接口概括为RA(远程访问)服务器。远程访问服务器适合于响应由SM服务器或SM客户端发出的授权请求。在优选实施中,SM客户端和RA服务器使用授权数据,例如密码、用户id及密钥来识别请求的发起者。因此,通信模块装备有所述授权信息的储存库(没有显示)。通信模块根据下面的命令列表将关于结构的请求即用于管理SAN的请求以及关于适配器的请求即用于管理光纤通道适配器的请求与OS专门请求分开。如上所述,SM服务器、SM客户端和RA服务器之间的连接是运行于例如以太网上的基于IP的网络。在不同的实施方案中,SM客户端、SM服务器和RA服务器之间的某些通信可以利用FC适配器能力代替分离的网络来传送其他协议。一个例子将是光纤通道上的TCP/IP。
现在参考图2,其描绘了说明根据本发明的系统的第二实施方案的框图。
相对第一实施方案的系统(图1),本系统包括全部适合于通过具有WWPN 1(全球端口名)的一个公共光纤通道适配器212来访问SAN210的多个计算机系统204,205及206。为了清楚,仅描绘三个计算机系统。公认地,计算机系统的数目可以是上百个甚至上千个。具有这些高数目的计算机系统,多于一个光纤通道适配器可以在系统中存在,但即使在该情况下,多个计算机系统将共享一个相同的光纤通道适配器。
作为计算机系统204,205及206的每个与光纤通道适配器之间的网关,防火墙214,215及216被分别提供,以保证计算机系统的每个仅能够访问SAN 210的允许部分。防火墙214,215及216可以集成于光纤通道适配器中或连上它。
与第一实施方案形成对照,在虚拟服务器环境例如LPAR(逻辑分区模式)加上VM(虚拟机器)中运行的虚拟服务器构成计算机系统204,205及206。此外,另一台虚拟服务器223被提供拥有SAN管理客户端232(SM客户端)。计算机系统204,205及206通过超级套接之上的安全外壳连接与SM客户端232通信。
单独的计算机系统222被提供拥有SAN管理服务器230(SM服务器)。SM服务器230运行SAN管理系统,例如Tivoli存储网络管理器的服务器部分,而SM客户端232运行这种系统的相应的客户端部分。SM服务器230通过以太网220访问SM客户端。
每个计算机系统204,205及206运行可能是“非置信”的操作系统264,265及266(比较上文)。操作系统本身可以由各种操作系统,例如国际商业机器公司的AIX或z/OS、UNIX以及Linux的任何一种构成。
SM客户端232运行于HBA_API 268(主总线适配器应用程序接口)的上方,HBA_API 268在必须是“置信”的操作系统270的上方(比较上文)。再者,光纤通道适配器212适合于区别非置信和置信操作系统。涉及紧要信息的请求只有来自于运行SM客户端232的置信操作系统270的可以被接受。防火墙控制应用234也运行在“置信”操作系统270上方。防火墙控制应用用来指示防火墙214,215及216是否将来自“非置信”操作系统264,265及266的特定访问请求转发给SAN 210。换句话说,只有计算机系统204,205及206的任何一个不能访问的防火墙控制应用234能够修改指定授权SAN访问请求的防火墙设置。
现在参考图3,其描绘了说明根据本发明的用于操作多个服务器共享一个光纤通道适配器的服务器环境中的存储区域网络的方法的流程图(方框300)。首先,SM核心引擎创建请求(方框302),然后通信模块确定请求的目标(方框306)。在它是对SAN或光纤通道适配器的请求的情况下,那么通信模块用可以是密码、用户id及密钥的相应的授权数据建立到SM客户端的通信路径(方框308)。
随后,SM客户端检查授权是否有效(方框312)。如果有效,SM客户端通过查询SAN中的实体例如交换器(例如获取SAN中FC设备的列表)或磁盘控制器(例如获取控制器中逻辑磁盘的列表)以及设置光纤通道适配器及SAN属性例如用来登记某些类型的错误通知信息的RNID-ELS来创建应答(方框314)。
如果无效,SM客户端产生通知SM核心所述请求已被拒绝的拒绝应答(方框316)。两条可选路径通过发送应答给通信系统而继续(方框318)。
返回到方框306,在通信模块确定SM核心引擎创建对操作系统(OS)配置数据,例如由函数HBAGetFcpTargetMappingFunc定义的光纤通道到scsi映射的请求的情况下,通信模块用相应的授权数据建立到RA服务器的通信路径(方框320)。
然后,RA服务器中的授权部分,例如sshd通过将所提交的用户id、密码及密钥与RA服务器已知被授权的用户id、密码及密钥相比较来确定授权是否有效(方框321)。
如果有效,RA服务器通过OS配置操作,例如访问由操作系统的光纤通道设备驱动器存储的光纤通道配置信息来创建应答(方框324)。
如果无效,RA服务器创建拒绝应答(方框326)。再者,两个可选路径通过发送应答给通信系统而继续(方框318)。随后,通信系统将应答转发给SM核心引擎(方框320),并且SM服务器中的SM核心引擎处理该应答(方框322),如上述两个专利中所定义的。
在下文中,显示优选实施的请求的流程和类型。HBA_API命令的语法可以在“光纤通道HBA_API工作草案”中找到。(ftp//ftp.t11.org/t11/pub/fc/hba/02-268v2.pdf)。
1.首先,关于结构及适配器的请求CT,ELS,SCSI命令被列出。使用适配器和SAN资源的SM客户端处理这些命令typedef HBA_STATUS(*HBASendCTPassThruFunc)(HBA_HANDLE,void*,HBA_UINT32,void*,HBA_UINT32);
typedef HBA_STATUS(*HBASendRNIDFunc)(HBA_HANDLE,HBA_WWN,HBA_WWNTYPE,void*,HBA_UINT32*);typedef HBA_STATUS(*HBASendScsiInquiryFunc)(HBA_HANDLE,HBA_WWN,HBA_UINT64,HBA_UINT8,HBA_UINT32,void*,HBA_UINT32,void*,HBA_UINT32);typedef HBA_STATUS(*HBASendReportLUNsFunc)(HBA_HANDLE,HBA_WWN,void*,HBA_UINT32,void*,HBA_UINT32);typedef HBA_STATUS(*HBASendReadCapacityFunc)(HBA_HANDLE,HBA_WWN,HBA_UINT64,void*,HBA_UINT32,void*,HBA_UINT32);typedef HBA_STATUS(*HBASendCTPassThruV2Func)(HBA_HANDLE,HBA_WWN,void*,HBA_UINT32,void*,HBA_UINT32*);typedef HBA_STATUS(*HBASendRINDV2Func)(HBA_HANDLE,HBA_WWN,HBA_WWN,HBA_UINT32,HBA_UINT32,void*,HBA_UINT32*);typedef HBA_STATUS(*HBAScsiInquiryV2Func)(HBA_HANDLE,HBA_WWN,HBA_WWN,HBA_UINT64,HBA_UINT8,HBA_UINT8,void*,HBA_UINT32*,HBA_UINT8*,void*,HBA_UINT32*);typedef HBA_STATUS(*HBAScsiReportLUNsV2Func)(HBA_HANDLE,HBA_WWN,HBA_WWN,void*,HBA_UINT32*,HBA_UINT8*,void*,HBA_UINT32*);typedef HBA_STATUS(*HBAScsiReadCaPacityV2Func)(HBA_HANDLE,HBA_WWN,HBA_WWN,HBA_UINT64,void*,HBA_UINT32*,HBA_UINT8*,void*,HBA_UINT32*);typedef HBA_STATUS(*HBASendRPLFunc)(HBA_HANDLE,HBA_WWN,HBA_WWN,HBA_UINT32,HBA_UINT32,HBA_UINT32,void*,HBA_UINT32*);typedef HBA_STATUS(*HBASendRPSFunc)(HBA_HANDLE,HBA_WWN,HBA_WWN,HBA_UINT32,HBA_WWN,HBA_UINT32,void*,HBA_UINT32*);typedef HBA_STATUS(*HBASendSRLFunc)(HBA_HANDLE,HBA_WWN,HBA_WWN,HBA_UINT32,void*,HBA_UINT32*);typedef HBA_STATUS(*HBASendLIRRFunc)(HBA_HANDLE,HBA_WWN,HBA_WWN,HBA_UINT8,HBA_UINT8,void*,HBA_UINT32*);tyPedef HBA_HANDLE(*HBAOpenAdapterFunc)(char*);typedef void(*HBACloseAdapterFunc)(HBA_HANDLE);typedef HBA_STATUS(*HBAGetAdapterAttributesFunc)(HBA_HANDLE,HBA_ADAPTERATTRIBUTES*);typedef HBA_STATUS(*HBAGetAdapterPortAttributesFunc)(HBA_HANDLE,HBA_UINT32,HBA_PORTATTRIBUTES*);typedef HBA_STATUS(*HBAGetPortStaristicsFunc)(HBA_HANDLE,HBA_UINT32,HBA_PORTSTATISTICS*);typedef HBA_STATUS(*HBAGetDiscoveredPortAttributesFunc)(HBA_HANDLE,HBA_UINT32,HBA_UINT32,HBA_PORTATTRIBUTES*);typedef HBA_STATUS(*HBAGetPortAttributesByWWNFunc)(HBA_HANDLE,HBA_WWN,HBA_PORTATTRIBUTES*);typedef void(*HBARefreshInformationFunc)(HBA_HANDLE)typedef void(*HBAResetStatisticsFunc)(HBA_HANDLE,HBA_UINT32);typedef HBA_STATUS(*HBAGetEventBufferFunc)(HBA_HANDLE,HBA_EVENTINFO*,HBA_UINT32*);typedef HBA_STATUS(*HBASetRNIDMgmtInfoFunc)(HBA_HANDLE,HBA_MGMTINFO*);typedef HBA_STATUS(*HBAGetRNIDMgmtInfoFunc)(HBA_HANDLE,HBA_MGMTINFO*);
typedef HBA_STATUS(*HBAOpenAdapterByWWNFunc)(HBA_HANDLE*,HBA_WWN);typedef void(*HBARefreshAdapterConfigurationFunc)();typedef HBA_UINT32(*HBAGetVendorLibraryAttributesFunc)(HBA_LIBRARYATTRIBUTES*);typedef HBA_STATUS(*HBAGetFC4StatisticsFunc)(HBA_HANDLE,HBA_WWN,HBA_UINT8,HBA_FC4STATISTICS*);typedef HBA_STATUS(*HBAGetFCPStatisticsFunc)(HBA_HANDLE,const HBA_SCSIID*,HBA_FC4STATIS);typedef HBA_UINT32(*HBAGetNumberOfAdaptersFunc)();typedef HBA_STATUS(*HBAGetAdapterNameFunc)(HBA_UINT32,char*);图4显示说明上述类型的HBA_API命令的简化信号和流程的流程图。如从图4显然地,SM服务器与SM客户端通信,SM客户端与FC交换器通信。SM服务器、SM客户端及FC交换器彼此独立地启动并运行,如由方框402,404及406所示。公认地,下面步骤仅构成操作的一部分,更多的请求在下文中所描述的方法之前或之后发送或接收。
最初,SM服务器发送请求给SM客户端(方框408,410)。在该例子中它是HBASendLIRRFunc。详细地,SM客户端使用HBA_API以便发送由光纤通道标准FC-FS和FC-GS3定义的CT_IO,ELS或FCP_CMD序列给结构(412,414)。
在FC标准所定义的结构中产生的应答通过HBA_API调用的完成部分转发给SM客户端(418,420)。SM客户端将所述应答转发给SM服务器(422,424)。
2.FCP<->SCSI映射命令这些命令通过使用OS和OS设备驱动器资源命令的RA服务器来处理。语法可以在“光纤通道HBA_API工作草案”中找到。(ftp//ftp.t11.org/t11/pub/fe/hba/02-268v2.pdf)
typedef HBA_STATUS(*HBAGetFcpTargetMappingFunc)(HBA_HANDLE,HBA_FCPTARGETMAPPING*);typedef HBA_STATUS(*HBAGetFcpPersistentBindingFunc)(HBA_HANDLE,HBA_FCPBINDING*);typedef HBA_STATUS(*HBAGetBindingCapabilityFunc)(HBA_HANDLE,HBA_WWN,HBA_BIND_CAPABILITY*);typedef HBA_STATUS(*HBAGetBindingSupportFunc)(HBA_HANDLE,HBA_WWN,HBA_BIND_CAPABILITY*);typedef HBA_STATUS(*HBASetBindingSupportFunc)(HBA_HANDLE,HBA_WWN,HBA_BIND_CAPABILITY);typedef HBA_STATUS(*HBASetPersistentBindingV2Func)(HBA_HANDLE,HBA_WWN,const HBA_FCPBINDING2*);typedef HBA_STATUS(*HBAGetPersistentBindingV2Func)(HBA_HANDLE,HBA_WWN,HBA_FCPBINDING2*);typedef HBA_STATUS(*HBARemovePersistentBindingFunc)(HBA_HANDLE,HBA_WWN,const HBA_FCPBINDING2*);typedef HBA_STATUS(*HBARemoveAllPersistentBindingsFunc)(HBA_HANDLE,HBA_WWN);typedef HBA_STATUS(*HBAGetFcpTargetMappingv2Func)(HBA_HANDLE,HBA_WWN,HBA_FCPTARGETMAPPING*);现在参考图5,其描绘了说明上述类型的HBA_API命令的简化信号和流程的流程图。如从图5中显然地,SM服务器同样地与SM客户端通信。SM客户端又分别与防火墙和OS镜像通信。SM服务器、SM客户端、防火墙及OS镜像彼此独立地启动和运行,如由方框502,504,506及508所示。公认地,下面步骤仅构成操作的一部分,并且更多的请求在下文中所描述的方法之前和之后发送或接收。
首先,SM服务器发送请求给SM客户端(方框510,512),例如对应于HBASetPersistentBindingV2 HBA_API请求的请求。如果SM客户端具有防火墙上的直接控制,那么如果防火墙安全策略需要的话,它能够任意地修改防火墙(514,516,518,520)。然后,SM客户端通过触发所有权更新防火墙信息的发送操作来修改防火墙(514,516)。
防火墙将操作的完成发信号通知SM客户端(518,520)。然后SM客户端通过RA服务器(522,524)触发非置信OS镜像中的一组查询请求(526)。SM客户端等待所述请求的完成信息(528,530)。SM客户端将所述请求的应答返回给SM服务器(532,534)。
3.输入ELS(RNID)这些是在结构中启动并且需要转发给SM服务器的信息。这些信息用来识别SAN中出现的问题的来源。
在HBA_API中定义以处理输入ELS的命令typedef HBA_STATUS(*HBARegisterForAdapterAddEventsFunc)(void(*)(void*,HBA_WWN,HBA_UINT32),void*,HBA_CALLBACKHANDLE*);typedef HBA_STATUS(*HBARegisterForAdapterEventsFunc)(void(*)(void*,HBA_WWN,HBA_UINT32),void*,HBA_HANDLE,HBA_CALLBACKHANDLE*);typedef HBA_STATUS(*HBARegisterForAdapterPortEventsFunc)(void(*)(void*,HBA_WWN,HBA_UINT32,HBA_UINT32),void*,HBA_HANDLE,HBA_WWN,HBA_CALLBACKHANDLE*);typedef HBA_STATUS(*HBARegisterForLinkEventsFunc)(void(*)(void*,HBA_WWN,HBA_UINT32,void*,HBA_UINT32),void*,void*,HBA_UINT32,HBA_HANDLE,HBA_CALLBACKHANDLE*);typedef HBA_STATUS(*HBARegisterForAdapterPortStatEventsFunc)(void(*)(void*,HBA_WWN,HBA_UINT32),void*,HBA_HANDLE,HBA_WWN,HBA_PORTSTATISTICS,HBA_UINT32,HBA_CALLBACKHANDLE*);typedef HBA_STATUS(*HBARegisterForTargetEventsFunc)(void(*)(void*,HBA_WWN,HBA_WWN,HBA_UINT32),void*,HBA_HANDLE,HBA_WWN,HBA_WWN,HBA_CALLBACKHANDLE*,HBA_UINT32);typedef HBA_STATUS(*HBARemoveCallbackFunc)(HBA_CALLBACKHANDLE);现在参考图6,其描绘了说明上述类型的HBA_API命令的简化信号和流程的流程图。如从图6中显然地,SM服务器与SM客户端通信,SM客户端与FC交换器通信。SM服务器、SM客户端及FC交换器彼此独立地启动和运行,如由方框602,604及606所示。公认地,下面步骤仅构成操作的一部分,并且更多的请求在下文中所描述的方法之前或之后发送或接受。
SM服务器(602)指示SM客户端(604)为HBA_API的事件登记一次(608,610)并等待完成的确认(612,614),非置信OS镜像不允许登记。在这完成之后,由SAN创建的每个信息(616)触发下面过程1.SM客户端接受来自FC适配器的事件(616,618)2.SM客户端将事件转发给SM服务器(620,622)在可选实施中,SM客户端可以过滤并精简信息(616,618),以减少发送给SM服务器的信息的数量。
与本发明无关的HBA_API函数typedef HBA_UINT32(*HBAGetVersionFunc)();typedef HBA_STATUS(*HBALoadLibraryFunc)();typedef HBA_STATUS(*HBAFreeLibraryFunc)();本发明可以用硬件、软件、或硬件及软件的组合来实现。任何类型的计算机系统或适合于执行这里所描述的方法的其他装置是合适的。硬件及软件的典型组合可以是具有计算机程序的通用计算机系统,当被加载并执行时计算机程序控制计算机系统,使得它执行这里所描述的方法。本发明也可以嵌入计算机程序产品中,其包括能够实现这里所描述的方法的所有特性,并且当被加载到计算机系统中时能够执行这些方法。
本上下文中的计算机程序装置或计算机程序指的是打算使具有信息处理能力的系统或者直接地或者在以下情况a)转换成另一种语言、代码或符号;b)以不同材料形式再现的任一种或两种之后执行特定功能的一组指令的以任何语言、代码或符号的任何表示。
权利要求
1.一种用于操作多个服务器共享一个光纤通道适配器的服务器环境中的存储区域网络(SAN)的系统,该系统包括SAN管理服务器;提供到存储设备的连接的光纤通道网络;以及在所述服务器环境中运行的多个操作系统镜像;其特征在于置信SAN管理客户端单元连接到所述SAN管理服务器;光纤通道适配器(FC适配器);由此,置信SAN管理客户端单元被配置以代替所述操作系统镜像(OS镜像)的每个在所述光纤通道网络中发出命令。
2.根据前述权利要求的一个的系统,其中所述SAN管理服务器被配置以区别第一组命令和第二组命令,由此第一组命令由SM客户端和所述SAN一起处理,并且由此所述第二组命令由所述OS镜像处理而不访问所述SAN。
3.根据前述权利要求的一个的系统,其中所述SAN管理客户端被配置以区别第一组命令和第二组命令,由此第一组命令由SM客户端和所述SAN一起处理,并且从而所述第二组命令由所述OS镜像处理而不访问所述SAN。
4.根据前述权利要求的一个的系统,其中服务器环境包括虚拟服务器。
5.根据前述权利要求的一个的系统,其中服务器环境包括分区服务器。
6.根据前述权利要求的一个的系统,其中所述光纤通道适配器(FC适配器)被配置以授权所述置信SAN管理客户端单元。
7.根据前述权利要求的一个的系统,其中所述FC适配器和所述SAN适合于将非置信OS镜像的访问限制于最小必要命令集。
8.根据权利要求1-5的一个的系统,其中所述FC适配器和虚拟服务器的虚拟层适合于将非置信OS镜像的访问限制于最小必要命令集。
9.根据前述权利要求的一个的系统,其中仅一个SM客户端被提供,以便保持服务器负载小。
10.根据权利要求8的系统,其中一个或多个后备SM客户端被提供,以提供冗余。
11.根据前述权利要求的一个的系统,其中仅SM客户端被登记以接收来自SAN的信息,并且SM客户端被配置以将所述信息仅转发给所述SM服务器。
12.根据前述权利要求的一个的系统,其中FC适配器被配置以将由SAN产生的不需要登记的所有信息仅转发给SM客户端而不转发给非置信OS镜像。
13.根据前述权利要求的一个的系统,其中FC适配器被配置以便除了将原始信息转发给非置信OS镜像之外还将由SAN产生的不需要登记的所有信息的拷贝转发给SM客户端。
14.根据前述权利要求的一个的系统,其中服务器装备有两级代理,也就是SM客户端和远程访问服务器(RA服务器)。
15.根据权利要求14的系统,其中SM服务器装备有用于保存访问RA服务器的授权数据的储存库。
16.根据权利要求14的系统,其中SM客户端装备有用于保存访问RA服务器的授权数据的储存库。
17.根据前述权利要求的一个的系统,其中SM客户端和FC适配器被配置以收集用于记账每个非置信OS镜像的资源使用的可靠信息。
18.根据前述权利要求的一个的系统,其中SM架构适合于与防火墙控制应用通信,以便设置访问权限。
19.根据前述权利要求的一个的系统,其中SM客户端适合于担当从SM服务器到RA服务器的请求的路由器。
20.根据前述权利要求的一个的系统,其中RA服务器由现有的telnet/sshd服务器构成。
21.一种用于操作多个操作系统镜像共享一个光纤通道适配器的服务器环境中的存储区域网络(SAN)的方法,该方法包括步骤用具有到所述光纤通道适配器的通信路径的具有至少SAN管理服务器和至少SAN管理客户端的SAN管理软件来管理SAN;将由SAN管理服务器发出的请求分成至少两组;第一组以代替共享相同适配器的其他操作系统的对应于置信路径的SM客户端的名义由光纤通道适配器和SAN处理;以及第二组由其他操作系统处理,而不需要发送请求到FC适配器和SAN或者从那里接受请求。
22.根据权利要求21的方法,还包括步骤将包含于SAN和FC适配器中所产生的未经请求信息中的所有信息通过SAN管理客户端路由到SAN管理器。
23.根据权利要求21或22的方法,还包括步骤使用HBA_API绑定请求来修改防火墙。
24.根据权利要求21-23的一个的方法,还包括步骤操作从SAN管理客户端到适配器的通信路径,使得它不能被其他操作系统镜像修改或窃听。
25.根据权利要求21-24的一个的方法,还包括步骤仅通过置信路径上的SAN客户端,访问在适配器和SAN中产生的有关记账各个操作系统镜像的所有信息。
26.根据权利要求21-25的一个的方法,还包括步骤所述SM服务器提供授权数据给SM客户端,以执行来自所述第一组的请求。
27.根据权利要求21-26的一个的方法,还包括步骤所述SM服务器和SM客户端提供授权数据给其他OS镜像,以执行来自所述第二组的请求。
28.根据权利要求21-27的一个的方法,还包括步骤操作OS镜像,使得它们仅能够在SAN中执行有限的命令集。
29.一种存储于计算机可用媒介上的计算机程序产品,包括使计算机执行根据前述权利要求21-28任一个的方法的计算机可读程序装置。
全文摘要
本发明提供一种方法及系统来操作多个服务器共享一个光纤通道适配器的服务器环境中的存储区域网络(SAN)。SAN管理服务器管理存储系统中的区域及安全性,光纤通道网络提供到存储设备的连接,并且多个操作系统镜像在所述服务器环境中运行。此外,置信SAN管理客户端单元连接到所述SAN管理服务器,并且光纤通道适配器被配置以授权所述置信SAN管理客户端单元,由此置信SAN管理客户端单元被配置以代替所述操作系统镜像的每个在所述光纤通道网络中发出命令。
文档编号H04L29/08GK1714537SQ200380103553
公开日2005年12月28日 申请日期2003年11月25日 优先权日2002年12月20日
发明者克里斯托弗·拉丝驰 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1