I have written extensively about the benefits of externalization. And, in my opinion, there is no denying that BLOB externalization offers you a panacea to your SQL Server related BLOB storage worries. After weighing the relative benefits and costs of externalization vs. retaining BLOBs in SQL Server in my previous posts such as here, the business case is generally pretty strong in favor of externalization.
However, if you decide to go down the path of BLOB externalization, your options are to either use Microsoft RBS Provider or go with one of third party RBS providers (like our product StorageEdge). Developing an RBS provider yourself is really not an option to even worth discussing. Therefore, it would be wise to know some important features in BLOB externalization that any RBS provider must have before you should commit to using it.
Trust me, BLOB externalization is much more than only moving the BLOBs from one storage location to another. There are a number of things that you need to properly externalize your BLOB content. A tool specifically meant to help you externalize your BLOB content and offering an enterprise level of features would be a highly recommended path to take. Let us discuss the most important, top 10 features that a BLOB externalization tool must provide for you to put in place an effective BLOB externalization strategy.
1. Online BLOB Migration: The single most important feature you should looking for while evaluating a tool for externalization is the ability to migrate the content out of database at runtime without stopping your SharePoint or slowing it down. Hundreds and maybe thousands of people are using SharePoint and looking for an extended downtime is not an option because BLOB migration will usually take a lot of time, too long for SharePoint to be down.
2. Storage Options: A good tool should allow you to migrate and store your BLOBs to a variety of storage options. These include file system, SAN/NAS disks, and Cloud Storage like Windows Azure Storage and others.
3. Multi-Tier BLOB Storage: Not all BLOBs are accessed all the time. So, it is quite costly to store them all in an expensive SAN/NAS discuss. It is much better to store only the active and more recent BLOBs in the expensive storage and keep the rest in one or cheaper storage options like file system or Cloud storage. A good tool must allow you to not only specify multiple storage tiers but also automatically archive and un-archive BLOBs from expensive to cheaper storage and back based on age, version, and usage patter of the BLOBs.
4. Storage Pools: A good tool should allow you to form pools of storage devices so if one device becomes full you can add more devices to this pool and the storage never become out of space. Without a storage pool, when your disk becomes full, you will have to uninstall it, copy all the data to a new larger disk, and install a new and larger disk. And, all of this requires downtime. A storage pool prevents that.
5. Security and encryption: Since you’ve moving BLOBs out of your SQL Server and into a file system environment (regardless of what storage type you choose underneath it), you need to make sure the third party tool allows you to secure the BLOBs. In this regard, keeping the entire BLOB storage place secured from unauthorized users and also encrypting the BLOBs through a variety of encryption algorithms is important.
6. Job Scheduling and Bandwidth Throttling: Since you’re going to be migrating BLOBs out of SQL Server while SharePoint is still running, it is very useful if you can schedule this migration in such a way that peak usage times are not negatively affected. Scheduling a job at night or weekends and specifying how fast or slow BLOBs should be migrated at different scheduled time intervals allows you to do all of that.
7. Filters, Folder naming and more: A good tool would provide you a rich set of filters to determine which BLOBs you want to move out of SQL Server and which ones you want to keep in the database. Additionally, filters should let you determine which storage tier to move the BLOBs to. For example, you might have a lot of large movie files that you would keep on cheaper storage while keeping recent PDFs on more expensive storage. Similarly, a good tool should let you keep your SharePoint file and folder names in the external storage so you could directly find your documents there if needed.
8. Revert BLOB migration: A good tool should be prepared for the situation where you may want to discontinue using it. So, it should allow you to “revert” all the BLOBs back into your SQL Server database if you choose to do so.
9. BLOB Compression: A good tool should allow you to compress BLOBs (optionally) and based on file sizes or file types in order to save disk space. This could help you reduce your storage cost if you’re using an expensive SAN/NAS disk. It could also help speed up things if you’re storing BLOBs in Cloud Storage which is far from your SharePoint Web Farm. Compressed BLOBs are smaller and travel faster.
10. Garbage Cleanup: You probably didn’t know this but when you move BLOBs out of SQL Server, the SharePoint architecture always creates a new BLOB whenever your update it. And, the older BLOBs are left hanging. So, to clean it up, a garbage cleanup is needed which a good tool must provide.
Needless to say, a good tool should run inside SharePoint Administration Console so it behaves and acts like a truly integrated product to SharePoint. And, I am happy to tell you that StorageEdge has all of the above features plus a lot more. So, do take a look at it.