As the name implies, a VASA Operation is an operation issued to a VASA Provider that is managing some storage arrays. In the case of the FlashArray, a single array. These operations will be issued from either vCenter SPS or ESXi's vvold service. The request will be issued to the Active Storage Provider and is sent as a SOAP call to the VASA provider.
Once the VASA provider has received the request, the VASA Provider will determine if it's a request that can be satisfied within VASA (such as a GetEvents or GetAlarms request). Should the request require VASA to perform an action on the storage directly or needs to query something from the array, VASA will then forward the request to the FlashArray DB service in REST.
When the request is not a query/lookup that the DB service can process on it's own, but is performing operations to the storage, the request will then be forwarded to the FlashArray Core Services. Once that request has been completed by Purity a response is sent back to the DB service which then gets the success response back to VASA. At this point, the response is formatted back to SOAP and sent back to SPS or vvold.
Here is a quick table that outlines this flow (We are working to put a better illustration of this in the future):
|
vCenter Server SPS |
=> |
FlashArray VASA Service |
=> |
FlashArray DB Service |
=> |
FlashArray Core Service |
|
vCenter Server SPS |
<= |
FlashArray VASA Service |
<= |
FlashArray DB Service |
<= |
FlashArray Core Service |
|
ESXi vvold Process |
=> |
FlashArray VASA Service |
=> |
FlashArray DB Service |
=> |
FlashArray Core Service |
|
ESXi vvold Process |
<= |
FlashArray VASA service |
<= |
FlashArray DB service |
<= |
FlashArray Core Service |
Now that we have a better understanding about what a VASA Operation is here is an example of a VASA Op to connect a config and data vVol to the ESXi host:
- The ESXi host issues a bind request for a Config vVol and Data vVol to the VASA provider as a SOAP request
- The VASA Provider receives the SOAP request to Bind a Config vVol and Data vVol to the ESXi host
- VASA creates a REST request to issue to the FlashArray DB service
- The FlashArray DB service receives the Rest request and then forwards that request to Core Purity
- The Config vVol and Data vVol are connected to the ESXi host that sent the request in Purity
- Core Purity responds back to the FlashArray DB service with a success
- The FlashArray DB Service send back the successful response to the VASA Service
- VASA formats a SOAP response with the successful op and sends it back to the ESXi host that sent the request
- ESXi receives the successful SOAP response and the request is marked as completed
Depending on the factors that will be covered in the following section, this VASA op could take a few seconds or up to 30 or 60 seconds. Generally individual VASA ops will be completed between 3 and 9 seconds. Each operation can have varying amounts of work that VASA will need to forward to the DB or Core services. From as little as a GetAlarms call that will just query the VASA Provider and VASA will return a response in milliseconds. To a Failover Replication Group call that will include copying out the volumes from snapshots, updating metadata for those volumes, creating vgroups, etc.