SQL ServerRemote BLOB Storagefür SharePoint 2010
René BalzanoTechnology Solutions Professional Data Platform, Microsoft Switzerland
April 2011
Slide 2 | Best Practice für SharePoint, Januar 2011
Strukturierte Inhalte und BLOBs in SharePoint
1 Web Application umfasst 1-n Content-Datenbanken1 Content-Datenbank enthält 1-n Site Collections(Best Practice: 1)Dateninhalte einer Site Collection sind in Tabellen der Content-Datenbank enthalten
Strukturierte Inhalte:dbo.AllUserData, dbo.NameValuePair_xxx u.a.Unstrukturierte BLOB-Inhalte (Office-Dokumente, Bilder, Videos usw.):dbo.AllDocStreams
Web Application
Content DBContent DB
Content DB
dbo.AllUserData
dbo.AllDocStreams
...tp_SiteIdtp_ListId...nvarchar1nvarchar2...int1int2...
...
...
...
...Content varbinary(max)RbsId
FilestreamRBS
Slide 3 | Best Practice für SharePoint, Januar 2011
Einsatzszenario vonRBS unter SharePoint
Für SharePoint-Content-DB, welche einen hohen Anteil an binären Dateien speichern (BLOB, z.B. Office-Dokumente, Bilder, Videos usw.), kann die Datenbankgrösse mittels RBS substantiell gesenkt und die Systemleistung deutlich erhöht werdenRBS erlaubt das Speichern von BLOB-Content in einem Dateisystem anstelle der SharePoint-Content-DatenbankDie separate BLOB-Speicherung in einem Dateisystem ermöglicht effektivere Speichermethoden und entkoppelt Datensicherung und Verwaltung vom strukturierten Inhalt der SharePoint-Datenbanken
FilestreamRBS
Slide 4 | Best Practice für SharePoint, Januar 2011
Architektur mit und ohne RBS
FilestreamRBS
Ohne RBS Mit RBS
Slide 5 | Best Practice für SharePoint, Januar 2011
RBS Komponenten
Client-KomponenteLibrary (DLL), welche durch die Client-Applikation verwendet wirdIm Fall von SharePoint stellt dessen Web Frontend Server (WFE) die Client-Komponente dar
Server-KomponenteTransact-SQL-Script, welches in der Server-Datenbank der Client-Applikation anlässlich der Konfiguration von RBS ausgeführt werdenIm Fall von SharePoint stellt eine Content-Datenbank, für welche RBS einzurichten ist, diese Server-Komponente dar
RBS-ProviderClient- und Server-Komponente, welche die Schnittstelle zum Trägersystem des durch RBS zu beliefernden BLOB-Stores bildetIm Fall der Verwendung von SQL Server als BLOB-Store wird dessen FILESTREAM-Konzept verwendet, der entsprechende Microsoft-eigene RBS-Provider wird als FILESTREAM Provider bezeichnetDritthersteller wie AvePoint stellen ebenfalls RBS-Provider zur Verfügung, welche die Verbindung zu ihren jeweiligen BLOB-Store-Plattformen bilden
FilestreamRBS
Slide 6 | Best Practice für SharePoint, Januar 2011
Anteil des BLOB-Contentseiner SharePoint-Datenbank
Erheben der Grösse aller BLOB-Inhalte einer SharePoint-Content-Datenbank
z.B. per SQL Server Management Studio (SSMS)
SELECT COUNT(*) Anzahl,SUM(ad.Size) Gesamtgrösse,SUM(ad.Size)/COUNT(*) Mittelwert, MAX(ad.Size) Grösstes, MIN(ad.Size) Kleinstes
FROM [WSS_Content].[dbo].[AllDocs] ad
FilestreamRBS
Slide 7 | Best Practice für SharePoint, Januar 2011
Funktionalität von RBSmit FILESTREAM oder 3rd Party
FilestreamRBS
Operational requirement
RBS with FILESTREAM
RBS without FILESTREAM(i.e. with 3rd Party Provider)
SQL Server integrated backup and recovery of the BLOB Store
Yes Yes
Scripted migration to BLOBs Yes Yes
Supports mirroring No No
Log shipping Yes Yes, with provider implementation
Database snapshots No No
Geo replication Yes No
Encryption NTFS only No
Network Attached Storage (NAS)
Not supported by SharePoint 2010 Products
Yes, with provider implementation
Slide 8 | Best Practice für SharePoint, Januar 2011
FILESTREAM ist ein Attribut eines BLOB-Datenfelds von SQL Server, welches bewirkt, dass der Feldinhalt als Datei unter NTFS gespeichert wird und die Datenbank lediglich einen Pointer dorthin verwaltetFILESTREAM-Dateien unterstehen der Transaktions-kontrolle wie alle übrigen Teile der SQL Server-DatenbankÄnderungen an einem FILESTREAM -Datenfeld erzeugen eine neue Dateiversion (alte Kopie bleibt bestehen)SQL Server DB-Backup und -Restore berücksichtigen auch FILESTREAM -DateienFILESTREAM -Daten zählen nicht zur 10GB-Grenze von SQL Server Express
FILESTREAM FilestreamRBS
Slide 9 | Best Practice für SharePoint, Januar 2011
FILESTREAM RBS Provider
RBS-Unterstützung (inkl. FILESTREAM RBS-Provider) ist als AddIn für SharePoint aus dem SQL Server 2008 R2 Feature Pack zu beziehenhttp://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=ceb4346f-657f-4d28-83f5-aae0c5c83d52
Wird der FILESTREAM Provider verwendet, verbindet RBS eine Content-DB mit einer FILESTREAM-Filegroup (Dateiverzeichnis unter NTFS) und platziert alle binären Objekte dieser Datenbank (d.h. aller darin enthaltenen Site Collections), die eine konfigurierte Mindestgrösse haben (Default 60KB, Empfehlung 1MB) als Dateien im Dateisystem
Whitepaper hierzu (Feb 2011)http://download.microsoft.com/download/9/5/2/9521D8DA-5D3C-4817-BB9D-B5B1BD293365/SQL_Server_2008_R2_Remote_Blob_Storage.docx
FilestreamRBS
Slide 10 | Best Practice für SharePoint, Januar 2011
3rd Party RBS Provider
RBS unterstützt auch 3rd-Party RBS Provider,z.B. folgender Anbieter
DocAve Extender Free (AvePoint)SharePoint File Share Library (Bamboo)Archiving Express for SharePoint (Metalogix)Simpana Archive for SharePoint (Commvault)NCachePoint (Alachisoft)EMC Centera RBS (EMC)SnapManager (NetApp)ECM Suite for SharePoint (Open Text)StoragePoint (Metalogix)
FilestreamRBS
Slide 11 | Best Practice für SharePoint, Januar 2011
SQL ServerLizenzierung für RBSSzenario Lokale SQL Server
Version/EditionEntfernte SQL ServerVersion/Edition
FILESTREAM Provider, BLOB werden im lokalenSQL Server Dateisystem gespeichert
2008 R2 Express2008 Standard SP1 CU22008 R2 Standardund höhere
N/A
FILESTREAM Provider, BLOB werden auf entferntemSQL Server Dateisystem gespeichert
2008 R2 Enterpriseund höhere
2008 R2 Standardund höhere
3rd Party RBS ProviderBLOB werden nicht unter Kontrolle von SQL Server gespeichert
2008 R2 Enterpriseund höhere
N/A
FilestreamRBS
Slide 12 | Best Practice für SharePoint, Januar 2011
Dimensionierung
RBS ist empfohlenfür Content-DB-Grössen (inkl. BLOB-Content) ab 100GBfür BLOB-Dateigrössen ab 1MBfür BLOB-Dateigrössen ab 80KBbei Performanceinschränkung durch SQL Server
Zu beachtendie Dimensionierungsempfehlungen für SharePoint-Content-DB werden durch den Einsatz von RBS nicht verändert (max. 200GB pro Content-DB gilt als Best Practice-Empfehlung)die Grösse von speicherbaren Dokumenten wird durch den Einsatz von RBS nicht verändert (max. 2GB pro Datei)
FilestreamRBS
Slide 13 | Best Practice für SharePoint, Januar 2011
RBS und Hochverfügbarkeit
Backup/RestoreGemäss SQL Server-Standardfunktionalität (bei verteilter Speicherung ist Backup-Synchronisation zu berücksichtigen)
Log ShippingUnterstützt durch FILESTREAM Provider,für 3rd Party Provider zu prüfen
ClusteringUnterstützt durch den FILESTREAM Provider (FILESTREAM Filegroup muss auf Shared Disk liegen)
Mirroring, ReplikationNicht direkt unterstützt, via BLOB Store zu realisieren(gleiche Anforderung wie Backup-Synchronisation)
FilestreamRBS
Slide 14 | Best Practice für SharePoint, Januar 2011
RBS Maintainer
Applikation (C:\Program Files\Microsoft SQL Remote Blob Storage 10.50\
Maintainer), die periodisch (z.B. per Scheduler) aufzurufen ist, um BLOB Store Maintenance Prozesse abzuwickeln
Delete PropagationBLOB Objekte im Dateisystem werden nicht gelöscht, wenn sie aus der Datenbank gelöscht werden. Per Maintainer erfolgt die Löschung definitivOrphan CleanupBLOB Objekte, zu welchen keine Datenbankeinträge existieren (was nur aus Fehlersituationen entstehen kann), werden gelöscht
EmpfehlungAnlässlich der Installation von RBS via Advanced Settings nicht die Default-Konfiguration verwenden (welche Maintainer automatisch aufrufen lässt), sondern manuell einen Task aufsetzen, welcher Maintainer gemäss der Backupstrategie und den Betriebszeiten aufruft
FilestreamRBS
Slide 15 | Best Practice für SharePoint, Januar 2011
Remote und Local FILESTREAM
SQL Server
Application
RBS Client Library
Provider Library
ApplicationDatabase
RBS Aux Resources
BLOB Store(File GroupAnd tables)
Local FILESTREAM SQL Server
Application
RBS Client Library
Provider Library
ApplicationDatabase
RBS Aux Resources
BLOB StoreDatabase
BLOB Store(File Group and tables)
Remote FILESTREAM
SQL Server 2
SQL Server 1
Application
RBS Client Library
Provider Library
ApplicationDatabase
RBS Aux Resources
BLOB StoreDatabase
BLOB Store(File Group and tables)
Remote FILESTREAMApplication Database =SharePoint Content DB
RBS Aux Resources = SQL Server RBS Objects in Content DB(Stored Procs, Tables etc.)
BLOB Store = FILESTREAM Data (Files in NTFS and Pointer-Values in DB Tables)
FilestreamRBS
Slide 16 | Best Practice für SharePoint, Januar 2011
FILESTREAM RBSBackupszenarien
Empfehlung: SQL Server Backup verwenden(nicht SharePoint-Oberfläche)Die Content-DB und ihr FILESTREAM BLOB Store lasen sich unabhängig, aber parallel sichern (und wiederherstellen), wenn sie leicht zeitverschoben gestartet werdenWenn zwischen dem Start der Content-DB-Backups und dem Ende des BLOB-Backups der Maintainer nicht ausgeführt wird, bleibt die referentielle Integrität zwischen beiden Backups in jedem Fall gewahrt
FilestreamRBS
Slide 17 | Best Practice für SharePoint, Januar 2011
FILESTREAM RBSBackupszenarien
FILESTREAM-Dateien werden intern versioniertBei Änderungen an einem BLOB legt RBS/FILESTREAM immer eine neue Kopien der betroffenen Datei anDie alte Dateiversionen, die z.B. noch in einem vorherigen DB-Backup referenziert sein könnte, bleiben bestehenBeim Löschen eines BLOB-Eintrages aus einer Content-DB werden die dazugehörigen FILESTREAM-Dateien (alle Versionen) nicht entferntDas Löschen von FILESTREAM-Dateien, welche nicht mehr durch einen Content-DB-Eintrag referenziert sind, geschieht nur beim Ausführen des MaintainersDeshalb können z.B. während des Ausführens eines DB- und BLOB-Backups Mutations- und Lösch-Operationen erfolgen, solange nicht auch der Maintainer gestartet wird.
Solange zwischen dem Start des Content DB-Backups und dem Ende des FILESTREAM-Backups der Maintainer nicht ausgeführt wird, kann jederzeit in der Farm gearbeitet werden
FilestreamRBS
Slide 18 | Best Practice für SharePoint, Januar 2011
Kontakt
René Balzano
TECHNOLOGY SOLUTIONS PROFESSIONALDATA PLATFORM [email protected]+41 (0)43 4566909