StorageService.v1_0_0.StorageService has ServerEndpointGroups and ClientEndpointGroups to define the appropriate endpoints for a storage service. In addition, it also has a generic 'EndpointCollection' attribute (with no 'Server'/'Client' prefix). What is the latter intended for? Why is there no equivalent in StorageGroup.v1.0.0? Thanks, Hari
Post by Richelle Ahlvers on Mar 3, 2017 18:27:51 GMT
The EndpointCollection is intended to be a collection of all available endpoints for the StorageService, regardless of type (Server or Client). The ServerEndpointGroups and ClientEndpointGroups collections contain groups of Server Endpoints (or Client Endpoints) that are used together. There can be multiple groups, depending on the configuration. Does that clarification help?
Groups in general are used to represent resources that are managed together with the same set of attributes or requirements. For example: In the StorageGroup case, this is to represent a set of volumes with the same consistency requirements, so that the StorageGroup can be used for enabling mapping and masking. A set of client endpoints that could be all be exposed to a set of volumes would be put into a ClientEndpointGroup.
@gerickson - please feel free to add any additional clarifications
Creating separate client and server endpoint groups simplifies management of Volume (LUN) mapping and masking. This is largely driven by SCSI, but is not limited to that use. Note that the AccessState property can be used to express SCSI ALUA characteristics. A storage group is associated to a collection of volumes. These would often be associated to a particular application. The client endpoint group limits exposure of those volumes to specific client endpoints. Note that these may be virtual. Similarly, the server endpoint groups limit access to a specified set of the servers endpoints, this might be done for availability, performance, reliability, or security reasons.