Configuring a Binary Storage Provider

By default, Jive stores binary content (attachments on blog posts, discussions, uploaded documents, images, profile pictures, and avatars) in the application database, but we recommend migrating binary content to a different binary storage provider. Storing binary content data in a location outside the database is more efficient and scalable. For production Jive systems, we recommend using a shared file system for storing all
 binary content. Documents created in the content editor are
 not binary content and are stored in the application database.

Preparing to Migrate to a Shared File System Location

You need to migrate your binary storage provider if:
  • You want to use a file system provider instead of the JDBC provider enabled by default.
  • You want to use the provider you're currently using, but change how you're using it. For example, you might want to use a different file system location for the file system provider.
Before you migrate to a different provider, be sure you do the following:
  • Back up your current storage provider's backing store.
  • Run a successful migration on a backup of this system.
  • Do not run the migration tool during a busy period.
  • Make sure the file system location is always available to the application.
  • Estimate the amount of space you'll need for shared storage. For more on these requirements, see Binary Storage in Required External Components
Keep the following things in mind as you go through the migration process:
  • During the migration, any new binary content will be stored in both the current and the new storage provider. Once the migration has completed successfully the system will switch over to the new provider.
  • If any errors occur during migration the system will revert back to the current storage provider settings to allow the system to continue to function normally. Errors will be logged (see Getting Application Logs for more on logs). When you've addressed the errors, start over with migration.
  • Keep in mind that binary content caching is disabled during migration. This might cause increased load on both the current storage provider as well as the application in general.
  • Allow at least a couple of hours for binary storage migration unless you have a trivial amount of content, for example, if you're just starting a community.
  • When configuring a file system provider, you'll specify a namespace. The namespace helps ensure that data is isolated for the application instance it belongs to. So, for example, if you had multiple instances (such as an internal and an external instance), you could use the same storage server while giving the storage provider for each instance a different namespace.

Migrating to a Shared File System for Binary Storage

Fastpath: Admin Console: System > Settings > Storage Provider

To migrate to a shared file system:

  1. Prepare a single unit of shared NFS or block-level storage on your SAN/NAS, and mount it from each of your web application nodes using the same mount point on each node (for example, /opt/jiveBinStore). Refer to Sizing Binary Storage for help estimating the amount of shared storage you'll need.
  2. From the Storage Provider page in the Admin Console, click Migrate to another Storage Provider.
  3. Select FileStorageProvider in the Registered Providers field.
  4. Click Continue.
  5. Enter a namespace that will correspond to binary data for this application instance.
  6. Enter the path to the local directory that you mapped to a mountable location in Step 1.
  7. Click Continue.
  8. Read the notes and confirm that the settings shown are the values you specified.
  9. To delete binary content from the current source storage after migration, select the Delete binary content check box.
  10. Click Start Migration to begin the process.
  11. When the migration is complete, restart the application.
  12. Disable local file caching:
    1. Navigate to Admin Console: System > Settings > Storage Provider
    2. Click Edit under Caching.
    3. Select No in the Cache Enable field.
    4. Click Save.

Jdbc Storage Providers

You can also migrate content to Jdbc storage providers (a DBMS).

To migrate to a different provider:
  1. In the Admin Console go to the Storage Provider page.
  2. Click Migrate to another storage provider.
  3. In the Registered Providers field, select JdbcStorageProvider.

About Using a Database for Binary Storage

When you use another database for binary content storage, you specify a JNDI name corresponding to the database. During migration to the new provider, the application will create the database tables needed.

In a cluster, the JNDI name must be the same on each node where you configure an instance to use the provider.