经由通信网络向远程文件服务器传送文件的本地文件服务器及具有该文件服务器的存储系统的制作方法

文档序号:6351933阅读:119来源:国知局
专利名称:经由通信网络向远程文件服务器传送文件的本地文件服务器及具有该文件服务器的存储系统的制作方法
技术领域
本发明涉及经由通信网络传送并存储文件的存储控制。
背景技术
以往,企业或个人自费购买并利用服务器或软件的形态为主流,但由于消减TCO(Total Cost of Ownership :总体拥有成本),因此倾向推广经由互联网而利用服务器或软件的云计算。作为云计算的一个示例,专利文献I中记载了可经由互联网来利用存储装置的发明(以后,称为云存储装置)。进而,专利文献2中记载了关于多个存储装置组合而成的分层存储系统的发明。专利文献I :日本特开2009-110401号公报专利文献2 日本特开2009-289252号公报

发明内容
在上述现有技术中,为了访问云存储装置内的文件,需要经由互联网进行访问。因此,发生数据传送延迟,致使访问速度变慢。并且,将文件存储至云存储装置还是存储至本地存储装置的判断任由用户来决定。如上所述,被存储至云存储装置内的文件的访问速度是较为缓慢的。因此,用户倾向于通过扩充本地存储装置,从而在本地存储装置中存储数据来代替在云存储装置内存储数据。其结果是,云存储装置的利用机会减少,最终结果导致出现无法消减TCO的问题。因此,最好无需委托用户就适当判断将文件存储至本地存储装置还是存储至云存储装置。但这样一来,根据用户利用的文件的种类不同,经由互联网的访问频繁发生,再加上上述传送延迟,从而有可能导致文件的访问功能(尤其是读取功能)变差。当通信网络为互联网以外的通信网络时,以上问题也可能存在。因此,本发明的目的在于,增加远程存储装置的利用机会而尽可能不损害文件的访问性能。对远程存储装置进行管理的远程文件服务器与对本地存储装置进行管理的本地文件服务器连接在通信网络(例如互联网)上。本地文件服务器进行如下动作A、将本地存储装置内的文件复制到远程文件服务器内,B、在满足了第一条件时,将被复制了的文件即已复制文件作为迁移对象文件进行管理。本地文件服务器即使完成B也不从本地存储装置中删除迁移对象文件,而在满足了第二条件时,从本地存储装置中删除迁移对象文件。其中,第二条件例如是指迁移对象文件在被参照后将不会从任何用户终端中被参照。


图I示出了本发明的一个实施例的概要。图2示出了本发明的一个实施例的系统整体的硬件结构。图3示出了本发明的一个实施例的系统整体的软件结构。图4示出了 inode管理表。图5示出了图4的inode管理表中的inode编号“100”的inode与文件位置之间的关系。图6示出了 inode管理表400中追加的新种类的元数据。图7示出了复制处理的流程。
图8示出了与已复制文件或其元数据有关的写入处理的流程。图9示出了同步处理的流程。图10示出了元数据读取处理的流程。图11示出了文件读取处理的流程。图12A示出了响应打开请求进行的处理。图12B示出了响应关闭请求进行的处理。图12C示出了文件的删除。图13示出了与已迁移文件有关的写入处理的流程。图14A示出了 LU内的空闲容量的一示例。图14B示出了被重新调用的文件写入LU因而LU的空闲容量减少到小于阈值的例子。图15示出了将复制对象外文件作为复制候选文件的处理的流程。图16 示出了图 15 的 STEP27-3 及 27-4。图17示出了复制复制候选文件的流程。图18示出了文件系统1211 (受理程序12110)的处理流程。图19为表示数据移动程序的处理流程的流程图。图20表示监视程序1214的处理流程的一部分的流程图。图21表示监视程序1214的处理流程的另一部分的流程图。图22示出了在本发明的一个实施例的系统整体的软件结构中,对Edge侧的LU应用了自动精简配置(Thin provisioning)的结构。
具体实施例方式下面,对本发明的一个实施例进行说明。另外,在下面的说明中,用“ XXX表”这样的表述对各种信息进行说明,但各种信息也可以采用表以外的数据构造来表述。为了表示不依赖于数据构造,可以将“XXX表”称为“XXX信息”。并且,在下面的说明中,存在以“程序”为主语对处理进行说明的情况,但程序由处理器(例如CPU (Central Processing Unit))执行,从而适当地利用存储资源(例如存储器)和/或通信接口装置(例如通信端口)并进行预定的处理,因此,也可以将处理的主语作为处理器。以程序为主语所说明的处理也可以作为由文件服务器(例如,后述的文件存储装置、存档装置)进行的处理。并且,处理器也可以包含进行处理器进行的一部分或全部处理的硬件电路。计算机程序也可以从程序源被安装到各计算机内。程序源例如也可以是程序分发服务器或存储介质。图I示出了本发明的一个实施例的概要。存在本地计算机系统2、远程计算机系统3。本地计算机系统2具有客户机(例如个人计算机)/主机(例如服务器)130、文件存储装置 120、RAID (Redundant Array of Independent (or Inexpensive) Disks)系统110。文件存储装置120连接有客户机/主机130与RAID系统110。文件存储装置120是本地文件服务器的一个例子。远程计算机系统3具有存档装置220与RAID系统210。存档装置220是远程文件服务器的一个例子。文件存储装置120与存档装置220经由通信网络I连接。通信网络I典型的是互联网,但也可以是除此以外的通信网络(例如,LAN(Local Area Network))。在本实施例中,例如进行以下处理。即,文件存储装置120从客户机/主机130中接收文件的写入请求,并按照该写入请求,将文件10写入到RAID系统110内。然后,文件存储装置120复制文件IO(SlOOl)。具体而言,文件存储装置120从RAID系统110中读出文件10,并将读出的文件10经由通信网络I传送至存档装置220内。存档装置220将来自文件存储装置120的文件写入RAID系统210。由此,处于RAID系统110与RAID系统210这两者都存有文件10的状态。文件存储装置120并不在完成文件10的复制后立刻从RAID系统110中删除文件
10。因为这样做与迁移文件10是等同的。为了在将文件10迁移至远程计算机系统3后将文件10提供给客户机/主机130,需要文件存储装置120经由通信网络I向存档装置220请求文件10。因此,在本实施例中,文件存储装置120即使完成文件10的复制也保留文件10而不从RAID系统110将其删除。因此,文件存储装置120在从客户机/主机130中接收到文件10的读取请求时(SllOl),能够从RAID系统110中读出文件10并提供给客户机/主机130 (SI 102)。也就是说,并不需要文件存储装置120经由通信网络I从存档装置220中取得文件10。文件存储装置120在文件10从任何客户机/主机130中都没有被读出(没有被参照)时,删除文件10(严格而言为该实体)(S1103)。其结果是,文件10实质上只存储在存档装置120侧。另外,删除文件10的定时可以采用满足了其他条件的定时(例如,从对于文件10的访问(读取)的最终时刻经过了一定时间)来代替文件10没有从任何客户机/主机130中被读出的定时,或者还可以采用文件10没有从任何客户机/主机130中被读出这种情况之外的满足了其他条件的方式。下面,对本实施例进行详细说明。图2示出了本发明一个实施例的系统整体的硬件结构。存在EdgelOO与Core200。EdgelOO是指包含有本地计算机系统的据点,例如分店或营业厅等用户实际进行业务的据点。并且。COre200是包含有远程计算机系统的据点,例如统一管理服务器或存储装置的据点或提供云服务的据点。
另外,在图I所示的例子中,EdgelOO为多个,Core200为单个,但EdgelOO也可以是单个,和/或COre200也可以为多个。并且,在图I中,示出了 I个与存储装置120连接的客户机/主机130,实际上,存储装置120连接有多个客户机/主机130 (如图所示,客户机/主机130也可以为I个)。EdgelOO具备RAID系统110、文件存储装置120、客户机/主机130。文件存储装置120例如经由通信网络(例如LA N)连接在客户机/主机130上。并且,文件存储装置120例如经由通信网络(例如SAN(Storage Area Network))连接在RAID系统110上。RAID系统110大致分为控制器部与存储部。控制器部具备CHA (ChannelAdaptor) 111 与DKC(DisK Controller) 112。存储部具备DISK113。DKC112连接有CHAlll 及DISK113。CHAlll是与文件存储装置120连接的通信接口装置。DKC112为控制器。DISK113为磁盘型的物理存储装置(例如,HDD (Hard Disk Drive))。作为物理存储装置,也可以采用其他类型的物理存储装置(例如,闪存装置)。并且,DISK113在图I中为单个,实际上为多个(如图所示,也可以是单个)。可以由多个DISK113构成I个以上的RAID组。RAID系统110利用CHAlll接收从文件存储装置120发送来的块级1/0请求,并基于DKCl 12的控制,执行适当的对于DISKl 13的1/0。文件存储装置120 具备存储器 121、CPU (Central Processing Unit) 122、NIC (Network Interface Card) 123、HBA (Host Bus Adaptor) 124。存储器 121、NIC123 及HBA124 连接有 CPU122。NIC 123是与存档装置220及客户机/主机130通信的通信接口装置。HBA124是与RAID系统110通信的通信接口装置。存储器121是CPU122可直接读写的存储区域(例如,RAM (Random Access Memory)或ROM (Read-Only Memory))。文件存储装置120在存储器121上读入控制文件存储装置120的程序(例如OS (Operating System)),并使CPU122执行该程序。文件存储装置120除了具有存储器121还可以具有其他类型的存储资源,或还可以具有其他类型的存储资源而代替存储器121。文件存储装置120经由NIC123从客户机/主机130中接收文件级1/0请求。文件存储装置120作成用于数据块的1/0的1/0请求,该数据块构成由该1/0请求指定的文件。文件存储装置120经由HBA124将块级1/0请求发送至RAID系统110。客户机/主机130具备存储器131、CPU132、NIC133、DISK134。客户机/主机130除了存储器131和/或DISK134还可以具有其他类型的存储资源,或还可以具有其他类型的存储资源代替存储器131和/或DISK134。客户机/主机130在存储器131上读入DISK134中存储的程序(控制客户机/主机134的程序(例如OS)),并使CPU132执行该程序。并且,客户机/主机130经由NIC133将文件级1/0请求发送至文件存储装置120。Core200具备RAID系统210、存档装置220。存档装置220连接有RAID系统210。RAID 系统 210 具备 CHA211、DKC212、DISK213。在图 I 中,RAID 系统 210 的结构与RAID系统110的结构相同。因此,RAID系统210也利用CHA211接收从存档装置220中发送的块级1/0请求,并基于DKC212的控制,执行适当的对于DISK213的1/0。另外,RAID系统210的结构与RAID系统110的结构也可以不同。
存档装置220具备存储器221、CPU222、NIC223、HBA224。还可以具备其他类型的存储资源代替存储器221,或除了具备存储器221还可以具备其类型的存储资源。存档装置220在存储器221上读入控制存档装置220的程序(例如OS),并使CPU222执行该程序。并且,存档装置220经由NIC223及通信网络I与文件存储装置120通信。存档装置220经由HBA224连接,并执行块单位的访问。图3示出了本实施例的系统整体的软件结构。RAID 系统 110(210)具有多个 LU (Logical Unit) 1100 (2100)。LU1100 (2100)是逻辑存储装置。LU1100(2100)也可以是基于I个以上的DISK113(213)的实体化LU,也可以是按照自动精简配置(Thin Provisioning)的虚拟化LU。LU1100 (2100)有多个块(存储区域)构成。LUllOO (2100)中存储有文件。并且,LUllOO (2100)中也可以存储全部或一部分后述的文件系统信息。
图22为表示在本发明一个实施例的系统整体的软件结构中,对Edge侧的LU应用了自动精简配置(Thin Provisioning)的结构的图。应用了自动精简配置(Thin Provisioning)的RAID系统110具备I个或多个存储池120。存储池120包含有多个页面1130。页面1130是通过以固定长度分割存储池120得到的各个存储区域。虚拟LU(应用了自动精简配置(Thin Provisioning)的LU)由多个虚拟区域构成。当对虚拟LUlllO进行写入时,每次都向虚拟LUlllO的写入目标虚拟区域分配页面。磁盘的容量能够以存储池1120单位增设。存储池120也可以包含有尺寸不同的多个页面1130。再次参照图3。文件存储装置120的存储器121 (存档装置220的存储器221)存储有数据移动程序1210 (2210)、文件系统1211 (2211)、内核/驱动器1212(2212)。文件存储装置120的存储器121还存储有文件共享程序1213。下面,将文件存储装置120内的数据移动程序称为“本地移动器”(local mover),将存档装置220内的数据移动程序称为“远程移动器”(remote mover),在不特别区分两者时,称为“数据移动程序”(data moverprogram)。在文件服务器装置120与存档装置220之间,经由本地移动移动器1210及远程移动器2210,进行文件的交换。本地移动器1210从RAID系统110的LU1100中读出复制对象文件,并将该文件传送至存档装置220。远程移动器2210从文件存储装置120中接收复制对象文件,并将该文件写入RAID系统210的LU2100。并且,本地移动器1210在满足了预定条件时删除LUllOO内的已复制文件(严格地为该实体),由此实现已复制文件的实质性迁移。然后,本地移动器1210在对于被删除的文件的桩(元数据)从客户机/主机130中接受到读取请求时,经由远程移动器2210取得与桩链接的文件,并将取得的文件发送至客户机/主机130。另外,在本实施例中,“桩”是指与文件的存储目标信息(表示链接目标)关联在一起的对象(元数据)。从客户机/主机130中判明不出是文件还是桩。文件系统1211 (2211)是文件系统程序,对文件系统信息进行管理。文件系统信息包含与各文件有关的信息(例如,表示文件尺寸或位置等的信息)。具体而言,例如,文件信息包含图4所示的ionde管理表400。ionde管理表400由多个ionde构成(I行对应一个ionde)各ionde由多个元数据构成。作为元数据的种类,有文件所有者、文件访问权、文件尺寸、文件存储位置(数据块地址1、2、3、…)等。例如,根据包含有inode编号“100”的行可知,文件如图5所示由下述块(LU内的块)存储的数据构成。(*)以地址100的块为排头的3个连续的块(由数据块地址“10-3”确定的块组)内的数据。(*)以地址200的块为排头的2个连续的块(由数据块地址2 “200-2”确定的块组)内的数据。⑷以地址250的块为排头的5个连续的块(由数据块地址3 “250-5”确定的块组)内的数据。再次参照图3。内核/驱动器1212(2121)进行在文件存储装置120 (存档装置220)上动作的多个程序(工序)的调度控制或对硬件中断进行处理等整体控制及硬件固有的控 制。文件共享程序1213 是使用所谓 CIFS(Common Internet File System)、NFS (Network File System)的通信协议,在与客户机/主机130之间提供文件共享服务的程序。客户机/主机130的存储器131存储有应用软件1310、文件系统1311、内核/驱动器1312。应用软件1310是客户机/主机130根据操作目的使用的软件(应用程序)。文件系统1311及内核/驱动器1312与上述文件系统1211 (2211)、内核/驱动器1212 (2212)大致相同。在本实施例中,inode管理表400中追加有新种类的元数据。图6示出了 inode管理表400中追加的新种类的元数据。每个文件(每个inode)中都有新种类的元数据,其为桩化标志3100、数据需同步标志3101、元数据需同步标志3102、复制标志3103及链接目标3104。下面,针对这些元数据,采用I个文件(在图6的说明中称为“对象文件”)为一示例进行说明。桩化标志3100表示对象文件是否被桩化。具体而言,例如,桩化标志3100在对象文件被桩化时,被设为“开启”,在对象文件没有被桩化时,被设为“关闭”。数据需同步标志3101 (元数据需同步标志3102)表示是否需要使文件(元数据)同步化。数据需同步标志3101 (元数据需同步标志3102)在已复制对象文件(该元数据)在EdgelOO侧与Core200侧一致时,被设为“关闭”。并且,数据需同步标志3101 (元数据需同步标志3102)由于在EdgelOO侧发生对象文件(该元数据)更新,导致与Core200侧的对象文件(该元数据)不一致时(也就是说,未同步时)需要使两文件(两元数据)互相一致,因此被设为“开启”。复制标志3103表示对象文件是否为复制对象。复制标志3103在对象文件已复制时,被设为“开启”,在对象文件没有被复制时,被设为“关闭”。链接目标3104是表示对象文件的存储目标(链接目标)的信息(例如,URL(Uniform Resource Locator))。接着,对本实施例中进行的处理进行说明。图7示出了复制处理的流程。另外,图中的S*是STEP* (*是I以上的整数)的缩写。
通过该处理,在EdgelOO侧与Core200侧共享复制对象文件。首先,在STEPl中,本地移动器1210获取复制请求。复制请求发起源或发起复制请求的定时无特别限定。复制请求至少包含复制对象文件的识别信息(例如文件名)。接着,在STEP2-1中,本地移动器1210对存档装置220发出确保复制对象文件的存储区域的指令。该指令例如也可以包含复制对象文件的识别信息及尺寸。存档装置220 (远程移动器2210)可以接受该指令,确保复制对象文件的存储目标存储区域。存档装置220 (远程移动器2210)可以将复制对象文件的识别信息与该文件的存储目标的信息即链接目标信息(表示被确保了的存储区域的信息)之间的对应关系存储至存 储器221内。接着,在STEP2-2中,本地移动器1210从存档装置220 (远程移动器2210)中接收复制对象文件的链接目标信息(例如URL),并将该接收到的链接目标信息追加至inode管理表400中作为复制对象文件的链接目标3104。接着,在STEP3中,文件系统1211从LU1100中读出基于复制请求所确定出的复制对象文件,并将该文件传送至本地移动器1210内。接着,在STEP4中,本地移动器1210将来自文件系统1211的复制对象文件传送至远程移动器2210。例如,远程移动器1210也可以将指定了在STEP2-2中接收到的链接目标信息的、复制对象文件的写入请求(文件级写入请求)发送至远程移动器2210。在STEP5中,远程移动器2210从本地移动器1210中接收复制对象文件,并对文件系统2211(文件系统内的受理程序22110)发出该文件的存储请求。该存储请求可以包含该文件的链接目标信息。文件系统2211将复制对象文件写入基于其链接目标信息的位置(LU2100)。然后,将文件系统2211完成了写入从文件系统2211通知到远程移动器2210。远程移动器2210在接受到该通知时,将复制完成通知发送至本地移动器1210。在STEP6中,本地移动器1210从远程移动器2210中接收复制完成通知,并通知文件系统系统1211的受理程序1211复制完成。然后,在STEP7中,文件系统1211(受理程序12110)使复制对象文件所对应的复制标志3103为“开启”(参照图6)。复制标志3103变为“开启”的文件是已复制文件。图8示出了与已复制文件或其元数据有关的写入处理的流程。当更新已复制文件或其元数据时,文件存储装置120侧的已复制文件或其元数据与存档装置220侧的已复制文件或其元数据不同。因此,需要同步处理(在文件存储装置120侧与存档装置220侧使文件(或其元数据)的内容互相一致的处理)已复制文件或其元数据。在本写入处理中,设定(使已复制文件对应的数据/元数据需同步标志3101/3102为“开启”)表示需要同步处理的信息。首先,在STEP8中,文件系统1211(受理程序12110)受理对于已复制文件(或其元数据)的写入请求(更新请求)。接着,在STEP9中,文件系统1211(受理程序12110)进行该文件(或其元数据)的更新。文件系统1211(受理程序12110)在更新了已复制文件时,使该文件对应的数据需同步标志3101为“开启”,在更新了元数据时,使与该元数据有关的文件所对应的元数据需同步标志3102为“开启”(参照图6)。另外,更新了的文件或元数据是否是已复制文件或其元数据可以通过其对应的复制标志3103是否为“开启”来判断。数据/元数据需同步标志3101/3102为“开启”表示需要同步处理其对应的文件或其元数据。在进行了同步处理时,使数据/元数据需同步标志3101/3102为“关闭”。图9示出了同步处理的流程。针对与数据需同步标志3101为“开启”的文件、或元数据需同步标志3102为“开启”的文件有关的元数据,进行同步处理。首先,在STEP9中,本地移动器1210接受同步处理请求。同步处理请求发起源或发起同步处理的定时无特别限定。同步处理请求例如也可以定期地或不定期地(例如一日一次的频度)发起。在STEPlO中,本地移动器1210对文件系统1211(受理程序12110)发出数据需同步标志3101/3102变为“开启”的文件和/或元数据的检索请求,并从文件系统1211中取得该文件和/或元数据。在STEPll中,本地移动器1210将所取得的文件和/或元数据传送至远程移动器 2210。在STEP12中,远程移动器2210将来自本地移动器1210的文件和/或元数据存储至LU2100和/或文件系统信息中。由此,在本地或远程上,文件(和/或元数据)互相一致(也就是说,同步完成)。远程移动器2210在存储了文件和/或元数据后,通知本地移动器1210存储完成。在进行了文件/或元数据的存储后,在STEP13中,本地移动器1210将进行了同步处理的文件(和/或元数据)所对应的数据/元数据需同步标志3101/3102变更为“关闭”。另外,在本同步处理中,在完成了文件(和/或元数据)的同步后,判断是否可以从LUllOO中删除已复制且已同步文件(即,是否可以将该文件从复制对象切换为迁移对象)。具体而言,例如,本地移动器1210检查LUllOO的空闲容量。在LU1100的空闲容量小于预定阈值时,为了增加LUllOO的空闲容量,允许删除(迁移)已复制且已同步文件。即,在STEP14中,本地移动器1210使已复制且已同步文件(复制标志3103为“开启”且数据/元数据需同步标志3101/3102变为“关闭”的文件)所对应的桩化标志3100为“开启”,使该文件所对应的复制标志3103为“关闭”。另外,允许删除(迁移)文件的条件可以采用其他条件来代替存储文件的存储区域(LU)的空闲容量小于预定阈值的条件,或除了存储文件的存储区域(LU)的空闲容量小于预定阈值的条件之外还可以采用其他条件。例如,允许删除的文件例如也可以是从该文件的最终访问时刻经过看了一定时间的文件。在本实施例中,从LUllOO中删除允许删除的文件(迁移对象文件)在该文件的复制刚结束之后或该文件的同步刚完成后不进行。迁移对象文件保留在本地侧,直到针对该文件满足预定条件为止。在本实施例中,从LUllOO中删除迁移对象文件如后面所述,在文件的读取处理中进行。图10示出了元数据的读取处理的流程。首先,在STEP15-1中,文件系统1211(受理程序12110)从客户机/主机130通过文件共享程序1213受理元数据的读取请求。假设读取对象元数据是从LUllOO中被删除的文件的元数据。即使删除文件(严格地为该实体),与该文件有关的元数据也存储在文件存储装置120侦U。因此,文件系统1211不从存档装置220中取得元数据。具体而言,在STEP15-2及16-1中,文件系统1211从文件存储装置120侧的文件系统信息(LU1100中存储的信息)中取得读取对象元数据,在STEP16-2中,将该元数据通过文件共享程序1213传送至客户机/主机130。图11示出了文件读取处理的流程。首先,在STEP17中,文件系统1211(受理程序12110)从客户机/主机130通过文件共享程序1213受理文件的读取请求。文件系统1211(受理程序12110)判断该文件是否为已重新调用。是否已重新调用例如可以通过与该文件有关的数据块地址(参照图4)表示的值是否为0(零)来判断。地址表示的值为O是指文件没有被存储在LUllOO中。如果已重新调用,则文件系统1211(受理程序12110)在STEP18中从LU1100中读出读取对象文件,并在STEP20中将该文件通过文件共享程序1213发送至客户机/主机130。另一方面,如果重新调用未结束,则文件系统1210(受理程序12110)在STEP19中重新调用、即从存档装置220中取得读取对象文件(例如,通过将读取对象文件的读取请求发送至存档装置220,从而取得读取对象文件)。然后,文件系统1210将该文件写入LUl 100。在STEP20中,文件系统1210(受理程序12110)将该文件发送至客户机/主机130。另外,文件的读取请求,既可以是针对一个文件为一个也可以是针对一个文件为多个。在是后者时,文件被部分读出。针对一个文件的多个读取请求的每一个,可以被指定读取文件的哪一部分数据。具体而言,例如,读取请求有来自文件排头的偏移值与读出的表示尺寸的信息(表示文件部分的信息),文件系统1210针对该文件部分可以判断是否已重新调用。若已重新调用,则文件系统1210将已重新调用文件部分发送至客户机/主机130,若重新调用未结束,则可以从存档装置220中取得该文件部分。但是,从客户机/主机130在文件读取请求之前发起打开请求,在文件读取请求之后发起关闭请求。通过完成打开请求、读取请求及关闭请求这3个请求的处理,从而完成I个读取处理。在本实施例中,实际删除迁移对象文件(允许删除的文件)的定时,成为着眼于在读取请求之前发起打开请求、并在读取请求之后发起关闭请求这一做法而被定义的定时。具体而言,如图12A所示,文件系统1211在接受到打开请求时,对与打开对象文件(被读取的文件)有关的参照计数值加I。文件系统1211每当受理打开请求时,对与打开对象文件有关的参照计数值加I。另一方面,如图12B所示,文件系统1211在接收到关闭请求时,从与关闭对象文件(被读取的文件)有关的参照计数值中减去I。文件系统1211每当接受关闭请求时,从与关闭对象文件有关的参照计数值中减去I。然后,在与迁移对象文件(桩化标志3100为“开启”且数据/元数据需同步标志3101/3102为“关闭”的文件)有关的参照计数值从大于O的值变为O时,如图12C所示,本地移动器1210从LUllOO中删除该文件(严格地为该实体)。通过该删除,实质上完成了迁移。也就是说,迁移对象文件将成为已迁移文件。另外,此时,文件系统1211更新与被删除了的文件有关的inode。因此,例如,假设与被删除了的文件有关的数据块地址表示的值为0(零)。并且,在对EdgelOO侧的LU100应用自动精简配置(Thin provisioning)时(参照图22),也可以通知可以以某固定值(例如O)的形式盖写该文件来代替删除该文件,并对RAID系统110释放存储有该文件的虚拟区域(存储有该文件的块地址)。RAID系统110也可以接受该通知,从该虚拟区域中释放被分配给所通知的虚拟区域的页面1130。这里,虚拟区域如上所述是指构成虚拟LU(应用了自动精简配置(Thin provisioning)的LU)1100的虚拟的存储区域。并且,以固定值盖写该文件是指通过存储该文件的虚拟区域,在被分配给该虚拟区域的页面1130的整个区域内盖写固定值。在页面1130的整个区域内盖写固定值时,客户机/主机130不需要该页面1130内的数据。因此,只存储该无用数据的页面1130可以从虚拟区域中被释放。由此,可以增加存储池的空闲容量(未分配的页面1130的数量)O根据这种删除定时(迁移),可以将高参照频度的文件保留在本地侧,从本地侧删除低参照频度的文件并将其只保留在远程侧。图13示出了与已迁移文件有关的写入处理的流程。·在STEP23中,系统文件1211(受理程序12110)从客户机/主机130中接受文件的写入请求。在STEP24中,文件系统1211 (受理程序12110)检查写入对象文件所对应的桩化标志3100。在桩化标志3100为“开启”时,在STEP25中,文件系统1211从存档装置220中取得写入对象文件,并将所取得的文件写入LU1100。然后,文件系统1211针对该文件使桩化标志3100为“关闭”,并且使复制标志3103为“开启”。另外,在写入对象文件为已重新调用文件时,可以跳过从存档装置220中取得文件的处理。然后,文件系统1211按照在STEP23中接收到的写入请求,更新LUllOO内的该文件。然后,文件系统1211在STEP26中使与被更新了的文件有关的数据/元数据需同步标志3101/3102为“开启”。通过文件的更新,使得在文件存储装置120侧与存档装置侧220中文件及该元数据不同,因为需要同步处理。根据图13所示的写入处理,在针对已迁移文件接受到写入请求时(针对从LUllOO中删除的文件的桩接受到写入请求时),解除文件的桩。根据上述说明,如图14A所示,设有LUllOO的空闲容量的阈值。LU1100的空闲容量是从LUllOO的容量中除去LUllOO的使用量的容量。LU1100的使用量是复制对象外文件的总容量与已复制文件的总量的总和。根据图14A所示的状态,复制对象外文件的总容量比已复制文件的总容量多,且LUllOO的空闲容量超过阈值但接近阈值。在该状态下,当有对于已迁移文件(严格地为该桩)的写入请求时,由于该文件重新调用(从存档装置220侧读出该文件),导致该文件被写入LU1100,从而,致使文件的空闲容量减少,该结果,如图14B所示,使得空闲容量小于阈值。此时,允许删除已复制文件。并且,为了写入处理而被重新调用的文件(从由桩确定的链接目标中取得的文件)被更新且需要同步。因此,在同步处理的时间间隔被设定为较短时,由重新调用引起的文件移动与由同步引起的文件移动会频繁进行。也就是说,经由通信网络的文件传送会频繁发生。因此,在本实施例中,在预定条件下将复制对象外文件作为复制候选,并对复制候选进行复制。图15示出了将复制对象外文件作为复制候选文件的处理流程。图16示出了图15所示的 STEP27-3 及 27-4。在STEP27-1中,本地移动器1210受理复制请求。在STEP27-2中,本地移动器1210将该复制请求中包含的文件清单(例如复制对象文件的识别信息清单)保存在文件存储装置120内(例如存储器121)。由于复制对象文 件如上所述被复制,因此下面将被保存的文件称为“已复制文件”。文件存储装置120例如在存储器121上具有I个以上的已复制文件清单。在STEP27-3中,本地移动器1210基于与由保存的I个以上的已复制文件清单确定的多个已复制文件有关的I个以上的元数据,提取这些多个已复制文件的公共特性(例如,文件尺寸或最终更新日期)。以下,将表示提取出的公共特性的信息成为“特性清单”。特性清单针对I种以上的元数据具有公共特性信息。并且,公共特性信息既可以是I个公共值也可以是值范围(例如,从多个公共值中的最小值到最大值的范围),也可以是I个或多个公共值加上或减去等一定值后的值。然后,在STEP27-4中,本地移动器1210将复制对象外文件(复制标志3103为“关闭”且没有设定链接目标3104的文件)的I个以上的元数据与特性清单具有的公共特性信息进行对比。本地移动器1210将复制对象外文件中的、适合公共特性信息的元数据所对应的文件作为复制候选。复制复制候选文件。该复制定时例如基于图17所示的监视程序1214的判断结果来决定。监视程序1214如图17所示是由文件存储装置120内的CPU122执行的程序。另夕卜,复制复制候选文件的定时可以不限定于此。图17示出了复制复制候选文件的流程。定期或不定期地进行STEP28。在STEP28中,监视程序1214计算LU1100中的复制对象外文件的总容量相对于LUllOO的使用量(LU1100中的已复制文件的总容量)的比例(以下,称为对象外比例)。并且,在STEP29中,监视程序1214在对象外比例超过某一定值时,实施作为复制候选的文件复制,直到对象外比例低于一定值为止。根据参照了图15至图17的说明,若对象外比例超过一定值,则作为复制对象而没有被指定的多个文件(复制对象外文件)中的I个以上的文件被复制,由此成为已复制文件。也就是说,已复制文件增加。由于已复制文件即将被桩化,因此造成LUllOO的空闲容量增加。因此,期待扩大LUllOO的空闲容量与该阈值之间的差。因此,可以期待避免经由通信网络I的文件传送频繁发生。接着,参照图18 图21的流程图,对各程序的处理流程进行说明。图18为表示文件系统1211 (受理程序12110)的处理流程的流程图。在STEP300中,文件系统1211当受理文件的处理请求(例如,访问请求、打开请求或关闭请求)时,检查由该处理请求确定的文件(下面,在图18的说明中称为“对象文件”)的桩化标志3100。若桩化标志3100为“开启”(STEP300 :是),则进入STEP301。若桩化标志3100为“关闭” (STEP300 :否),则由于文件保留在LU1100内因此进入STEP305。STEP301中,文件系统1211检查接收到的处理请求。在处理请求是读取请求时,进入STEP302,在是读取请求以外时,进入STEP310。在STEP302中,文件系统1211判断对象文件的元数据的一种即数据块地址是否有效。在数据块地址有效时(STEP302 :是),进入STEP303。在数据块地址无效时(STEP302 :否),进入 STEP304。在STEP303中,文件系统1211从LUl 100中读出对象文件,并将读出的文件发送至请求源(客户机/主机130)。在STEP304中,文件系统1211进行文件的重新调用。S卩,文件系统1211对本地移 动器1210请求从存档装置220侧取得对象文件,在将响应该请求从存档装置220中被取得的文件暂时存储至LUllOO之后发送至请求源。在STEP305中,文件系统1211检查接收到的处理请求。在处理请求是写入请求以外时(STEP305 :否),进入STEP306。在处理请求是写入请求时,进入STEP307。在STEP306中,文件系统1211进行按照接收到的处理请求(打开请求或读取请求)的处理。在STEP307中,文件系统1211确认对象文件的复制标志3103。在复制标志3103为“开启”时(STEP307 :是),进入STEP308。在复制标志3103为“关闭”时(STEP307 :否),进入 STEP309。在STEP308中,文件系统1211使对象文件的数据/元数据需同步标志3101/3102为“开启”。因为由于后面的STEP309的写入处理,会导致在文件存储装置120侧与存档装置220侧之间对象文件及其元数据不同。在STEP309中,文件系统1211执行对象文件的写入处理。并且,在对EdgelOO侧的LUlllO应用自动精简配置(Thin provisioning)时(图22),在执行STEP309时分配页面作为存储区域。在STEP310中,文件系统1211检查接收到的处理请求。在处理请求是写入请求时,进入STEP312。在处理请求是打开处理时,进入STEP311。在处理请求是关闭请求时,进入STEP316。在STEP311中,文件系统1211对与对象文件有关的参照计数值加I,并执行打开处理。在STEP312中,文件系统1211请求数据移动程序1210重新调用对象文件(请求在存档装置220中取得文件)。在STEP313中,文件系统1211针对对象文件,使桩化标志3100为关闭,使复制标志3103为开启。在STEP314中,文件系统1211更新在STEP312中取得的文件(在该文件上盖写按照处理请求的文件)。并且,在对EdgelOO侧的LUlllO应用自动精简配置(Thinprovisioning)时(参照图22),在执行STEP314时分配页面作为存储区域。在STEP315中,文件系统1211使对象文件的数据/元数据需同步标志3103/3102为“开启”。在STEP316,文件系统1211从与对象文件有关的参照计数值中减去I,并执行关闭处理。在STEP317中,文件系统1211判断与对象文件有关的参照计数值是否为O且对象文件的数据/元数据需同步标志3101/3102是否为“关闭”。在STEP317的判断结果为肯定时(STEP317 :是),在STEP318中,文件系统1211判断是否可以应用自动精简配置(Thin provisioning)。在判断结果为否定时(STEP318 :否),在STEP319中,文件系统1211从LU1100中删除对象文件(对象文件的元数据保留在文件系统信息中)。并且,在STEP318中,在判断结果为肯定时(STEP318 :是),文件系统1211在STEP320中释放分配区域(对象文件的元数据保留在文件系统信息中)。由此,完成对象文件的实质性迁移。
在STEP317的判断结果为否定时(STEP317 :否),文件系统1211不删除对象文件。与对象文件有关的参照计数值为I以上是因为对象文件从任何客户机/主机130中被参照。图19为表示数据移动程序的处理流程的流程图。在本实施例中,能够使文件存储装置120与存档装置220两者执行同一数据移动程序。数据移动程序的动作模式有文件存储装置与存档装置,根据由装置120及220中哪一个来执行,被设定的动作模式而不同。在STEP400中,数据移动程序检查被设定的动作模式。在动作模式为“文件存储装置”时,进入STEP402,在动作模式为“存档装置”时,进入STEP417。在STEP402中,数据移动程序判断是否接收了对于复制对象文件的处理请求。这里,处理请求是复制请求或数据/元数据同步处理请求。在接收到处理请求时(STEP402:是),进入 STEP403。在STEP403中,数据移动程序保存处理请求中包含的文件清单。在STEP404中,数据移动程序检查处理请求的类别。在处理请求是复制请求时,进入STEP405,在处理请求是同步处理请求时,进入STEP410。在STEP405中,数据移动程序从存档装置220中取得由被保存的文件清单确定的文件(复制对象文件)的存储目标信息(例如URL)。在STEP406中,数据移动程序针对复制对象文件,注册所取得的存储目标信息作为链接目标3104。在STEP407中,数据移动程序从LU1100中读出复制对象文件。在STEP408中,数据移动程序将读出的文件传送至存档装置220。具体而言,例如,数据移动程序将读出的文件的读取请求(具有该文件链接目标3104表示的存储目标信息的写入请求)发送至存档装置220。在STEP409中,数据移动程序使被传送的文件的复制标志3103为“开启”。由此,该文件成为已复制文件。在STEP410中,数据移动程序从LU1100中读出数据/元数据需同步标志3101/3102变为开启的文件。在STEP411中,数据移动程序将读出的文件传送至存档装置220。具体而言,例如,数据移动程序将读出的文件的读取请求(具有该文件的链接目标3104表示的存储目标信息的写入请求)发送至存档装置220。在STEP412中,数据移动程序针对被传送的文件,使数据/元数据需同步标志3101/3102为“关闭”。由此,完成已复制文件的同步处理。在STEP413中,数据移动程序判断LU1100的空闲容量是否小于预定阈值。在LUl 100的空闲容量小于预定阈值时(STEP413 :是),在STEP415中,数据移动程序针对复制标志3103为“开启”的文件,使桩化标志3100为“开启”,并且使复制标志3103为“关闭”。也就是说,允许删除已复制文件。然后,至少进行I次来自客户机/主机130的与该文件有关的读取处理,若与该文件有关的参照计数值变为0,则删除该文件。也就是说,实质上完成迁移。
在STEP417中,数据移动程序判断是否从文件存储装置120中接收到文件。在接收到文件时(STEP417 :是),进入STEP418。在STEP418中,数据移动程序将接收到的文件存储至LU2100。图20及图21是表示监视程序1214的处理流程的流程图。在STEP500中,监视程序1214检查是否追加了文件清单(已复制文件清单)。在追加了文件清单时(S500 :是),进入STEP502。在STEP502中,监视程序1214检查是否有特性清单。在有特性清单时(STEP502 是),进入STEP503。在没有特性清单时(STEP502 :否),为了作成特性清单,监视程序1214进行图21所示的处理。在STEP503中,监视程序1214将由追加的文件确定的文件的元数据与特性清单的公共特性信息进行对比。该结果,在元数据适合公共特性信息时(STEP504:是),进入STEP505。在元数据不适合共公告特性信息时(STEP504:否),为了在特性清单中追加新的公共特性信息,监视程序1214进行图21所示的处理。在STEP505中,监视程序1214将与迁移度对象外文件有关的元数据与特性清单具有的公共特性信息进行对比,将适合公共特性信息的元数据所对应的复制对象外文件作为复制候选。这里,作成复制候选的文件的清单(以下,称为候选清单)。候选清单例如具有各复制候选文件的识别信息。在STEP506中,监视程序1214求出所述对象外比例(复制对象外文件的总容量相对于LUllOO的使用量(复制对象文件的总容量与复制对象外文件的总容量的总和)的比例),并判断该比例是否超过一定值。在超过时(STEP505 :是),进入STEP506。在未超过时(STEP505 :否),返回至 STEP500。在STEP507中,监视程序1214从候选清单中选择I个以上的文件,以使对象外比例在上述一定值以下。这基于候选清单表示的各文件的容量来进行。监视程序1214作成选择出的文件的清单(以下,称为复制对象清单)。另外,也可以将上述候选清单作为复制对象清单来代替作成该清单。在STEP508中,监视程序1214将具有作成的复制对象清单的复制请求发送给本地移动器1210。本地移动器1210响应该复制请求,复制由复制对象清单确定的文件。如上所述,在STEP502 :否、或STEP504 :否时,进行图21所示的处理。该处理是作成或更新特性清单的处理。图21中列举了几种检查对象的元数据,但该元数据种类为一个例子,并不限定于此。在STEP600 STEP605中,为了检测公共特性,将各种特性(元数据)与包含被追加了的已复制文件的多个已复制文件的元数据进行对比。在STEP600中,监视程序1214检查多个已复制文件的更新日期是否在一定范围内。
在STEP601中,监视程序1214检查多个已复制文件的最终访问日期是否在一定范围内。在STEP602中,监视程序1214检查多个已复制文件的容量(尺寸)是否在一定范围内。在STEP603中,监视程序1214检查多个已复制文件的参照频度(读取频度)是否在一定范围内。在STEP604中,监视程序1214检查多个已复制文件的更新频度(写入频度)是否在一定范围内。在STEP605中,监视程序1214检查多个已复制文件的扩展名是否相同。在STEP606中,监视程序1214在STEP601 STEP605中,针对多个已复制文件,在检测出公共特性时,将表示该特性的信息追加在特性清单中。以上,对本发明的一个实施例进行了说明,这是用于说明本发明的示例,并不将本发明的范围只限定于该实施例。本发明也可以以其他各种方式来实施。例如,也可以采用其他类型的存储装置来代替RAID系统110和/或210。并且,针对被复制了的文件,使复制标志3103为“开启”,但可以使数据/元数据需同步标志3101/3102为“关闭”。并且,当参照计数值变为O时,也可以在其他定时删除迁移对象文件(复制标志3103为“开启”且数据/元数据需同步标志3101/3102为“关闭”的文件)。例如,也可以在从迁移对象文件的最终访问日期经过了一定时间时,删除该文件。并且,也可以以不同于与桩所对应的文件有关的更新的契机解除桩。并且,存储文件的存储区域可以不限于LU。附图标记的说明120文件存储装置、220存档装置
权利要求
1.一种本地文件服务器,与通信网络连接而对本地存储装置进行管理,该通信网络连接有对远程存储装置进行管理的远程文件服务器,该文件服务器特征在于,包括 第一通信接口装置,其连接在所述通信网络上; 第二通信接口装置,其连接在发送指定了文件的读取请求或写入请求即访问请求的用户终端上,从用户终端中接收所述访问请求; 处理器,其连接在所述第一通信接口装置和所述第二通信接口装置上; 所述处理器进行如下动作 A、将所述本地存储装置内的文件复制到所述远程文件服务器内, B、在满足了第一条件时,将被复制了的文件即已复制文件作为迁移对象文件进行管理, C、即使完成所述B也不从所述本地存储装置中删除所述迁移对象文件,而在满足了第二条件时,从所述本地存储装置中删除所述迁移对象文件。
2.根据权利要求I所述的本地文件服务器,其特征在于, 所述通信网络为互联网, 所述第二通信接口装置连接在多个用户终端上, 所述第二条件是指所述迁移对象文件在被参照后将不会从任何用户终端中被参照。
3.根据权利要求2所述的本地文件服务器,其特征在于, 各用户终端在所述读取请求之前,发送打开请求,在所述读取请求之后,发送关闭请求, 所述处理器进行如下动作 E、针对所述迁移对象文件,每当接收所述打开请求时,按照第一规则更新与该文件有关的计数值, F、针对所述迁移对象文件,每当接收所述关闭请求时,按照第二规则更新与该文件有关的计数值, 所述第二条件是指在开始了更新与所述迁移对象文件有关的计数值后,该计数值成为预定值; 所述预定值是相当于文件没有从任何用户终端中被参照的值。
4.根据权利要求3所述的本地文件服务器,其特征在于, 所述第一条件是指所述本地存储装置的空闲容量小于规定阈值。
5.根据权利要求4所述的本地文件服务器,其特征在于, 所述处理器进行如下动作 H、在接受到与所述已复制文件有关的写入请求时,将该已复制文件作为同步化对象文件进行管理, I、将所述同步化对象文件传送至所述远程文件服务器,以使所述远程文件服务器管理的已复制文件与所述同步化对象文件一致, 所述处理器在所述I之后,判断是否满足所述第一条件。
6.根据权利要求5所述的本地文件服务器,其特征在于, 所述处理器进行如下以下动作 K、在针对从所述本地存储装置中删除的所述迁移对象文件的桩接受写入请求时,从所述远程文件服务器中取得处于由该桩确定的链接目标的、所述远程文件服务器管理的文件, L、将所述取得的文件存储至所述本地存储装置内, M、按照所述K中接受的写入请求更新所述取得的文件, 所述处理器在进行了所述K时,解除所述桩。
7.根据权利要求6所述的本地文件服务器,其特征在于, 所述本地存储装置存储多个已复制文件、多个已复制文件以外的I个以上的文件即I个以上的复制对象外文件, 所述处理器进行如下动作 0、基于多个已复制文件的元数据,提取所述多个已复制文件的I个以上的公共特性, P、从所述I个以上的复制对象外文件中选择与适合所述I个以上公共特性的元数据所对应的复制对象外文件, Q、将选择出的复制对象外文件迁移到所述远程文件服务器内。
8.根据权利要求I所述的本地文件服务器,其特征在于, 所述第一条件是指所述本地存储装置的空闲容量小于预定阈值。
9.根据权利要求8所述的本地文件服务器,其特征在于, 所述处理器进行如下动作 H、在接受针对所述已复制文件的写入请求时,将该已复制文件作为同步化对象文件进行管理, 1、将所述同步化对象文件传送至所述远程文件服务器,以使所述远程文件服务器管理的已复制文件与所述同步化对象文件一致, 所述处理器在所述I之后,判断是否满足所述第一条件。
10.根据权利要求I所述的本地文件服务器,其特征在于, 所述处理器进行如下动作 K、在针对从所述本地存储装置中删除的所述迁移对象文件的桩接受写入请求时,从所述远程文件服务器中取得处于该桩确定的链接目标的、所述远程文件服务器管理的文件, L、将所述取得的文件存储至所述本地存储装置内, M、按照所述K中接受的写入请求更新所述取得的文件, 所述处理器在进行了所述K时,解除所述桩。
11.根据权利要求I所述的本地文件服务器,其特征在于, 所述本地存储装置存储多个已复制文件、多个已复制文件以外的I个以上的文件即I个以上的复制对象外文件, 所述处理器进行如下以下动作 O、基于多个已复制文件的元数据,提取所述多个已复制文件的I个以上的公共特性, P、从所述I个以上的复制对象外文件中选择与适合所述I个以上的公共特性的元数据所对应的复制对象外文件, Q、将选择出的复制对象外文件迁移至所述远程文件服务器内。
12.根据权利要求11所述的本地文件服务器,其特征在于, 在所述I个以上的复制对象外文件的总容量相对于所述本地存储装置容量的比例在一定值以上时,所述处理器执行所述P。
13.根据权利要求12所述的本地文件服务器,其特征在于, 在所述P中,选择I个以上的复制对象外文件,以使所述比例小于所述一定值。
14.一种存储系统,包括 远程文件服务器,对远程存储装置进行管理; 本地文件服务器,对本地存储装置进行管理,并经由通信网络与所述远程文件服务器连接, 所述存储系统进行如下动作 A、所述本地文件服务器将所述本地存储装置内的文件经由所述通信网络传送至所述远程文件服务器内,所述远程文件服务器将该文件存储至所述远程存储装置内,由此复制该文件, B、所述本地文件服务器在满足了第一条件时,将被复制了的文件即所述本地存储装置内的已复制文件作为迁移对象文件进行管理, C、所述本地文件服务器即使完成所述B也不从所述本地存储装置中删除所述迁移对象文件,而在满足了第二条件时,从所述本地存储装置中删除所述迁移对象文件。
15.一种计算机程序,使本地文件服务器执行如下A C的动作,其中,所述本地文件服务器与通信网络连接而对本地存储装置进行管理,该通信网络连接有对远程存储装置进行管理的远程文件服务器, 其中,所述A C的动作如下 A、将所述本地存储装置内的文件复制到所述远程文件服务器内, B、在满足了第一条件时,将被复制的文件即已复制文件作为迁移对象文件进行管理, C、即使完成所述B也不从所述本地存储装置中删除所述迁移对象文件,而在满足了第二条件时,从所述本地存储装置中删除所述迁移对象文件。
全文摘要
本发明提供一种经由通信网络向远程文件服务器传送文件的本地文件服务器及具有该文件服务器的存储系统。对远程存储装置进行管理的远程文件服务器与对本地存储装置进行管理的本地文件服务器连接在通信网络(例如互联网)上。本地文件服务器进行如下动作(A)将本地存储装置内的文件复制到远程文件服务器内,(B)在满足了第一条件时,将被复制了的文件即已复制文件作为迁移对象文件进行管理。本地文件服务器即使完成(B)也不从本地存储装置中删除迁移对象文件,而在满足了第二条件时,从本地存储装置中删除迁移对象文件。
文档编号G06F12/00GK102870098SQ20108006369
公开日2013年1月9日 申请日期2010年5月27日 优先权日2010年5月27日
发明者荒井仁, 蟹江誉, 杂贺信之 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1