Abstract:
Apparatuses, methods, and systems related to IP-addressable partitions are disclosed. In some embodiments an IP address is used to uniquely identify a selected subset of partitions. Other embodiments may be described and claimed.

Description:
[0001]    This application claims the benefit of U.S. provisional application No. 60/425,867 incorporated herein by reference in its entirety. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The field of the invention is data storage devices. 
       BACKGROUND OF THE INVENTION 
       [0003]    There is a trend within the field of electronics to physically (i.e. geographically) disaggregate functionality, and to rely instead on networked resources. Of special interest are resources available over a packet communications network such as the Internet. In addition to the data being transferred, packets include header information such as type of data contained in the packet, i.e. HTML, voice, ASCII, etc., and origination and destination node information. The header information permits error checking, and routing across packet switched networks such as the Internet between devices that may be widely spaced apart. The header information also allows extremely disparate devices to communicate with each other—such as a clock radio to communicate with a computer. Recently published US patent application no. 20020031086, (Welin, Mar. 14, 2002) refers to linking “computers, EP phones, talking toys and home appliances such as refrigerators, microwave ovens, bread machines, blenders, coffee makers, laundry machines, dryers, sweepers, thermostat assemblies, light switches, lamps, fans, drape and window shade motor controls, surveillance equipment, traffic monitoring, clocks, radios, network cameras, televisions, digital telephone answering devices, air conditioners, furnaces and central air conditioning apparatus.” 
         [0004]    Communications with storage devices has not kept pace with the trend to disaggregate resources. Disk access has always been under the control of a disk operating system such as DOS, or Microsoft® Windows®. Unfortunately, putting the operating system at the conceptual center of all computing devices has resulted in a dependence on such operating systems, and has tended to produce ever larger and more complicated operating systems. Now that many electronic devices, from personal digital assistants to telephones, digital cameras, and game consoles, are becoming smaller and ever more portable, the dependence on large operating systems has become a liability. One solution is to provide a stripped-down operating system that requires much less overhead. Microsoft® CE® is an example. That solution, however, sacrifices considerable functionality present in the larger systems. 
         [0005]    What is needed is a storage device that can be directly accessed by multiple other devices, without the need to go through an operating system. 
       SUMMARY OF THE INVENTION 
       [0006]    In the present invention a storage device has partitions that are separately addressed by distinct IP addresses. This allows direct access of the partitions, on a peer-to-peer basis, by any other device that can communicate using IP. Many limitations on access to the storage device can thereby be eliminated, including geographical limitations, and the need for a given storage partition to be under the central control of a single operating system. 
         [0007]    Preferred storage devices support spanning between or among partitions of the same device, as well as between or among different storage devices. Both multicast and proxy spanning are contemplated. 
         [0008]    Combinations of the inventive storage devices with each other, and with prior art storage devices are contemplated, in all manner of mirroring and other arrangements. 
         [0009]    In still other aspects of the invention, a given storage device can comprise one or more types of media, including any combination of rotating and non-rotating media, magnetic and optical, and so forth. 
         [0010]    Various objects, features, aspects and advantages of the inventive subject matter will become more apparent from the following detailed description of preferred embodiments, along with the accompanying drawing figures. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWING 
         [0011]      FIG. 1  is a schematic of a prior art disk drive split into multiple partitions, but where the entire memory is accessed using a single IP address. 
           [0012]      FIG. 2  is a schematic of a prior art storage system in which three disk drives are addressed in their entireties using three different IP addresses. 
           [0013]      FIG. 3  is a schematic of a storage device having multiple partitions that are separately addressed by different IP addresses. 
           [0014]      FIG. 4  is a schematic of a storage device having multiple partitions that are separately addressed by different IP addresses, and some of the partitions are addressed using multiple IP addresses. 
           [0015]      FIG. 5  is a schematic of a storage device having multiple partitions comprising different storage media. 
           [0016]      FIG. 6  is a schematic of a storage device having multiple partitions, two of which are spanned using multicast spanning. 
           [0017]      FIG. 7  is a schematic of a storage device having multiple partitions, two of which are spanned using proxy spanning. 
           [0018]      FIG. 8  is a schematic of a storage system in which three storage devices are logically coupled using multicast spanning. 
           [0019]      FIG. 9  is a schematic of a storage system in which three storage devices are logically coupled using proxy spanning. 
           [0020]      FIG. 10  is a schematic of a storage system in which partitions of a first storage device are mirrored on partitions of one or more additional storage device using multicast mirroring. 
       
    
    
     DETAILED DESCRIPTION 
       [0021]    Prior art  FIG. 1  generally depicts a disk drive  10  that is split into multiple partitions  10   A ,  10   B ,  10   C  . . .  10   N . The entire storage area is addressed using a single address IP 1 , with individual blocks of data being addressed by a combination of IP 1  and some other information such as partition and offset, or Logical Block Address (LBA). The data is thus always accessed under the control of a disk operating system that provides the additional information. For that reason drive  10  is usually located very close to the processor that runs the operating system, and is usually connected to a hard bus of a computer, RAID or other system. 
         [0022]    It is known to format the various partitions  10 A . . .  10 N differently from one another, under control of different operating systems. However, the entire memory space comprises a single media type, namely rotating magnetic memory, even though there may be some sort of RAM buffer (not shown). 
         [0023]    It should be appreciated that the term “IP” is used herein in a broad sense, to include any networking protocol. Thus, an IP address is used as a euphemism for a network address. 
         [0024]    Prior art  FIG. 2  generally depicts a storage system  20  in which three disk drives  21 ,  22 ,  23  are addressed using three different IP addresses, IP 1 , IP 2 , and IP 3 . The drives can have multiple partitions (drive  21  has three partitions  21   A ,  21   B ,  21   C  (not shown), and drive  23  has two partitions  23   A  and  23   B  (not shown)), but here again individual blocks of data are addressed using a combination of the IP address, some other information such as partition and offset, or LBA. Drives  21 ,  22 ,  23  can be spanned and/or mirrored, but the data on each drive is always accessed using that drive&#39;s particular IP address. 
         [0025]    In  FIG. 3  is a storage device  30  according to the present invention has three partitions  21   A ,  21   B ,  21   C , which are separately addressed by different IP addresses IP 1 , IP 2 , IP 3 , respectively. Those skilled in the art will appreciate that showing a small plurality of partitions is merely a matter of convenience, in this and other figures, and that storage device  30  could have any practical number of partitions. Similarly, it should be appreciated that depicting storage devices without partitions indicates that such devices have no partitions. 
         [0026]    Utilizing IP addresses to route packets directly to and from partitions facilitates the use of very light communication protocols. In particular, the partitions may be directly addressed at the IP level of TCP/IP or UDP/IP stack. It should be appreciated, however, that in order make use of the IP addresses, the storage device  30  (and indeed the various partitions) would need to have sufficient functionality to communicate using IP. That functionality could be designed into the devices (or partitions), or it could be added onto storage devices using an IP adapter  32  (not shown). Indeed, the adapter in such circumstances would essentially be a simple block-to-packet and packet-to-block translator. 
         [0027]    Storage device  30  can be connected to any suitable bus by any suitable means. Thus, the operative principles herein can operate across a wide variety of physical buses and protocols, including ATA, ATAPI, SCSI, Fiber CH, PCMCIA, CardBus, and USB. Storage device  30  can also alternatively or additionally operate across a network acting as a virtual IP bus, with the term “IP” being used herein generically with reference to any internetworking protocol that handles packets. It is contemplated, for example, that a user may have a stand-alone storage device that communicates wirelessly with a Local Area Network (LAN), which in turn may be connected to a WAN or to the Internet. Other devices that are also connected to the network (whether in the home, office, or elsewhere) could directly access one or more partitions of the storage device. For example, an IP capable television (not shown) could display images or movies stored on one partition, while a digital camera (not shown) could store/retrieve images on another partition. Still another partition might hold an operating system and office software for use with a laptop, or even an IP capable display and IP capable keyboard and mouse. Printing from any of the partitions might occur on an IP capable printer that is also connected wirelessly, or by hardwire, to the network. 
         [0028]    An interesting corollary is that the partitions or other elements can all communicate as peers on a peer-to-peer network. As used herein, the term “element” refers to a hardware unit that is a functional portion of a device, and traditionally communicates with other units of the same device across a bus, without having its own IP address. This can completely eliminate dependence on any particular operating system, and can eliminate operating systems altogether. In addition, many of the elements attached to the network will be dependent on other elements attached to the network to perform tasks that are not within their individual capacities, and will be able to discover, reserve, and release the resources of other peers needed to perform such tasks. Peers will preferably be able to discover the other elements attached to the network, the characteristics of the other elements attached to the network, and possibly the contents of at least same of the elements attached to the network. Such discovery is accomplished without the assistance of a master device, and will preferably involve direct communication between the peer elements. 
         [0029]    Preferred networks will be masterless in that all elements have equal access to the network and the other elements attached to the network. The peer elements of the network will preferably communicate with each other utilizing low-level protocols such as those that would equate to those of the transport and lower layers of the OSI model. Preferred embodiments will utilize TCP and UDP IP protocols for communication between elements. 
         [0030]    Storage device  30  is preferably able to dynamically create partitions upon receipt of requests from network elements. For example, when a network element requests use of device  30 , the network element may provide a unique identifier, possibly a name, to storage device  30 , which in turn associates the identifier with any newly created partition. In some instances the network element may also request a particular storage size to be allocated, including all of the remaining storage available on the storage device  30 . 
         [0031]    In preferred embodiments, the IP addresses for such partitions are obtained from an address server such as a DHCP server upon request from the storage device  30 . It is important to note, however, that address allocation devices such as DHCP servers are not masters, since they don&#39;t control the network, elements coupled to the network, or the sharing of resources between elements. Assignment of IP addresses to partitions may additionally or alternatively occur during initialization of the device, such as when it is first turned on. 
         [0032]    Since storage device  30  may be associated with only a single network interface card (NIC), it is preferred that storage elements be able to obtain multiple IP addresses despite having a single NIC and a single media access control (MAC) address. This can be accomplished by providing a unique partition identifier to an address server when trying to obtain a IP address from the address server. It is contemplated that associating a name provided by an element with any partition created for that element makes it possible to identify each of the partitions of a storage element, despite the fact that IP address associated with each partition may have changed since the partition was created. 
         [0033]    Additional details can be found in concurrently filed PCT application no. ______, entitled “Communication Protocols, Systems and Methods” and PCT application no. ______, entitled “Electrical Devices With Improved Communication”, the disclosures of which are incorporated herein by reference. 
         [0034]    In  FIG. 4 , storage device  40  is similar to storage device  30  in that it has multiple partitions  41   A ,  41   B ,  41   C ,  41   D  that are separately addressed by different IP addresses IP 1 , IP 2 , IP 3 , IP 4 , respectively. But here some of the partitions are addressed using multiple IP addresses. In particular, partition  41   A  is addressed with IP 1  and IP 5 . Partition  41   D  is addressed with IP 4 , IP 6  and IP 7 . 
         [0035]    In  FIG. 5  a storage device  50  has multiple partitions comprising different storage media. In this particular example there are 2 partitions of rotating media  50   A ,  50   B , one partition of flash memory  50   C . All other practical combinations of these and other media are also contemplated. As in  FIG. 3 , the various partitions are separately addressed by different IP addresses IP 1 , IP 2 , IP 3 , respectively. 
         [0036]    In  FIG. 6  a storage device  60  has multiple partitions  60   A ,  60   B ,  60   C ,  60   D , addressed by IP addresses IP 1 , IP 2 , IP 3 , IP 4 , and IP 5  (multicast) respectively. Two of these partitions,  60   A  and  60   C , are spanned in that partition  60   A  extends from logical address a to logical address b, while partition  60   C  continues from logical address b+1 to logical address c. The spanned set is thus logical address a to logical address c. The spanning here is multicast spanning, because the partitions share multicast IP 5  which is used to address both partitions  60   A  and  60   C . 
         [0037]    In  FIG. 7  a storage device  70  has multiple partitions  70   A ,  70   B ,  70   C ,  70   D , addressed by IP addresses IP 1 , IP 2 , IP 3 , IP 8 , respectively. (The use of IP 8  here rather than IP 4  is intended to illustrate that the IP addresses need not be consecutive in any manner.) Here again two of the partitions are spanned,  70   A  and  70   C , in that partition  70   A  extends from logical address a to logical address b, while partition  70   C  continues from logical address b+1 to logical address c. The spanned set is thus once again logical address a to logical address c. Here, however, we are dealing with proxy spanning as opposed to multicast spanning. IP 1  is used to address partition  70   A , while the second part of the spanned data, in partition  70   C , is addressed by the IP 1  proxy using IP 3 . Of course, it is possible to combine multicast spanning and proxy spanning within the same storage device. 
         [0038]    In  FIG. 8  a storage system  100  has three storage devices  110 ,  120 , and  130  coupled to depict multicast spanning. Device  110  has three partitions  110   A ,  110   B  and  110   C , which are separately addressed using IP addresses IP 1 , IP 2 , and IP 3 , respectively. Device  120  has four partitions  120   A ,  120   B ,  120   C , and  120   D , which are separately addressed using IP addresses IN, IP 5 , IP 6 , and IP 7 , respectively. Device  130  is not partitioned, which for our purposes is the same as saying that it only has one partition. The entirely of the storage area of device  130  is addressed using IP address IP 8 . The spanning in this case is among all three drives. Partition  110 C extends from logical address a to logical address b; partition  120 D continues from logical address b+1 to logical address c, and the data space of device  130  extends from logical address c+1 to logical address d. The data set extends from logical address a to logical address d. 
         [0039]      FIG. 9  is similar to  FIG. 8 , in that spanning occurs across three drives, and the data set extends from logical address a to logical address d. The main conceptual difference is that the storage devices are logically coupled using proxy spanning rather than multicast spanning. Here, device  210  has three partitions  210   A ,  210   B  and  210   C , which are separately addressed using IP addresses IP 1 , IP 2 , and IP 3 , respectively. Device  230  is not partitioned. The entirely of the storage area of device  230  is addressed using IP address IP 4 . Device  220  has three partitions,  220   A ,  220   B  and  220   C , which are separately addressed using IP addresses IP 4 , IP 5 , and IP 6 , respectively. Partition  210   C  extends from logical address a to logical address b; the data space of partition  220   C  continues from logical address b+1 to logical address c, and partition  230  extends from logical address c+1 to logical address d. 
         [0040]    As elsewhere in this specification, the specific embodiments shown with respect to  FIG. 9  are merely examples of possible configurations. A greater or lesser number of storage devices could be utilized, and indeed spanning may be protean, in that devices and/or partitions may be added to or dropped from the spanning over time. There can also be any combination of multicast and proxy spanning across and/or within storage devices, which may have the same or different media. Moreover, the use of IP addresses facilitates physically locating the various storage devices virtually anywhere an IP network can reach, regardless of the relative physical locations among the devices. 
         [0041]    In  FIG. 10  a storage system  300  provides mirroring of partitions between three different physical storage devices  310 ,  320  and  330 . This could be done by proxy, in a manner analogous to that described above for proxy spanning, or in higher performance systems using multicasting. Thus, partitions in multiple storage devices are addressed using the same IP address. In this particular embodiment, storage device  310  has partitions  310   A ,  310   B , and  310   c , addressed using IP addresses IP 1 , IP 2 , IP 3  and IP 9 . Storage device  320  has partitions  320   A ,  320   B , and  320   C , addressed using IP addresses IP 4 , IP 5 , IP 6  and IP 9 . Write requests to IP 3  or IP 9  will result in partition  310   C ,  320   C  and  330   C  storing the same data. Read requests to IP 1  address will result in  310   C ,  320   C  and  330   C  responding with the same information, with presumably the requester using whichever data arrives first. In the Multicast form it may be preferred that device  310 , 320  and  330  listen for the first data returned by any member of the mirrored set, and then remove that request from their request que if another device completes the request before they complete the request. 
         [0042]    Communications 
         [0043]    In preferred embodiments, communications between a storage element and a non-storage element, will utilize a datagram protocol in which data blocks are atomically mapped to a target device. A datagram sent between elements will preferably comprise command (CMD), logical block address (LBA), data, and token fields, and no more than X additional bytes where X is one of 1, 2, 7, 10, 17, and 30. The data field of such a datagram is preferably sized to be the same as the block size (if applicable) of the element to which the datagram is addressed. As such, an element sending a quantity of data to a storage element where the quantity of data is larger than the block size of the storage element will typically divide the quantity of data into blocks having the same size as the blocks of the storage element, assign LBAs to the blocks, and send each block and LBA pair to the storage element in a datagram. 
         [0044]    It is preferred that the datagrams be communicated between elements encapsulating them within addressed packets such as IP packets, and the IP address of the encapsulating packet be used to identify both the element a packet is intended to be sent to, and the partition within the element that the datagram pertains to. 
         [0045]    It is preferred that datagram recipients handle datagrams on a first come, first served basis, without reordering packets, and without assembling the contents of the data fields of datagrams into a larger unit of data prior to executing a command identified in the CMD field. As an example, an storage element may receive a datagram containing a block of data, an LBA, and a write command. The storage element, without having to wait for any additional packets, utilizes the IP address of the packet enclosing the datagram to identify the partition to be used, and utilizes the LBA to identify the location within the partition at which the data in the data field is to be written. 
         [0046]    Handling the data in individual datagrams as they arrive rather than reassembling the data permits the use of an implied ACK for each command. Using an implied rather than an explicit ACK results in a substantial increase in performance. 
         [0047]    Marketing of Storage Devices and Adapters 
         [0048]    It is contemplated that once persons in the industry recognize the benefits of having storage devices having partitions that are accessed using their own IP addresses, companies will start producing and/or marketing such devices It is also contemplated that companies will start producing and/or marketing adapters that includes a functionality (hardware or software, or come combination of the two) to permit traditional disk drives, flash memories, and other storage devices to operate in that manner. 
         [0049]    Thus, methods falling within the inventive subject matter include manufacturing or selling a disk drive or other storage device in which the partitions can utilize their own IP addresses to execute packet communication with other network elements. Other inventive methods include manufacturing or selling adapters that enable prior art type storage devices to do the same. Indeed it is contemplated that companies will recognize that such adapters are available, and will continue to manufacture or sell prior art type storage devices, knowing (or even advertising) that users can employ such adapters to enable the prior art type storage devices to use in an infringing manner. 
         [0050]    Thus, specific embodiments and applications of the inventive storage devices have been disclosed. It should be apparent, however, to those skilled in the art that many more modifications besides those already described are possible without departing from the inventive concepts herein. The inventive subject matter, therefore, is not to be restricted except in the spirit of the appended claims. Moreover, in interpreting both the specification and the claims, all terms should be interpreted in the broadest possible manner consistent with the context. In particular, the terms “comprises” and “comprising” should be interpreted as referring to elements, components, or steps in a non-exclusive manner, indicating that the referenced elements, components, or steps may be present, or utilized, or combined with other elements, components, or steps that are not expressly referenced.