Configuring 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 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 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, you should do the following:
  • Back up your current storage provider's backing store.
  • Run a successful migration on a backup of this system.
    Note: 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 need for shared storage. For more information, see Required external components and Sizing binary storage.
Note the following things as you go through the migration process:
  • During the migration, any new binary content is stored in both the current and the new storage provider. Once the migration has completed successfully, the system switches over to the new provider.
  • If any errors occur during migration, the system reverts back to the current storage provider settings to allow the system to continue to function normally. Errors are logged, as described in Using application logs. When you've addressed the errors, start over with migration.
  • Note 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 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 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).

    For information on estimating the amount of shared storage you need, Sizing binary storage.

  2. From the Storage Provider page in the Admin Console, click Migrate to another Storage Provider.
  3. In Registered Providers, select FileStorageProvider.
  4. Click Continue.
  5. Enter a namespace that corresponds 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, review, 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. Go to System > Settings > Storage Provider.
    2. Click Edit under Caching.
    3. Select No under Cache Enable.
    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 System > Settings > Storage Provider.
  2. Click Migrate to another storage provider.
  3. In Registered Providers, select JdbcStorageProvider.

About using databases 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 creates 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.