Claims
- 1. A method of selectively allocating storage to a processor comprising the computer-implemented steps of:
receiving a request to allocate storage to the processor; and configuring a virtual storage layer to logically associate one or more logical units from among one or more storage units to the processor.
- 2. A method as recited in claim 1, wherein the configuring step is carried out without modification to an operating system of the processor.
- 3. A method as recited in claim 1, wherein the configuring step is carried out by a control processor that is coupled through one or more storage networks to a plurality of storage gateways that are coupled through the storage networks to the one or more storage units.
- 4. A method as recited in claim 1, wherein the configuring step further comprises the steps of:
configuring a storage gateway in the virtual storage layer to map the logical units to a boot port of the processor; and configuring the one or more storage units to give the processor access to the logical units.
- 5. A method as recited in claim 1, wherein the virtual storage layer comprises a control processor that is coupled through a storage network to a storage gateway, wherein the storage gateway is coupled through the storage network to the one or more storage units, and wherein the configuring step further comprises the steps of:
the control processor issuing instructions to the storage gateway to map the logical units to a boot port of the processor; and the control processor issuing instructions to the storage units to give the processor access to the one or more logical units.
- 6. A method as recited in claim 1, wherein the configuring step further comprises the steps of:
receiving the request to allocate storage at a control processor that is coupled through a storage network to a storage gateway, wherein the storage gateway is coupled through the storage networks to the one or more storage units; instructing the storage gateway to map the one or more logical units to a boot port of the processor; and instructing the one or more storage units to give the processor access to the one or more logical units.
- 7. A method as recited in claim 1, wherein:
the method further comprises the step of storing first information that associates processors to logical units, and second information that associates logical units to storage units, and the configuring step further comprises the step of mapping the one or more logical units from among the one or more storage units to a boot port of the processor by reconfiguring the virtual storage layer to logically couple the one or more logical units to the boot port based on the stored first information and second information.
- 8. A method as recited in claim 1,
further comprising the step of generating the request to allocate storage at a control processor that is communicatively coupled to a control database, wherein the request is directed from the control processor to a storage manager that is communicatively coupled to the control processor, the control database, and a storage network that includes a disk gateway, and wherein the step of configuring the virtual storage layer includes reconfiguring the disk gateway to logically couple the one or more logical units to a boot port of the processor.
- 9. A method as recited in claim 8, further comprising the step of issuing instructions from the storage manager to the one or more storage units to give the processor access to the one or more logical units.
- 10. A method as recited in claim 1, wherein the configuring step further comprises the steps of:
identifying one or more logical units (LUNs) of the one or more storage units that have a sufficient amount of storage to satisfy the request; instructing a storage gateway in the virtual storage layer to map the identified LUNs to the small computer system interface (SCSI) port zero of the processor based on a unique processor identifier; and instructing the one or more storage units to give the processor having the unique host identifier access to the identified LUNs.
- 11. A method as recited in claim 1, wherein the configuring step comprises:
issuing a request to allocate one or more volumes on one of the one or more storage units; issuing a request to make a concatenated volume using the one or more allocated volumes; configuring the concatenated volume for use with the processor; issuing first instructions to the one or more storage units to bind the processor to the concatenated volume by giving the processor access to the concatenated volume; issuing second instructions to a gateway in the virtual storage layer to bind the concatenated volume to the processor.
- 12. A method as recited in claim 11, further comprising the steps of:
determining that the second instructions have failed to bind the concatenated volume to the processor; issuing third instructions to the one or more storage units to un-bind the processor from the concatenated volume.
- 13. A method as recited in claim 11, further comprising the steps of:
determining that the first instructions have failed to bind the processor to the concatenated volume; issuing fourth instructions to the one or more storage units to break the concatenated volume.
- 14. A method as recited in claim 1, wherein the one or more logical units associated with the processor include at least one logical unit from a first volume from the one or more storage units, and at least one logical unit from a second volume from among the one or more storage units.
- 15. A method as recited in claim 1, wherein the request to allocate storage specifies an amount of storage to be allocated.
- 16. A method as recited in claim 1, wherein the request to allocate storage specifies a type of storage to be allocated.
- 17. A method of selectively associating storage with a host processor without modification to an operating system of the host, comprising the steps of:
receiving a request to associate the storage at a virtual storage layer that is coupled to a plurality of storage units and to one or more host processors, wherein the request identifies a particular host processor and an amount of requested storage; configuring the virtual storage layer to logically couple one or more logical units from among the plurality of storage units having the requested amount of storage to a standard boot port of the particular host processor, by instructing a storage gateway in the virtual storage layer to map the one or more logical units to the standard boot port of the particular host processor, and instructing the plurality of storage units to give the particular host processor access to the one or more logical units.
- 18. A method as recited in claim 17, wherein the configuring step comprises:
issuing a request to allocate one or more volumes on one of the plurality of storage units having the requested amount of storage; issuing a request to make a concatenated volume using the one or more allocated volumes; configuring the concatenated volume for use with the particular host processor; issuing first instructions to the plurality of storage units to bind the particular host processor to the concatenated volume by giving the particular host processor access to the concatenated volume; issuing second instructions to a gateway in the virtual storage layer to bind the concatenated volume to the particular host processor.
- 19. A method as recited in claim 18, further comprising the steps of:
determining that the second instructions have failed to bind the concatenated volume to the particular host processor; issuing third instructions to the plurality of storage units to un-bind the particular host processor from the concatenated volume.
- 20. A method as recited in claim 18, further comprising the steps of:
determining that the first instructions have failed to bind the particular host processor to the concatenated volume; issuing fourth instructions to the plurality of storage units to break the concatenated volume.
- 21. A method of selectively associating storage with a host processor, comprising the steps of:
receiving, at a virtual storage layer that is coupled to a plurality of storage units and to one or more host processors, a request to associate the storage, wherein the request identifies the host processor and an amount of storage to be associated with the host processor; mapping one or more sub-units of storage from among the plurality of storage units to a standard boot port of the host processor by logically coupling the one or more sub-units to the standard boot port of the host processor by instructing a gateway to couple the host processor to the one or more sub-units and by instructing the plurality of storage units.
- 22. A computer-readable medium carrying one or more sequences of instructions for selectively associating storage with a host processor in a networked computer system, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
receiving a request to associate the storage at a virtual storage layer that is coupled to a plurality of storage units and to one or more host processors that have no then-currently assigned storage, wherein the request identifies a particular host and an amount of requested storage; mapping one or more logical units from among the storage units having the requested amount of storage to a standard boot port of the identified host, by reconfiguring the virtual storage layer to logically couple the logical units to the boot port.
- 23. An apparatus for defining and deploying a networked computer system, comprising:
means for receiving a request at a virtual storage layer that is coupled to a plurality of storage units to associate storage with a particular host processor, wherein the request specifies an amount of requested storage; means for mapping one or more logical units from among the plurality of storage units having the amount of requested storage to a standard boot port of the particular host processor by reconfiguring the virtual storage layer to logically couple the one or more logical units to the standard boot port of the particular host processor.
- 24. An apparatus for defining and deploying a networked computer system, comprising:
a processor; a computer-readable medium accessible to the processor and storing a textual representation of a logical configuration of the networked computer system according to a structured markup language; one or more sequences of instructions stored in the computer-readable medium and which, when executed by the processor, cause the processor to carry out the steps of:
receiving a request to associate storage, wherein the request is received at a virtual storage layer that is coupled to a plurality of storage units to a particular host processor, wherein the request specifies an amount of requested storage; mapping one or more logical units from among the plurality of storage units having the requested amount of storage to a standard boot port of the particular host processor by reconfiguring the virtual storage layer to logically couple the one or more logical units to the boot port of the particular host processor.
- 25. A system for selectively associating storage with a host processor, comprising:
a virtual storage mechanism that is coupled to a plurality of storage units and to one or more host processors; a control processor that is communicatively coupled to the virtual storage mechanism and that comprises a computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to carry out the steps of:
receiving a request to associate storage with a particular host processor, wherein the request identifies an amount of requested storage; mapping one or more logical units from among the storage units having the requested amount of storage to a standard boot port of the particular host processor, by reconfiguring the virtual storage mechanism to logically couple the one or more logical units to the standard boot port of the particular host processor.
- 26. A system as recited in claim 25, wherein the control processor is coupled through one or more storage networks to a plurality of storage gateways that are coupled through the one or more storage networks to the plurality of storage units.
- 27. A system as recited in claim 25,
wherein the control processor is coupled through a storage network to a storage gateway that is coupled through the storage networks to the plurality of storage units, and wherein the sequences of instructions of the control processor further comprise instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of:
issuing instructions from the control processor to the storage gateway to map the one or more logical units to the standard boot port of the particular host processor; and issuing instructions from the control processor to the plurality of storage units to give the particular host processor access to the one or more logical units.
- 28. A system as recited in claim 25,
wherein the control processor is communicatively coupled to a control database that comprises first information that associates hosts to logical units, and second information that associates logical units to storage units; and wherein the sequences of instructions of the control processor further comprise instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of mapping one or more logical units from among the plurality of storage units having the requested amount of storage to the standard boot port of the particular host processor by reconfiguring the virtual storage mechanism to logically couple the one or more logical units to the standard boot port of the particular host processor based on the first information and the second information.
- 29. A system as recited in claim 25, wherein the sequences of instructions of the control processor further comprise instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of:
identifying one or more logical units (LUNs) of the plurality of storage units that have the requested amount of storage; instructing a storage gateway in the virtual storage layer to map the identified LUNs to the small computer system interface (SCSI) port zero of the particular host processor based on a unique host identifier; and instructing the plurality of storage units to give the particular host processor having the unique host identifier access to the identified LUNs.
- 30. A system as recited in claim 25, wherein the sequences of instructions of the control processor further comprise instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of:
issuing a request to allocate one or more volumes on one of the plurality of storage units having the requested amount of storage; issuing a request to make a concatenated volume using the one or more allocated volumes; configuring the concatenated volume for use with the particular host processor; issuing first instructions to the plurality of storage units to bind the particular host processor to the concatenated volume by giving the particular host processor access to the concatenated volume; issuing second instructions to a gateway in the virtual storage layer to bind the concatenated volume to the particular host processor.
- 31. A system as recited in claim 25, wherein the sequences of instructions of the control processor further comprise instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of:
determining that the second instructions have failed to bind the concatenated volume to the particular host processor; issuing third instructions to the plurality of storage units to un-bind the particular host processor from the concatenated volume.
- 32. A system as recited in claim 25, wherein the sequences of instructions of the control processor further comprise instructions which, when executed by the one or more processors, cause the one or more processors to carry out the steps of
determining that the first instructions have failed to bind the particular host processor to the concatenated volume; issuing fourth instructions to the plurality of storage units to break the concatenated volume.
- 33. A method of selectively allocating storage to a processor comprising the computer-implemented steps of:
receiving a request to allocate storage to the processor; and logically assigning one or more logical units from among one or more storage units to the processor, wherein the one or more logical units include at least one logical unit from a first volume from the one or more storage units and at least one logical unit from a second volume from the one or more storage units.
- 34. A method as recited in claim 1, wherein the configuring step is carried out by a switch device in a storage area network.
- 35. A method as recited in claim 1, wherein the configuring step is carried out by a disk array in a storage area network.
- 36. A method as recited in claim 1, wherein the one or more logical units associated with the processor include at least one logical unit comprising a first volume of storage of a first storage unit and a second volume of storage from a second storage unit.
- 37. A method of selectively allocating storage to a processor comprising the computer-implemented steps of:
receiving a symbolic definition of a virtual server farm that includes a storage definition; based on the storage definition, creating a request to allocate storage to the processor; and configuring a virtual storage layer to logically associate one or more logical units from among one or more storage units to the processor.
- 38. A method as recited in claim 37, wherein the storage definition identifies an amount of requested storage and a SCSI target for the storage.
- 39. A method as recited in claim 37, wherein the storage definition identifies an amount of requested storage and a file system mount point for the storage.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] Continuation-in-part of application Ser. No. 09/502,170, filed Feb. 11, 2000, entitled “Extensible Computing System,” naming Ashar Aziz et al. as inventors. Domestic priority under 35 U.S.C. §120 is claimed therefrom. This application is related to application Ser. No. 09/630,440, filed Sep. 20, 2000, Method And Apparatus for Controlling an Extensible Computing System, of Ashar Aziz et al. Domestic priority is claimed under 35 U.S.C. § 119 from prior Provisional application Ser. No. 60/212,936, filed Jun. 20, 2000, entitled “Computing Grid Architecture,” and naming as inventors Ashar Aziz, Martin Patterson, Thomas Markson, and from prior Provisional application Ser. No. 60/212,873, filed Jun. 20, 2000, entitled “Storage Architecture and Implementation,” and naming as inventors Ashar Aziz, Martin Patterson, Thomas Markson.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60212936 |
Jun 2000 |
US |
|
60212873 |
Jun 2000 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09502170 |
Feb 2000 |
US |
Child |
09885290 |
Jun 2001 |
US |