Share point rbs in depth englisch

23
SharePoint 2010 and Remote BLOB Storage Thierry Gasser

description

Good Overview and Details about RBS and SharePoint 2010 by Thierry Gasser, Microsoft

Transcript of Share point rbs in depth englisch

Page 1: Share point rbs in depth englisch

SharePoint 2010 and Remote BLOB Storage

Thierry Gasser

Page 2: Share point rbs in depth englisch

What is Remote BLOB Storage?

RBS is a feature of SQL 2008 and R2 !

Provides the ability to store BLOBs outside of a SQL database

Includes one easy Filestream provider which can be used to store BLOBs on an NTFS filesystem

SharePoint 2010 fully supports 3rd party Filestream

Page 3: Share point rbs in depth englisch

Why Remote BLOB Storage?

Pro:

- Potential performance improvements when storing for BLOBs that are

larger than 1 MB

- Potential storage cost savings from SAN to Fileshare (SAS)

- In environments with frequent updates, fragmentation issues are easier

to address

Cons:

- RBS out of the box does not support• Database snapshots• Database mirroring• Encryption

- More admin to manage the farm and SQL

- Recommended to use a 3rd party provider which cost money.

Page 4: Share point rbs in depth englisch

Process Flow – Saving a FileSharePoint WFE

SharePoint Object Model

BLOB StoreProvider Library

BLOBStore

SQL Server

ContentDB

ConfigDB

2. Enforce Business

Logic

RBS Client Library Relational Access

1. Save Request

3. Save BLOB

4. Write BLOB

5. Return BLOB ID

6. Save Metadata & BLOB ID

7. Back to User

Page 5: Share point rbs in depth englisch

Install and Configuration

Step 1 - Enable FILESTREAM

Page 6: Share point rbs in depth englisch

Install and Configuration

Step 2 - Enable FILESTREAM support in SQL

EXEC sp_configure filestream_access_level, 2Reconfigure

Page 7: Share point rbs in depth englisch

Install and Configuration

Step 3 - Provision a BLOB Store – Create Master Key

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'

Page 8: Share point rbs in depth englisch

Install and Configuration

Step 4 - Provision a BLOB Store – Add Filestream Filegroup

use [WSS_Content]if not exists (select groupname from sysfilegroups where groupname=N'RBSFilestreamProvider')alter database [WSS_Content] add filegroup RBSFilestreamProvider contains filestream

Page 9: Share point rbs in depth englisch

Install and Configuration

Step 5 - Provision a BLOB Store – Add File to Filegroup

use [WSS_Content]alter database [WSS_Content] add file (name = RBSFilestreamFile, filename = 'c:\Blobstore\WSS_Content') to filegroup RBSFilestreamProvider

Page 10: Share point rbs in depth englisch

Install and Configuration

Step 6 - Enable RBS on First SharePoint Server

msiexec /qn /lvx* rbs_install_log.txt /i RBS_X64.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content" DBINSTANCE="DC" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1

On Subsequent Servers

msiexec /qn /lvx* rbs_install_log.txt /i RBS_X64.msi DBNAME="WSS_Content" DBINSTANCE="DBInstanceName" ADDLOCAL="Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer"

Page 11: Share point rbs in depth englisch

Install and Configuration

Step 7 - Use PowerShell to activate provider

$site = get-spsite http://siteurl$rbss = $site.ContentDatabase.RemoteBlobStorageSettings$rbss.Installed()True$rbss.Enable()$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])$rbss

Enabled ActiveProviderName MinimumBlobStorageSize UpgradePersistedProperties --------- ---------------------- ---------------------------- ------------------------------

True FileStoreProvider_1 0 { }

Page 12: Share point rbs in depth englisch

Installation – Next Steps

RBS works at the database level. When you create another database in the same farm

1. [Run the SQL commands]2. msiexec /qn /lvx* rbs_install_Log.txt /i rbs_X64.msi

REMOTEBLOBENABLE=1 FILESTREAMPROVIDERENABLE=1 DBNAME=<WSS_Content> FILESTREAMSTORENAME=FilestreamProvider_1 ADDLOCAL=EnableRBS,FilestreamRunScript DBINSTANCE=<DBInstanceName>>

3. [PowerShell to Enable Provider]

Page 13: Share point rbs in depth englisch

Advanced Configuration

Use PowerShell Configure the minimum size of content to be stored in the BLOB

Files smaller than this will be stored in the content database

$db = Get-SPContentDatabase –Site http:/[URL of site collection]$db.RemoteBlobStorageSettings.MinimumBlobStorageSize = [number of bytes]#db.Update()

Page 14: Share point rbs in depth englisch

NTFS Configuration Best Practices

Configure AV to quarantine rather than delete infected files

Disable the generation of 8.3 names when files are created

fsutil behavior set disable8dot3 1

Disable updating the last access time for a file when it is accessed

fsutil behavior set disablelastaccess 1

Page 15: Share point rbs in depth englisch

NTFS Configuration Best Practices

Perform regular defragmentation of volume(s) holding BLOB data

Disk quotas can be used to restrict storage

Configure the cluster size for volume(s) to host BLOB data to 64 KB

This must be done when the volume is formatted

format F: /FS:NTFS /V:MyFILESTREAMContainer /A:64K

Page 16: Share point rbs in depth englisch

When should I use RBS with SharePoint?

I am a SharePoint Foundation user

- Limitations on database size with SQL 2008 Express

require the use of RBS.

- Automatically configure RBS + FILESTREAM for WSS

3.0 users during upgrade!

I am an enterprise user with a large amount of content in SharePoint

- MS recommendation is approximately 1TB or more,

though you can still save costs if you have less data.

- Research and planning are needed. Talk to providers!

Page 17: Share point rbs in depth englisch

Performance Impact, some sample

SharePoint expects providers to have the following performance impact:

- Throughput: 5 -10% degradation

- Average Response time: Impact should be minimal as file size increases

- SQL CPU Usage: 20% for small files, minimal impact for large files

RBS and Sharepoint 2010: File Read Performance with 128 users

File Size

RBS APIs Enabled? No Yes No Yes No Yes

Requests/sec 489 486 235 241 135 137

Avg. Response Time(seconds) 0.26 0.26 0.54 0.53 0.94 0.93

SQL CPU Usage (%) 37 47 26 28 21 20

75 KB 256 KB 512 KB

Page 18: Share point rbs in depth englisch

Read Throughput

Read Throughput After Bulk load

0

2

4

6

8

10

12

256K 512K 1MObject Size

MB

/se

c

Database

Filesystem

Page 19: Share point rbs in depth englisch

How do I Migrate BLOB Data to RBS?

Use Power shell Commandlet - Migrate

- Moves BLOBs from current location to the current

Active RBS Provider store.

- Does deep copy of BLOBs – one BLOB at a time

- Live Migration – no downtime is required

- Migration process can be terminated and resumed

Page 20: Share point rbs in depth englisch

Migrate()

Use PowerShell to EXTERNALIZE all content

$site = get-spsite http://siteurl$rbss = $site.ContentDatabase.RemoteBlobStorageSettings$rbss.Migrate()

Page 21: Share point rbs in depth englisch

Migrate()

Use PowerShell to INTERNALIZE all content

$site = get-spsite http://siteurl$rbss = $site.ContentDatabase.RemoteBlobStorageSettings$rbss.SetActiveProviderName(“”)$rbss.Migrate()$rbss.Disable() $rbss

Enabled ActiveProviderName MinimumBlobStorageSize UpgradePersistedProperties --------- ---------------------- ---------------------------- ------------------------------

False 0 { }

Page 22: Share point rbs in depth englisch

Backup and Restore

Order of Operations

Page 23: Share point rbs in depth englisch

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market

conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.