WO2006127013A1 - Dispositifs virtuels et tunnels bus virtuels, modules et procedes - Google Patents
Dispositifs virtuels et tunnels bus virtuels, modules et procedes Download PDFInfo
- Publication number
- WO2006127013A1 WO2006127013A1 PCT/US2005/018907 US2005018907W WO2006127013A1 WO 2006127013 A1 WO2006127013 A1 WO 2006127013A1 US 2005018907 W US2005018907 W US 2005018907W WO 2006127013 A1 WO2006127013 A1 WO 2006127013A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- virtual
- module
- packet
- devices
- address
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000003860 storage Methods 0.000 claims abstract description 22
- 238000005192 partition Methods 0.000 claims description 72
- 238000012545 processing Methods 0.000 claims description 14
- 230000009471 action Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 239000000835 fiber Substances 0.000 claims description 3
- 238000009432 framing Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 24
- 238000013459 approach Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 6
- 239000000047 product Substances 0.000 description 5
- 239000000203 mixture Substances 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 239000006163 transport media Substances 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001605 fetal effect Effects 0.000 description 1
- 238000007519 figuring Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000002609 medium Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Definitions
- the field of the invention is virtual device communication.
- Computing systems and devices from the smallest of embedded systems to the largest of super computers require resources to accomplish their objectives. Possible resources include CPUs, memory, monitors, hard disk drives, networks, peripherals, and a host of other devices that combine to form a complete computing experience for the user.
- Possible resources include CPUs, memory, monitors, hard disk drives, networks, peripherals, and a host of other devices that combine to form a complete computing experience for the user.
- users of computing systems and devices have become less sophisticated with respect to the complexity of the computing systems. Users are now more concerned with their computing experience rather than in the details of how their computing system operates.
- the migration of computing systems toward less sophisticated users has pushed such systems to become more and more complex to compensate for the users lack of computer system expertise. The results of this migration can be seen by the continued increase in complexity and power of current operating systems, including Windows® or Linux.
- Computers running Windows® or Linux present a single data portal to a user, where the computer contains nearly all aspects of the user's environment including data, applications, preferred settings, and so on.
- Laptop computers offer the ability to move, but at great expense. Consequently, numerous systems have been developed to enable a more decentralized user experience approach, including web portals such as Yahoo!®, where a user accesses their email interface from anywhere in the world. Users are no longer concerned about the location of their computing resources, but are rather concerned about having access to their data and having the same computing experience no matter where they are or what device they use as an interface.
- a better approach to decentralization of computing resources attacks the problem from a more fined grained perspective, where the system scales incrementally in a more cost effective manner rather than at a systems level were incremental costs are high.
- decentralization can be approached from a fundamental computing resource perspective, in which a computing resource distills to the physical device element level (where a device element could include, but not limited to, a CPU, memory, hard disk, or even a monitor).
- a computing resource distills to the physical device element level (where a device element could include, but not limited to, a CPU, memory, hard disk, or even a monitor).
- a device element could include, but not limited to, a CPU, memory, hard disk, or even a monitor.
- decentralization of devices allows devices to focus on doing what they do best and to be responsible for their own services and capabilities; thereby offloading peripheral management work from an operating system and CPU.
- Decentralization also provides the benefit of scalability, such that a computing system scales up at the atomic device level as opposed to at the system level. Users scale their computing systems by purchasing devices which are more cost effective than complete systems. In addition, older generations of decentralized devices still remain useful and contribute to the over computing system without having to be discarded.
- Decentralization by its very nature, includes the concept of virtualization, where devices are distributed over a network but "appear" as locally connected from the perspective of other devices. With device virtualization provided over a network, the computing resources no longer have to be local to the user. This implies a user gains access to their computing experience and resources from any connected location once the user takes appropriate authentication or security measures.
- Such a decentralized computing system addresses the remaining problems with current architectures: users maintain access to their data, users can use multiple interfaces while maintaining their computing experience, applications do not have to be rewritten because decentralization occurs at the device level rather than the system level, and costs to the user decrease because the user scales their system by purchasing devices at the atomic unit rather than buying at the system level.
- decentralization at the device level also creates opportunities for creating new capabilities or services by using decentralized devices as building blocks.
- new products can be built that aggregate device level capabilities or services into more powerful capabilities or services while maintaining scalability at device level.
- the new products offer the powerful capabilities or services as a "device" to the rest of the system even though the "devices" are actually virtual in nature.
- hard disk drives can be aggregated into a network storage system with RAID capabilities, where the entire storage system appears as a single storage device.
- the network storage system focuses on storing and retrieving data, without incurring overhead associated with complete system architectures. Because the drives are decentralized and virtualized, the storage system can still be scaled at the atomic level, the hard disk drive, which is much more cost effective to the end user.
- Such a set of modules combine with target devices to offer aggregated capabilities, and can also integrate into existing computing systems.
- the module When installed in a computing system such as Windows®, the module could take the form of a device driver and the aggregate capabilities or services of the remote target devices appear as a single device.
- computing systems employ such modules to distribute the locality of their physical device elements. This is beneficial in cases where physical security is needed or where geographic isolation offers protection against acts of God.
- users purchase enhanced capabilities by purchasing computing systems resources in discreet units rather than complete systems. If they wish to double the computing power of their system, the consumer purchases a single CPU (assuming an appropriate module is attached to the CPU) and adds it to the decentralized system. The cost for a single device is much less than the cost of a complete system.
- old components can be retained and still provide useful capabilities even though they are not as powerful as the new component because the old components can still function within the decentralized system.
- the customer has access to their experience from anywhere in the world because the virtual system bus extends to any length.
- the distributed system presents the user with their preferred experience to them no matter the actual location of the discreet resources housing the user's data. Forth, more complex structures can be created from the discreet device building blocks. For instance, sophisticated RAID structures can be created by using hard drives and appropriately
- the RAID structures appear as a single drive to the user or the user's applications.
- the present invention is directed toward virtual devices and information packets used to communicate among virtual devices, where the information packets are addressed to virtual devices.
- Virtual devices contained within modules coordinate with other virtual devices within other modules in a peer-to-peer fashion to offer aggregated capabilities.
- Information packets comprise host addresses of virtual devices and comprise identifiers (IDs). IDs comprise sufficient information for routing the packets over a network to a final destination and comprise sufficient information to determine how the information held within the packet should be conveyed to a physical target device.
- Modules comprising virtual devices and the ability to create information packets offer a virtual bus tunnel for virtual devices so they can coordinate behavior in a distributed fashion forming.
- modules offer a number of interesting features that allows devices, either local or remote with respect to the target devices, to offer aggregate capabilities to device users than the users would ordinarily have access to at the device level.
- Modules capabilities include, but not necessarily limited to, distributed data storage systems.
- virtual device means anything (hardware, firmware, or software during its execution) that has a host address, but doesn't have a unique frame address, through which to represent itself as an operational device to an external application.
- a host address is any physical interface independent address, and includes, for example, IP addresses, IPv4 addresses, and IPv6 addresses. Host addresses are also considered herein to include domain names and URLs (web page addresses) because they resolve to a network address based on applications or protocols.
- a frame address is a physical media interface address within a packet that frames a host address.
- a frame address includes a MAC address
- a frame address includes the DLCI or the LAN adapter address
- in ATM a frame address includes an AES address.
- USB usually uses frame addresses, but can also use packets that do not have frame addresses.
- Network addressable virtual devices are virtual devices that are addressed at the network level of the OSI model, as opposed for example, to the session, presentation, or application level. Thus, a mapped Windows® drive is addressed at the application level, and therefore would be virtual device, but not a network addressable virtual device.
- Partition Pl can be a network addressable virtual device using techniques disclosed herein, and it would be a physical device element.
- a logical partition mapping data block addresses to partition Pi disk locations can also be a network addressable virtual device, but it would not be a physical device element because the mapping of the data blocks to physical disk locations can be arbitrary.
- a logical group Gi consisting of several logical partitions Pi - P m can also be a network addressable virtual device, and a logical volume Vj consisting of several logical groups Gi - G 0 can also be a virtual device.
- a logical group Gi nor the logical volume Vi would be physical device elements. Therefore, a collection of network addressable virtual devices can also be considered a network addressable virtual device.
- virtual device can refer to both a single virtual device and to a collection of network addressable virtual devices working together.
- virtual devices comprise functionality such that the virtual devices can offer remote applications, users, or other devices access to aggregated capabilities of the physical target devices. Such virtual devices do not necessarily have to have a one-to-one correspondence to target devices, but these and other virtual devices do have to represent themselves as operational devices to external applications. For example, an independently addressable logical partition on a disk drive that responds properly to read and write requests based on logical block addresses would be considered a virtual device. Virtual devices also comprise any software construct or functionality including a function, application, program, service, device driver, task, process, thread, or other non-physical device elements. Those skilled in the art of firmware or software development will recognize that a virtual device is a logical construct. Consequently, numerous coding structures for virtual devices are possible including structures that represent multiple virtual devices.
- each virtual device within a system must have its own host address to avoid conflict.
- This is somewhat analogous to "multi-homing" where an individual computer can have multiple IP addresses and multiple network interfaces. But the similarity is not perfect because multi-homing assigns IP addresses only to the physical network interfaces, and not to sets of functionalities as represented by applications or programs.
- the multiple IP addresses are usually from different sub-nets to ensure link redundancy should a route fail.
- Still another difference from multi-homing is the sheer number of addresses available. Because virtual devices can share frame addresses, there may be tens, hundreds, or thousands of addresses. Multi-homed systems usually have only two or three addresses.
- a virtual device can merely be an electronic front end to a physical disk drive that includes for example, a processing unit (CPU) and other computer chips, an electronic network interface, an electronic disk drive interface, random access memory (RAM), a printed circuit board (PC board), a power supply, and interconnecting wires or traces, hi a more sophisticated embodiment, a virtual device can be a software driver or application, which would of course have to reside on a machine readable memory, and execute on some form of physical processing unit.
- Non-operating software Non-operating software
- inventive subject matter includes methods of writing such software, recording such software on a machine readable medium, licensing, selling, or otherwise distributing such software, installing, and operating such software on suitable hardware. Moreover, the software per se is deemed to fall within the scope of the inventive subject matter.
- an "information packet” is any packet passing through a virtual device containing information.
- An information packet can include an ID in a split-ID format, a contiguous-ID format, or a device format.
- module means any combination of hardware, software, or firmware that provides: (a) a target device interface; (b) network interface; and (c) packet processor.
- Packet processor can include a virtual device manager, a virtual device, and a virtual bus tunnel.
- the software will, of course, reside at least temporarily on a machine-readable memory, and execute on a processing unit of an electronic device, but either or both of the machine-readable memory and the processing units can be external to the module.
- Virtual device management refers to the capability of a module to manage virtual devices within the module that appear to be real devices external to the module, where management comprises all aspects relating to controlling the existence or behavior of the virtual device constructs. It is contemplated that management comprises functionality to create, to destroy, to suspend, to resume, to modify, to secure, or other related functionality. Virtual Bus Tunnel
- the virtual devices In order for the virtual devices to offer their capabilities or render a service to remote systems, the virtual devices need some form of communication bus. Because the virtual devices do not comprise physical interfaces, they need a mechanism for addressing other virtual devices as well as transporting data to the other devices, wherein the mechanism is referred to as a "virtual bus tunnel.”
- the virtual bus tunnel provides virtual devices the ability to communicate or coordinate their behaviors over extended physical distances such that a collection of devices working together do not necessarily have to be physically located near each other.
- the virtual bus tunnel allows for packet level communication among physical device elements and virtual devices addressable on the virtual bus tunnel. Communication over the virtual bus tunnel can also include direct communication from an application to virtual devices.
- Virtual bus tunnels resolve contention by grouping virtual devices logically with a group ID such that multiple groups access the same physical transport media without contending for the bus by using the group E) within their packets.
- Each group ID represents a single logical group of virtual devices sharing a single bus with other logical groups each with their own ID.
- each virtual device is individually addressable via its own device ID.
- an Internet Protocol network embodies a virtual bus tunnel utilizing IP addresses as host addresses representing device IDs for virtual devices.
- group IDs can be managed via IP multicasting addresses such that applications, users, or other devices that are members of the group perceive the group as a single device. Because the virtual bus tunnel can offer capabilities including quality of service management, it too can be considered a virtual device and can be addressed via a host address.
- Virtual devices also need the ability to work together in a coordinated fashion to reach their full potential in providing aggregated capabilities or services.
- Peer-to-peer communication allows for devices to communicate directly with each other without using multicast where all devices within the multicast group "see" the traffic.
- Peer-to-peer coordination further provides for virtual devices to be aggregated into yet more powerful
- modules can be deployed into applications such that the applications have the ability to access the capabilities or services that virtual devices offer. Consequently, modules can be implemented as hardware systems attached to devices or software drivers installed on workstations running operating systems where the virtual devices within each module are programmed to work together in a peer-to- peer fashion.
- modules coupled with devices or components provide aggregated capabilities or services to multiple applications, users, or other devices in a distributed fashion.
- Devices that can be enhanced via such modules include hard disk drives, memory, monitors, patient sensors, point of sales scanners, office equipment, building automation sensors, media players, handheld systems, home entertainment systems, or computers, hi addition, the modules can be integrated into software applications (if the module comprises all software components), formed into a rack-mount system containing numerous devices including hard disk drives, or single modules attached to a single device. Modules can even be sold as a stand alone product.
- Figure IA is a schematic of an unframed information packet in which the host address is an address of a virtual device other than a physical device element.
- Figure IB is a schematic of a framed information packet including the host address of Figure IA.
- Figure 2A is a schematic of a possible embodiment of an information packet utilizing a split-ID format.
- Figure 2B is a schematic of an alternative embodiment of an information packet utilizing a split-ID format.
- Figure 3 is a schematic of a possible embodiment of an information packet utilizing contiguous-ID format.
- Figure 4 is a schematic of a virtual device that aggregates capabilities
- Figure 5 is a schematic of a block level logical representation of a module.
- Figure 6 is a schematic of a possible block level physical representation of a module.
- Figure 7 is a schematic of a representation of a virtual bus tunnel providing communication among devices external to a computing system.
- Figure 8 is a schematic of a possible embodiment of a virtual bus tunnel used to create data mirrors, stripes, or spans from partitions on hard drives located in different physical locations.
- Figure 9 is a schematic of a possible set steps used to create a virtual bus tunnel.
- Virtual devices communicate with remote systems via information packets over a virtual bus tunnel.
- the information packets originate from a source who wishes to address an entity and direct data to the entity, where an entity on virtual bus tunnel comprises a virtual device.
- the entity can appear as a single "device" from the perspective of the source.
- Figure IA illustrates an information packet addressed to a virtual device that is not a physical device element.
- Information packet 100 comprises a host address 110 used to address a virtual device.
- Preferred host addresses include routable addresses. Examples of routable addresses including IPv4 address or IPv6 addresses. Consequently, software or firmware employed to create information packets has sufficient intelligence to distinguish the difference between virtual devices, physical device elements, or target devices in order to properly address virtual devices and the capabilities they represent.
- Figure IB illustrates a framed version of the information packet of Figure IA.
- Framing packet 150 comprises frame address 155 and encapsulated information packet 100.
- An example framing packet includes an Ethernet packet where the MAC addresses corresponds to frame addresses.
- Preferred types of information packets include packets utilizing a split-ID format, contiguous-ID format, or device format, wher ee aann I ID comprises sufficient information for
- packets comprise IDs that contain all necessary information for routing the packets to a correct entity comprising a module, object within a module, a device, or virtual device.
- IDs comprise at least three sub-IDs which include group IDs, device IDs, or target EDs.
- Group IDs identify a logical grouping of entities such that the logical group can be addressed via a single ID. Using an IP address as a group ID allows multiple entities to be addressed as if they are a single "device.”
- Device IDs identify specific entities in a group. It is contemplated that specific entities comprise non- physical objects including virtual devices.
- Target IDs identify a specific entity's capability or characteristic.
- Figure 2 A depicts an embodiment of a split-ID format within an information packet.
- information packet 200 comprises several smaller portions, control portion 220 and data portion 215.
- a module uses control portion 220 to determine how to control a packet including figuring out to which entity within the module, if any, the packet should be routed.
- Data portion 215 comprises an encapsulated packet 230 that can be further used by the module or the entity to determine the final disposition of the information within the packet.
- Figure 2A displays a contiguous ID segment in the control portion of each packet and encapsulated packet, it is contemplated that any arrangement or number of ED segments within the control portion or data portion of a packet such that the complete ED information can be reconstructed falls within the scope of the split-ED concept.
- the control portion of a packet does not necessarily have to appear at the beginning of a packet, but could reside anywhere within a packet.
- Figure 2B fully represents a split-ED, where information packet 200B has a plurality of encapsulated packets within its data portion.
- Encapsulated packet 230A further comprises control portion 220B and an encapsulated packet 230B.
- the nesting of encapsulated packets is arbitrary. However, the complete ED of information packet 200B
- split-ID refers to the ID of the packet being split among encapsulated packets.
- each piece of the ID is not necessarily related to the other pieces of the ED.
- one part of the ID represents a group ID or device ID comprising routable address information and other ID pieces represent target ID comprising information relating to the physical structure of a target device, hi some cases, group IDs comprise tags or names for easier management.
- the routable addresses comprise EP addresses assigned to storage areas and other ED pieces comprise Logical Block Addresses (LBAs) associated with logical partitions that map the LBAs to disk partition locations.
- LBAs Logical Block Addresses
- FIG. 3 illustrates information packet 300 comprising a control portion 320 and data portion 315.
- Control portion 320 further comprises single contiguous-ED 310, where contiguous-ED 310 comprises information for the module to resolve the final disposition of the packet.
- Contiguous-ID 310 is formed by having all the ID information contained in one unit of data. It is contemplated that contiguous-ID 310 comprises host addresses including EP addresses where the EP address can also map to a device specific characteristic. It is more specifically contemplated that contiguous-ID 310 comprises an IPv4 or IPv6 address that maps directly to an LBA of a logical partition that maps to a disk drive partition. Contiguous-EDs comprise the elements of a group ID, device ED, or target ID.
- Figure 3 displays control portion 300 at the beginning of packet 320.
- control portion does not necessarily have to be at the beginning of the packet, but could reside anywhere within the packet.
- more than one contiguous-ID can be present within packet 320.
- Information packets using device formats represent data packets received from a target device or sent to a target device.
- Contemplated packets are raw packets with no additional formatting added to them such that a target device perceives the packets as a naturally presented packet for the target device's interface.
- formats are device specific, consequently, they can vary from module to module depending on what types of target devices attach to the modules, hi some embodiments, a module can be able to handle many different types of device formats directed toward a heterogeneous mix of target devices.
- Figure 4 illustrates the aggregation of a set of capabilities.
- Module 400 comprises virtual device 420 that aggregates a set of capabilities 424, 426, and 428.
- Capabilities 424, 426, and 428 comprise capabilities programmed into virtual device 420 or capabilities of target devices accessible to virtual device 420.
- Contemplated virtual devices include logical drive partitions that aggregate the data storage capabilities across multiple hard disk drives. Even though Figure 4 shows three capabilities, a virtual device aggregates any number of capabilities.
- the capabilities can comprise a heterogeneous mix of capabilities.
- FIG. 5 illustrates a logical block diagram of a possible module 500 capable of creating information packets addressed to virtual devices used to communication with remote systems.
- Module 500 comprises network interface 510, packet processor 520, and target device interface 530.
- Network oriented data path 505 flows bi-directionally to and from network interface 510.
- Packet data path 515 also flows bi-directionally to and from network interface 510 and packet processor 520.
- device data path 535 flows bi-directional between packet processor 520 and target device interface 530.
- Target device interface 530 provides for physically handing packets from module 500 to a number of target devices. It is contemplated the number of target devices can vary from one to an arbitrary number as represented by devices 540A through 540M.
- the device data passes through target device data paths 545 A through 545M that correspond to their respective target devices.
- Packet processor 520 comprises the capability for processing the various types of information packets including packets with split-ID, contiguous-ID, or device formats.
- packet processor further comprises virtual device manager 526 and virtual bus tunnel 524 both of which represent further functionality for packet handling.
- Virtual device manager 526 further comprises at least one of a possible plurality of virtual devices 528 A through 528N. It is contemplated that the number of virtual devices can vary as shown depending on the requirements of module 500. Virtual devices 528 A through 528N each have a bi-directional device data path 537A through 537N, respectively, providing access to target devices 540A through 540M. hi addition, virtual devices 528A through 528N each have a bi-directional packet data path 525A through 525N respectively used to access virtual bus tunnel 524.
- Virtual bus tunnel 524 provides the virtual devices a communication path 517 to other modules, virtual devices, or system external to module 500 via network interface 510.
- Contemplated data paths within the module include Application Program Interfaces (APIs), memory copies, Inter-Process Communications (IPCs), physical connections, or other data transfer mechanisms.
- APIs Application Program Interfaces
- IPCs Inter-Process Communications
- Figure 5 represents a logical view of the roles and responsibilities within module 500.
- the logical constructs can be combined together in various ways that best suite the desired implementation. For instance, each logical block separated into individual tasks or threads, or all the blocks could be combined into a single monolithic executable image.
- Network interface 510 has responsibilities comprising providing network oriented data path 505 from module 500 to remote modules and systems that desire access to the capabilities or services offered by module 500 and the objects it manages. It is contemplated that preferred embodiments of network interface 510 comprise use of an internetworking protocol to manage communication, hi more preferred embodiments of network interface 510, the internetworking protocol comprises IPv4 or IPv6, hi addition, because module 500 can be placed in a general purpose computing system and function as driver level software, network interface 510 is contemplated to comprise an API that provides access to the general purpose computing system's network port. It is also contemplated communications with entities external to module 500 can be secured with respect to confidentiality, integrity, or authentication. Packet Processor
- Packet processor 520 represents a logical group of capabilities to handle information packet handling and to govern some of module 500 main aspects.
- packet processors contains any combination of hardware, software, or firmware necessary to assign host addresses to various objects associated with module 500, to take action on the information packets passing through network interface 510 or target device interface 530, or to process information packets at rates up to the line-rate of network interface 510 or the line- rate of target device interface 530.
- Packet processor 520 assigns host addresses to module 500 objects including target devices 5405A through 540M, virtual devices 528A through 528N, module 500 itself, virtual bus tunnel 524, logical groups of module objects, or other real or virtual objects associated with module 500.
- packet processor 520 When packet processor 520 takes action on information packets traveling through module 500, information packets are converted among the various types of ID packets. The packets contain the necessary information for routing to other systems as well as the data for the other systems to properly process the packets. Therefore, specific goals or rules employed by module 500 govern the actions taken on the information packets. Preferred embodiments of packet processor 520 comprise the capability of communicating with other modules. Yet even more preferred embodiments of packet processor 520 comprise the capability of communicating with other modules, where the other modules are separated from module 500 by routers.
- a preferred embodiment of packet processor 520 further comprises the ability to acquire a plurality of host addresses from internal module resources or from external modules resources. Once acquired, the host addresses can be assigned by packet processor 520 to various module objects.
- preferred host addresses comprise routable addresses such that systems external to the module determine how to route the information packets containing the host addresses to a final destination.
- a more preferred version of packet processor 520 comprises a routable node with respect to the routable addresses.
- Such a packet processor comprises the capability of routing packets with host addresses to internal objects as well as to external objects.
- host addresses can comprise addressable names used to reference objects, where contemplated names include names that can be used by DNS systems to resolve specific host addresses.
- a local name resolution system is contemplated, preferably a peer-to-peer mechanism. More preferred host addresses comprise IPv4 or IPv6 addresses.
- a preferred packet processor 520 operates on information packets, it is contemplated that the results of taking action on the packets yield no out- going packets or at least one out-going packet.
- the case of no out-going packets provides for silently discarding packets not destined for any object within module 500. Contemplated uses for silently discarding include using IP multicasting to communicate with a logical group of objects providing a aggregate set of capabilities or services where information packets are sent to all objects in the group, but only one target object needs to respond and all others can silently discard the information packet.
- the case of at least one out-going packet provides for transforming from one type of packet to another and for routing packets to their final destination.
- An even more preferred embodiment of packet processor 520 provides capabilities comprising packets processing uni-directionally, multi-directionally, or for returning packets backward from whence they came.
- Contemplated uses for uni-directional processing include accepting information packets destined for target devices and transforming the packets to device format. The packets are then delivered directly to a target device.
- Contemplated uses for multi-directional processing include sending packets to a target device as well as sending a possible acknowledgement to a remote source, hi addition, contemplated uses for returning backward packets include responding with an error if information packets can not be processed properly.
- Packet processor 520 also comprises additional contemplated functionality including configuring target devices 540A through 540M, configuring target device interface 537, managing virtual bus tunnel 524, or managing virtual device manager 526. Packet processor 520 further comprises virtual bus tunnel 524 and virtual device manager 526. Virtual bus tunnel 524 provides a conduit for virtual devices 528A through 528N used for communication with other systems external to module 500. Virtual device manager 526 comprises sufficient software for controlling and managing virtual devices 528A through 528N. Both the virtual device manager and virtual bus tunnel will be discussed in more detail in following sections. Target Device Interface
- Target device interface 530 comprise a layer of functionality providing the logical blocks within module 500 access to target devices 540A through 540M.
- Contemplated target device interfaces include homogenous interfaces where all the target devices are of the same type or class, or heterogeneous interfaces where at least some of the target devices are different from the other target devices. Specifically contemplated homogenous interfaces include hard disk drive interfaces.
- Contemplated heterogeneous interfaces comprise various device level interfaces including DMA for low level devices, peripheral ports, APIs, or user interface ports.
- virtual device manager 526 comprise the capability for managing virtual devices 528A through 528N and functionality for mapping virtual devices to the capabilities or characteristics of target devices 540A through 540M.
- virtual device manger 526 has complete control over the existence or behavior of the virtual devices including the capability to create, destroy, modify, suspend, or resume operation of the virtual device.
- Virtual devices 528A through 528N can be advantageously implemented through software constructs including programs, tasks, threads, processes, or monolithic coding systems. Each virtual device does not necessarily map to a target device in a one-to-one fashion. In addition, virtual devices do not necessarily have to correspond to any capability or characteristic of any of the target devices. In preferred embodiments at least one virtual device maps its functionality to a set of target devices including rotating or non-rotating media. Specifically contemplated non-rotating media includes all possible forms of memory. Specifically contemplated rotating media includes hard disk drives, optical drives, or other yet to be conceived rotating media. In the case of rotating media comprising hard disk drives, virtual devices 528A through 528N are contemplated to be logical partitions mapped to storage areas on the hard disk drive.
- preferred virtual devices are most adva innttaaggeeously implemented as drivers, threads, or
- virtual devices are advantageously implemented as tasks on embedded operating systems.
- virtual devices can represent components other than target device capabilities including functions which can serve as remote event handlers for a decentralized computing system.
- the host address associated with virtual devices becomes an event handler ID which can take the form of an IP address, port assignment, or memory address.
- Figure 6 illustrates a possible physical embodiment of a module 600.
- Information packets from external to module 600 flow bi-directionally through network communication path 605 to network interface 610.
- Network interface 610 also provides a network packet path 615 from network interface 610 to CPU 620.
- CPU 620 executes any combination of software code or firmware core to support the logical structures within module 600.
- CPU 620 loads executable code instructions from flash 622. It is contemplated flash 622 serves many uses including code storage, module configuration storage, local file systems, or other uses pertaining to persistent data storage where CPU 620 uses code path 623 to write or read from flash 622.
- CPU 620 can represent multiple actual processors. Contemplated modules with multiple processors include rack mount systems providing storage arrays. As CPU 620 executes module 600 code, system data is storage and retrieved from RAM 624 via data path 625. CPU 620 utilizes device data path 635 to interact bi-directionally with target device interface 630. Target device interface 630 also provides bi-directional paths 645A through 645M for device data for each target device 640A through 640M. Contemplated target device interfaces including backplanes for enclosures capable of supporting many target devices.
- a preferred network interface 610 comprises the use of Ethernet to exchange packets. Because modules are contemplated to exist in a wide variety of networking environments, wired or wireless interfaces are contemplated. Preferred wireless interfaces include all forms of 802.11, Ultra Wide Band (UWB), WiMAX, HomeRF, HiperLAN, Bluetooth, IrDA, or
- Contemplated wired interfaces include Ethernet supporting various speeds including lOMbps, lOOMbps, lGbps, lOGbps, or higher speeds.
- contemplated network interface 610 can comprise more than one physical channel for various reasons including to increase performance, to provide out-of-band management, to provide out-of-band module to module communication similar to an internal bus or backplane, or to provide logical separation of decentralized capabilities or services.
- target device interface 630 include any combination of homogenous or heterogeneous wired interfaces including serial or parallel interfaces.
- target device interface 630 comprises the capability of interfacing to one or more target devices.
- serial interfaces including RS-232, RS-485, RS-422, USB, Firewire, Ethernet, USB, or even programmable IO pins for low level devices.
- serial interfaces include SATA, or fiber channel interfaces.
- Contemplated parallel interfaces include SCSI, PATA, PCI, or PCI-like interfaces.
- target device interface 630 can employ wireless interfaces including Bluetooth, IrDA, or even 802.11 wireless communications, hi some embodiments, target device interface 630 can comprise API to access functionality of a larger system.
- module 600 When implemented on a hardware platform for use with physical target devices 640A through 640M, module 600 includes a number of other components in order to support the overall functionality of the module.
- the components include an embedded real-time operating system, TCP/IP stack, file system, web server for use as a user interface, or other middleware.
- Security for confidentiality, integrity, or authentication can be handled through the use of protocols including IPSec, VPNs, SSL, SSH, RADIUS, Kerberos, or other security systems as they gain currency. Additional hardware components might also be necessary, including clocks, internal buses, transceivers, or others.
- module 600 comprises all software for computing systems including Windows® or Linux, the module will interface to elements within the computing system via a set of APIs, where the hardware associated with system is part of a generalized computing platform. Specifically contemplated implementations of
- modules include programmable gate arrays, ASICs, embedded boards that attach directly to target devices, back planes, rack-mount systems, or even software components.
- FIG 7 illustrates a comparison of a traditional computing system in Figure 7 A and a decentralized computing' system utilizing modules comprising virtual devices in Figure 7B.
- computing system 700 comprises application 703 which requires a generalized operating system 705 including Windows® or Linux to function properly.
- application 703 accesses system resources including hard drives, monitors, memory, network, or other localized devices the application makes API calls through operating system 705 to driver 710.
- Driver 710 then accesses a localized system bus to send to or receive information packets with device format from any of devices 750A through 750D.
- Figure 7B depicts a similar computing system 701 with the exception that module 712 replaces driver 710.
- Module 712 provides access to network 720 used for the virtual bus tunnel.
- application 703 requests support from devices, application 703 again calls through operating system 705 which then makes device level requests through module 712.
- Module 712 transforms the packets with a device format from operating system 705 to a packet with a split-ID format or a contiguous-ID format destined for a remote device connected to module 740A or 740B.
- Modules 712, 740A, and 740B utilize a preferred embodiment of a virtual bus tunnel which comprises the functionality that allows the objects within the modules to communication with each other via information packets.
- module 712 allows the operating system to perceive devices 750A through 750D as if they are locally connected. Moreover, device 750A through 750D can appear as a single device if they have been aggregated. In addition, modules 740A and 740B allow devices 750A through 750D to perceive they connect directly to a real bus.
- Network 720 comprises the virtual bus tunnel within modules 712, 740A, and 740B.
- Each virtual bus tunnel provides an addressing mechanism and a data transport mechanism.
- the addressing mechanism comprises a number of capabilities: the capability of addressing logical groups of target devices or virtual devices such that they can be addressed by a single point address, the capability of addressing individual target devices or virtual devices, or the ability to address specific characteristics associated with target devices or virtual devices.
- the virtual bus tunnel does not necessarily tunnel device data because device formats from
- a preferred virtual bus tunnel comprises an internetworking protocol which provides addressing capabilities and data transport capabilities. Specific contemplated internetworking protocols include IPv4 or IPv6. Even more preferred virtual bus tunnels comprise logical groups of objects within modules and optionally objects from other modules addressed via multicast IP addresses.
- FIG. 8 provides an illustration showing a possible embodiment where a user operating computer 800 could access data across a number of decentralized hard disk drives but have their capabilities or services aggregated via modules.
- Drives 832, 834, and 836 attach to module 830, drive 842 attaches to module 840, and drives 852 and 854 attach to module 850.
- Each of the drives further comprises logical partitions located on each of the drives: drive 832 comprises logical partition 833, drive 834 comprises logical partition 835, drive 836 comprises logical partition 837, drive 842 comprises logical partition 843, drive 852 comprises logical partition 853, and drive 854 comprises logical partition 855.
- modules 830, 840, and 850 comprise virtual devices that aggregate the logical partitions to form multicast group 820. From the perspective of the user or application 802, the aggregated logical partitions represented by multicast group 820 form a single disk volume that appears as a single hard disk drive. As a user operates application 802 on computer 800, the application can request data from a hard disk drive through operating system 804. Operating system 804 perceives the data a residing on a single hard disk drive device and thereby requests data though module 806. Data requests in the form of information packets comprising split-ID or contiguous-ID format travel across a network 815 A through 815D which can optionally including a number of routers such as router 810 or even can optionally include Internet 825. Data requests are received by modules 830, 840, and 850. The modules 830, 840, and 850 determine if the requests need action based on the target hard disk drives attached to the modules, the host address in the information packet,
- Figure 8 presents a possible configuration of modules and target devices, one ordinarily skilled in the art will recognize that any possible configuration of computers, network, modules, or target devices are possible while keeping within the scope of the presented subject matter.
- modules 830, 840, and 850 provide host addresses for all objects associated with the modules including the target hard disk drives as well as logical partitions associated with each of the hard disk drives.
- the logical partitions represent virtual devices.
- Multicast group 820 represents a possible virtual bus tunnel for the logical partitions such that the logical partitions, modules, or applications coordinate their behaviors. It is specifically contemplated that logical groups of logical partitions on storage devices form multicast mirrors, stripes, or spans. Therefore a logical group is one or more logical partitions. One or more logical groups can then combine to form a logical volume that appears as a single disk to a computer system.
- multicast group 820 utilizes IP multicasting to address logical groups of virtual devices
- hosts can employ broadcasts on a subnet to address a logical group wherein the broadcast packets include a group ID representing the logical group. Members in the group use the group ID to determine if the packet should be accepted.
- group ID representing the logical group.
- this document contemplates the use of IP multicasting to provide group addressing, all possible alternative group addressing based on a group IDs are also contemplated, specifically contemplated group addressing includes the ability to route across subnets. Therefore, "multicast" includes the concept of alternative logical group addressing.
- a logical group of logical partitions form a multicast span similar to that represented by multicast group 820.
- Modules, virtual devices, or target devices join a multicast group represented by a single IP address, or group ID, where virtual devices are logical partitions on target hard disk drives.
- the single IP address represents a group ID that identifies a single logical volume.
- a single logical group can form a single spanned logical volume, as called a multicast stripe, identified by the group ID.
- Data spans across the logical partitions spread across plurality of drives such that the total available storage capacity can be extended beyond that provided by a single drive.
- LBAs are distributed
- Each logical partition is responsible for a range of LBAs and each subsequent logical partition continues the LBA numbering sequence where the previous logical partitions left off.
- Logical partitions can cover an entire drive; however, logical partitions in a span can be of any size.
- the host When a host wishes to send or retrieve data from the multicast stripe, the host sends a request to the multicast group via packets with a split-ID or contiguous-ID format containing the IP address of the group as well as the LBA associated with the data. All virtual devices, or logical partitions, within the group receive the information packet via their modules. The logical partitions determine if they are responsible for that particular data block as determined by the LBA. If a logical partition is not responsible for the data block, the information packet is silently discarded. If a logical partition is responsible for the data block, the information packet format will be transformed. On a write, the packet format will be changed to device format and the data will be written to a target disk.
- an information packet On a read, an information packet will be read from a target disk and transformed to split-ID or contiguous-ID format then sent back to the originating host.
- a response information packet can contain data, an error, or an acknowledgement. The host expects one response to its request to a multicast stripe.
- Multicast stripes are similar to multicast spans with the exception that a number of logical partitions spread across numerous drives to provide increased performance when reading data from the drives. In this sense, multicast stripes are a super-set of multicast spans where the partitions can be any size, not just the size of the hard disk drive.
- the logical group of logical partitions represented by multicast group 820 forms a striped logical volume, also called a multicast stripe.
- the logical partitions within the multicast stripe respond identically to host requests as the logical partitions within a multicast span.
- LBAs within a multicast stripe are distributed differently than in a multicast span.
- LBAs are distributed in blocks laterally across the logical partitions such that the logical volume has a complete set of LBAs from 0 to a maximum value, but each logical partition does not have sequential LBAs.
- logical partition 833 could be responsible for LBAs 0 through 4 and LBAs 15 through 19.
- Logical partition 835 could be responsible for LBAs 5 through 9
- logical partition 837 could be responsible for LBAs 10 through 14 and LBAs 25 through 29.
- the first blocks of data are written to partition 833, and then the second blocks of data are written to 835, and so on. Once blocks of data have reached logical partition 837, the pattern repeats back at logical partition 833.
- a virtual device representing a logical partition uses the LBA within the split-E) or contiguous-ID to determine where the data should reside.
- the previous example is to provide an illustration of how data can be written to multicast stripe and should not be considered restrictive to the presented subject matter.
- the depth of the data stripes, the number logical partitions, or placement of the physical disks are arbitrary.
- Multicast mirrors can be constructed in a similar fashion as multicast spans and multicast stripes with the exception that there can be multiple logical groups that duplicate data. Consequently, a mirrored logical volume, also called a multicast mirror, comprises more than one set of LBAs numbered from 0 to a maximum value. Multicast group 820 can represent a multicast mirrored volume where some logical partitions mirror data from other logical partition. When a host sends information packets to the multicast mirror, more than one logical partition can be responsible for the data's LBA. Consequently, the host expects more than one response from the multicast mirror. Therefore, the main different between a multicast mirror and multicast stripe or span is that the originating host can expect more than one response to a request.
- multicast mirrors, stripes, or spans can all coexist with each other where each can have their own multicast IP address allowing them to provide services to numerous remote hosts. It is also contemplated that the partitions that make up multicast mirrors, stripes, or span communicate with other partitions within other modules. Such communication allows for each type of volume to work together to provide enhanced abilities including data redundancy.
- multicast spans, stripes, or mirror form RAID- like structures.
- Multicast stripes represent RAID level 0 where data is striped across
- Multicast mirrors represent RAID level 1 where data is mirrored from a primary source to a mirrored volume. By combining multicast mirrors, stripes, or spans along with other RAID concepts including parity, more complex RAID structures are possible, RAID-5 for example.
- RAID-5 for example.
- One ordinarily skilled in the art of RAID system is able to build such systems.
- Figure 9 depicts a possible method providing a virtual bus tunnel for virtual devices or target devices via modules.
- a module associates virtual devices with target device and their capabilities or characteristics.
- Virtual devices can be logical constructs that can be governed by software. Once the virtual devices are instantiated, whether in software or hardware, they are ready to begin performing their tasks and to communicate with other virtual devices. For example, in a distributed storage system logical partitions are associated with physical disk partitions. Once established, the logical partitions are able to able to participate with other virtual devices over a virtual bus tunnel.
- a module acquires multiple host addresses.
- the acquisition can be performed in a number of different possible ways.
- One contemplated method for acquiring host addresses includes using external module mechanisms including DHCP requests to gain a number of IP addresses from a DHCP server.
- Additional contemplated methods for acquiring IDs includes using internal module mechanisms including Auto-IP or having the host addresses pre-determined via initial configuration at manufacturing time or subsequent configuration during deployment. Host addresses combine with other ID information to eventually form split-IDs or contiguous-IDs.
- a module can assign the acquired host addresses to various objects associated with the module.
- Contemplated objects include real or virtual objects.
- Real objects include the module itself, interfaces, target devices, chassis, power supplies, or other physical devices that can be referenced by an external host.
- Virtual objects include virtual devices within the module, virtual bus tunnel, multicast mirrors, multicast stripes, multicast spans, logical volumes, logical groups, logical partitions, or other virtual systems providing capabilities or services to remote hosts.
- a module waits for information packets to arrive from any source including a target device interface, a network interface, virtual devices within the module, or other sources internal or external to the module.
- Contemplated information packets include packets with split-ID format, contiguous-ID format, or device format, where preferred embodiments use host addresses that comprise IP addresses.
- a module determines if an information packet has device format. If the packet does have device format, the module takes action on the packet at step 932 to transform the packet to use split-ID or contiguous-ID format. The transformation can be governed by a virtual device's functionality. Once the transform is complete, the packet is sent over a virtual bus tunnel at step 934.
- a preferred virtual bus tunnel in step 934 groups virtual device or target devices via multicasting groups to provide a single point contact for communication.
- a preferred media comprises Ethernet based media to transport packets over a network.
- step 935 determines the information packet does not have device format
- step 945 a module determines if the packet is an ID packet comprising a split-ED or contiguous-ID. If the packet is an ID packet, then step 955 determines if the packet is destined to travel to a target device. If so, the packet is transformed to a packet with device format at step 952 where all ID information and packet contents help determined the final transformation. At step 954, the final packet is sent to the target device. If at step 955 the packet is not destined for a target device, then the module determines if the packet is silently discarded or is transformed at step 957.
- step 957 determines the packet must be silently discarded, as in the case of multicasting mirroring, striping, or spanning, then the packet is discarded and the module again waits to receive new packets back at step 920. Otherwise, if step 957 determines the packet must not be silently discarded, the packet is further transformed to a different ID format 956 and sent on via step 934.
- a contemplated use for this type of transform includes a virtual device representing a multicast stripe that can copy data directly to a multicast mirror without having a source host perform multiple operations to create data redundancy.
- the module processes 946 the packet in a manner that is
- Contemplated additional processing includes handling configuration information for target devices, managing virtual devices, updating firmware, or other support processing.
- Implementations include providing a single monolithic processing image to ensure very fast processing or providing multiple threads or tasks that replicate the method presented above for each target device or for each virtual device to simplify the implementation.
- Data storage products can be advantageously developed based on modules and hard disk drives.
- a possible goal is to create a network storage system. Users and applications can access the data store where data is spread over multiple hard disks located remotely from the user over a network in a manner that appears to be a single drive.
- At least two types of modules are contemplated.
- One type attaches directly to the set of hard disk drives, and establishes a set of logical partitions all addressable via IP addresses.
- the logical partitions then can form a multicast group that presents the collection as a single disk volume to remote hosts.
- the second type is a software driver installed on a computer system.
- the computer's module presents its target device interface to the computer's file system.
- split-IDs comprise IP addresses and LBAs.
- the virtual bus tunnel comprises the use UDP datagrams over an IP based Ethernet network. If the modules are constructed properly, then the system can process data at line-rates with respect to the network or the disk drive interfaces.
- Consumer oriented systems can be advantageously developed where one or two drives have their capabilities aggregated.
- a consumer installs a module drive on their PC that can connect to the modules for the drives.
- Most consumer NAS products suffer from
- a module based version allows for perform at line-rates.
- many drives can be combined within a rack-mount enclosure where all drives can be combined in numerous ways to enhance performance, reliability, or scalability. Because the module is virtualized, a user will have unprecedented control over their storage configuration.
- the module approach utilizes existing network infrastructure and does not need additional specialized controllers or equipment based on fiber channel or SCSI.
- network storage systems can be developed on less expensive SATA drives reducing the final costs to an end user.
- Third, by applying various arrangements of multicast mirrors, stripes, and span data redundancy and reliability can be increased over existing RAID systems due to automatic data redundancy where stripes and mirrors can communicate directly with each other.
- modules can take on many forms including adapters to specific equipment, embedded modules within medical devices, or even software database adapters.
- Patient monitoring equipment can include blood analyzers, sphygmomanometers, fetal monitors, or other devices attached to patients. Modules can combine to form a multicast group whose address represents a patient ID. Consequently, when any application, doctor, or nurse requires patient data the request is sent to the multicast group and only the relevant device responds. As wireless sensors are deployed in a hospital environment, the need will grow for patient-centric monitoring rather than room-centric monitoring. A module based system has the advantage of allowing all sensors to move with the patient and remain accessible rather than being accessible only in a room. Additionally, modules can take the form of database adapters implemented completely in software where the database adapter module continually updates databases as patient telemetry is received.
- the decentralization and virtualization of computing resources offers the ability for users to maintain existing experiences no matter the physical locality of those resources.
- the examples show single applications, all possible extensions to the applicability of modules are contemplated including, but not limited to, the use of modules to provide fully decentralized computing systems where CPUs, drives, memory, or other components are separated from each other.
- Such a virtual computing system allows a user to access their computer experience from anywhere in the world.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
L'invention concerne des modules et des procédés qui fournissent une communication de dispositif virtuel par des paquets de données adressés aux dispositif virtuels. Des dispositifs virtuels font la somme des capacités de dispositifs cibles et représentent l'agrégat comme un dispositif opérationnel pour les systèmes distants. Des éléments dispositif physique et des dispositifs virtuels contenus dans les modules sont capables de communiquer et de coopérer sur des distances étendues en poste-à-poste via un tunnel bus virtuel offrant l'adressage et des fonctionnalités de transport de données. De tels modules et procédés peuvent être combinés à des lecteurs de disques pour former des structures de stockage de type RAID.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2005/018907 WO2006127013A1 (fr) | 2005-05-26 | 2005-05-26 | Dispositifs virtuels et tunnels bus virtuels, modules et procedes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2005/018907 WO2006127013A1 (fr) | 2005-05-26 | 2005-05-26 | Dispositifs virtuels et tunnels bus virtuels, modules et procedes |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2006127013A1 true WO2006127013A1 (fr) | 2006-11-30 |
Family
ID=35464114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2005/018907 WO2006127013A1 (fr) | 2005-05-26 | 2005-05-26 | Dispositifs virtuels et tunnels bus virtuels, modules et procedes |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2006127013A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE47411E1 (en) | 2005-08-16 | 2019-05-28 | Rateze Remote Mgmt. L.L.C. | Disaggregated resources and access methods |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004025477A2 (fr) * | 2002-09-16 | 2004-03-25 | Level 5 Networks Limited | Interface et protocole reseau |
-
2005
- 2005-05-26 WO PCT/US2005/018907 patent/WO2006127013A1/fr active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004025477A2 (fr) * | 2002-09-16 | 2004-03-25 | Level 5 Networks Limited | Interface et protocole reseau |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE47411E1 (en) | 2005-08-16 | 2019-05-28 | Rateze Remote Mgmt. L.L.C. | Disaggregated resources and access methods |
USRE48894E1 (en) | 2005-08-16 | 2022-01-11 | Rateze Remote Mgmt. L.L.C. | Disaggregated resources and access methods |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7620981B2 (en) | Virtual devices and virtual bus tunnels, modules and methods | |
US10491539B1 (en) | System and method for initializing and maintaining a series of virtual local area networks contained in a clustered computer system | |
USRE48894E1 (en) | Disaggregated resources and access methods | |
US8688772B2 (en) | Method and apparatus for web based storage on demand | |
US9342373B2 (en) | Virtual machine management among networked servers | |
US8140719B2 (en) | Dis-aggregated and distributed data-center architecture using a direct interconnect fabric | |
US20170017422A1 (en) | Virtual Storage Target Offload Techniques | |
JP4797636B2 (ja) | 複合型情報プラットフォーム装置とその情報処理装置構成方法 | |
JP2018156645A (ja) | ストレージシステム及びその動作方法 | |
US20110289205A1 (en) | Migrating Virtual Machines Among Networked Servers Upon Detection Of Degrading Network Link Operation | |
US7281062B1 (en) | Virtual SCSI bus for SCSI-based storage area network | |
US9288266B1 (en) | Method and apparatus for web based storage on-demand | |
US20060265529A1 (en) | Session-based target/lun mapping for a storage area network and associated method | |
US8615571B2 (en) | Network address assignment in a data center | |
US20060095690A1 (en) | System, method, and storage medium for shared key index space for memory regions | |
GB2410816A (en) | Logically partitioned computer and storage system | |
US9602600B1 (en) | Method and apparatus for web based storage on-demand | |
US20060253543A1 (en) | Providing redundancy for a device within a network | |
JP2006286021A (ja) | Ip対応パーティションを備えたデータ記憶装置 | |
JP2005071362A (ja) | ネットワークを介したscsiデバイスアクセスの提供 | |
JP2006510976A5 (fr) | ||
US8190774B2 (en) | Managing virtual addresses of blade servers in a data center | |
EP3794807A1 (fr) | Appareils et procédés d'initialisation de noeud de calcul tactile nul | |
CN106648957A (zh) | 一种操作系统备份和恢复方法及系统 | |
WO2006127013A1 (fr) | Dispositifs virtuels et tunnels bus virtuels, modules et procedes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase |
Ref country code: DE |
|
NENP | Non-entry into the national phase |
Ref country code: RU |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 05755098 Country of ref document: EP Kind code of ref document: A1 |