Overview of RBS (SharePoint Server 2010)
Published: May 12, 2010
This article describes how to use Microsoft SharePoint Server 2010 together with Remote BLOB Storage (RBS) and Microsoft 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 Server 2010 installation, see Plan for RBS (SharePoint Server 2010).
RBS can be used with SQL Server 2008 or SQL Server 2008 R2.
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 Server 2010, 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 Microsoft Office 2010 document or a video file. By default, these BLOBs, also known as unstructured data, are stored directly in the SharePoint content database along 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. Accordingly, 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 Microsoft SQL Server library API set that is incorporated as an add-on feature pack for Microsoft SQL Server 2008 R2, SQL Server 2008 or Microsoft SQL Server 2008 R2 Express. The RBS feature enables applications, such as SharePoint Server 2010, 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 Server 2010 uses the RBS feature to store BLOBs outside of the content database. SQL Server and SharePoint Server 2010 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 Microsoft SharePoint Server, 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 Server 2010 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 Microsoft 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 Server 2010 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 2010 Products
SharePoint Server 2010 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 Server 2010. 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 Server 2010.
In SharePoint Server 2010, 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 2010 Products farm database backup and restore operations.
To use RBS, you must install an RBS provider on each server where SharePoint Server 2010 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 Server 2010 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 Server 2010 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 modifying those BLOBs is not supported using any tool or product other than Microsoft SharePoint 2010 Products. All access must occur by using SharePoint 2010 Products only.