The present invention relates to networked data storage systems, and more particularly, to performing verification in a write-once-read-many (WORM) system.
A networked data storage system may include one or more network storage servers, which may be storage appliances. A network storage server may provide services related to the organization of data on storage devices, such as disks. Some of these network storage servers are commonly referred to as filers or file servers. An example of such a storage server is any of the Filer products made by Network Appliance, Inc. in Sunnyvale, Calif. The storage appliance may be implemented with a special-purpose computer or a general-purpose computer. Depending on the application, various networked data storage systems may include different numbers of storage servers.
For financial institutions in the United States, such as security broker firms, security dealers, etc., the Security and Exchange Commission (SEC) imposes additional requirements on the data storage systems of these institutions for regulation and rule enforcement purposes. One of these rules is in 17 C.F.R. § 240.17a-4(f) adopted on Feb. 12, 1997, hereinafter, the “Rule.” The Rule imposes certain criteria on electronic storage media used in the securities broker-dealer industry. Under the Rule, a storage system has to provide non-rewriteability and non-eraseability, in addition to other requirements. When the Rule was developed, the prevalent storage media used in the securities broker-dealer industry was write once read many (WORM) optical disks. The WORM optical disks generally allow immediate verification of the accuracy of the recording process as an integral part of writing a record to the optical disks. Typically, a WORM optical disk immediately reads back the written sectors related to the record in a second revolution of the optical disk and compares what is read with what was intended to be written. If an error is detected, the recording process is retried in another location on the disk.
However, as data storage technology advances, magnetic storage devices, such as magnetic disks, have become the preferred storage devices over optical disks. Advantages of magnetic storage devices include their generally higher capacity and lower cost than optical storage. Another advantage is the shorter time needed to retrieve data from the magnetic storage devices, because optical disks generally take a relatively long time to load (e.g., from an optical silo) before they can be searched. Magnetic storage devices also provide fast random access. Since a regulatory agency may allow a financial institution only a very short time period to respond to a discovery request, it is important to have fast random access to the stored data. Moreover, it is relatively easy and economical to replicate the data stored in a magnetic storage device and to store the copy in another location using replication solutions, such as SnapMirror® from Network Appliance, Inc. The ease in replication facilitates disaster recovery of the data storage system.
Because of the various advantages of magnetic storage devices, it is desirable to use magnetic storage devices in the data storage systems in the securities broker-dealer industry as well. Techniques have been developed to make magnetic storage devices comply with the rules promulgated by SEC. In particular, a WORM storage solution applicable to magnetic storage devices has been developed by Network Appliance, Inc. The WORM storage solution allows for verification of accuracy at the time each record is read and periodically during the storage life of the record. However, since the data written is not verified until the record is read, there is some latency in discovering a problem with the data written. Furthermore, the periodic verification capability essentially transfers the responsibility for the timing of verifying the accuracy with which the recording was done to the system administrator, who then chooses the frequency and the immediacy with which the verification is performed. In addition to burdening the system administrator with the responsibility, the reliability of the storage system may be compromised if the frequency of verification is set too low. On the other hand, the performance of the system may suffer if the frequency of the verification is set too high.
A user interface is provided in a file-based networked storage server, to enable a user to selectively enable or disable an option to require read-after-write verification for each of a plurality of sets of data stored by the file-based networked storage server. A request is received from a client to perform a write of specified data, and in response to the request, the specified data is written to a magnetic storage device managed by the file-based networked storage server. A determination is made of whether the specified data is associated with a set of data for which the option to require read-after-write verification is enabled, and if so, then the specified data written to the magnetic storage device is verified, prior to, and as a precondition of, acknowledging completion of the write to the client. The specified data written to the magnetic storage device is designated as being in a WORM state only after successful completion of said writing and said verifying.
Other features of the present invention will be apparent from the accompanying drawings and from the detailed description that follows.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
A method and apparatus to perform read-after-write verification for improved WORM data storage are described. As described further below, a user interface is provided in a file-based networked storage server, to enable a user to selectively enable or disable an option to require read-after-write verification for each of a plurality of sets of data stored by the file-based networked storage server. A request is received from a client to perform a write of specified data, and in response to the request, the specified data is written to a magnetic storage device managed by the file-based networked storage server. A determination is made of whether the specified data is associated with a set of data for which the option to require read-after-write verification is enabled, and if so, then the specified data written to the magnetic storage device is verified, prior to, and as a precondition of, acknowledging completion of the write to the client. The specified data written to the magnetic storage device is designated as being in a WORM state only after successful completion of said writing and said verifying.
In one embodiment, data is stored and transferred in units of files in the system 100. Therefore, the system 100 may be referred to as a file-based networked storage system. In one embodiment, the system 100 is a network-attached storage (NAS) system, in which the storage server 110 provides clients 140 with file-level access to data stored in the volumes 135. The NAS system uses file access protocols to retrieve data, such as, for example, Network File System (NFS), or Common Internet File System (CIFS). The NAS system may be implemented in a single server or in multiple servers. The files are logically arranged into directories. A volume may be mapped to one or more directories. Alternatively, the system 100 may include a storage area network (SAN) to transmit read/write requests at the block level of the storage server 110. A block is the basic unit used to store data in the SAN.
In some embodiments, each of the volumes may be independently set up to have read-after-write verification enabled or disabled, according to user preference. Data written to a volume with the option enabled will be automatically verified after a write operation, before completion of the write is acknowledged to the client. In certain embodiments, after a complete record (e.g., a file) is written in its entirety, the data is verified by reading it back from the storage device(s) on which it was written and comparing the data read back to the data that was requested to be written. Once the written data is verified, the data is designated as non-rewriteable and non-erasable for a predetermined retention period (i.e., WORM state) in accordance with the Rule. The data may still be read many times within the retention period. Thus, the volume essentially implements a write once read many (WORM) scheme to store the data. Details on how the read-after-write verification is performed are discussed below.
Note that any or all of the components of system 100 and associated hardware may be used in various embodiments of the present invention. However, it can be appreciated that other configurations of the networked data storage system may include some or all of the devices disclosed above.
Details of an embodiment of the storage server 110 are illustrated in
In one embodiment, the processor 222 reads instructions from the memory 224 and executes the instructions. The memory 224 may include any of various types of memory devices, such as, for example, random access memory (RAM), read-only memory (ROM), flash memory, one or more mass storage devices (e.g., disks), etc. In one embodiment, the memory 224 stores instructions of an operating system 230. The processor 222 may retrieve the instructions from the memory 224 to run the operating system 230. The processor 222 responds to requests from client machines (e.g., the clients 140 in
In one embodiment, the file system 231 is a programmatic entity that imposes structure on an address space of the storage devices (e.g., the storage devices 130 in
The file system 231 is logically coupled to the network access layer 232 and the associated media access layer 233. The network access layer 232 and the media access layer 233 allow the storage server 200 to communicate over a network (e.g., the network 150 in
The file system 231 is also logically coupled to the storage control module 234 and the storage drivers 235. The storage control module 234 and the storage drivers 235 allow the storage server 200 to communicate with storage devices, such as the storage device 130 in
Also logically coupled to the file system 231 is a user interface layer 236, which generates a user interface such as a command line interface (CLI) or a graphical user interface (GUI), to allow administrative access to the storage server 200. Such administrative access may be done via an input/output terminal connected to the storage server 200 either directly (e.g., through a serial link) or via a network. Among other operations, the user interface 236 allows a user, such as a network administrator, to enable or disable an option for read-after-write verification, independently for each of the volumes of data maintained by the storage server 200. This enabling/disabling may be done, for example, by checking/unchecking a checkbox for a particular volume in a GUI to enable read-after-write verification for that volume. Each volume maintained by the storage server may have such a checkbox displayed in the GUI. If the option is enabled for a particular volume, then read-after-write verification will be performed by the storage server 200 for any writes directed to that volume.
At 301 a user is allowed (e.g., via the user interface 236) to select the volume(s) for which to activate read-after-write verification. As noted above, this may entail the user's checking a checkbox, displayed in a GUI, for each volume for which he wishes to require read-after-write verification. At 302 the storage server receives a write request from a client (e.g., one of the clients 140 in
The process then determines at 305 whether read-after-write verification is activated (enabled) for the volume to which the request was directed, by checking whether the above-mentioned option was selected for that volume. In alternative embodiments, the process can determine whether to perform read-after-write verification based on any other available information relating to the context of the write, such as the user who is requesting the write, etc. In some applications, only certain predetermined types of records (e.g., security trading records) have to be stored in a storage device complying with the SEC rules.
If read-after-write verification is not activated for that volume (305), then the process simply ends, by waiting for the next request from a client at 310. If read-after-write verification is activated for that volume, then read-after-write verification is executed at 306. There are multiple ways this can be accomplished, as described further below.
If the verification is not successful (307) (e.g., there was a write error), then at 311 the process writes the data to a different sector of the storage device or to a different storage device (depending on the amount of data for which the verification failed), and the process then loops back to 306. Typically, if the verification fails it is because of defects on the surface of the magnetic storage media. Therefore, other conventional corrective measures may alternatively be used to solve the problem, such as swapping the defective magnetic storage device with a spare magnetic storage device.
If the verification is successful (307), then the written and verified data is designated non-erasable and non-rewriteable by the file system 231, i.e., the data is placed in WORM state. In that case, the file system 231 will not allow the data to be written again during the applicable retention period. At this point (i.e., only after verification is successful) the storage server sends acknowledgement of completion of the write to the client, at 309. The process then ends at 310.
The capability embodied in this process enables magnetic storage devices to comply with the Rule promulgated by the SEC. Furthermore, since verification is performed automatically after writing the data to the magnetic storage device and before acknowledging completion of the write, the accuracy of the verification is improved and the latency in discovering a problem with the data written is shortened. Moreover, such capability relieves the user of the responsibility of choosing and setting a frequency at which to periodically perform verification on the data stored in the magnetic storage devices, hence making the system more user-friendly.
In some embodiments, a magnetic storage device to which the data is written may not be capable of performing read-after-write verification (306) by itself, as may be the case with an Advanced Technology Attachment (ATA) disk, for example. In such an embodiment, the read-after-write verification can be accomplished by reading the written data back from the magnetic storage device into the storage server and comparing the data read back with the data that was intended to be written in the storage server. If the data read back is identical the data intended to be written, then the verification is considered successful. Otherwise, the verification is considered unsuccessful (failed).
In other embodiments, the magnetic storage device is capable of performing read-after-write verification (306) by itself, such as in the case of a Small Computer System Interface (SCSI) disk. In such an embodiment, the storage server (more specifically, the storage drivers 235) may send a “write-and-verify” command or the like to the magnetic storage device to cause the magnetic storage device to write the data and to perform the verification. In other words, operations 304 and 306 of
The granularity of the read-after-write verification can vary across different embodiments. In one embodiment, data is written and verified in units of files. In addition, in some embodiments it may be desirable to verify not only actual data, but also metadata relating to stored data. For example, it may be desirable to verify the directory structure in which the data is stored. This can be done using read-after-write verification in essentially the same manner as described above.
Referring back to
Thus, a method and apparatus to perform read-after-write verification for improved WORM data storage have been described.
Software to implement the technique introduced here may be stored on a machine-readable medium. A “machine-accessible medium”, as the term is used herein, includes any mechanism that provides (i.e., stores and/or transmits) information in a form accessible by a machine (e.g., a computer, network device, personal digital assistant (PDA), manufacturing tool, any device with a set of one or more processors, etc.). For example, a machine-accessible medium includes recordable/non-recordable media (e.g., read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; etc.), etc.
“Logic”, as is used herein, may include, for example, software, hardware and/or combinations of hardware and software.
References throughout this specification to “one embodiment” or “an embodiment” mean that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Therefore, it is emphasized and should be appreciated that separate references in this specification to “an embodiment”, “one embodiment” or “an alternative embodiment” are not necessarily all referring to the same embodiment. However, such references also are not necessarily mutually exclusive. Hence, the particular features, structures or characteristics being referred to may be combined as suitable in one or more embodiments of the invention, as will be recognized by those of ordinary skill in the art.
Although the present invention has been described with reference to specific exemplary embodiments, it will be recognized that the invention is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense.
This application claims the benefit of U.S. Provisional Patent application No. 60/636,444, filed on Dec. 14, 2004 and entitled, “A Method and An Apparatus to Perform Read-after-Write Verification for Improved Write-Once-Read-Many Systems,” which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
4635145 | Horie et al. | Jan 1987 | A |
4727512 | Birkner et al. | Feb 1988 | A |
4775969 | Osterlund | Oct 1988 | A |
5235695 | Pence | Aug 1993 | A |
5269022 | Shinjo et al. | Dec 1993 | A |
5297124 | Plotkin et al. | Mar 1994 | A |
5438674 | Keele et al. | Aug 1995 | A |
5455926 | Keele et al. | Oct 1995 | A |
5485321 | Leonhardt et al. | Jan 1996 | A |
5666538 | DeNicola | Sep 1997 | A |
5673382 | Cannon et al. | Sep 1997 | A |
5774292 | Georgiou et al. | Jun 1998 | A |
5774715 | Madany et al. | Jun 1998 | A |
5805864 | Carlson et al. | Sep 1998 | A |
5809511 | Peake | Sep 1998 | A |
5809543 | Byers et al. | Sep 1998 | A |
5854720 | Shrinkle et al. | Dec 1998 | A |
5857208 | Ofek | Jan 1999 | A |
5864346 | Yokoi et al. | Jan 1999 | A |
5872669 | Morehouse et al. | Feb 1999 | A |
5875479 | Blount et al. | Feb 1999 | A |
5911779 | Stallmo et al. | Jun 1999 | A |
5949970 | Sipple et al. | Sep 1999 | A |
5961613 | DeNicola | Oct 1999 | A |
5963971 | Fosler et al. | Oct 1999 | A |
6021408 | Ledain et al. | Feb 2000 | A |
6023709 | Anglin et al. | Feb 2000 | A |
6029179 | Kishi | Feb 2000 | A |
6041329 | Kishi | Mar 2000 | A |
6044442 | Jesionowski | Mar 2000 | A |
6049848 | Yates et al. | Apr 2000 | A |
6061309 | Gallo et al. | May 2000 | A |
6067587 | Miller et al. | May 2000 | A |
6070224 | LeCrone et al. | May 2000 | A |
6098148 | Carlson | Aug 2000 | A |
6128698 | Georgis | Oct 2000 | A |
6131142 | Kamo et al. | Oct 2000 | A |
6131148 | West et al. | Oct 2000 | A |
6134660 | Boneh et al. | Oct 2000 | A |
6163856 | Dion et al. | Dec 2000 | A |
6173293 | Thekkath et al. | Jan 2001 | B1 |
6173359 | Carlson et al. | Jan 2001 | B1 |
6195730 | West | Feb 2001 | B1 |
6225709 | Nakajima et al. | May 2001 | B1 |
6247096 | Fisher et al. | Jun 2001 | B1 |
6260110 | LeCrone et al. | Jul 2001 | B1 |
6266784 | Hsiao et al. | Jul 2001 | B1 |
6269423 | Kishi | Jul 2001 | B1 |
6269431 | Dunham | Jul 2001 | B1 |
6282609 | Carlson | Aug 2001 | B1 |
6289425 | Blendermann et al. | Sep 2001 | B1 |
6292889 | Fitzgerald et al. | Sep 2001 | B1 |
6301677 | Squibb | Oct 2001 | B1 |
6304880 | Kishi | Oct 2001 | B1 |
6317814 | Blendermann et al. | Nov 2001 | B1 |
6324497 | Yates et al. | Nov 2001 | B1 |
6327418 | Barton | Dec 2001 | B1 |
6336163 | Brewer et al. | Jan 2002 | B1 |
6336173 | Day, III et al. | Jan 2002 | B1 |
6339778 | Kishi | Jan 2002 | B1 |
6341329 | LeCrone et al. | Jan 2002 | B1 |
6343342 | Carlson | Jan 2002 | B1 |
6353837 | Blumenau | Mar 2002 | B1 |
6360232 | Brewer et al. | Mar 2002 | B1 |
6389503 | Georgis et al. | May 2002 | B1 |
6397307 | Ohran | May 2002 | B2 |
6408359 | Ito et al. | Jun 2002 | B1 |
6487561 | Ofek et al. | Nov 2002 | B1 |
6496791 | Yates et al. | Dec 2002 | B1 |
6499026 | Rivette et al. | Dec 2002 | B1 |
6557073 | Fujiwara et al. | Apr 2003 | B1 |
6557089 | Reed et al. | Apr 2003 | B1 |
6578120 | Crockett et al. | Jun 2003 | B1 |
6615365 | Jenevein et al. | Sep 2003 | B1 |
6625704 | Winokur et al. | Sep 2003 | B2 |
6654912 | Viswanathan et al. | Nov 2003 | B1 |
6658435 | McCall et al. | Dec 2003 | B1 |
6694447 | Leach et al. | Feb 2004 | B1 |
6725331 | Kedem | Apr 2004 | B1 |
6766520 | Rieschl et al. | Jul 2004 | B1 |
6779057 | Masters et al. | Aug 2004 | B2 |
6779058 | Kishi et al. | Aug 2004 | B2 |
6779081 | Arakawa et al. | Aug 2004 | B2 |
6816941 | Carlson et al. | Nov 2004 | B1 |
6816942 | Okada et al. | Nov 2004 | B2 |
6834324 | Wood | Dec 2004 | B1 |
6850964 | Brough et al. | Feb 2005 | B1 |
6877016 | Hart et al. | Apr 2005 | B1 |
6898600 | Fruchtman et al. | May 2005 | B2 |
6915397 | Lubbers et al. | Jul 2005 | B2 |
6931557 | Togawa et al. | Aug 2005 | B2 |
6950263 | Suzuki et al. | Sep 2005 | B2 |
6973534 | Dawson et al. | Dec 2005 | B2 |
6978283 | Edwards et al. | Dec 2005 | B1 |
6978325 | Gibble et al. | Dec 2005 | B2 |
7007043 | Farmer et al. | Feb 2006 | B2 |
7020779 | Sutherland | Mar 2006 | B1 |
7032126 | Zalewski et al. | Apr 2006 | B2 |
7055009 | Factor et al. | May 2006 | B2 |
7096331 | Haase et al. | Aug 2006 | B1 |
7100089 | Phelps | Aug 2006 | B1 |
7111136 | Yamagami | Sep 2006 | B2 |
7111194 | Schoenthal et al. | Sep 2006 | B1 |
7127388 | Yates et al. | Oct 2006 | B2 |
7152078 | Yamagami | Dec 2006 | B2 |
7155465 | Lee et al. | Dec 2006 | B2 |
7155586 | Wagner et al. | Dec 2006 | B1 |
7200726 | Gole et al. | Apr 2007 | B1 |
7203726 | Hasegawa | Apr 2007 | B2 |
7346623 | Prahlad et al. | Mar 2008 | B2 |
20020004835 | Yarbrough | Jan 2002 | A1 |
20020016827 | McCabe et al. | Feb 2002 | A1 |
20020026595 | Saitou et al. | Feb 2002 | A1 |
20020091670 | Hitz et al. | Jul 2002 | A1 |
20020095557 | Constable et al. | Jul 2002 | A1 |
20020144057 | Li et al. | Oct 2002 | A1 |
20020166079 | Ulrich et al. | Nov 2002 | A1 |
20020199129 | Bohrer et al. | Dec 2002 | A1 |
20030004980 | Kishi et al. | Jan 2003 | A1 |
20030005313 | Gammel et al. | Jan 2003 | A1 |
20030025800 | Hunter et al. | Feb 2003 | A1 |
20030037211 | Winokur | Feb 2003 | A1 |
20030046260 | Satyanarayanan et al. | Mar 2003 | A1 |
20030120676 | Holavanahalli et al. | Jun 2003 | A1 |
20030126136 | Omoigui | Jul 2003 | A1 |
20030126388 | Yamagami | Jul 2003 | A1 |
20030135672 | Yip et al. | Jul 2003 | A1 |
20030149700 | Bolt | Aug 2003 | A1 |
20030158766 | Mital et al. | Aug 2003 | A1 |
20030182350 | Dewey | Sep 2003 | A1 |
20030188208 | Fung | Oct 2003 | A1 |
20030225800 | Kavuri | Dec 2003 | A1 |
20040015731 | Chu et al. | Jan 2004 | A1 |
20040098244 | Dailey et al. | May 2004 | A1 |
20040103147 | Flesher et al. | May 2004 | A1 |
20040167903 | Margolus et al. | Aug 2004 | A1 |
20040168034 | Homma et al. | Aug 2004 | A1 |
20040181388 | Yip et al. | Sep 2004 | A1 |
20040181707 | Fujibayashi | Sep 2004 | A1 |
20040186858 | McGovern et al. | Sep 2004 | A1 |
20050010529 | Zalewski et al. | Jan 2005 | A1 |
20050044162 | Liang et al. | Feb 2005 | A1 |
20050063374 | Rowan et al. | Mar 2005 | A1 |
20050065962 | Rowan et al. | Mar 2005 | A1 |
20050066118 | Perry et al. | Mar 2005 | A1 |
20050066225 | Rowan et al. | Mar 2005 | A1 |
20050076070 | Mikami | Apr 2005 | A1 |
20050076261 | Rowan et al. | Apr 2005 | A1 |
20050076262 | Rowan et al. | Apr 2005 | A1 |
20050076264 | Rowan et al. | Apr 2005 | A1 |
20050097260 | McGovern et al. | May 2005 | A1 |
20050108302 | Rand et al. | May 2005 | A1 |
20050144407 | Colgrove et al. | Jun 2005 | A1 |
20050182910 | Stager et al. | Aug 2005 | A1 |
20050240813 | Okada et al. | Oct 2005 | A1 |
20060010177 | Kodama | Jan 2006 | A1 |
20060047895 | Rowan et al. | Mar 2006 | A1 |
20060047902 | Passerini | Mar 2006 | A1 |
20060047903 | Passerini | Mar 2006 | A1 |
20060047905 | Matze et al. | Mar 2006 | A1 |
20060047925 | Perry | Mar 2006 | A1 |
20060047989 | Delgado et al. | Mar 2006 | A1 |
20060047998 | Darcy | Mar 2006 | A1 |
20060047999 | Passerini et al. | Mar 2006 | A1 |
20060143376 | Matze et al. | Jun 2006 | A1 |
20060143476 | McGovern | Jun 2006 | A1 |
20060259160 | Hood et al. | Nov 2006 | A1 |
Number | Date | Country |
---|---|---|
2 256 934 | Jun 2000 | CA |
0 845 733 | Jun 1998 | EP |
0 869 460 | Oct 1998 | EP |
1 058 254 | Dec 2000 | EP |
1 122 910 | Aug 2001 | EP |
1 233 414 | Aug 2002 | EP |
1333379 | Aug 2003 | EP |
1671231 | Jun 2006 | EP |
WO-9906912 | Feb 1999 | WO |
WO-9903098 | Nov 1999 | WO |
WO 0118633 | Mar 2001 | WO |
WO-0118633 | Mar 2001 | WO |
WO 03067438 | Aug 2003 | WO |
WO-03067438 | Aug 2003 | WO |
WO 2004084010 | Sep 2004 | WO |
WO-2004084010 | Sep 2004 | WO |
WO-2005031576 | Apr 2005 | WO |
WO-2006023990 | Mar 2006 | WO |
WO-2006023991 | Mar 2006 | WO |
WO-2006023992 | Mar 2006 | WO |
WO-2006023993 | Mar 2006 | WO |
WO-2006023994 | Mar 2006 | WO |
WO-2006023995 | Mar 2006 | WO |
Number | Date | Country | |
---|---|---|---|
60636444 | Dec 2004 | US |