When SharePoint was originally introduced all files saved to SharePoint were stored in the database as BLOBs. BLOBs are not necessarily ideal for a database if there are a lot of files stored or if the files stored have large file sizes. Unfortunately Insight data stored in SharePoint is typically of a larger file size and engineering groups typically generate a lot of these larger files. BLOBs bloat the size of the physical database files resulting in reduced database performance. Therefore Insight performance can be negatively impacted.
Thankfully Microsoft has recognized this and now provides Remote BLOB Storage (RBS) with SQL Server and SharePoint. RBS is a way to store the BLOB files outside of the database on the physical disk system itself. By moving the BLOB storage to the physical disk this in turn reduces the physical database size. Implementing RBS has the potential to improve your overall SharePoint and Insight performance.
However, simply implementing RBS is no guarantee of automatically improved performance. If the disk system RBS is implemented on is slow or most of your files are smaller in size then you may actually notice a reduction in performance. In other words before simply rolling this out to production back up your systems and perform your own testing!
Notes:
- Instructions are for an already fully configured and working SharePoint with Insight installation.
- Instructions assume that SQL and SharePoint servers are on the same physical server. There are additional steps necessary for multiple server configurations.
- Uses the Microsoft FILESTREAM and RBS provider.
- Microsoft RBS only works with locally attached storage – does not work with NAS.
- Bit versions must match i.e. 32-bit SQL on 64-bit Windows will not work.
- For performance the RBS storage should be its own drive(s) i.e. not on the drives with the OS, swap, or database files.
- Instructions are based on this Microsoft TechNet article but the TechNet article has “assumed” steps either missing and/or errors. In other words if you follow the TechNet article blindly RBS may not install.
- More details on Microsoft RBS including pros, cons, limitations etc. are available at http://technet.microsoft.com/en-us/library/ff628583.aspx
Installation Overview:
To install and use RBS you perform the following steps:
- Enable FILESTREAM on the database server.
- Create a BLOB store for the content database.
- Install the RBS client on the web server.
- Enable RBS for the content database.
- Test the RBS install.
Installation Instructions:
Enable FILESTREAM on the Database Server
1. Log into the SQL Server as the domain account used to install and configure SharePoint and Insight.
2. Start -> All Programs -> Microsoft SQL Server 2008 R2 -> Configuration Tools -> SQL Server Configuration Manager:
6. Select SQL Server Services:
8. Select the FILESTREAM tab and check all options. Select OK:
12. Select New Query. In the Query window enter the following code and Execute:
EXEC sp_configure filestream_access_level, 2
RECONFIGURE
Create a BLOB Store for the Content Database
1. Start -> All Programs -> Microsoft SQL Server 2008 R2 -> SQL Server Management Studio:
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 !2#4'
use [WSS_Content]
if not exists
(select groupname from sysfilegroups
where groupname=N'RBSFilestreamProvider')
alter database [WSS_Content]
add filegroup RBSFilestreamProvider contains filestream
use [WSS_Content]
alter database [WSS_Content]
add file (name = RBSFilestreamFile, filename =
'D:\Blobstore')
to filegroup RBSFilestreamProvider
5. The BLOB store should now be created on the Windows file system:
1. Download the Remote Blob Store installer from the Microsoft SQL Server 2008 R2 Feature pack web page. Select the correct version (X64) for the server:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=16978
2. Do *NOT* attempt to install by double-clicking and running the installer GUI. Open a Command Prompt wherever the RBS installer was downloaded to:
msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content" DBINSTANCE="HSVNT422B" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1
Enable RBS for the Content Database
1. Select Start -> All Programs -> Microsoft SharePoint 2010 Products -> SharePoint 2010 Management Shell:
$cdb = Get-SPContentDatabase –WebApplication http://hsvnt422b
$rbss = $cdb.RemoteBlobStorageSettings
$rbss.Installed()
$rbss.Enable()
$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])
$rbss
Test the RBS Install
1. Launch Solid Edge. Create and save a file into Insight:
If there are already Solid Edge files stored in the database before installing RBS these files remain stored in the database until such time as they are opened and saved back to Insight. Once saved back to SharePoint the files are then stored in the file system.
The system generates a lot of versions of a file (even with versioning turned off) when saving and uploading from Solid Edge. You may need to enact some form of scheduled maintenance tasks to purge these old unused versions from the file system to avoid the storage system filling up quickly with unused versions of files.
It is nice article, it is working fine with me, but how to rename folders which are created at the time of RBS setup where my documents are uploaded
ReplyDeleteThank you for the feedback on the article.
DeleteTo clarify are you asking about renaming the top level folder where the RBS store is initially located or renaming the auto-generated serialized sub-folders that are created under the RBS store folder?
Thanks again,
-Dave
Renaming the auto-generated serialized sub-folders that are created under the RBS store folder and also naming of uploaded documents
DeleteI am not aware of any way to control and/or rename the sub-folders and files uploaded into the RBS store. And I would have to question why. Such a requirement implies that you are wanting to manually manage the files in some way at the OS/Windows Explorer level which defeats the purpose of having the files in a managed system like SharePoint in the first place.
DeleteI am not familiar with the 3rd party RBS implementations. Perhaps one of these RBS vendors offers what you are looking for.
Thanks again for your input.
Thanks for reply.
DeleteI have 1 folder that contains hundered's of Documents, I want to uplod this documents on the site. How can uplaod these document to site, is there any way to configure this folder with RBS so my site document library will take automatic reference of these documents?
Sorry for the delay in responding -- I have been on a hiatus for a few weeks.
DeleteIf I understand you correctly you have hundreds of unmanaged documents you want to import into SharePoint? If that is the case what does that have to do with RBS? RBS is merely a way of storing the SharePoint documents outside of the database. It is not a new way of managing the documents -- SharePoint is still the overarching system for managing the files. As such you can use any normal method of importing or bulk loading unmanaged documents into SharePoint regardless of whether RBS is configured or not. If RBS is configured then those hundreds of documents once imported get stored on disk. Without RBS those same docs get stored within the database. Again RBS is not a new way of managing the files merely a different way of storing those files.
If you are looking for some way of bulk importing into SharePoint then look for any of the free SharePoint tools such as SUSHI or Bulk Document Importer to name a few.
Thanks again for your input.
-Dave
Thanks a lot Dave for your response, I will try the suggested way.
DeleteThanks for posting these instructions. They were very helpful.
ReplyDeletePaul
Paul,
DeleteThank you for your feedback. It is greatly appreciated!
-Dave
Hey... You have nice Blog.. Keep follow this excellent work.
ReplyDeleteSharepoint Remote Blob Storage
Sherlina,
DeleteThanks for reading and your feedback.
-Dave
Big thanks, it worked for me like a charm! But I had to fix a problem with altering some permissions at the content database!
ReplyDeleteAndre,
DeleteThanks for reading and the feedback. Glad the instructions worked for you.
-Dave
I am going to bookmark this. Thanks for taking the time to write this up.
ReplyDeleteGrateful to check out your website, I seem to be ahead to more excellent sites and I wish that you wrote more informative post for us. Well done work.
ReplyDelete