-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8123/
-----------------------------------------------------------

(Updated Nov. 19, 2012, 6:37 a.m.)


Review request for cloudstack.


Description
-------

Backs NFS-based secondary storage with an S3-compatible object store. 
Periodically, a reaper thread synchronizes templates and ISOs stored on a NFS 
secondary storage mount with a configured S3 object store. It also pushes 
snapshots to the object store when they are created and downloads them in other 
zones on-demand. In addition to permitting the use of commodity or IaaS storage 
solutions for static assets, it provides a means of automatically synchronizing 
template and ISO assets across multiple zones.

For more information about the design of the patch, please see the design 
document 
(https://cwiki.apache.org/confluence/display/CLOUDSTACK/S3-backed+Secondary+Storage).


This addresses bug CLOUDSTACK-509.


Diffs
-----

  .gitignore 9daca15 
  api/src/com/cloud/agent/api/BackupSnapshotCommand.java 9476d7d 
  api/src/com/cloud/agent/api/DeleteSnapshotBackupCommand.java 3fa8c2b 
  api/src/com/cloud/agent/api/DeleteTemplateFromS3Command.java PRE-CREATION 
  api/src/com/cloud/agent/api/DownloadSnapshotFromS3Command.java PRE-CREATION 
  
api/src/com/cloud/agent/api/DownloadTemplateFromS3ToSecondaryStorageCommand.java
 PRE-CREATION 
  
api/src/com/cloud/agent/api/UploadTemplateToS3FromSecondaryStorageCommand.java 
PRE-CREATION 
  api/src/com/cloud/agent/api/to/S3TO.java PRE-CREATION 
  api/src/com/cloud/api/ApiConstants.java 78a3ded 
  api/src/com/cloud/api/ResponseGenerator.java 4e8fbd8 
  api/src/com/cloud/api/commands/AddS3Cmd.java PRE-CREATION 
  api/src/com/cloud/api/commands/ListS3sCmd.java PRE-CREATION 
  api/src/com/cloud/api/response/S3Response.java PRE-CREATION 
  api/src/com/cloud/resource/ResourceService.java 1065453 
  api/src/com/cloud/storage/S3.java PRE-CREATION 
  build/package.xml 09ed939 
  client/WEB-INF/classes/resources/messages.properties 626e44a 
  client/tomcatconf/commands.properties.in 149547e 
  console-proxy/scripts/_run.sh e408378 
  core/pom.xml 15f0f7b 
  core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java 
2dc7950 
  core/src/com/cloud/storage/S3VO.java PRE-CREATION 
  core/src/com/cloud/storage/SnapshotVO.java 08dfafa 
  core/src/com/cloud/storage/VMTemplateS3VO.java PRE-CREATION 
  core/src/com/cloud/storage/resource/NfsSecondaryStorageResource.java 155210d 
  patches/systemvm/debian/config/etc/sysctl.conf 7f945b0 
  
plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
 d2db85c 
  pom.xml 08f61f5 
  scripts/vm/hypervisor/xenserver/s3xen.py PRE-CREATION 
  scripts/vm/hypervisor/xenserver/xenserver56/patch d485414 
  scripts/vm/hypervisor/xenserver/xenserver56fp1/patch 9fe9740 
  scripts/vm/hypervisor/xenserver/xenserver60/patch f049109 
  server/pom.xml cd4fbbe 
  server/src/com/cloud/api/ApiDBUtils.java 3b5f634 
  server/src/com/cloud/api/ApiDispatcher.java dfe4a1f 
  server/src/com/cloud/api/ApiResponseHelper.java ebe8415 
  server/src/com/cloud/api/doc/ApiXmlDocWriter.java d31ef5a 
  server/src/com/cloud/configuration/Config.java 66ac276 
  server/src/com/cloud/configuration/ConfigurationManagerImpl.java ef940e8 
  server/src/com/cloud/configuration/DefaultComponentLibrary.java ef61044 
  server/src/com/cloud/resource/ResourceManagerImpl.java ced601b 
  server/src/com/cloud/servlet/ConsoleProxyPasswordBasedEncryptor.java 2638c8b 
  server/src/com/cloud/storage/StorageManagerImpl.java e252633 
  server/src/com/cloud/storage/dao/S3Dao.java PRE-CREATION 
  server/src/com/cloud/storage/dao/S3DaoImpl.java PRE-CREATION 
  server/src/com/cloud/storage/dao/VMTemplateDao.java f5b6913 
  server/src/com/cloud/storage/dao/VMTemplateDaoImpl.java 2a0dfc8 
  server/src/com/cloud/storage/dao/VMTemplateS3Dao.java PRE-CREATION 
  server/src/com/cloud/storage/dao/VMTemplateS3DaoImpl.java PRE-CREATION 
  server/src/com/cloud/storage/s3/S3Manager.java PRE-CREATION 
  server/src/com/cloud/storage/s3/S3ManagerImpl.java PRE-CREATION 
  server/src/com/cloud/storage/snapshot/SnapshotManager.java a10298e 
  server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java 32e37e6 
  server/src/com/cloud/template/S3SyncTask.java PRE-CREATION 
  server/src/com/cloud/template/TemplateManagerImpl.java 1e87de2 
  setup/db/create-schema.sql fff084e 
  setup/db/db/schema-40to410.sql PRE-CREATION 
  tools/apidoc/gen_toc.py eeaf2a2 
  tools/marvin/marvin/cloudstackConnection.py bd8a5b2 
  tools/marvin/marvin/deployDataCenter.py bdf08cc 
  ui/dictionary.jsp b80e296 
  ui/scripts/cloudStack.js de3bd73 
  ui/scripts/sharedFunctions.js b6b3ef8 
  ui/scripts/system.js 9e3932f 
  ui/scripts/templates.js 74511f0 
  utils/pom.xml 2e4e74f 
  utils/src/com/cloud/utils/DateUtil.java be1627d 
  utils/src/com/cloud/utils/S3Utils.java PRE-CREATION 
  utils/src/com/cloud/utils/StringUtils.java 0f0ef05 
  utils/src/com/cloud/utils/db/GlobalLock.java 7c1c943 
  utils/src/com/cloud/utils/nio/NioConnection.java 50e6a88 

Diff: https://reviews.apache.org/r/8123/diff/


Testing
-------

I am submitting patch to begin the feedback process while we complete 
integration testing.  I have verified that it does not interfere with normal 
CloudStack operations when S3-backed Secondary Storage is disabled (the default 
setting) .  I have successfully tested operation of single zone template and 
ISO scenarios on devcloud described in the design document.  I am currently 
working through some issues in our multi-zone test environment to complete all 
scenarios described.  The following are the known deficiencies of the current 
implementation which I plan to correct in a subsequent patch:

   * Cross zone garbage collection: When a global asset is deleted from one 
zone's secondary storage, it is not deleted from the secondary storage of other 
zones which have downloaded it from the object store
   * S3 Configuration Update: The API only supports adding an object store 
configuration.  Users should be able to edit the access key, secret key, 
connection timeout. max error retries, and socket timeout.
   * Multi-threaded Uploads: Permit the upload of multiple assets to the object 
store simultaneously to decrease the propagation latency across all zones.


Screenshots
-----------

S3 Configuration Form
  https://reviews.apache.org/r/8123/s/13/
S3 Enable Menu on the Zone Tab
  https://reviews.apache.org/r/8123/s/14/


Thanks,

John Burwell

Reply via email to