CN1677373A - 到/自计算设备的存储介质的有效数据传送 - Google Patents

到/自计算设备的存储介质的有效数据传送 Download PDF

Info

Publication number
CN1677373A
CN1677373A CNA2005100561897A CN200510056189A CN1677373A CN 1677373 A CN1677373 A CN 1677373A CN A2005100561897 A CNA2005100561897 A CN A2005100561897A CN 200510056189 A CN200510056189 A CN 200510056189A CN 1677373 A CN1677373 A CN 1677373A
Authority
CN
China
Prior art keywords
data
medium
file system
source
sign
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005100561897A
Other languages
English (en)
Other versions
CN100474275C (zh
Inventor
A·M·皮尔森
R·T·帕尔姆
S·C·帕特尔
Y·谷帕尔兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1677373A publication Critical patent/CN1677373A/zh
Application granted granted Critical
Publication of CN100474275C publication Critical patent/CN100474275C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

应用程序向计算设备的文件系统发出应用程序命令,其中,应用程序命令包括源处的数据的位置。文件系统为数据分配介质上的空间,并编译包括将用来存储数据的介质的每个部分的标识的列表。然后,文件系统向介质的块驱动器发出文件系统命令,其中,文件系统命令包括源处的数据的位置以及所编译的列表。块驱动器联系源、请求其位置处的数据、并将数据写入包括在所编译的列表中的介质部分。

Description

到/自计算设备的存储介质的有效数据传送
相关申请的参照
本申请要求在代理案卷号“MSFT-3516”下,2004年3月22日提交的美国临时申请号60/555,393,并名为“EFFICIENT DATA TRANSFER TO/FROMSTORAGE MEDIUM OF COMPUTING DEVICE”的优先权。
技术领域
本发明涉及一种方法,通过该方法,将数据传送到与计算设备有关的存储介质或从与计算设备有关的存储介质传送数据。更具体地说,本发明涉及这样一种方法,通过该方法,所传送的数据绕过计算设备的文件系统,由此直接拷贝到存储介质上或从存储介质直接拷贝数据。因此,在例如计算设备上的硬盘驱动器和外部存储介质、网络连接等等之间;计算设备上的RAM及其硬盘驱动器等等之间传送数据方面等实现更好性能。
背景技术
在诸如个人计算机等等计算设备中,通过管理存储介质上的文件的计算设备上的文件系统,将数据传送到与之相关联的存储介质或从与之相关联的存储介质传送数据。特别地,文件系统组织和维护对存储介质的存取,以及处理将数据传送到存储介质或从存储介质传送数据的请求。
在现有技术中,视具体情况而定,文件系统从存储介质接收将传送的数据,并将数据转发到目的地,或从源接收将传送的数据,并将数据转发到存储介质。然而,通过由此充当中介的文件系统,由于部分地传送数据以及每部分要求单独传送到文件系统和从文件系统单独传送,以及相关的计算开销,特别大量的数据传送尤其是处理密集型的。
特别地,在现有技术中,通常根据下述步骤,执行例如从任何源到计算设备的硬盘驱动器的数据传送。预先地,计算设备上的应用程序指示这种计算设备的文件系统基于数据创建硬盘驱动器上的文件。注意,在完成这一过程时,应用程序不必将数据源或数据大小告知文件系统。此后,应用程序从其源获得第一部分数据,并将它可能作为转发缓冲区的一部分,连同将该第一部分的数据写入硬盘驱动器的命令一起,传送到文件系统。通常,硬盘驱动器包括与文件系统接口的块驱动器等等,或与其相关联,由此文件系统通过其块驱动器与硬盘驱动器通信。通常,文件系统维护硬盘驱动器的每个扇区的扇区信息,包括该扇区是否正使用,并且如果是,哪个文件正使用该扇区。
因此,为将第一部分数据写入硬盘驱动器,文件系统引用该扇区信息来确定用于第一部分数据的可用扇区,以及编译包括将用来存储第一部分数据的硬盘驱动器的扇区的标识的扇区列表。如将意识到的,文件系统至少部分地基于第一部分数据的大小和每个扇区的容量,以通常公知的方式编译扇区列表。无论如何,文件系统将第一部分数据和所编译的扇区列表发送到硬盘驱动器的块驱动器,然后,块驱动器以通常公知的方式,根据扇区列表将第一部分数据存储在硬盘驱动器上。
此后,应用程序从其源获得第二部分数据,并以通常与上述相同的方式,将其连同将第二部分数据写入硬盘驱动器的命令一起递送到文件系统。如能意识到的,如有必要,该过程继续第三、第四、第五等部分数据,直到将所有数据从其源传送到硬盘驱动器为止。注意,当将数据从硬盘驱动器读到目的地时,该过程是类似的,然而,当然,数据在相反方向中通过文件系统。
因此,概括来说,在现有技术中,首先将写入硬盘驱动器等等的每部分数据从该数据源递送到文件系统,然后从文件系统递送到硬盘驱动器,并且同样地,首先将从硬盘驱动器等等读出的每部分数据从硬盘驱动器递送到文件系统,然后从文件系统递送到该数据的目的地。然而,再一次,该过程麻烦且低效,尤其当数据量特别大并且所有数据都必须通过作为中介的文件系统时。
因此,需要一种方法,通过该方法,能将数据从源等等直接递送到与计算设备相关联的存储介质,诸如硬盘驱动器等等,而不首先通过该计算设备的文件系统。同样地,类似需要一种方法,通过该方法,将数据从该存储介质直接递送到目的地等等,而不首先通过该计算设备的文件系统。
发明内容
通过本发明,至少部分地满足上述需求,在本发明中,对计算设备上的应用程序提供一种方法,用来将数据从源写入与计算设备相关联的存储介质。在该方法中,应用程序向计算设备的文件系统发出应用程序命令,其中,应用程序命令包括源的标识以及源处的数据位置。基于由此维护的空间信息,文件系统为该数据分配介质上的空间,并编译将用来存储数据的介质的每个部分的标识。然后,文件系统向介质的块驱动器发出文件系统命令,其中,文件系统命令包括源的标识以及该源处的数据位置,并还包括编译的列表。块驱动器按其标识联系源并向其请求其位置处的数据,以及将该位置处的数据从源写入包括在编译列表中的介质部分。为计算设备上的应用程序也提供相应的方法,以便从存储介质读入目的地。
附图说明
当结合附图阅读时,将更好理解上述概述和本发明的实施例的下述详细描述。为示例说明本发明的目的,在图中示出了目前最佳的实施例,然而,应理解到,本发明不限于所示的具体的配置和手段。在图中:
图1是表示通用计算机系统的框图,其中可以结合本发明和/或其部分的的各方面;
图2是表示应用程序、文件系统和与计算机相关联的驱动器的块驱动器等等的框图;以及
图3和4是根据本发明的一个实施例,表示由图2的元件执行的、写入驱动器(图3)和从驱动器读出(图4)的关键步骤的流程图。
具体实施方式
图1和下述论述用来提供合适的计算环境的简单描述,其中,可以实现本发明和/或其部分。尽管并非所需,但在由诸如客户机工作站或服务器等计算机执行的计算机可执行指令的,如程序模块通用上下文中描述本发明。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。此外,应意识到,可以通过其他计算机系统配置,包括手持设备、多处理器系统、基于微处理器或可编程消费者电子设备,网络PC、小型机、大型机等等来实施本发明和/或其部分。也可以在由通过通信网络链接的远程处理设备执行任务的分布式计算环境中实施本发明。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
如图1所示,示例性通用计算系统包括常规个人计算机120等等,包括处理单元121、系统存储器122和将包括系统存储器的各个系统组件耦合到处理单元121的系统总线123。系统总线123可以是包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构的任何一个的局部总线的几种类型的总线结构的任何一个。系统存储器包括只读存储器(ROM)124和随机存取存储器(RAM)125。在ROM 124中存储基本输入/输出系统126(BIOS),它包含诸如在启动期间有助于在个人计算机120内的元件间传送信息的基本例程。
个人计算机120还可以包括用于从硬盘(未示出)、读出和向其写入的硬盘驱动器127、用于从可移动磁盘129读出或向其写入的磁盘驱动器128、以及用于从可移动光盘131,诸如CD-ROM或其他光介质读出或向其写入的光盘驱动器130。硬盘驱动器127、磁盘驱动器128和光盘驱动器130分别通过硬盘驱动接口130、磁盘驱动接口133和光盘驱动接口134连接到系统总线123。驱动器和它们相关的计算机可读介质为个人计算机120提供了计算机可读指令、数据结构、程序模块和其他数据的非易失存储。
尽管在此所述的示例性环境采用硬盘、可移动磁盘129和可移动光盘131,应意识到,能存储可由计算机存取的数据的其他类型的计算机可读介质也可以用在示例性操作环境中。这些其他类型的介质包括磁带盒、闪存卡、数字视频盘、Bernoulli盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等等。
多个程序模块可以存储在硬盘、磁盘129、光盘131、ROM 124或RAM 125中,包括操作系统135、一个或多个应用程序136、其他程序模块137和程序数据138。用户可以通过输入设备,诸如键盘140和指示设备142,将命令和信息输入到个人计算机120。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其他输入设备通常通过耦合到系统总线的串行端口接口146连接到处理单元121,但也可以通过其他接口,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器147或其他类型的显示设备也可以经接口,诸如视频适配器148连接到系统总线123。除监视器147外,个人计算机通常包括其他外围输出设备(未示出),诸如扬声器和打印机。图1的示例性系统还包括主机适配器155、小型计算机系统接口(SCSI)总线156和连接到SCSI总线156的外部存储设备162。
使用到一个或多个远程计算机,诸如远程计算机149的逻辑连接,个人计算机120可以在联网环境中操作。远程计算机149可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其他公用网络节点,并通常包括上文相对于个人计算机120,所描述的许多或全部元件,尽管在图1中仅示出了存储器存储设备150。图1中所示的逻辑连接包括局域网(LAN)151和广域网(WAN)152。这种联网环境在办公室、企业范围计算机网络、内联网和因特网中很常见。
当用在LAN联网环境中时,个人计算机120通过网络接口或适配器153连接到LAN 151。当用在WAN联网环境中时,个人计算机120通常包括用于通过广域网152,诸如因特网建立通信的调制解调器154或其他装置。可以是内部或外部的调制解调器154经串行端口接口146连接到系统总线123。在联网环境中,相对于个人计算机120或其部分所述的程序模块可以存储在远程存储器存储设备中。将意识到,所示的网络连接是示例性的,并且可以使用在计算机间建立通信链路的其他装置。
广义封装工具和组件
在本发明的一个实施例中,并且现在转到图2,将数据从其源20复制到诸如受计算设备14的文件系统12管理的驱动器等一个或多个存储介质10的任何一个,或从受计算设备14的文件系统12管理的一个或多个驱动器10的任何一个复制到其目的地20,而不通过该文件系统12。然后,采用本发明,应用程序16通过将传送的数据的源20或目的地20,如果有必要,连同有关该数据的其他信息一起,告知文件系统12,来实现数据的传送,并且文件系统12编译由数据占用或将由数据占用的驱动器10中的所有扇区的列表。此后,文件系统12将所编译的扇区列表连同有关如何访问源或目的地20的信息发送到驱动器10的块驱动器18,然后,块驱动器18直接与该源或目的地20通信,并且从它们获得数据或将数据递送到它们。
注意,计算设备14可以是具有文件系统12的任何适当的计算设备14,而不背离本发明的精神和范围。例如,计算设备14可以是个人计算机或其类似物、便携式唱机、个人数据助理、服务器计算机等等。通常,尽管并非必要,计算设备14具有在其上操作、启动数据传送的应用程序16。
还应注意,数据的源或目的地20可以是任何适当的源或目的地20,而不背离本发明的精神和范围。例如,该源/目的地20可以是计算设备14上的另一驱动器10、RAM、闪存等等,或者计算设备14外,但可由该计算设备14存取的其他一些存储介质10。
类似地,与计算设备14相关联的驱动器10可以是可由计算设备14的文件系统12存取的任何驱动器10,包括真实和虚拟驱动器,而不背离本发明的精神和范围。当然,该驱动器10需要能直接与源/目的地20通信的块驱动器18,以便从它们获得数据或将数据传送到它们。例如,该驱动器10可以是硬盘驱动器或硬盘驱动器的分区部分,可以是在RAM或闪存中操作的虚拟驱动器,可以是文件系统可存取的远程驱动器,可以是文件服务器等等。应意识到,该驱动器10可以在计算设备14的内部或外部,可以是本地或远程,以及可以在或不在计算设备14的直接控制下,等等。
在本发明的一个实施例中,然后现在参考图3,与计算设备14相关联的应用程序16或其类似物希望在其文件系统12的控制下,将数据从源20写入与计算设备14相关联的驱动器10。据推测,应用程序16具有数据大小的知识,并且数据将作为新创建或修改的文件驻留在驱动器10上。因此,如果需要,应用程序16向文件系统12发出创建文件的命令(步骤301),并且还基于数据的大小向文件系统12告知文件大小(步骤303)。
尽管如用在本发明中的文件系统12不是数据传送中的中介,然而,文件系统12管理驱动器10,因此,用来分配其上的空间。因此,在本发明的一个实施例中,应用程序16向文件系统12发出命令以便开始写过程(步骤305),其中,开始命令包括源20的标识和该源20处数据的位置。作为响应,并且基于由文件系统12维护的扇区信息,该文件系统12实际上分配用于该数据的空间。特别地,文件系统12基于在步骤303确定的其大小,确定用于整个数据的可用扇区,并且编译包括将用来存储整个数据的驱动器10的扇区的标识的扇区列表(步骤307)。
此后,文件系统向驱动器10的块驱动器18发出命令以便开始写过程(步骤309),其中,开始命令包括源20的标识和该源20处数据的位置,并还包括所编译的扇区列表。尽管要注意,文件系统12实际上不将任何数据递送到块驱动器18。重要地,在本发明的一个实施例中,分局扇区列表以及来自文件系统12的标识和位置信息,块驱动器18在适当时通过按其标识联系源20并向其请求和接收在该源20的位置处的整个数据,以及将该数据转发到如在扇区列表内标识的驱动器10的扇区,执行将该数据到驱动器10的写入(步骤311)。可以用任何适当的方式,执行通过块驱动器18将该数据从源20到驱动器10的写入,而不背离本发明的精神和范围。如可以意识到,该数据的写入是公知的,或对相关公众来说应当是显而易见的,因此,不必在此详细地阐述。例如,这种写入可以实现为连续数据流或一系列该数据部分。在后一种情况下,应意识到尽管以多个部分接收,但直接从源20接收数据,而不首先通过文件系统12。无论如何,块驱动器18在直接从源20接收时,将所写数据存储在驱动器10上,而不需要作为中介的文件系统12,并且以通常公知的方式根据扇区列表来执行该操作。
此时,数据实际上从源20写入驱动器,并且不必再执行任何操作。然而,作为一种管理方式,源20可以通知应用程序16写入过程完成(步骤313),应用程序16可以同样地将向文件系统12发出写入过程完成的命令(步骤315),并且文件系统12也可以同样地向驱动器10的块驱动器18发出写入过程完成的命令(步骤317)。因此,应用程序16、文件系统12和块驱动器18的每一个能管理地关闭写入过程和/或执行任何所需的完成功能。
与写入数据类似,在本发明的一个实施例中,应用程序16可能希望在文件系统12的控制下,将数据从计算设备14的驱动器10读入目的地20。此处,尽管数据已经作为驱动器10上的文件或其类似物存在。因此,应用程序16向文件系统12发出打开文件的命令。然而,注意,文件系统12能自己确定文件或数据的大小,因此,不必由应用程序16告知。
如前所述,尽管文件系统12不是数据传送中的中介,然而文件系统12管理驱动器10,因此,必须用来定位文件中的数据。因此,现在转到图4,应用程序16向文件系统12发出开始读过程的命令(步骤401),其中,开始命令包括目的地20的标识,并且如果有必要,包括该目的地20处数据的位置,并基于所维护的扇区信息,文件系统12找出驱动器上具有该数据的扇区。特别地,文件系统12将用于整个数据的扇区确定为存储在驱动器10上,并且编译包括将用来检索整个数据的驱动器10的扇区的标识的扇区列表(步骤403)。
此后,文件系统12向驱动器10的块驱动器18发出开始读过程的命令,其中,开始命令包括目的地20的标识,并且如果有必要,包括该目的地20处数据的位置,且还包括扇区列表(步骤405)。其中,在最后一个扇区尾前该数据已结束的情况下,开始命令还可以包括数据的大小。如前所述,将注意到,文件系统12实际上不从驱动器10/块驱动器18递送任何数据。重要地,在本发明的一个实施例中,通过扇区列表、大小和来自文件系统的标识和位置信息,块驱动器18通过在适当时按其标识联系目的地20并向其递送其位置处的整个数据,执行该读取,其中,从驱动器10上的扇区获得该数据(步骤407)。然后,可以任何适当的方式,执行通过块驱动器18将该数据从驱动器10到目的地20的读取,而不背离本发明的精神和范围。可以意识到,该数据的读取是公知的,或对相关公众来说是显而易见的,因此,在此不必详细阐述。例如,同样地,根据扇区列表,该读取可以实现为连续数据流或一系列该数据部分。在后一种情况下,同样地应注意到,尽管以多个部分递送,数据是通过块驱动器18直接递送到目的地20的,而不首先通过文件系统12。无论如何,当直接从块驱动器18接收时,目的地20存储所读取的数据,而不需要以通常公知的方式作为中介的文件系统12。
此时,实际上,数据从驱动器读取到目的地20,并且不必再执行任何操作。然而,同样地,作为管理方式,目的地20可以通知应用程序16读取过程完成(步骤409),应用程序16可以同样地向文件系统12发出读取过程完成的命令(步骤411),并且文件系统12也可以同样地向驱动器10的块驱动器18发出读取过程结束的命令。因此,同样地,应用程序16、文件系统12和块驱动器18的每一个能管理地关闭读取过程和/或执行任何所需的完成功能。
结论
应意识到,在至少一些设置中,块驱动器18和文件系统12两者都用相同软件模块来实现。因此,在实现与该块驱动器18和文件系统12有关的功能的该模块的部分间,可以存在或不存在内部划分。即使在这种设置中,仍然可以应用如在此所述的本发明,因为组合的块驱动器18/文件系统12仍然直接与源/目的地20通信。因此,同样地,应用程序16能避开数据事务,其结果是在数据传送期间的显著效率。
对于任何适当的应用程序16、具有块驱动器18的驱动器10、源/目的地20和具有文件系统12的计算设备14,可以实施本发明。现在,应意识到,采用本发明,可以将数据从源20或其类似物直接递送到与计算设备14相关联的驱动器10或其类似物,而不首先通过该计算设备14的文件系统12。同样,将数据从与计算设备14相关联的驱动器10或其类似物直接递送到目的地20或其类似物,而不首先通过该计算设备14的文件系统12。因此,在传送时,数据不必首先通过文件系统12。注意,使用术语“直接”要求仅绕过文件系统12,并不要求源/目的地20和驱动器10间的直接链接。如可以意识到,通过避开文件系统12,以较不麻烦的方式执行数据的传送,具有显著增加的效率,尤其是因为应用程序16和文件系统12每次传送仅需要发出一个开始命令等等。
因此,避免了文件系统12上的管理开销,并且还避免了应用程序16的数据传送中的重复卷入。注意,在此所述的技术还可以用在文件系统12和块驱动器18基本上为一个或相同的情况下,例如在相对简单的计算设备14中的情形。即使如此,因为应用程序16不必读取数据的每个部分并将其写入该组合文件系统12/块驱动器18,仍可获得效率。
实现结合本发明执行的过程所需的程序设计相对直接,并且对相关程序设计公众来说是显而易见的。因此,不必附加该程序设计。所以,可以采用任何特定的程序设计来实现本发明,而不背离本发明的精神和范围。
在上述描述中,能看出本发明包括允许以更有效且较不麻烦的方法,将数据传送到驱动器10或从驱动器10传送数据的新且有用的方法。该数据从源20或其类似物直接递送到存储介质10,诸如与计算设备14相关联的硬盘驱动器等等,而不首先通过该计算设备14的文件系统12,或直接从该存储介质10递送到目的地20或其类似物,而不首先通过该计算设备14的文件系统12。注意,该数据也不必涉及应用程序16。应意识到,在不背离其创造性原理的情况下,可以对上述实施例做出改变。通常,应注意到,本发明不限于所公开的特定实施例,而是意图覆盖本发明的精神和范围内的改进。

Claims (22)

1.一种由计算设备上的应用程序用于将数据从源写入与所述计算设备相关联的存储介质的方法,所述方法包括:
所述应用向所述计算设备的文件系统发出一应用程序命令,所述应用程序命令包括所述源的标识以及所述源处数据的位置;
所述文件系统基于所维护的空间信息,由此为所述数据分配所述介质上的空间,并编译包括将用来存储数据的介质的每个部分的标识的列表;
所述文件系统向所述介质的块驱动器发出一文件系统命令,所述文件系统命令包括所述源的标识和该源处的数据的位置,并还包括所编译的列表;以及
所述块驱动器按其标识联系所述源并向其请求其位置处的数据,以及将该位置处的数据从所述源写入包括在所编译的列表中的介质的各部分。
2.如权利要求1所述的方法,其特征在于,还包括所述应用向所述文件系统发出在所述介质上创建文件的命令。
3.如权利要求2所述的方法,其特征在于,还包括所述应用将所述数据的大小告知所述文件系统。
4.如权利要求1所述的方法,其特征在于,包括所述文件系统确定用于所有数据的介质的可用扇区,以及编译包括将用来存储数据的介质的每个扇区的标识的扇区列表。
5.如权利要求1所述的方法,其特征在于,包括所述块驱动器将所述数据从所述源写入所述介质,并绕过所述文件系统。
6.如权利要求1所述的方法,其特征在于,还包括在所述块驱动器完成将所有数据从所述源写入所述介质后,所述源通知所述应用程序写入完成,以及所述应用程序通知所述文件系统写入完成,所述文件系统通知所述块驱动器写入完成。
7.一种由计算设备上的应用程序用于将数据从与计算设备相关联的存储介质读取到目的地的方法,所述方法包括:
所述应用程序向所述计算设备的文件系统发出一应用程序命令,所述应用程序命令包括所述目的地的标识以及所述目的地处数据的位置;
所述文件系统基于所维护的空间信息,由此定位所述介质上具有所述数据的空间,并编译包括存储所述数据的介质的每个部分的标识的列表;
所述文件系统向所述介质的块驱动器发出一文件系统命令,所述文件系统命令包括所述目的地的标识和该目的地处的数据的位置,并还包括所编译的列表;以及
所述块驱动器按其标识联系所述目的地,并在从包括在所编译的列表中的介质的部分读取所述数据后,将其位置处的数据递送到所述目的地。
8.如权利要求7所述的方法,其特征在于,还包括所述文件系统告知所述块驱动器将读取的数据的大小。
9.如权利要求7所述的方法,其特征在于,包括所述文件系统确定具有所有数据的介质的扇区,并编译包括将用来读取所述数据的介质的每个扇区的标识的扇区列表。
10.如权利要求7所述的方法,其特征在于,包括所述块驱动器将所述数据从所述介质读取到所述目的地,并绕过所述文件系统。
11.如权利要求7所述的方法,其特征在于,还包括在所述块驱动器完成将所有数据从所述介质读取到所述目的地后,所述目的地通知所述应用程序读取完成,以及所述应用通知所述文件系统读取完成,以及所述文件系统通知所述块驱动器读取完成。
12.一种计算机可读介质,具有在其上存储的、实现由计算设备上的应用程序用于将数据从源写入与所述计算设备相关联的存储介质的方法的计算机可执行指令,所述方法包括:
所述应用程序向所述计算设备的文件系统发出一应用程序命令,所述应用程序命令包括所述源的标识以及所述源处数据的位置;
所述文件系统基于所维护的空间信息,由此为所述数据分配所述介质上的空间,并编译包括将用来存储数据的介质的每个部分的标识的列表;
所述文件系统向所述介质的块驱动器发出一文件系统命令,所述文件系统命令包括所述源的标识和该源处的数据的位置,并还包括所编译的列表;以及
所述块驱动器按其标识联系所述源,并向其请求其位置处的数据,以及将该位置处的数据从所述源写入包括在所编译的列表中的介质部分。
13.如权利要求12所述的介质,其特征在于,所述方法还包括所述应用程序向所述文件系统发出在所述介质上创建文件的命令。
14.如权利要求13所述的介质,其特征在于,所述方法还包括所述应用程序将所述数据的大小告知所述文件系统。
15.如权利要求12所述的介质,其特征在于,所述方法包括所述文件系统确定用于所有数据的介质的可用扇区,以及编译包括将用来存储数据的介质的每个扇区的标识的扇区列表。
16.如权利要求12所述的介质,其特征在于,所述方法包括所述块驱动器将所述数据从所述源写入所述介质,并绕过所述文件系统。
17.如权利要求12所述的介质,其特征在于,所述方法还包括,在所述块驱动器完成将所有数据从所述源写入所述介质后,所述源通知所述应用程序写入完成,以及所述应用程序通知所述文件系统写入完成,以及所述文件系统通知所述块驱动器写入完成。
18.一种计算机可读介质,具有在其上存储的、实现由计算设备上的应用程序用于将数据从与计算设备相关联的存储介质读取到目的地的方法的计算机可执行指令,所述方法包括:
所述应用程序向所述计算设备的文件系统发出一应用程序命令,所述应用程序命令包括目的地的标识以及所述目的地处数据的位置;
所述文件系统基于所维护的空间信息,由此定位所述介质上具有所述数据的空间,并编译包括存储所述数据的介质的每个部分的标识的列表;
所述文件系统向所述介质的块驱动器发出一文件系统命令,所述文件系统命令包括所述目的地的标识和该目的地处的数据的位置,并还包括所编译的列表;以及
所述块驱动器按其标识联系所述目的地,并在从包括在所编译的列表中的介质的部分读取所述数据后,将其位置处的数据递送到所述目的地。
19.如权利要求18所述的介质,其特征在于,所述方法还包括所述文件系统将读取的数据的大小告知所述块驱动器。
20.如权利要求18所述的介质,其特征在于,所述方法包括所述文件系统确定具有所有数据的介质的扇区,并编译包括将用来读取所述数据的介质的每个扇区的标识的扇区列表。
21.如权利要求18所述的介质,其特征在于,所述方法包括所述块驱动器将所述数据从所述介质读取到所述目的地,并绕过所述文件系统。
22.如权利要求18所述的介质,其特征在于,所述方法还包括,在所述块驱动器完成将所有数据从所述介质读取到所述目的地后,所述目的地通知所述应用程序读取完成,以及所述应用程序通知所述文件系统读取完成,以及所述文件系统通知所述块驱动器读取完成。
CNB2005100561897A 2004-03-22 2005-03-22 到/自计算设备的存储介质的有效数据传送 Expired - Fee Related CN100474275C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US55539304P 2004-03-22 2004-03-22
US60/555,393 2004-03-22
US10/995,935 US7428557B2 (en) 2004-03-22 2004-11-23 Efficient data transfer to/from storage medium of computing device
US10/995,935 2004-11-23

Publications (2)

Publication Number Publication Date
CN1677373A true CN1677373A (zh) 2005-10-05
CN100474275C CN100474275C (zh) 2009-04-01

Family

ID=34987614

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100561897A Expired - Fee Related CN100474275C (zh) 2004-03-22 2005-03-22 到/自计算设备的存储介质的有效数据传送

Country Status (5)

Country Link
US (2) US7428557B2 (zh)
EP (1) EP1580657A3 (zh)
JP (1) JP2005276211A (zh)
KR (1) KR101137121B1 (zh)
CN (1) CN100474275C (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100827227B1 (ko) * 2005-06-24 2008-05-07 삼성전자주식회사 저성능 저장장치의 drm 권리 객체를 효율적으로관리하는 방법 및 장치
TWI409665B (zh) * 2008-10-23 2013-09-21 Shrisinha Technology Corp Enter the information instantly against the protection method and its hardware
KR102225618B1 (ko) * 2014-09-30 2021-03-12 한화테크윈 주식회사 실패 시나리오로부터 기록된 데이터의 시간 관련 메타데이터의 공간 효율적인 복구

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371885A (en) * 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
US5778430A (en) * 1996-04-19 1998-07-07 Eccs, Inc. Method and apparatus for computer disk cache management
US5867733A (en) * 1996-06-04 1999-02-02 Micron Electronics, Inc. Mass data storage controller permitting data to be directly transferred between storage devices without transferring data to main memory and without transferring data over input-output bus
JP3434979B2 (ja) * 1996-07-23 2003-08-11 富士通株式会社 局所領域画像追跡装置
US6807581B1 (en) * 2000-09-29 2004-10-19 Alacritech, Inc. Intelligent network storage interface system
JPH11249937A (ja) * 1998-02-26 1999-09-17 Nippon Telegr & Teleph Corp <Ntt> コンピュータシステム
US6393540B1 (en) * 1998-06-30 2002-05-21 Emc Corporation Moving a logical object from a set of source locations to a set of destination locations using a single command
US6542909B1 (en) * 1998-06-30 2003-04-01 Emc Corporation System for determining mapping of logical objects in a computer system
JP2000057039A (ja) * 1998-08-03 2000-02-25 Canon Inc アクセス制御方法及び装置及びファイルシステム及び情報処理装置
JP4164202B2 (ja) * 1998-10-08 2008-10-15 キヤノン株式会社 電子機器、電子機器の駆動方法、及びコンピュータ読み取り可能な記憶媒体
US6363385B1 (en) * 1999-06-29 2002-03-26 Emc Corporation Method and apparatus for making independent data copies in a data processing system
WO2001061563A1 (en) * 2000-02-18 2001-08-23 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
JP4452363B2 (ja) * 2000-02-23 2010-04-21 富士通株式会社 ファイルシステム
US6684270B1 (en) * 2000-06-02 2004-01-27 Nortel Networks Limited Accelerated file system that recognizes and reroutes uncontested read operations to a second faster path for use in high-capacity data transfer systems
US6981005B1 (en) * 2000-08-24 2005-12-27 Microsoft Corporation Partial migration of an object to another storage location in a computer system
US6782400B2 (en) * 2001-06-21 2004-08-24 International Business Machines Corporation Method and system for transferring data between server systems
KR20030053067A (ko) * 2001-12-22 2003-06-28 (주)멀티비츠 컴퓨터 하드 디스크 데이터 삭제 시스템 및 하드 디스크크리닝용 기억 매체
JP3720773B2 (ja) * 2002-02-04 2005-11-30 キヤノン株式会社 インクジェット記録装置及びインクジェット記録方法
JP3940902B2 (ja) * 2002-04-22 2007-07-04 ソニー株式会社 情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及び情報処理装置の制御プログラムを記録した記録媒体
US6907504B2 (en) * 2002-07-29 2005-06-14 International Business Machines Corporation Method and system for upgrading drive firmware in a non-disruptive manner
US7461146B2 (en) * 2003-01-20 2008-12-02 Equallogic, Inc. Adaptive storage block data distribution
US7418575B2 (en) * 2003-07-29 2008-08-26 Stretch, Inc. Long instruction word processing with instruction extensions
US7836025B1 (en) * 2007-09-18 2010-11-16 Network Appliance, Inc. Method and apparatus for using pointers within a nonvolatile system memory of a network file computer system

Also Published As

Publication number Publication date
US7428557B2 (en) 2008-09-23
US20080301206A1 (en) 2008-12-04
CN100474275C (zh) 2009-04-01
EP1580657A3 (en) 2008-11-19
US8645435B2 (en) 2014-02-04
KR20060057494A (ko) 2006-05-26
US20050210075A1 (en) 2005-09-22
EP1580657A2 (en) 2005-09-28
JP2005276211A (ja) 2005-10-06
KR101137121B1 (ko) 2012-04-19

Similar Documents

Publication Publication Date Title
US8898384B2 (en) Fast accessible compressed thin provisioning volume
US6772290B1 (en) System and method for providing safe data movement using third party copy techniques
CN101443748B (zh) 将机器转换为虚拟机
CN101689119B (zh) 实体和虚拟图像的统一提供
CN100345415C (zh) 在存储区域网络上执行启动、维护和安装操作的方法和设备
CN1804810A (zh) 用于存储器访问请求的重定向的方法和系统
CN1525328A (zh) 为复制文件管理多个文件状态的方法
US7853701B2 (en) Method for intelligent, self-managed, decentralized connection pool management pool
CN1744603A (zh) 通过远程协议的远程文件更新
CN1766885A (zh) 提供受管理数据的系统及方法
CN1619509A (zh) 使用并行访问卷控制对逻辑卷的访问的装置和方法
EP1785867A2 (en) Method and apparatus for verifying data in a storage system
CN101044456A (zh) 快速将计算机设置到同机种资源池中
US20070061510A1 (en) Storage unit and disk control method
CN100474275C (zh) 到/自计算设备的存储介质的有效数据传送
US20020161934A1 (en) System and method for communication of data between a host and an administration system
CN1638378A (zh) 应用程序和动词资源管理
JP2005234860A (ja) バージョン管理システム、バージョン管理サーバ装置、及び記憶デバイス制御装置
US20050225935A1 (en) Computer switch
US8397022B2 (en) System and method for optimized data backup
CN1773502A (zh) 验证信息存储和检索系统的配置的设备和方法
JP2008107997A5 (zh)
JP2008107997A (ja) データ通信方法、データ通信装置及びデータ通信システム
KR100490935B1 (ko) 지능형 데이터 저장 디바이스
JP5033095B2 (ja) ストレージ管理媒介サーバ及びその制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150505

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150505

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090401

CF01 Termination of patent right due to non-payment of annual fee