1. SQL ServerRemote BLOB Storage für SharePoint 2010 René BalzanoTechnology Solutions Professional Data Platform, Microsoft Switzerland April 2011
2. Strukturierte Inhalte und BLOBs in SharePoint Filestream RBS 1 Web Application umfasst 1-n Content-Datenbanken 1 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 DB Content DB Content DB dbo.AllUserData dbo.AllDocStreams ... tp_SiteIdtp_ListId ... nvarchar1nvarchar2...int1int2... ... ...... ... Content varbinary(max) RbsId
3. Filestream RBS 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 werden RBS erlaubt das Speichern von BLOB-Content in einem Dateisystem anstelle der SharePoint-Content-Datenbank Die separate BLOB-Speicherung in einem Dateisystem ermöglicht effektivere Speichermethoden und entkoppelt Datensicherung und Verwaltung vom strukturierten Inhalt der SharePoint-Datenbanken
5. RBS Komponenten Client-Komponente Library (DLL), welche durch die Client-Applikation verwendet wird Im Fall von SharePoint stellt dessen Web Frontend Server (WFE) die Client-Komponente dar Server-Komponente Transact-SQL-Script, welches in der Server-Datenbank der Client-Applikation anlässlich der Konfiguration von RBS ausgeführt werden Im Fall von SharePoint stellt eine Content-Datenbank, für welche RBS einzurichten ist, diese Server-Komponente dar RBS-Provider Client- und Server-Komponente, welche die Schnittstelle zum Trägersystem des durch RBS zu beliefernden BLOB-Stores bildet Im Fall der Verwendung von SQL Server als BLOB-Store wird dessen FILESTREAM-Konzept verwendet, der entsprechende Microsoft-eigene RBS-Provider wird als FILESTREAM Provider bezeichnet Dritthersteller wie AvePoint stellen ebenfalls RBS-Provider zur Verfügung, welche die Verbindung zu ihren jeweiligen BLOB-Store-Plattformen bilden Filestream RBS
6. 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) KleinstesFROM [WSS_Content].[dbo].[AllDocs] ad Filestream RBS
8. 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 verwaltet FILESTREAM-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 -Dateien FILESTREAM -Daten zählen nicht zur 10GB-Grenze von SQL Server Express FILESTREAM Filestream RBS
9. FILESTREAM RBS Provider Filestream RBS 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
10. 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) Filestream RBS
12. Dimensionierung RBS ist empfohlen für Content-DB-Grössen (inkl. BLOB-Content) ab 100GB für BLOB-Dateigrössen ab 1MB für BLOB-Dateigrössen ab 80KBbei Performanceinschränkung durch SQL Server Zu beachten die 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) Filestream RBS
13. RBS und Hochverfügbarkeit Backup/Restore Gemäss SQL Server-Standardfunktionalität (bei verteilter Speicherung ist Backup-Synchronisation zu berücksichtigen) Log Shipping Unterstützt durch FILESTREAM Provider,für 3rd Party Provider zu prüfen Clustering Unterstützt durch den FILESTREAM Provider (FILESTREAM Filegroup muss auf Shared Disk liegen) Mirroring, Replikation Nicht direkt unterstützt, via BLOB Store zu realisieren(gleiche Anforderung wie Backup-Synchronisation) Filestream RBS
14. RBS Maintainer Applikation (C:rogram Filesicrosoft SQL Remote Blob Storage 10.50aintainer), 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 definitiv Orphan CleanupBLOB Objekte, zu welchen keine Datenbankeinträge existieren (was nur aus Fehlersituationen entstehen kann), werden gelöscht Empfehlung Anlä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 Filestream RBS
15. Remote und Local FILESTREAM Filestream RBS Application 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)
16. 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 werden Wenn 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 Filestream RBS
17. FILESTREAM RBSBackupszenarien Filestream RBS FILESTREAM-Dateien werden intern versioniert Bei Änderungen an einem BLOB legt RBS/FILESTREAM immer eine neue Kopien der betroffenen Datei an Die alte Dateiversionen, die z.B. noch in einem vorherigen DB-Backup referenziert sein könnte, bleiben bestehen Beim Löschen eines BLOB-Eintrages aus einer Content-DB werden die dazugehörigen FILESTREAM-Dateien (alle Versionen) nicht entfernt Das Löschen von FILESTREAM-Dateien, welche nicht mehr durch einen Content-DB-Eintrag referenziert sind, geschieht nur beim Ausführen des Maintainers Deshalb 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
18. Kontakt René Balzano TECHNOLOGY SOLUTIONS PROFESSIONAL DATA PLATFORM rene.balzano@microsoft.com +41 (0)43 4566909