RBS dla SharePoint 2013 cz.1

W dzisiejszym wpisie przyjrzymy się nieco technologii RBS, czyli Remote BLOB Storage, w szczególności w połączeniu z systemem SharePoint 2013. Omawiany mechanizm pozwala znacznie usprawnić mechanizm magazynowania danych w sytuacji gdy zamierzamy składować duże pliki w ramach witryn systemu SharePoint 2013.Zanim przejdziemy do faktycznej konfiguracji, należy przybliżyć na czym polega praca Remote BLOB Storage. Mianowicie, w ramach systemu bazodanowego Microsoft SQL Server, np. w wersji 2014, można gromadzić dane typu BLOB (Binary Large Object). Niniejszy typ dedykowany jest do przechowywania dużych obiektów binarnych, co oznacza iż idealnie nadaje się do składowania plików. Niemniej jednak trzymanie w ramach bazy danych dużej ilości plików, może doprowadzić do nadmiernego rozrostu pliku samej bazy, co nie wpłynie zbyt pozytywnie na jej wydajność. Dlatego, w ów sytuacji najlepiej przekierować zapisywane dane typu BLOB, bezpośrednio na dysk.

Pierwszym elementem konfiguracji jest odpowiednie przygotowanie wolumenu, na którym będą składowane dane. Mianowicie, najlepiej aby rozmiar klastra systemu plików był wielkości 64KB, a nie jak to jest domyślnie proponowane podczas formatowania – 4KB. Aktualny rozmiar klastra dla wolumenu systemu plików możliwy jest do podejrzenia przy wykorzystaniu narzędzia fsutil:

fsutil fsinfo ntfsinfo d:

Dodatkowo, bezpośredni wpływ na wydajność technologii RBS, ma zastosowanie mechanizmu RAID na odpowiednim poziomie, tak aby była zapewniona należyta wydajność dysków oraz jednocześnie, aby był zachowany odpowiedni poziom odporności na awarie. Ostatecznie, najlepiej również wykluczyć skanowanie zasobów wolumenu FILESTREAM dla oprogramowania antywirusowego.

Podstawowym elementem całej konfiguracji jest włączenie funkcjonalności FILESTREAM, w ramach konfiguracji instancji serwera Microsoft SQL Server 2014. Jest on wykonywany jednorazowo dla każdej instancji, która ma wykorzystywać funkcjonalność FILESTREAM. Najprościej tego dokonać przy wykorzystaniu konsoli SQL Server 2014 Configuration Manager. W ramach niej należy odnaleźć instancję SQL Server, która obsługuje bazy pracujące w ramach systemu SharePoint 2013. Następnie w ramach właściwości wspomnianej instancji należy włączyć opcję Enable FILESTREAM for Transact-SQL access.

RBS1

Dodatkowo z poziomu transact-SQLa, konieczne jest ustawienie odpowiedniego poziomu dostępu, który polega na ustawieniu odpowiedniej wartości dla parametru filestream_access_level.

Invoke-Sqlcmd –Query "EXEC sp_configure filestream_access_level, 2
RECONFIGURE" -Verbose

Mianowicie, może on przyjmować następujące wartości:
0 – wyłączenie FILESTREAM dla wskazanej instancji
1 – włączenie FILESTREAM dla dostępu Transact-SQL
2 – włączenie FILESTREAM dla dostępu Transact-SQL oraz Win32

Ostatecznie, należy ponownie uruchomić usługę instancji SQL Server.
Drugim elementem konfiguracji serwera bazodanowego jest włączenie funkcjonalności dla każdej z baz danych, która będzie wykorzystywała zapisywanie danych bezpośrednio na dysku twardym. W przypadku systemu SharePoint 2013, będą to bazy typu content database.

Niniejsza konfiguracja przebiega trzyetapowo. Mianowicie, w pierwszej kolejności konieczne jest wygenerowanie hasła dla klucza zabezpieczającego składowane dane. Odbywa się to jednorazowo dla danej bazy, dlatego konieczne jest zastosowanie zapytania warunkowego w przypadku gdyby takowy klucz już był wcześniej wygenerowany.

Invoke-Sqlcmd –Query "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'" -Verbose

…gdzie należy pamiętać, aby w miejsce WSS_Content, wprowadzić nazwę bazy danych, którą aktualnie wykorzystujemy do gromadzenia danych systemu SharePoint 2013.

Drugim etapem konfiguracji bazy jest dodanie ustawień RBSFilestreamProvider. Odbywa się to poprzez modyfikację konfiguracji bazy danych, a konkretnie poprzez dodanie grupy plików dla obsługi FILESTREAM.

Invoke-Sqlcmd –Query "use [WSS_Content]
if not exists
(select groupname from sysfilegroups
where groupname=N'RBSFilestreamProvider')
alter database [WSS_Content]
add filegroup RBSFilestreamProvider contains filestream" –Verbose

Na zakończenie konieczna jest jeszcze jedna zmiana konfiguracji bazy danych. Otóż należy wskazać lokalizację plików składowanych poprzez funkcjonalność RBS w ramach lokalnego systemu plików. Należy pamiętać, iż każda baza z włączoną opcją FILESTREAM, musi wykorzystywać unikalną lokalizację na dysku. Oznacza to, że każda baza musi składować dane w ramach dedykowaną folderu.

Niniejsza część konfiguracji można wykonać w zbliżony sposób jak w poprzednim kroku, jednakże tym razem dodając opcję z grupy file.

Invoke-Sqlcmd –Query "use [WSS_Content]
alter database [WSS_Content]
add file (name = RBSFilestreamFile, filename =
'D:\Blobstore')
to filegroup RBSFilestreamProvider " –Verbose

Zaprezentowana konfiguracja zalicza się do jedynych modyfikacji, jakie należy wykonać w ramach serwera MS SQL Server 2014. Niemniej jednak nie jest to jeszcze koniec całej konfiguracji RBS dla systemu SharePoint 2013. Dlatego w kolejnym wpisie zostaną opisane kroki jakie należy wykonać w ramach dedykowanych maszyn serwerów sieci web.

Źródła:
http://technet.microsoft.com/en-us/library/ee748631(v=office.15).aspx
http://msdn.microsoft.com/library/cc645923.aspx

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ń )

Facebook photo

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

Google+ photo

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

Connecting to %s