Last Update: Nov 19, 2024 | Published: Jun 18, 2013
Optimizing disk usage is on every administrator’s wish list. Tiered storage is becoming an everyday consideration for administrator’s as the ever rising need for storage continues to grow. SharePoint administrators can now utilize Remote BLOB Storage (RBS) capabilities in SharePoint and SQL to take advantage of tiered storage. SharePoint RBS capabilities allow for the storage of potentially larger BLOB SQL database content to less-expensive disks and utilizing the expensive disks for intensive SQL workloads. RBS is available with SharePoint 2010 and 2013, so either version can take advantage of RBS. This article will show you how to configure a SharePoint farm for RBS using the Native SQL FILESTREAM provider. You can use these instructions in either SharePoint 2010 or 2013.
BLOB stands for Binary Large Object. In SharePoint, BLOB is large block of unstructured data that is stored in the content databases. When BLOB is stored in the content databases, it is stored with all the metadata that it is associated with it, causing the database to grow in size. Typically BLOB data comprises word documents, video files, and power points, all of which can be large in size, so storing them outside of the content databases can mean performance improvements to the SQL database. Using RBS allows SharePoint to utilize less-expensive disks for BLOB and optimizes the faster disks for more intensive SQL transactions. When RBS is used with SharePoint, the metadata for the BLOB is stored in the SQL content database while the BLOB data is stored remotely on the RBS store.
In order to use RBS you need a provider. The provider is what communicates and connects the BLOB store to the database. SharePoint supports third-party providers and the local FILESTREAM provider that is part of SQL 2008 installation. Local FILESTREAM basically means storing the BLOB data outside of the content database but still on the same local server. Remote Provider means storing the BLOB data on a different volume or server. There is, however, some limitations with using SharePoint 2013 and Remote RBS Provider – certain backup and restore functions are not supported and can only be used with the local FILESTREAM Provider. Check out this link for more about RBS and SharePoint.
Even though FILESTREAM is installed with SQL 2008 by default, you will need to enable and configure the settings on the SQL server that your SharePoint databases are residing on. You can follow these steps to enable FILESTREAM.
EXEC sp_configure filestream_access_level, 2
RECONFIGURE
Each content database that you want to use RBS with must have a BLOB store provisioned for use. Follow these steps to provision a BLOB Store.
1st query to run:
use [WSS_Content]
if not exists
(select * from sys.symmetric_keys
where name = N’##MS_DatabaseMasterKey##’)
create master key encryption by password = N’Admin Key Password yourpassword’
2nd query to run:
use [WSS_Content]
if not exists
(select groupname from sysfilegroups
where groupname=N’RBSFilestreamProvider’)
alter database [WSS_Content]
add filegroup RBSFilestreamProvider contains filestream
3rd query to run:
use [WSS_Content]
alter database [WSS_Content]
add file (name = RBSFilestreamFile, filename =
‘c:Blobstore’)
to filegroup RBSFilestreamProvider
Even though each database is configured separately for the BLOB store, you will only need to install the RBS client once on the web server.
msiexec /qn /lvx* rbs_install_log.txt /i RBS_amd64.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME=”WSS_Content” DBINSTANCE=”DBInstanceName” FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1
To verify the installed successfully type the following command:
Rbs_install_log.txt |find “successfully” /i
Note: If you have multiple web servers, then you will need to repeat the steps and type the following command into each additional web server:
msiexec /qn /lvx* rbs_install_log.txt /i RBS_amd64.msi DBNAME=”WSS_Content” DBINSTANCE=”DBInstanceName” ADDLOCAL=Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer
After installing RBS, it now must be enabled on at least one web server in a SharePoint farm. The only way to enable RBS is through PowerShell, using the following cmdlets. You will need to change the ContentDatabaseName to reflect your database name.
$cdb = Get-SPContentDatabase <ContentDatabaseName> $rbss = $cdb.RemoteBlobStorageSettings $rbss.Installed() $rbss.Enable() $rbss.SetActiveProviderName($rbss.GetProviderNames()[0]) $rbss
Enabling RBS on all your databases may not be an option – or even practical, as there could be performance considerations depending on the type of disk that is used. However, RBS for SharePoint is definitely worth investigating and it’s a great option if you’re looking to maximize on hardware investment by utilizing tiered storage.