存储 频道

存储域的系统结构和功能需要

  【IT168 技术】正像现实社会中经济基础决定上层建筑,而在计算机系统中,系统的物理结构决定其逻辑结构。因此在讨论网络存储结构时必须首先定义系统的物理架构。

  现有的存储结构,包括传统的DAS、基于网络的存储结构NAS、SAN、iSCSI、VIA、NASD。在一个大规模网络存储环境中,这几种存储结构往往交织在一起构成更大、更复杂的海量存储系统--存储域系统。

  显然几种常用的存储结构都被容纳到这个基本构架中。每个存储域都具有一个或者多个物理的存储域服务器,通过使用集群技术可以表现为一个逻辑存储域服务点和主控制器的作用,它起到统一管理存储域中所有存储资源的作用,同时也可以方便客户存取存储域中的数据。

  图 1的左上方是一些NAS设备,它们通过以太网络和存储域服务器与客户端相连,同时在域控制器的左上还有iSCSI设备,它也是通过高速以太网连接到存储域服务器。在存储域的下面是一个复杂的SAN环境,SAN中包含许多个光纤通道的磁盘阵列,它们连接到二级光纤通道交换机上,在SAN系统的右边传统基于SCSI的存储设备如磁道库、光盘塔以及磁盘阵列等可以通过SCSI到光纤通道的桥连接到二级光纤通道交换机上。

  若干个光纤通道交换机连接到一级光纤通道交换机上,为了保证光纤通道链路的高可用性可以采用冗余线路进行连接,图 1也示范性的画出了冗余线路。同时SAN中,多个服务器共同连接到SAN上,其中包括不同操作系统的服务器和不同功能的应用服务器,同时这些服务器也连接在外部以太网上,为客户提供各种服务。大量的客户机通过TCP/IP网络访问此网络存储域。在一个存储域中可以包含一个或者多个物理的存储域服务器,一方面可以保证存储服务的高可用性,另一方面也可以减少某一台存储服务器的负载。

  在复杂的SAN环境中,包含一系列Hub、交换机连接存储设备和主机。存储网络必须同时满足多个主机--存储设备对之间高效数据流连结。但这种并发数据流的数量达到上百时,手工设计几乎是不可能完成的。使用自动的结构设计可以在很大程度上解决这个问题,但设计这种自动构建的算法是很难的。

  对于在复杂存储网络中数据流寻找最小开销的问题是一个NP问题,它涉及到很多的约束,如节点容量、性能、运行开销等。文献[1]介绍了两种SAN存储网络结构自动构建算法FlowMerge和QuickBuilder。

  在存储域中引入存储域服务器的目的是为了对存储域的资源进行必要的全局管理和提供全局的存储服务,提高存储域的空间使用率、降低整体的成本以及提高服务质量。

  存储域服务器的具体目标表现为下几个方面:

  1)数据通道和控制通道分离。应用服务器或者客户机可以从存储域服务器上获得要访问设备上的地址信息,就可以直接地存取存储设备上的数据。这使得数据流无需经过存储域服务器,消除了存储域服务器的性能瓶颈,为数据密集性程序提供了更好的性能。

  2)多平台的数据共享。存储域服务器提供元数据的管理服务是独立于不同的操作系统平台。元数据管理服务独立于操作系统和存储设备,元数据包括目录名,文件名,最后修改日期等信息,只需要按照存储域管理协议的要求就可以实现数据的访问。同时存储域服务器提供锁机制保证数据在多台异构计算机间共享时的一致性。

  3)基于策略的存储和数据管理。存储域服务器最重要的目标是减少管理大数据量、复杂环境的存储系统的成本。达到这个目标的重要方法就是提供基于策略的存储和数据管理。存储域服务器必须提供相应的方法和工具自动地管理存储资源和存储之上的数据。例如根据特定应用程序的要求自动的分配文件到合适的存储设备上。

  4)提供服务器、客户端和存储设备的可扩展性。存储在SAN中的数据量是在不断增长,而且难于估计。元数据管理器必须适应数据、服务器、客户端和存储设备的扩展性。表现在掌握和控制存储的容量(PB),高效的管理大量的文件(Billions),保证大量用户的连接、控制、存取文件。增加存储域服务器以提供处理负载能力,保证负载均衡,同时这种结构应该满足不同规模SAN的需要。

  5)服务器和数据的高可用性。存储域服务器之间构成集群结构。这种集群结构必须保证负载平衡和服务器宕机时服务的持续性和性能,把失败服务器上的负载自动转移到其他存储域服务器上。存储域服务器应该方便管理和维护、在线地增加和删除存储设备、分配存储空间、移动数据、初始化备份和异地容灾等等,而这些都不会影响存储的正常运行。

  6)提供全局的命名空间和单系统语义。存储域服务器必须提供给所有用户同样的命名空间视图,而不需要手工的配置。不管文件实际上存在于哪一个具体的系统中,文件都能够通过文件名和路径完全的标识。而且存储域服务器组织全局的命名空间使得客户不应该知道存储的具体细节,这称为位置独立性。增加本地文件系统的操作语义,提供锁机制,以保证在服务器或者客户机宕机时,余下系统的cache一致性和正确的操作语义。

  7)多服务器平台。域服务器必须具有一种可移植的、用户级的文件系统。服务器的移植性保证管理员根据情况选择合适的机器安装存储域服务器。

  8)对于所有类型的文件提供高性能的I/O。因为SAN中应用服务器取得元数据后直接访问存储设备,所有的文件I/O操作应该和本地系统一样快。而使用分条可以使得存储设备并行存取数据,从而具有比本地系统更高的性能。平时必须设计满足不同文件类型的性能要求,如小文件和大文件。对于大文件通过减少数据存取的路径从而提供性能,对于小文件通过精确的Cache和预取策略提高效率。

  9)客户机对存储域中的存储设备可以进行授权使用。客户机可以使用自己的管理方法对已经授权的存储资源和设备进行管理,不必所有的控制都通过域服务器进行管理。

  存储域服务器在存储域环境中起到元数据服务器和数据管理的作用,当其他应用服务器访问存储域中存储设备时,首先访问域服务器获得元数据信息或者是授权,之后再访问存储设备。

  从图 1中,我们可以看到一个网络存储域包含各种各样的存储设备,每种存储提供的存取方式也不尽相同,主要划分为两大类,一种是提供文件级的操作方式,另一种是使用数据块级的存取方式。从底层的网络连接形式上又分为TCP/IP网络和光纤通道网络。

  从数据用户上分为本地应用服务器的访问和远地客户机的访问,其中前者往往更多的存取SAN中的数据,而远地客户端往往访问NAS、iSCSI设备或者通过存储域服务器访问SAN的内部数据。

  从上面对网络存储域的分析可以看出存储域内部的数据组织方式必须具有极大的灵活性,从而才能满足多种多样的存储服务需要。

  在存储域中集中管理的任务由存储域服务器完成。和元数据服务器在SAN中一样,存储域服务器仅仅对全局的元数据进行管理,当客户访问数据时,直接可以访问NAS设备,也就是数据存取路径不经过存储域服务器,这样避免存储域服务器的瓶颈问题。

  与SAN相对而言,存储域服务器可以更为简单,因为NAS设备自己可以管理自己的存储空间,而存储域服务器仅仅需要维护全局命名空间。全局命名空间为用户提供一个全局存储空间,但它并不一定是多个NAS命名空间的简单叠加。例如,如果用户对某个文件有较高的可用性要求,在全局命名空间中唯一标识的这个文件有可能实际存放在多个NAS设备上。全局空间到NAS存储空间映射的数据结构由存储域服务器负责维护。从这一点可以看出,使用存储域服务器后,NAS系统具有更大的灵活性和更强的功能。

  由于iSCSI提供数据块的操作语义,因此其访问方式和SAN中应用服务器访问SAN中存储设备的方法相同。

  综合以上两种访问存储域的方式,存储域服务器可以同时扮演多个角色,即SAN中的元数据服务器和NAS集中管理服务器。同时存储域服务器还应该根据用户的需要实现数据块级的存储服务和文件级的存储服务,并在所有存储设备的基础上构建一个全局命名空间。

  因此存储域服务器的设计对整个存储域的服务方式和质量起到至关重要的作用。根据上面的存储域的物理结构,我们设计存储域逻辑结构。其中心问题就是存储域服务器的内部结构,而内部结构的核心就是存储域文件系统。

  存储域文件系统的内部层次结构,通过这种层次结构存储域文件系统可以为应用提供多种存取手段。包括上面提到的NAS访问机制。其中每个层次都可以根据需要单独提供存储服务。

  存储域中存在三种访问方式,一种是授权访问,称为授权模式,也就是把存储域中的部分存储空间授权给客户,当客户得到授权后,可以直接访问这部分存储空间,这种方式可以减少客户和服务器之间的交互次数,适用于具有管理自身文件存储空间的NAS设备。

  另一种方式称为输出模式,客户访问数据的存取路径都要经过存储域服务器,也就是存储域提供NAS功能和数据块访问功能,这种方式不需要客户安装专门的客户端,直接使用NFS,或者CIFS以及iSCSI客户端就可以存取存储域导出的存储资源。因此如果远程用户需要存取SAN中的数据,就把存储域服务器作为一个NAS头或者使用iSCSI方式提供块级服务。但采用这种方式数据流必须经过域服务器转发。

  第三种方式,称为管理模式,就是存储域提供完全的数据存储服务,包括数据存储空间创建、数据分配、存储空间的回收等存储功能,数据的实际存取路径不通过存储域服务器,由客户直接和存储设备交换数据;元数据由域服务器保存,所有的目录操作都在域服务器中执行,但是这种方式必须要求客户端安装专用的客户端软件才能实现。

0
相关文章