Architecture for creating and maintaining virtual filers on a filer
First Claim
1. A method for maintaining a plurality of virtual servers within a server, comprising:
- partitioning resources of the server to establish an instance of each virtual server by allocating units of storage and network addresses of network interfaces of the server to each instance of the virtual server, and sharing an operating system and a file system of the server among all of the virtual servers, wherein a selected virtual server is established bystoring external configuration information of the selected virtual server of the plurality of virtual servers in a global repository maintained on a storage device of the server, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers, the external resources including the units of storage and the network addresses assigned to the selected virtual server, andstoring internal configuration information of the selected virtual server of the plurality of virtual servers in a private repository, the private repository stored in the units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server;
enabling controlled access to the resources using logical boundary checks and security interpretations of those resources within the server by comparing configuration information of a unit of storage requested by a particular virtual server with the resources allocated to that particular virtual server; and
providing a virtual server context structure including information pertaining to a security domain of the virtual server, the virtual server context structure stored in the internal configuration information.
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.
62 Citations
55 Claims
-
1. A method for maintaining a plurality of virtual servers within a server, comprising:
-
partitioning resources of the server to establish an instance of each virtual server by allocating units of storage and network addresses of network interfaces of the server to each instance of the virtual server, and sharing an operating system and a file system of the server among all of the virtual servers, wherein a selected virtual server is established by storing external configuration information of the selected virtual server of the plurality of virtual servers in a global repository maintained on a storage device of the server, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers, the external resources including the units of storage and the network addresses assigned to the selected virtual server, and storing internal configuration information of the selected virtual server of the plurality of virtual servers in a private repository, the private repository stored in the units of storage assigned to the virtual server, the internal configuration information used to control operation of the selected virtual server; enabling controlled access to the resources using logical boundary checks and security interpretations of those resources within the server by comparing configuration information of a unit of storage requested by a particular virtual server with the resources allocated to that particular virtual server; and providing a virtual server context structure including information pertaining to a security domain of the virtual server, the virtual server context structure stored in the internal configuration information. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A server, comprising:
-
an operating system configured to partition resources to a plurality of virtual servers (vservers) by storing external configuration information of a selected vserver of the plurality of vservers stored in a global repository maintained on a storage device of the server, the external configuration information describing external resources assigned to a vserver of the plurality of vservers, the external configuration information including network addresses allocated among each of the vservers, and storing 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 vserver, the internal configuration information used to control operation of the selected vserver; a storage media configured to store information as units of storage resources, the units of storage resources allocated among each of the plurality of virtual servers; one or more network interfaces each assigned one or more network address resources, the network address resources allocated among each of the virtual servers; the operating system having a file system, the operating system further configured to perform a boundary check to verify that a request is allowed to access to certain units of storage resources on the storage media, each virtual server allowed shared access to the file system, where the boundary check is performed by comparing configuration information of a unit of storage requested by a particular vserver with the one or more units of storage resources and the one or more network address resources allocated to that particular vserver; a context data structure provided to each virtual server, the context data structure including information pertaining to a security domain of the virtual server that enforces controlled access to the allocated and shared resources, wherein the context data structure is stored in the internal configuration information; and a processing element coupled to the network interfaces and storage media, and configured to execute the operating and file systems to thereby invoke network and storage access operations in accordance with results of the boundary check of the file system. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A server, comprising:
-
means for allocating dedicated resources of the server to each virtual server (vserver) of a plurality of vservers executing on the server by storing external configuration information of a selected vserver of the plurality of vservers stored in a global repository maintained on a storage device of the server, the external configuration information describing external resources assigned to a vserver of the plurality of vservers, the external resources including the means for allocating the dedicated resources, and storing internal configuration information of the selected vserver of the plurality of vservers stored in a private repository, the private repository stored in one or more units of storage assigned to the vserver, the internal configuration information used to control operation of the selected vserver; means for sharing common resources of the server among all of the vservers; and means for enabling controlled access to the dedicated and shared resources using logical boundary checks and security interpretations of those resources within the server and for providing a vserver context structure including information pertaining to a security domain of the vserver, where the logical boundary checks are performed by comparing configuration information of a unit of storage requested by a particular vserver with the dedicated resources allocated to that particular vserver, wherein the vserver context structure is stored with the internal configuration information.
-
-
13. A computer readable medium containing executable program instructions for creating and maintaining a plurality of virtual servers (vservers) within a server, the executable program instructions comprising program instructions for:
-
allocating dedicated resources of the server to each vserver by storing external configuration information of a selected vserver of the plurality of vservers stored in a global repository maintained on a storage device of the server, the external configuration information describing external resources assigned to a vserver of the plurality of vservers, the external resources including the dedicated resources, and storing internal configuration information of the selected vserver of the plurality of vservers stored in a private repository, the private repository stored in the one or more units of storage assigned to the vserver, the internal configuration information used to control operation of the selected vserver, the internal configuration information including the configuration information of a unit of storage; sharing common resources of the server among all of the vservers; and enabling access to the dedicated and shared resources using logical boundary checks and security interpretations of those resources within the server and providing a vserver context structure including information pertaining to a security domain of the vserver, where the logical boundary checks are performed by comparing configuration information of a unit of storage requested by a particular vserver with the dedicated resources allocated to that particular vserver.
-
-
14. A method for maintaining a plurality of virtual servers (vserver) within a server, comprising:
-
allocating resources to each instance of the virtual servers of the plurality of servers, the resources including units of storage and network addresses of network interfaces of the server to each instance of the virtual server by 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 server, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers, the external resources including network addresses, and 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 internal configuration information including configuration information of a unit of storage; and using boundary checks to access resources allocated to the virtual servers, where a particular virtual server is limited by the boundary check to only access the resources assigned to that particular virtual server, where the logical boundary checks are performed by comparing configuration information of the unit of storage requested by a particular vserver with the resources allocated to that particular vserver.
-
-
15. A server, comprising:
-
means for allocating resources to each instance of a virtual server of a plurality of virtual servers executing on the server, the resources including units of storage and network addresses of network interfaces of the server to each instance of the virtual server by 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 server, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers, the external resources including the network addresses, and 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 internal configuration information including configuration information of a unit of storage; and means for using boundary checks to access resources allocated to the virtual servers, where a particular virtual server is limited by the boundary check to only access the resources assigned to that particular virtual server, where the logical boundary checks are performed by comparing configuration information of the unit of storage requested by a particular vserver with the resources allocated to that particular vserver.
-
-
16. A server, comprising:
-
a storage media configured to allocate resources to each virtual server of a plurality of virtual servers executing on the server, the resources including units of storage and network addresses of network interfaces of the server to each instance of the virtual server network interfaces assigned one or more network address resources, the network address resources allocated among each of the virtual servers, wherein the resources are allocated to each virtual server by storing 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 server, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers, the configuration information including the units of storage, and storing 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 internal configuration information including the configuration information of a unit of storage; and an operating system configured to perform a boundary check to verify access to resources allocated to the virtual servers, where a particular virtual server is limited by the boundary check to only access the resources assigned to that particular virtual server, where the logical boundary checks are performed by comparing configuration information of the unit of storage requested by a particular vserver with the resources allocated to that particular vserver.
-
-
17. A method for maintaining one or more virtual servers within a server, comprising:
-
allocating resources to a first virtual server of the one or more virtual servers, where the resources include one or more units of storage and at least one network address of one or more network interfaces of the server to a first virtual server of the one or more virtual servers, wherein the resources are allocated by 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 server, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers, the external configuration information including the one or more units of storage and at least one network address, and storing internal configuration information of the selected virtual server of the plurality of virtual servers in a private repository, the private repository stored in the 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 internal configuration information including the configuration information; requesting a first unit of storage of the one or more units of storage by a first virtual server; and using a boundary check to access the first unit of storage by comparing configuration information of the first unit of storage with resources allocated to the first virtual server. - View Dependent Claims (18)
-
-
19. A method for maintaining a plurality of virtual servers on a server, 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 server, 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; and maintaining security domain information in the internal configuration information, wherein the security domain information is used to control access to the selected virtual server. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A server, comprising:
-
a plurality of virtual servers executing on the server; an operating system executed by a processor within the server, where the operating system is configured to store 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 server, the external configuration information describing external resources assigned to a virtual server of the plurality of virtual servers, and to store 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; and security domain information maintained in the internal configuration information, wherein the security domain information is used to control access to the selected virtual server. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
-
-
55. A computer readable media, comprising:
-
said computer readable media containing instructions for execution on a processor for the practice of a method of maintaining a plurality of virtual servers on a server, 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 server, 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; and maintaining security domain information in the internal configuration information, wherein the security domain information is used to control access to the selected virtual server.
-
Specification