Method and apparatus for allocating resources among virtual filers on a filer
First Claim
1. A method for maintaining a plurality of virtual servers on a computer, comprising:
- storing external configuration information of a selected virtual server of the plurality of virtual servers in a global repository maintained on a storage device of the computer, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers;
storing internal configuration information of the selected virtual server of the plurality of virtual servers in a private repository, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server, the private repository maintained on a private repository storage device of the computer;
storing soft objects in the private repository of the selected virtual server, the soft objects mapped to one or more selected storage devices of the server to assign the one or more selected storage devices to the selected virtual server; and
executing a command on a processor of the computer, the command to change a mapping in the soft objects to change an assignment of storage devices to the selected virtual server.
3 Assignments
0 Petitions
Accused Products
Abstract
An architecture provides the ability to create and maintain multiple instances of virtual servers, such as virtual filers (vfilers), within a server, such as a filer. A vfiler is a logical partitioning of network and storage resources of the filer platform to establish an instance of a multi-protocol server. Each vfiler is allocated a subset of dedicated units of storage resources, such as volumes or logical sub-volumes (qtrees), and one or more network address resources. Each vfiler is also allowed shared access to a file system resource of a storage operating system. To ensure controlled access to the allocated and shared resources, each vfiler is further assigned its own security domain for each access protocol. A vfiler boundary check is performed by the file system to verify that a current vfiler is allowed to access certain storage resources for a requested file stored on the filer platform.
35 Citations
51 Claims
-
1. A method for maintaining a plurality of virtual servers on a computer, comprising:
-
storing external configuration information of a selected virtual server of the plurality of virtual servers in a global repository maintained on a storage device of the computer, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers; storing internal configuration information of the selected virtual server of the plurality of virtual servers in a private repository, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server, the private repository maintained on a private repository storage device of the computer; storing soft objects in the private repository of the selected virtual server, the soft objects mapped to one or more selected storage devices of the server to assign the one or more selected storage devices to the selected virtual server; and executing a command on a processor of the computer, the command to change a mapping in the soft objects to change an assignment of storage devices to the selected virtual server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer apparatus, comprising:
-
external configuration information of a selected virtual server of a plurality of virtual servers stored in a global repository maintained on a storage device of the computer, wherein the plurality of virtual servers are maintained on a server; internal configuration information of the selected virtual server of the plurality of virtual servers stored in a private repository, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server, the private repository maintained on a private repository storage device of the computer; soft objects stored in the private repository of the selected virtual server, the soft objects mapped to one or more selected storage devices of the server to assign the one or more selected storage devices to the selected virtual server; and a processor of the computer to execute a command which changes a mapping in the soft objects to change an assignment of storage devices to the selected virtual server. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer readable storage media, comprising:
-
said computer readable storage media containing instructions for execution on a processor for the practice of a method of maintaining a plurality of virtual servers on a computer, the method having the steps of; storing external configuration information of a selected virtual server of the plurality of virtual servers in a global repository maintained on a storage device of the computer, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers; storing internal configuration information of the selected virtual server of the plurality of virtual servers in a private repository, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server, the private repository maintained on a private repository storage device of the computer; storing soft objects in the private repository of the selected virtual server, the soft objects mapped to one or more selected storage devices of the server to assign the one or more selected storage devices to the selected virtual server; and executing a command on a processor of the computer, the command to change a mapping in the soft objects to change an assignment of storage devices to the selected virtual server.
-
-
24. A computer apparatus to maintain a plurality of virtual servers on the computer, comprising:
-
means for storing external configuration information of a selected virtual server of the plurality of virtual servers in a global repository maintained on a storage device of the computer, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers; means for storing internal configuration information of the selected virtual server of the plurality of virtual servers in a private repository, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server, the private repository maintained on a private repository storage device of the computer; and means for storing soft objects in the private repository of the selected virtual server, the soft objects mapped to one or more selected storage devices of the server to assign the one or more selected storage devices to the selected virtual server; and means for executing a command on a processor of the computer, the command to change a mapping in the soft objects to change an assignment of storage devices to the selected virtual server.
-
-
25. A method for allocating resources among one or more virtual servers of a computer, comprising:
-
storing external configuration information of a selected virtual server of the plurality of virtual servers in a global repository maintained on a storage device of the computer, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers; storing internal configuration information of the selected virtual server of the plurality of virtual servers in a private repository, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server, the private repository maintained on a private repository storage device of the computer; mapping one or more pointers to the resources, the pointers stored in the external configuration information and accessible by processing elements of the server; and assigning at least one of the pointers of the one or more pointers to at least one virtual server of the one or more virtual servers to dynamically allocate the resources among the one or more virtual servers. - View Dependent Claims (26, 27, 28)
-
-
29. A computer system, comprising:
-
one or more resources mapped to one or more pointers, and the pointers reside in a memory of a computer and are accessible by processing elements of the computer; an operating system executed by a processor of the computer, the operating system configured to assign at least one of the pointers of the one or more pointers to at least one virtual server of the one or more virtual servers to dynamically allocate the resources among the one or more virtual servers; a global repository maintained on a storage device of the computer to store external configuration information of a selected virtual server of the plurality of virtual servers, the external configuration information including the pointers; and internal configuration information of the selected virtual server of the plurality of virtual servers stored in a private repository, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server, the private repository maintained on a private repository storage device of the computer. - View Dependent Claims (30, 31, 32, 33)
-
-
34. A computer readable media, comprising:
-
said computer readable media containing instructions for execution on a processor for the practice of a method of allocating resources among one or more virtual servers of a computer, the method having the steps of; storing external configuration information of a selected virtual server of the plurality of virtual servers in a global repository maintained on a storage device of the computer, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers; storing internal configuration information of the selected virtual server of the plurality of virtual servers in a private repository, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server, the private repository maintained on a private repository storage device of the computer; mapping one or more pointers to the resources, the pointers stored in the external configuration information and accessible by processing elements of the computer; and assigning at least one of the pointers of the one or more pointers to at least one virtual server of the one or more virtual servers to dynamically allocate the resources among the one or more virtual servers.
-
-
35. A computer method for migrating resources from a first virtual server to a second virtual server, comprising:
-
storing external configuration information of the first virtual server of a plurality of virtual servers in a global repository maintained on a storage device of a computer, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers; storing internal configuration information of the first virtual server of the plurality of virtual servers in a private repository, the private repository stored in one or more units of storage assigned to the first virtual server, the internal configuration information used to control operation of the first virtual server, the private repository maintained on a private repository storage device of the computer; and migrating all resources of the first virtual server to the second virtual server in response to re-assigning pointers stored in the external configuration information. - View Dependent Claims (36, 37, 38, 39, 40, 41)
-
-
42. A computer for migrating resources from a first virtual server to a second virtual server, comprising:
-
external configuration information of the first virtual server of a plurality of virtual servers maintained in a global repository stored on a storage device of the computer, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers; internal configuration information of the first virtual server of the plurality of virtual servers stored in a private repository, the private repository stored in one or more units of storage assigned to the first virtual server, the internal configuration information used to control operation of the first virtual server, the private repository maintained on a private repository storage device of the computer; and a processor to migrate all resources of the first virtual server to the second virtual server in response to re-assigning pointers stored in the external configuration information. - View Dependent Claims (43, 44, 45, 46, 47)
-
-
48. A computer apparatus, comprising:
-
external configuration information of a selected virtual server of the plurality of virtual servers stored in a global repository maintained on a storage device of the computer, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers; internal configuration information of the selected virtual server of the plurality of virtual servers stored in a private repository, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual serve, private repository maintained on a private repository storage device of the computer; a plurality of soft objects configured to provide a mapping to resources, the soft objects residing in a memory of the computer and accessible by processing elements of the computer, wherein the plurality of soft objects are each a data structure that point dynamically to adjustable portions of the resources, wherein the resources include the one or more units of storage and one or more network addresses of at least one network interface; and a context structure created for a selected virtual server, the context structure storing a list of the soft objects assigned to the virtual server to thereby provide a level of indirection that enables flexibility when allocating the resources to the virtual server.
-
-
49. A method for allocating resources among one or more virtual servers of a computer, comprising:
-
storing external configuration information of a selected virtual server of the plurality of virtual servers in a global repository maintained on a storage device of the computer, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers; storing internal configuration information of the selected virtual server of the plurality of virtual servers in a private repository, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server, the private repository maintained on a private repository storage device of the computer; mapping one or more pointers to the resources, the pointers residing in a memory of the computer and accessible by processing elements of the computer; and assigning at least one of the pointers of the one or more pointers to at least one virtual server of the one or more virtual servers to dynamically allocate the resources among the one or more virtual servers.
-
-
50. A method for maintaining a plurality of virtual servers on a computer, comprising:
-
storing external configuration information of a selected virtual server of the plurality of virtual servers in a global repository maintained on a storage device of the computer, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers; storing internal configuration information of the selected virtual server of the plurality of virtual servers in a private repository, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server, the private repository maintained on a private repository storage device of the computer; storing soft objects in the private repository of the selected virtual server, the soft objects mapped to one or more selected storage devices of the server to assign the one or more selected storage devices to the selected virtual server, the soft objects are referenced by the virtual server and the soft objects reference the one or more selected storage devices to enable the virtual server to make no change in its reference to stored data in the event that the stored data is moved from a first storage device to a second storage device of the one or more selected storage devices; and executing a command on a processor of the computer, the command to change a mapping in the soft objects to change an assignment of storage devices to the selected virtual server.
-
-
51. A computer having a plurality of virtual servers, comprising:
-
a global repository maintained on a storage device of the computer to store external configuration information of a selected virtual server of the plurality of virtual servers, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers; a private repository to store internal configuration information of the selected virtual server of the plurality of virtual servers, the private repository stored in one or more units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server, the private repository maintained on a private repository storage device of the computer; soft objects stored in the private repository of the selected virtual server, the soft objects mapped to one or more selected storage devices of the server to assign the one or more selected storage devices to the selected virtual server, the soft objects are referenced by the virtual server and the soft objects reference the one or more selected storage devices to enable the virtual server to make no change in its reference to stored data in the event that the stored data is moved from a first storage device to a second storage device of the one or more selected storage devices; and a processor of the computer to execute a command to change a mapping in the soft objects to change an assignment of storage devices to the selected virtual server.
-
Specification