虚链路发现控制方法和以太网承载光纤通道协议系统 【技术领域】
本发明涉及以太网承载光纤通道协议(FCoE)的控制技术,特别涉及一种FCoE系统中的虚链路发现控制方法、一种FCoE系统。
背景技术
随着Internet应用的不断发展,网络服务器需要存储的信息和数据越来越多,进而就导致网络服务器所需的存储容量不断增长。当网络服务器的内部存储容量无法满足信息增长的需求,就需要将网络服务器的存储“外部化”。
为了解决这一问题,现有技术中提出了存储局域网络(Storage AreaNetworks,SAN),并由SAN为网络服务器提供专用的外部存储环境,充分利用新的存储硬件技术和网络技术,满足对大容量高可靠数据的存储、访问和备份等需求。
光纤通道(Fibre Channel,FC)是SAN中应用最为广泛的一种协议,即SAN中基于FC网络传输数据。但是,实现FC网络需使用的交换机、网卡、以及线缆的数量较大,因而使得FC网络的设备成本高、维护难度大、可扩展性差。
为解决上述问题,现有技术利用FCoE协议在以太网的基础上承载FC协议,以将SAN和局域网(LAN)整合,同时还在服务器、存储设备内增设有支持FCoE的以太网卡。
参见图1,例如服务器、存储设备等以太网节点(ENode),通过增设的以太网卡的以太网接接口连接至支持FCoE的交换机(FCF)的以太网接口,FCF还具有连接至LAN的以太网接口,而FCF的FC接口则通过FC网络连接至SAN。
参见图2,ENode和FCF之间,不但具有以太层中的以太网接口间的物理链路,还具有FC层中的虚拟以太网(VN)接口与VFC(虚拟FC)接口之间的虚拟逻辑链路、简称虚链路,即VN接口->ENode以太网接口->FCF以太网接口->VFC口所形成的逻辑连接,虚拟逻辑链路的发现和维护可通过FCoE初始化协议(FCoE Initialization Protocol,FIP)报文来实现。
图3为现有虚链路发现和维护过程的流程示意图。如图3所示:
步骤301,ENode向FCF发送FIP协议的发现请求报文(FIP DiscoverySolicitation)。
步骤302,FCF对ENode地址模式进行检查。
步骤303,FCF对ENode地址模式检查通过后,向ENode返回FIP协议的发现通告报文(FIP Discovery Advertisements)。
步骤304,ENode对发现通告报文进行最大长度(MAX size)检查、并获取FCF的物理(MAC)地址。
步骤305,ENode在MAX size检查通过后,向FCF发送承载有光线通道登录(FLOGI)报文的虚链路实例化请求报文(Virtual Link InstantiationRequest)。其中,FLOGI报文属于FC协议的报文,而虚链路实例化请求报文则属于FIP协议的报文,且FLOGI报文作为FIP协议报文的描述符承载于虚链路实例化请求报文中。
步骤306,FCF根据虚链路实例化请求报文中承载的FLOGI报文创建VFC口。
步骤307,FCF判断是否允许ENode登录,并在允许ENode的VN口登录的情况下,向ENode回复承载有登录响应(LS_ACC)报文的虚链路应答报文(Virtual Link Instantiation Reply)。其中,LS_ACC报文属于FC协议的报文,而虚链路应答报文则属于FIP协议的报文,且LS_ACC报文作为FIP报文的描述符承载于虚链路应答报文中。
步骤308,ENode根据虚链路应答报文中承载的LS_ACC报文创建已向FCF登录的VN接口,从而构成该VN口与FCF的VFC口之间的虚链路。
经上述步骤301~308,虚链路发现过程结束。
步骤309,FCF按照预设间隔,周期性地向已向该FCF登录的所有ENode发送FIP协议的非发现通告报文,以供各ENode获知该FCF仍然有效、并分别维护其VN口与FCF的VFC口之间虚链路的物理层状态。
步骤310,ENode及其已向FCF登录的各VN口按照预设间隔,周期性地向所有已登录的FCF发送FIP协议的FIP保活(FKA)报文,ENode发送的FKA报文表示该ENode仍然有效、VN口发送的FKA报文则表示该VN口仍然有效。
如果FCF对ENode发送的FKA报文检查失败,则向ENode发送清除虚链路(FIP Clear Virtual Links)报文、供ENode删除其所有VN口与FCF的VFC口之间的虚链路;如果FCF对VN口发送的FKA报文检查失败,则向该VN口所在ENode发送清除虚链路报文、供ENode删除该VN口与FCF地VFC口之间的虚链路。
上述步骤308~309为虚链路维护的过程。
至此,本流程结束。
然而,现有的上述流程虽然能够实现虚链路的发现和维护,但却存在如下问题:
1、在虚链路发现过程中,FIP协议的虚链路实例化请求报文和虚链路应答报文中承载FC协议报文,故需要FIP协议具备解析和构造FC协议报文的能力。且FIP协议报文与FC协议报文存在功能上的重叠,因而使得报文交互过程冗余。
2、在虚链路维护过程中,FIP协议报文对虚链路维护的层次关系混乱。具体说,ENode在收到FIP协议的非请求通告报文后,会启动一用于维护虚链路物理层状态的虚链路超时定时器,因此,FIP协议的非请求通告报文就是用来维护虚链路的物理层状态;而FCF在接收到ENode的FLOGI报文后,会启动一用于维护VN口登录状态的虚链路定时器,VN口发送的FIP协议的FKA报文则是针对用于维护VN口登录状态的虚链路定时器,即该FKA报文是用来维护虚链路的链路层状态。
可见,现有FCoE系统中虚链路发现的实现过程复杂、虚链路维护过程的层次关系混乱。
【发明内容】
有鉴于此,本发明提供了一种FCoE系统中的虚链路发现控制方法、以及一种FCoE系统,能够简化虚链路发现过程的实现,并进一步可选地统一FIP协议报文对虚链路维护的层次关系。
本发明提供的一种FCoE系统中的虚链路发现控制方法,该方法应用于以太网节点ENode与FCoE交换机FCF之间,
该方法包括如下步骤:
a1、FCF接收ENode的发现请求报文;
a2、FCF依据ENode的发现请求报文创建VFC口、并对ENode地址模式进行检查;
a3、FCF在检查通过后向该ENode返回发现通告报文、以供该ENode对发现通告报文检查通过后创建VN口。
所述步骤a3之后,该控制方法进一步包括:FCF接收ENode周期性地发送的FCoE初始化协议保活FKA报文,并依据接收到的FKA报文维护VFC口与该ENode的VN口之间的虚链路物理层状态。
所述步骤a3之后,该控制方法进一步包括:FCF在预定周期内未收到任意ENode发送的FKA报文时,向该ENode发送清除虚链路报文、以供该ENode删除其所有VN口与FCF的与VFC口之间的虚链路。
所述步骤a3之后,该控制方法进一步包括:FCF周期性地向ENode发送非请求通告报文、以供ENode维护其VN口与FCF的VFC口之间的虚链路物理层状态。
本发明提供的另一种FCoE系统中的虚链路发现控制方法,该方法应用于以太网节点ENode与FCoE交换机FCF之间,
该方法包括如下步骤:
b1、ENode向FCF发送发现请求报文;
b2、ENode接收FCF在创建VFC口、并对该ENode地址模式检查通过后返回的发现通告报文;
b3、ENode对发现通告报文检查通过后创建VN口。
所述步骤b3之后,该控制方法进一步包括:ENode周期性地向FCF发送FCoE初始化协议保活FKA报文、以供FCF维护其VFC口与该ENode的VN口之间的虚链路物理层状态。
所述步骤b3之后,该控制方法进一步包括:ENode接收FCF由于未在预定周期内未收到该ENode发送的FKA报文而返回的清除虚链路报文、并根据清除虚链路报文删除其所有VN口与FCF的VFC口之间的虚链路。
所述步骤b3之后,该控制方法进一步包括:ENode接收FCF周期性地发送的非请求通告报文、并依据非请求通告报文维护其VN口与FCF的VFC口之间的虚链路物理层状态。
本发明提供的一种FCoE系统,包括:以太网节点ENode、FCoE交换机FCF,
ENode,用于向FCF发送发现请求报文,并在对FCF返回的发现通告报文检查通过后创建VN口;
FCF,用于依据ENode的发现请求报文创建VFC口、并对ENode地址模式进行检查,在检查通过后向该ENode返回发现通告报文。
ENode进一步周期性地向FCF发送FCoE初始化协议保活FKA报文;
FCF进一步依据FKA报文维护其VFC口与该ENode的VN口之间的虚链路物理层状态。
FCF进一步在预定周期内未收到任意ENode发送的FKA报文时,向该ENode发送清除虚链路报文;
ENode进一步依据清除虚链路报文删除其所有VN口与FCF的与VFC口之间的虚链路。
FCF进一步周期性地向ENode发送非请求通告报文;
ENode进一步依据非请求通告报文维护其VN口与FCF的VFC口之间的虚链路物理层状态。
由上述技术方案可见,本发明去除了虚链路发现过程的虚链路实例化请求报文和虚链路应答报文、并将其承载的FC协议报文所涉及的处理过程归还给FC协议执行,因而既能够避免报文交互的冗余、又无需FIP协议具备解析和构造FC协议报文的能力、还可节省FIP协议报文的描述符,从而能够简化虚链路发现过程的实现。
进一步地,本发明还在虚链路维护过程中,使所有FIP协议报文均实现对虚链路物理层状态的维护,从而能够统一FIP协议报文对虚链路维护的层次关系、并进一步简化虚链路发现过程的实现。
【附图说明】
图1为现有FCoE系统的结构示意图;
图2为如图1所示FCoE系统中的虚链路示意图;
图3为现有虚链路发现和维护过程的流程示意图;
图4为本发明实施例中虚链路发现和维护过程的流程示意图。
【具体实施方式】
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本实施例中,将虚链路发现过程中的虚链路实例化请求报文和虚链路应答报文、并将虚链路实例化请求报文和虚链路应答报文中承载的FC协议报文所涉及的处理过程归还给FC协议执行。这样,既能够避免报文交互的冗余、又无需FIP协议具备解析和构造FC协议报文的能力、还可节省FIP协议报文的描述符,从而能够简化虚链路发现过程的实现。
相应地,虚链路实例化请求报文和虚链路应答报文被去除,因而ENode创建VN口、以及FCF创建VFC口的时机需要做相应调整。对此,本实施例为了避免VN口和VFC口创建时机过晚而导致FIP协议报文丢失,因而在FCF接收ENode的请求发现报文并检验通过后创建VFC口、在ENode接收并检验通过FCF发送的发现通告报文后创建VN口,也即将ENode创建VN口、以及FCF创建VFC口的时机提前。
进一步地,由于虚链路实例化请求报文和虚链路应答报文中承载的FC协议报文所涉及的例如登录等处理过程归还给FC协议执行,因而本实施例在虚链路维护过程中,可以使所有FIP协议报文均实现对虚链路物理层状态的维护,而去除现有VN口发送的用于维护虚链路的链路层状态的FKA报文,从而能够统一FIP协议报文对虚链路维护的层次关系、并进一步简化虚链路发现过程的实现。
图4为本发明实施例中虚链路发现和维护过程的流程示意图。如图4所示:
步骤401,ENode向FCF发送FIP协议的发现请求报文。
步骤402,FCF依据ENode的发现请求报文创建VFC口、并对ENode地址模式进行检查。
步骤403,FCF在ENode地址模式检查通过后,向该ENode返回发现通告报文。
步骤404,ENode对接收自FCF的发现通告报文进行MAX size检验,并在MAX size检验通过后创建与该FCF的VFC口连接的至少一个VN口。
上述步骤401~404为本实施例中虚链路发现过程,虚链路发现过程中的登录过程可以由FC协议来完成,如何利用FC协议实现VN口的登录为本领域技术人员所能够实现,在此不再赘述。
步骤405,ENode按照预定间隔,周期性地向FCF发送仅表示ENode仍然有效的FKA报文、而不再发送表示VN口有效的FKA报文。这样,FCF即可按照现有针对ENode的FKA维护虚链路物理层状态的方式,维护其VFC口与该ENode各VN口之间的虚链路物理层状态,而现有对虚链路的链路层状态的维护则可以归还给FC协议来执行,如何利用FC协议实现虚链路的链路层状态为本领域技术人员所能够实现,在此不再赘述。
当然,如果FCF在预定周期内未收到任意ENode发送的FKA报文时,则可向该ENode发送清除虚链路报文、以供该ENode删除其所有VN口与FCF的与VFC口之间的虚链路。
步骤406,FCF按照预设间隔,周期性地向ENode发送表示该FCF仍然有效的非请求通告报文。这样,ENode即可维护其各VN口与FCF的VFC口之间的虚链路物理层状态。
上述步骤405~406为虚链路维护过程,且步骤405与406可以周期性地按照任意顺序交替执行、而不是405必须在406之前执行。
至此,本流程结束。
可见,上述虚链路发现流程中省略了虚链路实例化请求报文和虚链路应答报文、并将其承载的FC协议报文所涉及的处理过程归还给FC协议执行,因而既能够避免报文交互的冗余、又无需FIP协议具备解析和构造FC协议报文的能力,还可节省FIP协议报文中为具备解析和构造FC协议报文、而设置的与FC协议功能重叠的如下现有描述符:FLOGI、发现F端口服务参数及N端口虚拟化(Discover F_Port Service Parameters N_Port_IDVirtualization,FDISC_NPIV)、退出登录(LOGO)、交换链路参数(ELP)、VN口标识(VN_Port_Identification)
从而,上述虚链路发现流程能够简化虚链路发现过程的实现。
进一步地,上述虚链路维护流程中,使所有FIP协议报文均实现对虚链路物理层状态的维护,从而能够统一FIP协议报文对虚链路维护的层次关系、并进一步简化虚链路发现过程的实现。
基于上述方法,本实施例还提供了一种FCoE系统,该FCoE系统仍包括ENode和FCF,其中,为了实现虚链路的发现:
ENode,用于向FCF发送发现请求报文,并在对FCF返回的发现通告报文进行MAX size检查通过后创建VN口;
FCF,用于依据ENode的发现请求报文创建VFC口、并对ENode地址模式进行检查,在ENode地址模式检查通过后向该ENode返回发现通告报文。
进一步地为了实现虚链路的维护:
ENode进一步周期性地向FCF发送仅表示该ENode仍然有效的FKA报文,而不再发送表示VN口仍然有效的FKA报文;相应地,FCF进一步依据FKA报文维护其VFC口与该ENode的VN口之间的虚链路物理层状态,当然,如果FCF在预定周期内未收到任意ENode发送的FKA报文,则向该ENode发送清除虚链路报文,那么ENode则进一步依据清除虚链路报文删除其所有VN口与FCF的与VFC口之间的虚链路;
此外,FCF还可进一步周期性地向ENode发送非请求通告报文;相应地,ENode进一步依据非请求通告报文维护其各VN口与FCF的VFC口之间的虚链路物理层状态。
可见,上述FCoE系统省略了虚链路发现过程的虚链路实例化请求报文和虚链路应答报文、并将其承载的FC协议报文所涉及的处理过程归还给FC协议执行,因而既能够避免报文交互的冗余、又无需FIP协议具备解析和构造FC协议报文的能力、还可节省FIP协议报文的描述符,从而能够简化虚链路发现过程的实现。进一步地,该FCoE系统还在虚链路维护过程中使所有FIP协议报文均实现对虚链路物理层状态的维护,从而能够统一FIP协议报文对虚链路维护的层次关系、并进一步简化虚链路发现过程的实现。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。