...
If the management server itself goes down during the upload, if the timeout hasnt crossed, it will poll for the status once its up. Otherwise the state of the template will be transitioned to ERROR. In a load balanced situation where the management server handling the ssvm upload goes down, the status wont be updated unless the SSVM is connected to a new management server.
SSVM agent and SSVM apache interaction
TBD
status update
detecting failures
The below failures can happen while the agent is receiving the template. When management server asks for the status of the tempaltetemplate/volume, if any of these below errors happen, the agent returns ERROR state and management server updates the state accordingly.
- pre validation errors (file upload hasnt started yet)
- SSL handshake failed
- params validation with PSK failed
- max file size from the header crossed the limit
- post validation error (once the file is successfully uploaded)
- file downloaded uploaded is not of the type specified (for ex: if the template is said to be of type tar, the actual downloaded file is not if this type)
- max upload limit crossed
- http errors can be caught through appropriate event handlers: exception,timeout,closed (http://hc.apache.org/httpcomponents-core-ga/tutorial/html/nio.html)
- user stopped/canceled the post request before completion
- uploading the template failed due to a network issue
- browser request timed out
- browser crashed
- management server crashed and hence the upload request is cancelled by the browser.
- SSVM apache down/restarted
- application errors will be caught through appropriate exceptions from the other services
- secondary storage is not accessible
- there isn't enough space in secondary storage and hence agent cant write to it.
- timeout reached and the management server will not poll anymore
- interruptions
- SSVM is down/restarted
- SSVM agent is down/restarted
...
- pre validation errors will not result in any download and hence no cleanup is required.
- post validation errors, template/volume will be cleaned
- http errors shall be caught in the appropriate events and the partially downloaded file will be cleaned.
- application errors and interruptions: a new thread UploadToStorageGarbageCollector will be run periodically(based on a global configuration) on the management server. It will look at any template/volume which are not deleted and in UPLOAD_ERROR/ABANDONED state and send a DeleteCommand to the Agent for the same. It will also update the status of the template/volume to be deleted.
...
There isnt any recovery or retry mechanism as this is a POST request. Once errored, template/volume will remain in the error state and admin will be able to troubleshoot it based on the appropriate log messages in management server log, agent log, apache access/error log files.
Security
SSVM public ip This will be given to the end user in the response to getUploadParams. This is required as it is the location to which the template/volume has to be uploaded.cleaned by the garbage collector eventually. The user has to reinitiate the upload by calling getUploadParams and getting a new POST url.
Security
- The NFS Store url, path and some other information are exposed to the end user in the response to getUploadParams. This is done so that agent gets all the information required to download the template with the POST request.
- proxy between apache and agent is internal to the SSVM. Hence, no security threat here.
- SSVM PSK location can only be accessed by admin. Hence, no security threat.
performance
- To increase the number of parallel uploads, multiple SSVMs needs to be created. This will be handled automatically by the management server using
...
- the SSVM scale up mechanism (system.vm.auto.reserve.capacity, secstorage.capacity.standby and secstorage.session.max configuration variables).
- TBD: number of parallel uploads a single SSVM can handle
UI Changes
A new register template and upload volume UI which should be able to accept "browse and upload" file.
...