Overview of RBS in SharePoint 2013
Published: July 16, 2012
Summary: Learn about how to use Remote BLOB Storage (RBS) in a SharePoint 2013 farm.
Applies to: SharePoint Server 2013 | SharePoint Foundation 2013
This article describes how to use SharePoint 2013 together with Remote BLOB Storage (RBS) and SQL Server to optimize database storage resources.
Before you implement RBS, we highly recommend that you evaluate its potential costs and benefits. For more information and recommendations about how to use RBS in a SharePoint 2013 installation, see Plan for RBS in SharePoint 2013.
Unless otherwise specified, the information in this article is specific to RBS using the FILESTREAM provider. For guidance specific to another provider, contact the provider manufacturer.
In this article:
Introduction to RBS
In SharePoint 2013, a binary large object (BLOB) is a large block of data stored in a database that is known by its size and location instead of by its structure — for example a Office document or a video file. By default, these BLOBs, also known as unstructured data, are stored directly in the SharePoint content database together with the associated metadata, or structured data. Because these BLOBs can be very large, it might be better to store BLOBs outside the content database. BLOBs are immutable. Therefore,, a new copy of the BLOB must be stored for each version of that BLOB. Because of this, as a database’s usage increases, the total size of its BLOB data can expand quickly and grow larger than the total size of the document metadata and other structured data that is stored in the database. BLOB data can consume lots of space and uses server resources that are optimized for database access patterns. Therefore, it can be helpful to move BLOB data out of the SQL Server database, and onto commodity or content addressable storage. To do this, you can use RBS.
RBS is a SQL Server library API set that is incorporated as an add-on feature pack for SQL Server 2008 R2, SQL Server 2008 or SQL Server 2008 R2 Express. The RBS feature enables applications, such as SharePoint 2013, to store BLOBs in a location outside the content databases. Storing the BLOBs externally can reduce how much SQL Server database storage space is required. The metadata for each BLOB is stored in the SQL Server database and the BLOB is stored in the RBS store.
SharePoint 2013 uses the RBS feature to store BLOBs outside the content database. SQL Server and SharePoint 2013 jointly manage the data integrity between the database records and contents of the RBS external store on a per-database basis.
RBS is composed of the following components:
RBS client library
An RBS client library consists of a managed library that coordinates the BLOB storage with SharePoint 2013, SQL Server, and RBS provider components.
Remote BLOB Storage provider
An RBS provider consists of a managed library and, optionally, a set of native libraries that communicate with the BLOB store.
An example of an RBS provider is the SQL FILESTREAM provider. The SQL FILESTREAM provider is a feature of SQL Server 2008 that enables storage of and efficient access to BLOB data by using a combination of SQL Server 2008 and the NTFS file system. For more information about FILESTREAM, see FILESTREAM Overview (http://go.microsoft.com/fwlink/p/?LinkID=166020&clcid=0x409) and FILESTREAM Storage in SQL Server 2008 (http://go.microsoft.com/fwlink/p/?LinkID=165746&clcid=0x409).
A BLOB store is an entity that is used to store BLOB data. This can be a content-addressable storage (CAS) solution, a file server that supports Server Message Block (SMB), or a SQL Server database.
RBS uses a provider to connect to any dedicated BLOB store that uses the RBS APIs. SharePoint 2013 supports a BLOB storage implementation that accesses BLOB data by using the RBS APIs through such a provider. There are two kinds of RBS providers, local and remote.
The location in which an RBS provider stores the BLOB data depends on the provider that you use. In the case of the FILESTREAM provider, the data is not stored in the .mdf file. Instead, it is stored in another folder that is associated with the database.
Local RBS provider
A local provider stores the BLOBS outside the database but on the same server that is running SQL Server. You can conserve resources by using the local RBS FILESTREAM provider to put the extracted BLOB data on a different (that is, less resource-intensive) local disk. Because the BLOBs are stored in the same Filegroup as the metadata, SharePoint Server 2010 features, such as backup and restore in Central Administration, can be used.
The RBS FILESTREAM provider is available through the SQL Server Remote BLOB Store installation package from the Feature Pack for SQL Server 2008 R2. The RBS FILESTREAM provider uses the SQL Server FILESTREAM feature to store BLOBs in an additional resource that is attached to the same database and stored locally on the server. The FILESTREAM feature manages BLOBs in an SQL database by using the underlying NTFS file system.
The local FILESTREAM provider is supported only when it is used on local hard disk drives or an attached Internet Small Computer System Interface (iSCSI) device. You cannot use the local RBS FILESTREAM provider on remote storage devices such as network attached storage (NAS).
Remote RBS provider
A remote RBS provider stores the BLOBs on a separate server. This is typically on a separate volume on the same network as the database server.
Because the BLOBs are not stored in the same Filegroup with the metadata, some SharePoint 2013 features — for example, backup and restore in Central Administration — cannot be used with remote RBS providers. The metadata and the BLOBs must be managed separately. For more information about what features can be used with the provider, contact the provider manufacturer.
Using RBS together with SharePoint 2013
SharePoint 2013 supports the FILESTREAM provider that is included in the SQL Server Remote BLOB Store installation package from the Feature Pack for SQL Server Remote BLOB Store installation package from the Feature Pack for SQL Server 2008 R2. This version of RBS is available at Microsoft® SQL Server® 2008 R2 Feature Pack (http://go.microsoft.com/fwlink/p/?LinkID=177388). Be aware that this is the only version of RBS that is supported by SharePoint 2013. Earlier versions are not supported. Third-party RBS providers can also be used with the RBS APIs to create a BLOB storage solution that is compatible with SharePoint 2013.
In SharePoint 2013, site collection backup and restore and site import or export will download the file contents and upload them back to the server regardless of which RBS provider is being used. This process is known as a deep copy. However, the FILESTREAM provider is the only provider that is currently supported for SharePoint 2013 farm database backup and restore operations.
To use RBS, you must install an RBS provider on each server where SharePoint 2013 is installed and on each database server in the topology. The provider includes a set of DLLs that implement methods for the RBS APIs and perform the actual operation of externalizing the BLOBs.
To run RBS on a remote server, you must be running SQL Server 2008 R2 Enterprise on the server that is running SQL Server where the metadata is stored in the database.
If you plan to store BLOB data in an RBS store that differs from your SharePoint 2013 content databases, you must run SQL Server 2008 with SP1 and Cumulative Update 2. This is true for all RBS providers.
The FILESTREAM provider that is recommended for upgrading from stand-alone installations of Windows SharePoint Services 3.0 that have content databases that are over 4 gigabytes (GB) to SharePoint 2013 associates data locally with the current content database, and does not require SQL Server Enterprise.
Although RBS can be used to store BLOB data externally, accessing or changing those BLOBs is not supported using any tool or product other than SharePoint 2013. All access must occur by using SharePoint 2013 only.