RBS (Remote Blob Store) is a set of standardized APIs that allow storage/retrieval of BLOBs (binary large object data) outside of your main SQL database where a dedicated BLOB store is desirable. RBS uses a provider model for plugging in any dedicated BLOB store that implements the RBS APIs. RBS was introduced in SharePoint 2010 and providers can be installed into SharePoint and are used to store BLOBs. Documents in SharePoint document libraries are BLOBs and with RBS they can be stored remote to the SQL Server database. This commonly means the BLOBs are stored on the same machine as SQL Server though they may be on a network connected SQL Server machine.
By storing BLOBs outside of the SQL Server database there can be certain advantages such as:
· RBS enables SharePoint Foundation 2010 running on SQL Express to store more data than the SQL Express limit of 4 GB. In SQL Express 2008 R2 this limit was increased to 10 GB.
· Some operations can be performance optimized with average blob sizes over 1Mb. This result is from tests with the SQL RBS Provider. Ref: http://msdn.microsoft.com/en-us/library/cc949109(SQL.100).aspx
· There could be storage optimizations with potential disk space and disk cost savings from differential backups or tiered storage.
· We have completed testing on the SQL RBS FILESTREAM provider which can enable iSCSI connected storage for RBS use. Using iSCSI allows for the use of lower cost NAS storage.
· Other potential data optimizations may be developed by ISV’s using the supported public RBS APIs and SharePoint APIs.
There are a few things to be careful with when implementing RBS:
· Backup strategy must be carefully considered. Both document metadata and document BLOBs must be backed up at exactly the same point in time. This means any third party backup solution needs to be capable of restoring both the SQL database used by SharePoint and the BLOBs used by SharePoint as a set where no variance occurs which would have the database reference BLOBs that are not available from the same backup.
· RBS is most likely to be used for document archive scenarios where documents are written and not updated. BLOBs in RBS are never updated once they are written; instead a new BLOB is created for any update. BLOBs are immutable, old BLOBs are garbage collected later. You can read more about RBS garbage collection in this article: http://technet.microsoft.com/en-us/library/ff628583.aspx
· RBS providers are required to return the first byte of data in a request in 20ms. This applies for all requests between SharePoint and the RBS provider storage layer.
· The SharePoint database is not intended to be read from or written to except by SharePoint. RBS providers don’t have separate access to the data. This includes direct access to blobs. Ref:http://support.microsoft.com/kb/841057/en-us
· Performance may decrease for smaller BLOB sizes when using RBS. This is also shown in the “FILESTREAM Storage in SQL Server 2008” article referenced above.
· There are many RBS providers available and customers should evaluate them for suitability for their implementations.
Additional Documentation from Microsoft on RBS in SharePoint
TechNet Documentation RBS Links:
· Plan for RBS (SharePoint Server 2010) [http://technet.microsoft.com/en-us/library/ff628583.aspx]
· Overview of RBS (SharePoint Server 2010) [http://technet.microsoft.com/en-us/library/ee748649.aspx]
· Maintain RBS (SharePoint Server 2010) [http://technet.microsoft.com/en-us/library/ff943565.aspx]