发明内容
本发明的目的是提供一种系统和方法,以在把数据存储驱动器从一个数据存储设备上移除并且接入到另一个数据存储设备上时,能保持该数据存储驱动器的操作功能性。
根据本发明的一个方面,提供一种在数据存储驱动器可通信地与第一数据存储设备分离并可通信地连接到第二数据存储设备后,保持访问其中的一个或多个数据池的方法,该方法包括:当所述第二数据存储设备运转时,使用存储在所述数据存储驱动器中的用于配置一个或多个数据池的配置数据。
优选地,所述数据存储驱动器包括一个或多个分区,以及存储在一个或多个分区的元数据。
优选地,所述元数据位于所述一个或多个分区的一个或多个字段中。
优选地,所述元数据用于构造或级联数据池。
优选地,所述一个或多个分区位于一个或多个数据存储驱动器中,所述一个或多个数据存储启动器位于一个或多个数据存储设备中。
优选地,所述一个或多个数据存储驱动器位于两个或多个数据存储设备中。
根据本发明的另一方面,提供一种在数据存储驱动器从第一网络数据存储设备转移到第二网络数据存储设备后,保持使用其中一个或多个参数的方法,该方法包括使用数据存储驱动器通信连接到第一网络数据存储设备时、存储在所述第一网络数据存储设备的存储器中的一个或多个参数,所述一个或多个参数用于提供数据存储管理。
优选地,所述一个或多个参数包括一个或多个密码。
优选地,所述一个或多个密码用于提供用户鉴定。
优选地,所述用户鉴定选择性地提供创建和/或修改一个或多个数据池的权限。
优选地,所述用户鉴定选择性地提供创建和/或修改一个或多个共享的权限。
优选地,所述修改包括调整数据池的大小。
优选地,所述创建和/或修改由用户通过GUI(图形化用户接口)来执行,其中,所述用户鉴定成功时提供所述GUI。
根据本发明的再一方面,提供一种保持共享访问配置设定的方法,其中,可以使用一个或多个共享访问机制来访问一个或多个数据池中的一个或多个共享,所述方法包括在所述数据存储启动器从第一数据存储设备转移到第二数据存储设备后,使用该数据存储驱动器内的共享特性变量数据库。
优选地,所述共享特性变量数据库包括一个或多个“名字值”对。
优选地,所述“名字值”对存储在所述数据存储驱动器的所述一个或多个数据池的其中一个之中。
优选地,所述访问一个或多个共享可通过以下一个或多个方式:NFS、CIFS、FTP和HTTP。
根据本发明的一方面,提供一种保持操作功能性的系统,所述操作功能性包括在数据存储驱动器可通信地与第一数据存储设备分离并可通信地连接到第二数据存储设备后,提供对其中一个或多个数据池的访问,所述系统包括:
位于所述第一数据存储设备内的存储器;
驻留于所述存储器内的软件;以及
用于执行所述软件的处理器,其中通过执行所述软件将一个或多个分区级联在一起以允许访问所述一个或多个数据池。
优选地,所述操作功能性包括使用存储在所述存储器中的一个或多个参数,所述一个或多个参数用于给数据池分配数存储空间。
优选地,所述数据存储空间包括来自一个或多个数据存储驱动器的空间。
优选地,所述数据存储驱动器包括硬盘驱动器。
优选地,所述操作功能性还包括使用存储在数据存储驱动器中的数据库,其中,当所述数据存储启动器从第一数据存储设备转移到第二数据存储设备时,使用该数据库来启用或停用共享访问所用的一个或多个机制。
本发明的有益效果将结合后面的具体实施方式详细描述。
具体实施方式
本发明提供了一种通过使用一个或多个数据存储设备操作数据存储驱动器的系统和方法。在典型的实施例中,一个或多个数据存储设备包括一个或多个能联网的数据存储设备。这种数据存储设备可称为网络存储器(NAS)。本发明可确保数据存储驱动器从一个数据存储设备转移到另一个数据存储设备时,能保持相同的操作功能性。在另一个典型的实施例中,所述操作功能性包括访问一个或多个数据池的任何一个数据池的能力。所述一个或多个数据池可以通过采用一个或多个数据存储驱动器来构造。在又一个典型的实施例中,所述操作功能性包括通过使用一个或多个访问控制暂停或继续一个或多个数据池中的一个或多个共享。在又一个典型的实施例中,操作功能性包括使用一个或多个预先配置好的设定。所述设定可以包括一个或多个管理参数如管理员密码、共享访问密码、磁盘管理参数和网络参数。所述网络参数用于通过使用数据存储驱动器来适当地配置数据存储设备,例如创建、修改、访问一个或多个共享和/或一个或多个数据池。
本发明允许数据存储驱动器被另一个数据存储设备操作时保持自身的功能性。所述功能性包括采用该数据存储驱动器移动到所述另一个数据存储设备之前使用的任何设置或配置。因此,如果在数据存储驱动器从一个数据存储设备移动到另一个数据存储设备时访问了数据池中的数据,那么,该数据存储驱动器的所有预先设置或配置将被保留。在一个典型的实施例中,当一个或多个其他的数据存储设备操作该数据存储驱动器时,用于适当地配置一个或多个数据池的配置数据被保留。在另一个典型的实施例中,当把数据存储驱动器从一个数据存储设备上移除并把该数据存储驱动器并入另一个数据存储设备中时,与一个或多个管理功能或安全功能关联的数据或元数据具有完全相同的操作性和功能性。例如,所述元数据可以包括用于一个或多个管理安全(如鉴定或核实)功能的一个或多个管理参数。例如,所述一个或多个管理参数可包括一个或多个密码,所述密码用于检验打算访问数据的用户的身份。所述一个或多个管理参数提供许可或者使授权过程变得容易,这样,用户就可以获得对一个或多个数据池的共享访问权。例如,一个或多个经授权的用户可以获得对所述一个或多个数据池的访问权。例如,一个或多个经授权的用户可以获得对所述一个或多个数据池的其中一个数据池的共享的访问权。因此,转移数据存储驱动器时,任何在一个数据存储设备中使用的管理参数,都可以在另一个数据存储设备中充分地使用。这样,当数据存储驱动器从一个数据存储设备转移到另一个数据存储设备时,任何的访问控制或管理设置/配置都被保留并且具有充分的操作性。
本发明提供了一个或多个机制的保持力,通过该机制可以使一个或多个授权用户暂停或继续访问共享(或共享文件夹)。可使用共享特性变量(sharespecific variable)来制定启用或不启用特定的共享访问控制(或服务)。例如,所采用的一个或多个机制包括以下协议:NFS(即网络文件系统)、CIFS(即共用因特网文件系统)、FTP(即文件传输协议)和HTTP(即超文本传输协议)。所述一个或多个机制中的任何一种机制都提供一种访问共享(或经授权用户能访问的共享文件夹)的方法。例如,当采用CIFS协议时,名为cifs_enable的变量作为共享特性变量,用于确定CIFS是否提供对共享内容的访问(例如,cifs_enable=YES)。同样,nfs_enable作为共享特性变量,用于确定NFS是否提供对特定共享内容的访问(例如,nfs_enable=NO)。这些示范性的变量每一个都可以设以一个值,该值控制(即,启用或不启用)自身的共享访问控制服务。相应地,每种服务(即CIFS、NFS和其他类似的)可以提供对各自对应的共享内容的访问权。另一方面,如果这些变量中某一个被设定了一个值并且该值不启用自身关联服务的共享访问,则对应的服务就不被启用。NAS软件的执行除了采用一个或多个变量来启用特定的共享访问控制服务外,还可以采用一个或多个默认控制变量。例如,如果没有为某特定共享定义cifs_enable的值,那么就根据cifs_enable对应的默认变量cifs_enable_default来确定能否通过CIFS服务来访问该共享。每个共享都关联到一个文件,该文件包括了该共享的共享特性变量数据库。该共享特性变量数据库可位于该共享对应的数据池。所述共享特性变量数据库可包括文本文件,该文本文件包括一个或多个“名字值”对。例如,share_share#1_cifs_enable可用作变量名,而其值可以设为’enable’(即share_share#1_cifs_enable=’enable’)。变量名用于识别共享,而值则用于提供旗标,该旗标显示与该共享关联的特定功能或操作的状态。所述包含共享特性变量数据库的文件可以命名为share_XXX_vars.txt,其中,XXX对应于其关联的共享名。例如,如果特定的数据池具有共享名字Share1、Share2和Share3,该数据存储器的Reiser文件系统把对应的共享特性变量数据库分别命名为share_Share1_vars.txt、share_Share2_vars.txt和share_Share3_vars.txt。如果共享没有包含对应的share_XXX_vars.txt文件,则该共享被认为是没有共享变量的共享。每个共享的共享特性数据库位于共享外部的文件中。(例如,共享特性变量数据库可以位于对应的数据池中,但是在共享的外部。)在一个典型的实施例中,当数据存储驱动器从一个数据存储设备转移到另一个数据存储设备时,该共享特性变量数据库被保留。所述共享特性变量数据库可以位于该数据存储驱动器。所述共享特性变量数据库可以包括一个或多个数据文件。在又一个典型的实施例中,所述一个或多个数据文件可以包括一个或多个文本文件。例如,所述数据存储驱动器可以包括硬盘驱动器。美国申请序列号为____、申请日期为2006年1月25日(代理标签号为16352US02)、名称为“弹性地提供对数据池的共享访问的系统和方法”(METHOD AND SYSTEM FOR LFEXIBLY PROVIDING SHARED ACCESS TO DATA POOLS)的文本中,能找到描述共享特性变量的详细信息和通过一个或多个机制实现暂停或继续对共享的访问。本文完全地参考了所述文本的主旨。
所述一个或多个数据存储设备中的每个数据存储设备可以与数据计算设备如个人电脑通信或协同工作。每一个所述的数据存储设备都能够接纳和操作一个或多个数据存储驱动器。所述一个或多个数据存储设备中的每个数据存储设备都易于合并附加的数据存储驱动器或硬盘驱动器。数据存储设备包括用于接纳所述的一个或多个数据存储驱动器的设备。数据存储设备能够通过不费力地结合一个或多个附加的数据存储驱动器来达到存储容量的扩充。例如,所述数据存储驱动器包括硬盘驱动器。所述一个或多个存储驱动器可用于提供一个或多个数据池。所述数据池可提供一个或多个共享(或共享文件夹)。经授权的一个或多个用户能够访问所述共享中的数据。
本发明使用一个或多个硬盘驱动器中的一个或多个区或分区的编码部分,这些分区级联在一起以形成一个或多个数据池。所述编码部分包括驻留在所述一个或多个区或分区的一个或多个头部的数据。存储在头部的一个或多个数据字段中的信息,可用于映射和访问来自一个或多个分区的特定的数据,这样,用户就能够访问和找回所请求的一个或多个数据池。所述数据池包括取自一个或多个数据存储器的分区。位于每个分区的头部可称为存储池信息块、存储池信息超级块或磁盘超级块。当数据存储驱动器从一个数据存储设备移动另外一个数据存储设备时,所述一个或多个参数也随着转移并提供相同的或同样的操作功能性。所执行的编码可以是冗余码,包括对存储在一个或多个头部的一个或多个字段/一个或多个数据存储设备中的一个或多个分区的数据的进行编码。例如,所述一个或多个字段可在PIB中包含方格分区说明字段。当然,一个数据池对应于一个或多个硬盘驱动器上的一个或多个分区的共享,于是生成了“逻辑驱动器”。在一个典型的实施例中,头部(或PIB)被复制而生成了第二个头部。同样地,两个PIB被分到两个分区时,就相当于重复测量,形成了双PIBs或镜像PIBs。数据存储驱动器可用于存储视频或多媒体数据,所述视频或多媒体数据由电缆操作员或电信供应商提供。数据存储驱动器可通讯地连接到一个或多个数据处理设备(如个人录像机(PVR)、PVR机顶盒、计算机、PDAs、数字设备及类似设备),所以数据存储驱动器能接收来自所述一个或多个数据处理设备的数据,也能够把数据传送给所述一个或多个数据处理设备。例如,存储设备可连接到网络,一个或多个数据处理设备可对该存储设备进行读或写。因此,所述的存储设备可称为网络存储器(NAS)。申请日期为2005年3月22日、美国专利申请序列号为11/087136、名称为“通过使用一个或多个数据存储驱动器管理和分配存储容量的系统和方法”(METHON AND SYSTEMOF DATA STORAGE CAPACITY ALLOCATION AND MANAGEMENT USING ONE OR MOREDATA STORAGE DRIVERS)的文本中有关于PIB的用途及结构的详细信息。本文完全地参考了所述文本的主旨。
在一个典型的实施例中,与适当地配置一个或多个数据池、共享目录关联的访问控制设置或配置数据,以及管理访问控制参数存储在闪存或永久性存储器中。可以用过浏览器如Microsoft的Internet Explorer提供的用户接口来指定访问控制设置或配置数据。在另一个典型的实施例中,用户执行configuration.html文件时会调用浏览器。在又一个典型的实施例中,与适当地配置一个或多个数据池、共享目录关联的访问控制设置或配置数据,以及管理访问控制参数存储在便携式数据存储驱动器的分区或区中。例如,便携式数据存储驱动器包括便携式硬盘驱动器。在一个典型的实施例中,存储有所述配置信息的分区包括硬盘驱动器的存储池信息块(或超级块)分区。例如,所述一个或多个存储池信息块或超级块可被鉴定为硬盘驱动器中一个或多个分区的头部。与一个或多个分区、共享相关的数据,或者访问控制参数存储在硬盘驱动器的PIB中。例如,PIB可以包括RAID(独立磁盘冗余阵列,简称磁盘阵列)程序块字段,所述程序块字段用于指定RAID程序块的大小。所述RAID程序块的大小是一个参数,执行镜像或分割时,该参数用于级联一个或多个分区。在一个典型的实施例中,硬盘驱动器的分区包括一个或多个PIB。申请日期为2005年3月22日、美国专利申请序列号为11/087136、名称为“通过使用一个或多个数据存储驱动器管理和分配存储容量的系统和方法”(METHONAND SYSTEM OF DATA STORAGE CAPACITY ALLOCATION AND MANAGEMENT USING ONEOR MORE DATA STORAGE DRIVERS)的文本中有关于PIB的用途及结构的详细信息。本文完全地参考了所述文本的主旨。
本发明的各个方面允许数据存储设备采用常驻在数据存储设备的存储器中的软件软件和/或固件以易于适当地配置和建立一个或多个数据池/共享目录和适当地操作一个或多个管理访问控制。总的来说,与适当地配置和建立一个或多个数据池/共享目录相关的所有的必要的配置数据,以及管理访问控制参数都存储在一个或多个分区中(如,硬盘存储驱动器磁盘头部和/或存储池信息块(或超级块)中)。在一个典型的实施例中,数据存储设备称为NAS。申请日期为2005年2月3日、美国专利申请序列号为11/049905、名称为“支持个人视频录像的数据存储系统和方法”(DATA STORAGE SYSTEM AND METHODTHAT SUPPORTS PERSONAL VIDEO RECORDER FUNCTIONALITY)中,能找到与本发明所述的NAS相关额外信息。本文完全地参考了所述文本的主旨。
在一个典型的实施例中,数据存储设备包括一个或多个配置文件,用户可以使用Microsoft的“资源管理器”程序来显示所述配置文件。在另一个典型的实施例中,在Microsoft的资源管理器提供的用户接口中,可以用鼠标轻易地选择或执行一个或多个配置文件,方式是在用户接口中用鼠标“瞄准和点击”。当一个或多个配置文件被执行后,网络浏览器随后被执行以提供一个友好的图形化用户接口(GUI)。例如,所述网络浏览器包括Microsoft的IE浏览器。所述GUI提供一个或多个字段,用户可以往其中输入一个或多个密码以激活一个或多个功能和/或操作。例如,所述一个或多个功能和/或操作包括创建和编辑一个或多个数据池。所述一个或多个功能和/或操作包括创建和编辑一个或多个共享文件夹,某些用户能够访问该共享文件夹。在一个典型的实施例中,所述一个或多个功能和/或操作包括管理访问控制参数如一个或多个密码。
图1是本发明一个优选实施例中,结合了NAS 100的使用的系统的结构示意图。所述NAS 100给一个或多个数据处理设备提供数据存储服务。图中,交换设备提供NAS 100与一个或多个数据处理设备之间的连通性。所述交换设备能通过采用有线通信和无限通信提供连通性。例如,无限路由器可以使用以下无线/有线数据通信协议中的任一种:10/100以太网、千兆以太网、802.11x、蓝牙及其他类似协议。所述一个或多个数据处理设备包括数字摄像机、数码相机、MP3播放器、PDA和一个或多个PVRs等设备。如图所示,PVR可以具有硬盘驱动器,也可以没有硬盘驱动器。在一个实施例中,PVR也称为具有个人视频录像(PVR)功能的机顶盒(STB)。在该实施例中,PVR也称为PVR-STB。图中,PVR连接到电视机或能向家庭用户显示多媒体内容的显示器。NAS 100的使用,为PVRs接收到的多媒体内容提供了集中存储设备。因为能把内容存储到NAS 100中,所以不具有存储设备如硬盘驱动器的PVRs把其接收到的任何数据都存储到NAS 100中。另外,任何一个数据处理设备都能够容易地访问和查看其他数据处理设备包括PVRs存储的数据。例如,不具有硬盘驱动器的PVR能够访问具有硬盘驱动器的PVR存储在NAS 100中的信息;反过来,具有硬盘驱动器的PVR能够访问不具有硬盘驱动器的PVR存储在NAS 100中的信息。因此,NAS 100便于在一个或多个数据处理设备之间共享数据。因为NAS 100支持远程存储机制,因为可以认为NAS 100是一个或多个数据处理设备的“虚拟存储设备”。NAS 100经过配置,能够容易地扩从自身的存储容量。在一个典型的实施例中,NAS 100能接纳附加的硬盘驱动器。在另一个实施例中,通过把附加的NAS连接到现有的NAS,从而扩充了NAS的存储容量。可用一个或多个连接器或线缆把多个NAS连接在一起。同样的,NAS 100提供了容易的可升级的和有弹性的存储机制,该机制用于容纳未来的数据存储的增长。另外,NAS100能够提供数据镜像和数据分割功能。
当NAS第一次被引入到图1所示的示范的交换设备中时,NAS的一个或多个参数被建立,该过程是初始化过程的一部分。在一个实施例中,初始化过程中参数的建立包括NAS的时间、日期和时区。例如,NAS可以利用图1所示的计算机作为参考源来设定自身的时间、日期和时区。可设想到,在初始化过程中,NAS可以利用图1所示的任何一个其他的数据处理设备(如数字摄像机、数码相机、不具有硬盘驱动器的PVR、具有硬盘驱动器的PVR、MP3播放器或PDA)作为参考源。
图2根据本发明的实施例的NAS 200的结构示意图。NAS 200包括印刷电路板(NAS PCB)202,该PCB上包含一个或多个组件。所述一个或多个组件通过PCB 202导电性地互相连接。所述一个或多个组件包括NAS芯片(NASoC)204(图3中对该芯片进行了描述)、随机访问存储器208、闪存212、AC电源接口216、电源220、一个或多个接口224、无线收发器/天线模块228、一个或多个硬盘驱动器232和控制器236。所述一个或多个接口224可包括以下接口:IEEE 1394、USB、10/100以太网、千兆以太网、PCI、SATA、ATA、IDE、SCSI、GPIO等。所述无限收发器/天线模块228可以包括可附加的模块或迷你PCI卡,该迷你PCI卡能够选择性地连接到或附加到PCB 202中。取决于NAS 200的设计,所述一个或多个硬盘驱动器232可以包括任意数目的硬盘驱动器。可以配置PCB 202以容纳适当数目的硬盘驱动器。使用的硬盘驱动器的数目取决于NAS 200提供的镜像类型或数据分割(即RAID)类型。在一个实施例中,控制器236为连接到NASoC 204的任何一个设备提供控制。NASoC 204可包括并入到处理器或中央处理器240中的集成电路芯片。
通过NAS执行常驻在自身上的软件(或固件),能实现一种或多种访问存储于NAS中的数据的方法。可以通过可通信地连接到NAS的PC来控制和监控所述的执行。通过PC或其他的数据处理设备或计算设备的控制,能够把所述软件下载到NAS的存储器中。在一个典型的实施例中,所述存储器包括图2所示的闪存。图2所示的NAS可包括主板或PCB,该主板或PCB包含存储器,该存储器中存储着所述的软件。另外,PCB可以与处理器或CPU结合,所述处理器或CPU执行常驻在存储器中的软件。在另一个典型的实施例中,处理器或电路在NASoC中实现。
图3是本发明一个优选实施例中的NASoC 300的结构示意图。该NASoC 300挂载到上述NAS PCB中的集成电路。NACoC 300提供了一个或多个功能以使NAS正确地运行。NACoC 300包括CPU 304、在芯片上的随机存储器308、以太网/MAC控制器312、加密加速器316、多个接口324、328、332、336、340和安全/鉴定、密钥交换、DRM块320。所述多个接口324、328、332、336、340可包括以下类型的接口:USB驱动器I/F 324、PCI总线I/F 332、GPIO/LCD/闪存媒体I/F 328、ATA I/F 336和USB总线I/F 340。NAS芯片(图2中的204)可与图2中所述的一个或多个组件通信,或者与所述的组件连接。如图2所示,取决于自身的存储要求和RAID要求,NAS 200能够组合数目可变的硬盘驱动器。取决于使用的类型,NAS 200底盘经配置能够组合1个、2个、4个或更多硬盘驱动器。例如,NAS可以使用4个硬盘驱动器以实现RAID+0(数据镜像和数据分割),这适用于小型办公室/商用环境。另一方面,在家庭环境中,NAS可以也可以仅使用1个或2个硬盘驱动器,因为这种环境下使用的存储容量小于办公室或商用环境下使用的存储容量。相似地,NAS中使用的存储器组件也随着用法的类型不同而变化。随着数据存储的需求的增长以及数据存储请求频率的增长,可以通过增加NAS的存储器的大小来提升NAS的性能以满足操作需求。例如,为了提升NAS的处理性能,可以增加闪存或DRAM(动态随机存储器)的容量。相似地,可以调整底板的大小,电源电路和其他组件以满足所在的运行环境下的处理需求。
在一个典型的实施例中,NAS可以与现有的网络结合。示范性的NAS通过为数据处理设备提供一个或多个文件服务,能够容易地生成用户接口。例如,NAS可以充当http服务器,为数据处理设备提供一个或多个文件服务,并在数据处理设备上生成用户接口。所述数据处理设备充当NAS的客户端。当NAS提供服务时,在数据处理设备处生成用户接口,用户通过该用户接口能够输入一个或多个值和/或参数。所述用户接口提供提供一个或多个字段,用户能够往其中输入一个或多个数字和字母文本。在一个典型的实施例中,NAS为浏览器应用程序(如Microsoft的IE、Netscape的航海者等)提供一个或多个文件服务。浏览器程序使用该一个或多个文件生成一个或多个用户接口。所述一个或多个文件是可执行的,例如,当用Microsoft资源管理器程序显示文件时,可以点击文件名来运行该文件。所述一个或多个用户接口包括友好的GUI。在一个典型的实施例中,当用户使用鼠标执行用户接口显示的configuration.html文件时,处理器240可以执行一个或多个数据文件。如上所述,用户接口可以包括应用程序,如Microsoft的资源管理器。所述数据文件包括常驻在RAM 208中或闪存212中的软件或固件。所述GUI显示一个或多个字段,用户可以往其中输入字母和数字值以配置NAS。例如,配置时间、时区和日期。在另一个典型的实施例中,处理器240执行的文件包括操作系统如Microsoft的Windows操作系统能辨认和使用的配置文件。所述配置文件能够显示给用户查看。在又一个典型的实施例中,初始化过程包括输入一个或多个授权密码,用户能够使用该授权密码访问和选择配置文件。所述Mircosoft的Windows操作系统包括Windows XP、2000、ME、98、袖珍PC等。用户可以输入以下内容:NAS名字、管理员名字、管理密码、时间、时区、日期和网络时间服务器的IP地址。申请日期为2005年3月22日、美国专利申请序列号为11/087136、名称为“通过使用一个或多个数据存储驱动器管理和分配存储容量的系统和方法”(METHON AND SYSTEM OF DATA STORAGE CAPACITYALLOCATION AND MANAGEMENT USING ONE OR MORE DATA STORAGE DRIVERS)的文本中有查看和使用配置文件的一个或多个实施例。本文完全地参考了所述文本的主旨。
在一个实施例中,当NAS启动后,NASoC(204或300)中的处理器240执行常驻于RAM 208或闪存212中的软件或固件(如NAS软件)。所述软件或固件包括一组能够被处理器240执行的指令。在又一个实施例中,该软件或固件的执行,产生一个或多个用户接口如GUI,该接口允许用户配置一个或多个数据池,所述数据池使用一个或多个硬盘驱动器的一个或多个区。任何的配置数据如一个或多个配置参数都存储于所述一个或多个硬盘的一个或多个区中。例如,所述一个或多个区包括头部或PIBs。所述配置数据可用于对存储在一个或多个数据池中的数据提供访问控制。所述一个或多个数据池可以包括一个或多个共享,所述功能能够被一个或多个经授权用户访问。用户可以输入一个或多个用户密码以访问共享。数据密码存储于所述一个或多个数据存储驱动器或硬盘驱动器的头部。处理器240对常驻在RAM 208字段闪存212中的软件或固件的执行,实现了访问控制功能。
图4是对NAS中一个或多个硬盘驱动器的管理和分配存储池的可操作的流程图。步骤404中,用户访问合适的磁盘管理用户接口。在一个典型的实施例中,用户往用户接口中输入了授权密码后,就生成了磁盘管理用户接口。在另一个实施例中,执行配置文件以生成一个或多个用户接口,其中一个用户接口包括磁盘管理用户接口。图5所示的是浏览器的屏幕截图,所述浏览器可以是Microsoft的因特网探索者或Netscape的航海者等,该浏览器经过配置以提供磁盘管理用户接口,该用户接口允许用户输入一个或多个新磁盘存储池的参数。步骤408中,用户确定将要创建的存储池的类型和数目。图5中,用户可以输入新存储池的名字和指定所提供的一个或多个磁盘驱动器的空间(数据存储空间)大小。图5中显示了根据本发明的实施例的2个硬盘驱动器,名字分别是Surya和Manasi,每个驱动器都有13.5G的可用容量。用户接口提供了字段,用户通过在字段中调整这2个驱动器的容量分配来调整数据池的大小。用户接口还允许用户决定是否对存储池进行镜像或分割。步骤412中,用户可以决定形成数据池的一个或多个驱动器的容量分配。步骤416中,用户可以指示创建的数据池的RAID级别。在一个典型的实施例中,可以通过用户接口指示以下RAID级别:RAID 0、RAID 1和RAID 0+1。步骤420中,为先前生成的一个或多个存储池建立一个或多个共享。
图6所示的浏览器使建立数据池的共享变得容易。存储池包括与一个或多个共享关联的磁盘空间。所述共享允许一个或多个用户访问数据池中的空间。在一个典型的实施例中,所述共享包括包含一个或多个数据文件的子目录。在一个典型的实施例中,当管理员给用户提供密码时,可以给该用户提供共享访问权限。管理员可通过图6所示的GUI配置共享密码。在另一个典型的实施例中,用户输入密码以访问存储在共享中的数据。如果存储池有多于1个的共享,每个共享所占用的空间是从存储池所提供的总空间中申请的。例如,所述一个或多个共享可占用数据池中不重叠的分区。
图7是浏览器的屏幕截图,该浏览器显示了与一个或多个数据池关联的一个或多个共享,并使创建或删除与一个或多个数据池关联的一个或多个共享变得容易。
图8是本发明一个优选实施例中采用本发明的文件存储机制的磁盘或数据存储驱动器的结构示意框图。磁盘的第一部分是大小固定的块,叫作磁盘头部804。图8中块808、812、816、820表示以一个或多个分区的形式添加的存储容量。所示的第n个分区824是最后的分区824。如图8所示,大小固定的块804保留在每一个磁盘或元数据存储驱动器的起始位置。该大小固定的块804称为磁盘头部804。磁盘余下部分分成相邻的、不重叠的区,称为分区808、812、816、820。其中,磁盘头部804指定了每个分区的起始位置和大小等。有时候磁盘中有部分空间,既没有分配到磁盘报头804,也没有分配到任何一个分区中,该部分空间可用来创建新的分区(即创建新分区或者扩充现有的数据池),或者用来扩充现有的分区(当扩充现有的数据池时)。通常,通过一个或多个分区表来确定分区的布局,不同的系统如Linux、Windows和DOS系统采用不用的分区表格式。本发明的各方面允许格式化不同于常规系统的分区表。与常规系统相比,本发明的文件存储机制中采用的一个和多个分区表,所述分区表位于磁盘或数据存储驱动器起始处的大小固定的块中。本发明的多个方面在数据存储驱动器的磁盘头部中结合了双分区表。所述双分区表是彼此的镜像,用户冗余校验。当执行一个或多个操作时,双分区表用于保护存储在一个或多个数据存储设备上的数据的完整性。例如,所述一个或多个操作包括更新与一个或多个数据池或磁盘名字相关的信息。
图9是本发明一个优选实施例中磁盘或数据存储驱动器的分区的结构示意框图。如图9所示,每个分区都包含3个组件:904、908和912。前2个组件分别称为第一PCB 904和第二PCB 908,其中每个PCB包括512个字节。PCB904和PCB 908都包含元数据,该元数据用于构造或级联数据池(即存储池元数据)。第三个组件也是最后一个组件,称为分区有效载荷912,可包括原始数据和元数据。根据磁盘头部的分区表的规定,分区有效载荷912的大小可包括任意数目的字节(或块)。所述分区表可以指定分区的一个或多个块。所述一个或多个块中的每一个块都包含512个字节。上述的PCB和分区有效载荷块的字节数是可改变的,根据本发明的多个方面可以采用其他的实施例。
图10是本发明一个优选实施例中的磁盘头部的结构示意框图。在一个典型的实施例中,磁盘头部包括2560字节,并包括以下字段:
第一字段:“魔术”头部字段1004,偏移量为0字节,长度为34字节。根据本发明的多个方面,字段1004包括特定的数据,该数据用于鉴定相关磁盘作为数据池系统的一部分,所述数据池系统用于磁盘存储池机制的低级部分。最开始的34字节没有被设置该特定的数据的磁盘,都被认为不属于本发明提供的文件存储机制的数据池系统的一部分。
第二字段:NAS标识符字段1008,偏移量为34字节,长度为6字节。字段1008使用6字节的标识符。该6字节唯一地识别机器,所述机器格式磁盘以创建磁盘头部。在一个典型的实施例中,该6字节标识符识别NAS。
第三字段:磁盘名字字段1012,偏移量为40字节,长度为41字节。该41字节的字段1012存储可人读的ASCII或Unicode字符串,可用作标识名字。在一个典型的实施例中,字段1012是以0结尾的,其中,第一个0字节之后的每一个字节,都被设为0,因此最后一个字节也是0。
第四字段:0填充字段1016,偏移量为81字节,长度为3字节。
第五字段:磁盘标识符字段1020,偏移量为84字节,长度为16字节。该16个字节的标识符用于识别磁盘。磁盘头部生成后,可以随机地或半随机地生成该16个字节地标识符。
第六字段:旗标字段1024,偏移量为100字节,长度为1字节。该字段用于指示磁盘头部中的2个分区表哪个是激活的(现用的)。例如,0值表明第一个表格是激活的,而其他值则表明第二个表格是激活的。
第七字段:未使用字节字段1028,偏移量101字节,长度为411字节。
第八字段:第一分区字段1032,偏移量为512字节,长度为1024字节。第一分区表存储在该字段中。
第九字段:第二分区字段1036,偏移量为1536字节,长度为1024字节。第二分区表存储在该字段中。
磁盘头部的第一、第三和第五字段(即NAS标识符、磁盘名字、磁盘唯一标识符)鉴定特定的磁盘,以免把两个不同的磁盘彼此混淆。
在一个典型的实施例中,任何时刻两个分区表中仅有一个分区表被所述旗标字段1024中的1字节的旗标激活的。当分区表有变化时,任何新的信息都被写入到未激活的分区表。例如,当出现了更新时,所述一个或多个数据存储驱动器中的所有的未激活分区表都被更新。因为激活状态的分区表没有被修改,因此避免了不一致的情况,比如电源故障引起的写操作被中断时。在该实施例中,每个分区表都包括1024个字节并被分成64个整体,每个整体16字节。该分区表中的64个整体中的每一个都可以指定磁盘中的分区。当一个整体中的16个字节都是0时,该整体被认为是空的。如果某整体非空,则该整体的前8个字节指定起始块号,后8个字节以块为单位指定该分区的大小。所述的起始位置以及大小都是用512字节的块计算的。在该实施例中,所述起始块号与磁盘的起始位置有关,并指向分区的分区有效载荷开的起始位置。所述大小指定分区有效载荷的大小(以块为单位)。要说明的是,所述大小不包括图9所示的2个PIBs。例如,如果指定了起始块号为811,大小为13块,那么该分区的第一PIB的块号为809,第二PIB的块号为810。在该实施例中,分区有效载荷包括块810至块823。在又一个典型实施例中,磁盘头部包括最前的8块,因此,分区表的起始块号的最小的有效值是10。
每个分区都与2个PIBs关联,所述PIB确定一个或多个数据池。每个分区都有2个PIB,因此当其中一个PIB拷贝正在被修改时,另外一个PIB拷贝依然能够访问。该2个PIBs可分别称为PIB A和PIB B。更新PIB的过程包括以下的示范性方法。当存储池中所有的分区的所有的PIB A拷贝正在变化时,所有的PIB B拷贝都保持不变,这样,即使PIB A拷贝不一致了,PIB B拷贝还保持一致。类似地,当PIB B拷贝正在更新时,所有的PIB A拷贝都没有被修改,这样,即使PIB B拷贝不一致了,所有的PIB A依然保持一致。上述的磁盘头部字段的偏移量、字节长度和字段大小都是可变的,本发明的实施例也可以采用其他的实施例。
图11是本发明一个优选实施例中的存储池信息块(PIB)的结构示意框图。在一个典型的实施例中,每个PIB包括512字节,包括以下字段:
第一字段:数据池名称字段1104,偏移量为0字节,长度为81字节。在一个典型的实施例中,数据池名称字段1104被设计成可人读的ASCII或Unicode字符串,该字段用作字段该PIB关联的数据池的名字。在又一个典型的实施例中,数据池名称字段都是以0结尾的,其中,第一个0字节之后的每一个字节,都被设为0,因此最后一个字节也是0。
第二字段:第一0填充字段1108,偏移量为81字节,长度为3字节。
第三字段:数据池标识符字段(或存储池唯一ID字段)1112,偏移量为84字节,长度为16字节。该字段用于定义唯一的数据池的标识符。
第四字段:NAS鉴定字段1116,偏移量为100字节,长度为6字节。该字段用于鉴定创建数据池的NAS机器。该字段中的特定值对应于NAS标识符字段1008的值,所述NAS标识符字段1008在磁盘头部偏移量为34字节的地方,参考图10。因为,利用唯一的数据池标识符、NAS ID和创建时间戳可以唯一地鉴定数据池。本质上,其他的数据池不可能采用相同的数据池标识符、NAS ID和创建时间戳的组合的。如果2个不同的数据池被相同的唯一的数据池标识字段、NAS ID和创建时间戳的组合鉴定,就会出现了混淆,不知道采用哪个分区来构成一个或多个数据池。例如,在相同NAS上创建的任何2个存储池应该具有不同的时间戳,在不同NAS上创建的任何2个存储池应该具有不同的NASID。通过采用随机值作为唯一的数据池标识符,减少了出现相同的3个标识符的组合的可能性。在某些情况下,NAS ID可以与正在使用数据池的NAS的NASID不同,因为可以把一个或多个数据存储驱动器或磁盘从一个NAS移除,并把该移除后的驱动器或磁盘接入到另一个NAS上。如果数据存储驱动器或磁盘最先被一个NAS使用,而随后另一个NAS创建了一个数据池,那么该数据池的NAS ID也可以与该数据池使用的数据存储驱动器或磁盘的磁盘头部中的NASID不同。分区表更新时,磁盘头部中的NAS ID不会被改变,因为磁盘头部的NAS ID对应于最先创建该磁盘头部的NAS。因此,不同的磁盘或数据存储驱动器之间的NAS ID能够互相区分。同样,PIB中的NAS ID也助于区分不同的存储池。
第五字段:第二0填充字段1120,偏移量为106字节,长度为2字节。
第六字段:创建时间戳字段11124,偏移量为108字节,长度为9字节。该字段用于指定数据池的创建时间/日期戳。创建时间戳与NAS ID字段1116一起,助于唯一地鉴定特定的存储池和将特定的存储池与其他的存储池区分开。该字段中,最先的4个字节包括年份,下一个字节包括月份(1-12),下一字节包括相应月份的日(1-31),下一个字节包括时(0-23),下一个字节包括分钟(0-59),最后的字节包括秒(0-59)。在一个典型的实施例中,该时间/日期戳用世界标准时(格林尼治时)表示。
第七字段:第三0填充字段1128,偏移量为117字节,长度为3字节。
第八字段:条纹字段1132,偏移量为120字节,长度为4字节。该字段用于指定数据池中条纹或带条纹的分区的数目。在一个典型的实施例中,值为1表示没有采用条纹。例如,上条纹时,至少要上2个条纹才有意义。仅仅上一个单独的条纹等于没有上条纹,而值为0是非法的。
第九字段:镜像字段1136,偏移量为124字节,长度为4字节。该字段指定镜像或带镜像的分区的数目。在一个典型的实施例中,值为1表示没有采用镜像,而值为0是非法的。
第十字段:闲置字段1140,偏移量为128字节,长度为4字节。该字段指定存储池中闲置的数目。在一个典型的实施例中,值为0表示没有可用的闲置。
第十一字段:方格字段1144,偏移量为132字节,长度为4字节。用于指定与分区关联的方格的数目。所述方格包括上条纹、镜像。和闲置数据单元。所述闲置数据单元用于生成完整的数据池。与数据池关联的方格的总数目包括(NST*(NM*NSP)),其中NST包括条纹或带条纹的方格(偏移量为120字节)的数目,NM是镜像或带镜像的方格(偏移量为124字节)的数目,NSP是备件或带备件的方格的数目。在一个典型的实施例中,数据池中的方格的标号从0到(方格的总数目-1)。例如,方格的标号从第一镜像的所有条纹开始,接着到第二镜像的所有条纹,依次类推。然后是第一闲置的所有条纹,第二闲置的所有条纹,依次类推。
第十二字段:区块字段1148,偏移量为136字节,长度为4字节。该字段指定方格字段1144中指定的方格的区块的数目。通过使用一个或多个区块,可以把方格扩展到一个磁盘(或数据存储驱动器)或任意数目的磁盘的多个分区。所述一个或多个区块来自(gather from)对应区块的所有磁盘的所有分区。区块被级联以形成方格。区块字段1148指定了特定方格中区块的数目。在一个典型的实施例中,该字段的最小值是1。
第十三字段:区块标识符字段1152,偏移量为140字节,长度为4字节。该字段包括区块标识符,该标识符指定方格所表示的区块。在一个典型的实施例中,区块的标号从0到(方格中的区块总数-1)。这些标号指定了级联分区的顺序以形成方格。区块标识符包含在区块标识符字段1148中。
第十四字段:RAID区块字段1156,偏移量为144字节,长度为4字节。该字段指定RAID区块大小。执行编码以级联分区和执行镜像或分割时用到所述RAID区块大小。RAID区块大小给磁盘存储迟中所有的PIB保留了相同的值。要说明的是,这里所述的“区块”与描述偏移量为136字节、140字节的字段时用到的“区块”不同。
第十五字段:方格分区指定字段1160,偏移量为148字节,长度为108字节。该字段指定使用那个分区作为数据池的下一个方格。该字段包括分区指定,其中,有81个字节用于指定分区所在的磁盘名称,1字节是0填充,6字节指定NAS ID,16字节是包括指定分区的磁盘的ID,4字节指定当前被指定的分区的数目,81+1+6+16+4=108。如果方格分区指定的分区对应最后的方格,则该方格分区指定下一数据池的第一个方格,这样,方格分区字段提供了不同分区间的链接。本发明的多个方面规定数据池中应该只有1个方格,如果该方格中仅有1分区,那么方格分区指定字段1156仅仅涉及该分区。
第十六字段:区块分区指定字段1164,偏移量为256字节,长度为108字节。该字段指定分区所在的方格下一区块是哪个分区。如果该分区是方格的最后一个分区,则该字段返回指向关联方格的第一个区块。因此如果方格仅包括一个分区,则该字段指向自身。
第十七字段:调整大小旗标字段1168,偏移量为364字节,长度为4字节。该字段用于表示数据池是否正在进行调整大小操作。在一个典型的实施例中,值为0表示当前没有对该数据池进行调整大小;值为1表示当前对该数据池进行调整大小。在该实施例中,其他值被认为是非法的。在另一个实施例中,正在进行调整大小操作时,NAS存储(现场)信息。如果该调整大小操作被打断,NAS利用该(现场)信息把自己还原到调整大小操作之前的状态以免数据丢失或破坏。例如,NAS可以通过从中断点开始,继续前一个调整大小操作。对关联的数据池进行调整大小操作时,本发明的多个方面都利用PIB中的保留的字段。在一个典型的实施例中,PIB的最后一个字段用到有效性标记,但调整大小操作不使用该标记。
第十八字段:反向进度字段1172,偏移量为368字节,长度为8字节。该字段用于表示调整大小操作的反向进度。进行调整大小操作时,每个分区的大小或增加会减少(对于移除分区时,包括大小减少到0;对于创建分区,则用0开始增加),因此数据必须在方格内前移或后移。为避免覆盖数据,所述数据移动的顺序是很重要的。首先,数据的移动或转移经由方格正向移动,同时反向复制数据;然后,经由方格反向移动数据,同时正向复制数据。逆进度字段1172反向表示已经完成的进度。如果调整大小操作被中断,反向的数据移动基于该字段从正确的地方重新开始。
第十九字段:正向进度字段1176,偏移量为376字节,长度为8字节。该字段用于表示调整大小操作的正向进度。该字段对应上述的反向进度字段。该字段以已经完成的正向字节数目来表示。
第二十字段:原始大小字段1180,偏移量为384字节,长度为8字节。该字段用于显示进行调整大小操作前的原始大小(以kb为单位)。要说明的是,原始大小可以是0,这表明该关联分区是在调整大小操作过程中新创建的。
第二十一字段:最新大小字段1184,偏移量为392字节,长度为8字节。该字段以kb以单位为调整大小操作表示关联分区的最新大小。要说明的是,该大小可以是0,这表明该关联分区在调整大小操作过程中被删除。
第二十二字段:0填充字段1188,偏移量为400字节,长度为96字节。
第二十三字段:有效PI(存储池信息)字段1192,偏移量为496字节,长度为16字节。该字段用于表明该块是有效PIB。在一个典型的实施例中,该字段1192中有16个字节,该字段必须匹配特定的二进制值以使该PIB被认为是有效的。这就确保了如果某PIB没有包含有效的PIB数据,就不对该PIB进行译码。例如,如果PIB没有有效PI字段1192,则文件存储系统就忽略该PIB。上述描述PIB字段所用的偏移量、字节长度和字段大小都是可变的。根据本发明的多个方面,可以采用一个或多个其他的实施例。
在一个典型的实施例中,每个数据池关联的共享信息和访问控制信息存储为文本文件,该文本文件位于对应的数据池中,并且该文件对于NAS设备的用户是不可见的。
本发明的各方面利用PIB中一个或多个字段提供的信息以数据池的形式链接或级联一个或多个分区。所述一个或多个分区可位于数据网络中的一个或多个数据存储设备上。数据存储驱动器如磁盘驱动器从一个数据存储设备转移到另外的数据存储设备时,可以保留存储在所述一个或多个字段中的信息。例如,数据池标识符字段1112、方格分区指定字段1160和区块分区指定字段1164,依然用来链接或级联一个或多个分区。
上面已经结合一定的实施例对本发明进行了阐述。本领字段的技术人员可知晓,对本发明进行修改和等价替换都不脱离本发明的保护范围。另外,为适应特定环境而进行的改变以及本发明所提及的材料都不脱离本发明的实质。因此,本发明不局限于所列举的实施例,本发明包括所有落入权利要求范围内的所有实施例。