RBS dla SharePoint 2013 cz.2

Kontynuują tematykę z poprzedniego postu, przybliżę technologię Remote BLOB Storage dla rozwiązania Microsoft SharePoint 2013. Tym razem jednak przedstawiona będzie konfiguracja jaka musi zostać przeprowadzona po stronie serwerów webowych, czyli z zainstalowanym systemem Microsoft SharePoint 2013.

Pierwszym elementem konfiguracji serwerów webowych jest doinstalowanie pakietu RBS client library (RBS.msi). Jest on dostępny do pobrania z witryny Microsoft Download, np. w ramach zasobu Microsoft SQL Server 2014 Feature Pack.

Proces instalacji wspomnianego pakietu najlepiej aby odbywał się w sposób skryptowy przy wykorzystaniu narzędzia msiexec. Główną przyczyną niniejszego podejścia jest wykorzystanie odmiennych parametrów w zależności od danej konfiguracji infrastruktury. Mianowicie, gdy instalujemy pakiet w ramach pierwszego z serwerów webowych należy wykorzystać następujące polecenie:

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

…gdzie dla parametrów DBNAME oraz BINSTANCE, należy odpowiednio wskazać bazę danych zawartości witryny SharePoint oraz instancję serwera SQL w ramach którego pracuje wskazana baza.

Niemniej jednak gdy omawiana operacja odbywa się w ramach kolejnych serwerów webowych, farmy SharePoint 2013, konieczne jest zmodyfikowanie wcześniej przedstawionego mechanizmu instalacji pakietu. Otóż w tym przypadku należy skorzystać na poniższego polecenia:

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

…gdzie analogicznie należy wskazać nazwę bazy danych oraz instancji MS SQL Server.

Sytuacja minimalnie się komplikuje w przypadku gdy zamierzamy wykorzystywać wiele baz z zawartością. Mianowicie, przeprowadzenie normalnego procesu instalacji pakietu może nie przynieść należytego skutku, dlatego należy zmodyfikować instalacje przy użyciu odpowiednich parametrów:

msiexec /qn /lvx* rbs_install_log.txt /i rbs.msi REMOTEBLOBENABLE=1 FILESTREAMPROVIDERENABLE=1 FILEGROUP=PRIMARY FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FileStreamProvider_1 ADDLOCAL="EnableRBS,FilestreamRunScript" DBINSTANCE="DBInstanceName" DBNAME="WSS_Content2"

Sam proces instalacji, z racji iż jest wykonywany skryptowo odbywa się w tle, niemniej jednak trwa on stosunkowo krótko. Może on zostać zweryfikowany poprzez podejrzenie pliku z zapisem zdarzeń, który został wskazany podczas instalacji (rdb_install_log.txt). Jeżeli instalacja przebiegnie pomyślnie w ramach końcowych wpisów powinien widnieć wiersz zawierający następujące informacje: Product: SQL Remote Blob Storage – Installation completed successfully. W przeciwnym wypadku należy dokonać analizy zdarzeń i wyeliminować problemy, które powodują błędną instalację pakietu.

W ekstremalnych przypadkach oczywiście możliwe jest wykorzystanie podejścia graficznego poprzez ręczną weryfikację niezbędnych parametrów. Całość można wywołać w identyczny sposób, jednakże z pominięcie parametrów /qn:

msiexec /lvx* rbs_install_log.txt /i RBS.msi REMOTEBLOBENABLE=1 FILESTREAMPROVIDERENABLE=1 FILEGROUP=PRIMARY FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FileStreamProvider_1  DBNAME="WSS_Content2" DBINSTANCE="DBInstanceName" ADDLOCAL="EnableRBS,FilestreamRunScript"

Włączenie samej funkcjonalności RBS w ramach SharePoint 2013 odbywa się poprzez modyfikację ustawień bazy zawartości witryn Microsoft SharePoint 2013. W tym celu wystarczy załadować konfigurację bazy przy wykorzystaniu cmdletu Get-SPContentDatabase, a następnie przejść do ustawień RemoteBlobStorageSettings.

$cdb = Get-SPContentDatabase WSS_Content
$rbss = $cdb.RemoteBlobStorageSettings

W ramach konfiguraci RBS wystarczy wywołać odpowiednio metody Installed() oraz następnie Enable(). Ostatecznie wystarczy wskazać nazwę dostawcy usługi RBS.

$rbss.Installed()
$rbss.Enable()
$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])

Oczywiście kierowanie wszystkich plików publikowanych w ramach witryn SharePoint 2013 do rozwiązania Remote Blob Storage nie zawsze jest dobrym rozwiązaniem. Dotyczy to głównie sytuacji gdzie zamierzamy publikować dużą ilość małych plików. Dlatego w niniejszym podejściu najlepiej zastosować ograniczenie, w ramach którego tylko pliki powyżej ustalonego rozmiaru będą przekierowywane do RBS. Mniejsze pliki będą dalej przechowywane w ramach bazy, czyli klasycznego typu danych jakim jest BLOB.

$cdb = Get-SPContentDatabase WSS_Content
$cdb.RemoteBlobStorageSettings.MinimumBlobStorageSize = 10485760
$cdb.Update()

Dodatkowo można ustawić wielkość poszczególnych plików zapisywanych na dysku w ramach samego RBS. Należy jednak pamiętać by limit ten był większy od wartości MinimumBlobStorageSize.

$wa = Get-SPWebApplication
$wa.WebService.FileWriteChunkSize = 104857600
$wa.webservice.update()

Weryfikacja poprawności całego procesu może nastąpić na wiele sposobów. Niemniej jednak najprostszą metodą jest zweryfikowanie czy w ramach lokalizacji, w której składowane mają być dane RBS tworzone są nowe pliki z danymi w momencie gdy umieścimy je w ramach witryny SharePoint 2013.

Źródła:
http://technet.microsoft.com/en-us/library/ee748631(v=office.15).aspx
http://www.microsoft.com/en-us/download/details.aspx?id=42295

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s