AppSuite:File Storages per User: Difference between revisions
No edit summary |
|||
Line 3: | Line 3: | ||
= File Storages per user = | = File Storages per user = | ||
This document tries to outline and explain the new concept of having the possibility to specify file storages on a per user basis that is introduced with | This document tries to outline and explain the new concept of having the possibility to specify file storages on a per user basis that is introduced with Open‐Xchange Server v7.8.0. | ||
== The previous situation == | == The previous situation == | ||
Before the introduction of the file storages per user feature, it was only possible to specify the file storage association per context. | Before the introduction of the file storages per user feature, it was only possible to specify the file storage association per context. | ||
That file storage was used for all modules/functions that are supposed to store/retrieve files: | That file storage was used for all modules/functions that are supposed to store/retrieve files: | ||
* Drive | * Drive | ||
* Thumbnails | * Thumbnails | ||
* PIM attachments | * PIM attachments | ||
* Signature attachments | * Signature attachments | ||
File storages are registered and maintained in file store table held in configDb database. File storage obtains a unique identifier, a base URI and a size limitation. | File storages are registered and maintained in file store table held in configDb database. File storage obtains a unique identifier, a base URI and a size limitation. | ||
Line 22: | Line 22: | ||
== Motivation == | == Motivation == | ||
The motivation is to differentiate between file storages for common | The motivation is to differentiate between file storages for common context‐associated files and Drive file. Those Drive files may further reside in the common context‐associated storage, but it also possible to specify user‐associated file storages where Drive files are maintained. The association is determined based on a folder's creator/owner: The quota gets accounted to that user that created a folder (provided the user has a user‐associated file storage). | ||
[[Image:file_storage_picture2.png|Differentiate|650px]] | [[Image:file_storage_picture2.png|Differentiate|650px]] | ||
Line 29: | Line 29: | ||
* Slow mass storage vs. fast Drive storage setup | * Slow mass storage vs. fast Drive storage setup | ||
* OX Drive | * OX Drive Stand‐Alone setup | ||
When assigning dedicated file storage for Drive to a certain user, the user’s file occupation is no more accounted to the overall context in which that user resides, but gets accounted to a dedicated user quota. Such a user quota can be used for different sales strategies that include tracking the user’s file occupation. | When assigning dedicated file storage for Drive to a certain user, the user’s file occupation is no more accounted to the overall context in which that user resides, but gets accounted to a dedicated user quota. Such a user quota can be used for different sales strategies that include tracking the user’s file occupation. | ||
Line 37: | Line 37: | ||
[[Image:file_storage_picture3.png|Enhancements|650px]] | [[Image:file_storage_picture3.png|Enhancements|650px]] | ||
In addition the user table has also been extended by filestore_owner column. That column is used to let a user’s file storage be combined with another user’s storage. This serves the scenario in which a grouped OX Drive | In addition the user table has also been extended by filestore_owner column. That column is used to let a user’s file storage be combined with another user’s storage. This serves the scenario in which a grouped OX Drive Stand‐Alone setup is operated. Multiple users’ file occupation gets accounted to a master user account. | ||
Furthermore | Furthermore Open‐Xchange allows changing the running setups at any time to adjust the file storage usages/associations according to possibly changing needs/requirements. | ||
== Seamless integration and flexibility == | == Seamless integration and flexibility == | ||
The new more flexible approach fits seamlessly into existing context/file storage setups. Thus there is no need to change anything, unless demanded by administrator | The new more flexible approach fits seamlessly into existing context/file storage setups. Thus there is no need to change anything, unless demanded by administrator | ||
=== The | === The fall‐back setup === | ||
[[Image:file_storage_picture4.png|The fall-back setup|650px]] | [[Image:file_storage_picture4.png|The fall-back setup|650px]] | ||
Everything stays as is. There is a | Everything stays as is. There is a storage‐per‐context association and every file is held in that storage. There are no user‐specific file storage attributes set in user table. | ||
=== Slow mass storage vs. fast file storage setup === | === Slow mass storage vs. fast file storage setup === | ||
Line 54: | Line 54: | ||
[[Image:file_storage_picture5.png|Slow mass storage|650px]] | [[Image:file_storage_picture5.png|Slow mass storage|650px]] | ||
There are two storages available: a | There are two storages available: a file‐based and an S3 storage (assuming that the S3 one would be faster). While the context has the file‐based storage set, users in that context do have individual name spaces in the S3 storage. | ||
That way common files (PIM/Signature attachments, thumbnails) are stored to | That way common files (PIM/Signature attachments, thumbnails) are stored to context‐ associated file‐based storage while Drive documents are stored in the individual user name spaces in the S3 storage. Every user is allowed to occupy up to 10GB of space in the S3 storage (this can be varied as well). | ||
=== OX Drive | === OX Drive Stand‐Alone – Single User === | ||
[[Image:file_storage_picture6.png|OX Drive Stand-Alone - Single User|650px]] | [[Image:file_storage_picture6.png|OX Drive Stand-Alone - Single User|650px]] | ||
Again there two file storages. Again the | Again there two file storages. Again the file‐based one is assumed to serve the slow mass storage behavior while S3 is assumed to be the fast storage. | ||
Context designated to the Single User scenario for OX Drive | Context designated to the Single User scenario for OX Drive Stand‐Alone operation, do hold only one user that has its individual name space associated in the S3 storage. | ||
Again common files (PIM/Signature attachments, thumbnails) are stored in the | Again common files (PIM/Signature attachments, thumbnails) are stored in the context‐ associated file‐based storage while Drive documents are stored in the individual user name spaces in the S3 storage of each context. Every Drive document accounts the user‐sensitive quota of the associated user. | ||
=== OX Drive | === OX Drive Stand‐Alone – Business Account === | ||
[[Image:file_storage_picture7.png|OX Drive Stand-Alone - Business Account|650px]] | [[Image:file_storage_picture7.png|OX Drive Stand-Alone - Business Account|650px]] | ||
There two different file storages as in the previous setups. Again the | There two different file storages as in the previous setups. Again the file‐based one is assumed to serve the slow mass storage behavior while S3 is assumed to be the fast storage. | ||
For this setup users do not hold their own individual name space in the S3 storage, but all share the same name space of the master user in the S3 storage. Moreover there are no dedicated user quotas, but all Drive documents do account to the master user’s quota | For this setup users do not hold their own individual name space in the S3 storage, but all share the same name space of the master user in the S3 storage. Moreover there are no dedicated user quotas, but all Drive documents do account to the master user’s quota | ||
== Extensions to provisioning | == Extensions to provisioning command‐line tools == | ||
=== createuser === | === createuser === | ||
The existing createuser CLI is enhanced by the following options | The existing createuser CLI is enhanced by the following options | ||
‐q/‐‐quota The file storage quota in MB for associated user | |||
‐f/‐‐filestore The identifier for the file storage. | |||
‐o/‐‐owner The owner for the file storage. If no owner is given and f/filestore option is set, the user itself is taken as owner | |||
=== changeuser === | === changeuser === | ||
The existing changeuser CLI is enhanced by the following option | The existing changeuser CLI is enhanced by the following option | ||
‐q/‐‐quota The file storage quota in MB for associated user | |||
=== movecontextfilestore2user === | === movecontextfilestore2user === | ||
Line 95: | Line 95: | ||
Usage: movecontextfilestore2user | Usage: movecontextfilestore2user | ||
‐h,‐‐help Prints a help text | |||
‐‐environment Show info about commandline environment | |||
‐‐nonl Remove all newlines (\n) from output | |||
‐i,‐‐userid <userid> | Id of the user | |||
‐u,‐‐username <username> | Username of the user | |||
‐A,‐‐adminuser <adminuser> ? Admin username | |||
‐P,‐‐adminpass <adminpass> ? Admin password | |||
‐c,‐‐contextid <contextid> | The id of the context | |||
‐N,‐‐contextname <contextname> | context name | |||
‐f,‐‐filestore <filestore> * The identifier for the file storage. | |||
‐q,‐‐quota <quota> * The file storage quota in MB for associated user. | |||
Line 117: | Line 117: | ||
Usage: moveuserfilestore2context | Usage: moveuserfilestore2context | ||
‐h,‐‐help Prints a help text | |||
‐‐environment Show info about commandline environment | |||
‐‐nonl Remove all newlines (\n) from output | |||
‐i,‐‐userid <userid> | Id of the user | |||
‐u,‐‐username <username> | Username of the user | |||
‐A,‐‐adminuser <adminuser> ? Admin username | |||
‐P,‐‐adminpass <adminpass> ? Admin password | |||
‐c,‐‐contextid <contextid> | The id of the context | |||
‐N,‐‐contextname <contextname> | context name | |||
Entries marked with an asterisk (*) are mandatory. | Entries marked with an asterisk (*) are mandatory. | ||
Line 136: | Line 136: | ||
‐h,‐‐help Prints a help text | |||
‐‐environment Show info about commandline environment | |||
‐‐nonl Remove all newlines (\n) from output | |||
‐i,‐‐userid <userid> | Id of the user | |||
‐u,‐‐username <username> | Username of the user | |||
‐A,‐‐adminuser <adminuser> ? Admin username | |||
‐P,‐‐adminpass <adminpass> ? Admin password | |||
‐c,‐‐contextid <contextid> | The id of the context | |||
‐N,‐‐contextname <contextname> | context name | |||
‐m,‐‐master <master> Master user id. If not set, the context administrator is assumed to be the master user. | |||
Entries marked with an asterisk (*) are mandatory. | Entries marked with an asterisk (*) are mandatory. | ||
Line 156: | Line 156: | ||
Usage: movemasterfilestore2user | Usage: movemasterfilestore2user | ||
‐h,‐‐help Prints a help text | |||
‐‐environment Show info about commandline environment | |||
‐‐nonl Remove all newlines (\n) from output | |||
‐i,‐‐userid <userid> | Id of the user | |||
‐u,‐‐username <username> | Username of the user | |||
‐A,‐‐adminuser <adminuser> ? Admin username | |||
‐P,‐‐adminpass <adminpass> ? Admin password | |||
‐c,‐‐contextid <contextid> | The id of the context | |||
‐N,‐‐contextname <contextname> | context name | |||
‐m,‐‐master <master> Master user id. If not set, the context administrator is assumed to be the master user. | |||
‐f,‐‐filestore <filestore> * The identifier for the file storage. | |||
‐q,‐‐quota <quota> * The file storage quota in MB for associated user. | |||
Entries marked with an asterisk (*) are mandatory. | Entries marked with an asterisk (*) are mandatory. | ||
Entries marked with an question mark (?) are mandatory depending on your configuration. | Entries marked with an question mark (?) are mandatory depending on your configuration. | ||
Entries marked with a pipe (|) are mandatory for one another, which means that at least one of them, must be set. | Entries marked with a pipe (|) are mandatory for one another, which means that at least one of them, must be set. |
Revision as of 06:12, 24 August 2015
File Storages per user
This document tries to outline and explain the new concept of having the possibility to specify file storages on a per user basis that is introduced with Open‐Xchange Server v7.8.0.
The previous situation
Before the introduction of the file storages per user feature, it was only possible to specify the file storage association per context. That file storage was used for all modules/functions that are supposed to store/retrieve files:
- Drive
- Thumbnails
- PIM attachments
- Signature attachments
File storages are registered and maintained in file store table held in configDb database. File storage obtains a unique identifier, a base URI and a size limitation.
For each context a file storage identifier is specified alongside with a context quota that defines how much space that context is allowed to occupy in assigned file storage. Thus the sum of all quotas from those contexts assigned to file storage must not exceed the file storage’s size.
Motivation
The motivation is to differentiate between file storages for common context‐associated files and Drive file. Those Drive files may further reside in the common context‐associated storage, but it also possible to specify user‐associated file storages where Drive files are maintained. The association is determined based on a folder's creator/owner: The quota gets accounted to that user that created a folder (provided the user has a user‐associated file storage).
That kind of separation allows different provisioning scenarios that an administrator possibly wants to achieve.
- Slow mass storage vs. fast Drive storage setup
- OX Drive Stand‐Alone setup
When assigning dedicated file storage for Drive to a certain user, the user’s file occupation is no more accounted to the overall context in which that user resides, but gets accounted to a dedicated user quota. Such a user quota can be used for different sales strategies that include tracking the user’s file occupation.
To achieve the file storage association on a per user basis, the existing user table has been enhanced by file storage and quota information as it is for the context table. Moreover the filestore_usage table has also been enhanced by the capability to account storage occupation to a certain user
In addition the user table has also been extended by filestore_owner column. That column is used to let a user’s file storage be combined with another user’s storage. This serves the scenario in which a grouped OX Drive Stand‐Alone setup is operated. Multiple users’ file occupation gets accounted to a master user account.
Furthermore Open‐Xchange allows changing the running setups at any time to adjust the file storage usages/associations according to possibly changing needs/requirements.
Seamless integration and flexibility
The new more flexible approach fits seamlessly into existing context/file storage setups. Thus there is no need to change anything, unless demanded by administrator
The fall‐back setup
Everything stays as is. There is a storage‐per‐context association and every file is held in that storage. There are no user‐specific file storage attributes set in user table.
Slow mass storage vs. fast file storage setup
There are two storages available: a file‐based and an S3 storage (assuming that the S3 one would be faster). While the context has the file‐based storage set, users in that context do have individual name spaces in the S3 storage.
That way common files (PIM/Signature attachments, thumbnails) are stored to context‐ associated file‐based storage while Drive documents are stored in the individual user name spaces in the S3 storage. Every user is allowed to occupy up to 10GB of space in the S3 storage (this can be varied as well).
OX Drive Stand‐Alone – Single User
Again there two file storages. Again the file‐based one is assumed to serve the slow mass storage behavior while S3 is assumed to be the fast storage.
Context designated to the Single User scenario for OX Drive Stand‐Alone operation, do hold only one user that has its individual name space associated in the S3 storage.
Again common files (PIM/Signature attachments, thumbnails) are stored in the context‐ associated file‐based storage while Drive documents are stored in the individual user name spaces in the S3 storage of each context. Every Drive document accounts the user‐sensitive quota of the associated user.
OX Drive Stand‐Alone – Business Account
There two different file storages as in the previous setups. Again the file‐based one is assumed to serve the slow mass storage behavior while S3 is assumed to be the fast storage.
For this setup users do not hold their own individual name space in the S3 storage, but all share the same name space of the master user in the S3 storage. Moreover there are no dedicated user quotas, but all Drive documents do account to the master user’s quota
Extensions to provisioning command‐line tools
createuser
The existing createuser CLI is enhanced by the following options
‐q/‐‐quota The file storage quota in MB for associated user ‐f/‐‐filestore The identifier for the file storage. ‐o/‐‐owner The owner for the file storage. If no owner is given and f/filestore option is set, the user itself is taken as owner
changeuser
The existing changeuser CLI is enhanced by the following option
‐q/‐‐quota The file storage quota in MB for associated user
movecontextfilestore2user
Move a user’s files from a context to an individual storage name space.
Usage: movecontextfilestore2user
‐h,‐‐help Prints a help text ‐‐environment Show info about commandline environment ‐‐nonl Remove all newlines (\n) from output ‐i,‐‐userid <userid> | Id of the user ‐u,‐‐username <username> | Username of the user ‐A,‐‐adminuser <adminuser> ? Admin username ‐P,‐‐adminpass <adminpass> ? Admin password ‐c,‐‐contextid <contextid> | The id of the context ‐N,‐‐contextname <contextname> | context name ‐f,‐‐filestore <filestore> * The identifier for the file storage. ‐q,‐‐quota <quota> * The file storage quota in MB for associated user.
Entries marked with an asterisk (*) are mandatory.
Entries marked with an question mark (?) are mandatory depending on your configuration.
Entries marked with a pipe (|) are mandatory for one another which means that at least one of them must be set.
moveuserfilestore2context
The counterpart for the previous CLI. Move a user's files from his individual storage name space to the context storage name space.
Usage: moveuserfilestore2context
‐h,‐‐help Prints a help text ‐‐environment Show info about commandline environment ‐‐nonl Remove all newlines (\n) from output ‐i,‐‐userid <userid> | Id of the user ‐u,‐‐username <username> | Username of the user ‐A,‐‐adminuser <adminuser> ? Admin username ‐P,‐‐adminpass <adminpass> ? Admin password ‐c,‐‐contextid <contextid> | The id of the context ‐N,‐‐contextname <contextname> | context name
Entries marked with an asterisk (*) are mandatory. Entries marked with an question mark (?) are mandatory depending on your configuration. Entries marked with a pipe (|) are mandatory for one another that means that at least one of them must be set.
moveuserfilestore2master
Move a user's files from his individual storage name space to the storage name space of specified master.
Usage: moveuserfilestore2master
‐h,‐‐help Prints a help text ‐‐environment Show info about commandline environment ‐‐nonl Remove all newlines (\n) from output ‐i,‐‐userid <userid> | Id of the user ‐u,‐‐username <username> | Username of the user ‐A,‐‐adminuser <adminuser> ? Admin username ‐P,‐‐adminpass <adminpass> ? Admin password ‐c,‐‐contextid <contextid> | The id of the context ‐N,‐‐contextname <contextname> | context name ‐m,‐‐master <master> Master user id. If not set, the context administrator is assumed to be the master user.
Entries marked with an asterisk (*) are mandatory.
Entries marked with an question mark (?) are mandatory depending on your configuration.
Entries marked with a pipe (|) are mandatory for one another, which means that at least one of them, must be set.
movemasterfilestore2user
Move a user's files from a master account name space to an individual storage name space.
Usage: movemasterfilestore2user
‐h,‐‐help Prints a help text ‐‐environment Show info about commandline environment ‐‐nonl Remove all newlines (\n) from output ‐i,‐‐userid <userid> | Id of the user ‐u,‐‐username <username> | Username of the user ‐A,‐‐adminuser <adminuser> ? Admin username ‐P,‐‐adminpass <adminpass> ? Admin password ‐c,‐‐contextid <contextid> | The id of the context ‐N,‐‐contextname <contextname> | context name ‐m,‐‐master <master> Master user id. If not set, the context administrator is assumed to be the master user. ‐f,‐‐filestore <filestore> * The identifier for the file storage. ‐q,‐‐quota <quota> * The file storage quota in MB for associated user.
Entries marked with an asterisk (*) are mandatory. Entries marked with an question mark (?) are mandatory depending on your configuration. Entries marked with a pipe (|) are mandatory for one another, which means that at least one of them, must be set.