適用対象:2013
2016
2019
Subscription Edition
SharePoint in Microsoft 365
通常のドキュメントではなく、リッチ コンテンツに SharePoint を使用する組織が増え、ストレージ要件は多くの場合に増加しています。 管理者は、SharePoint のコンテンツを定期的に確認してクリーンする必要があります。 既定では、メタデータなどの構造化コンテンツ、またはファイルなどの非構造化コンテンツはすべて、SharePoint Server に接続されている SQL サーバーのコンテンツ データベースに格納されます。 SharePoint の非構造化データは、バイナリ ラージ オブジェクト (BLOB) としてコンテンツ データベースに格納され、変更できません。
SharePoint 2013 では、コンテンツ データベースから BLOB をオフロードするために SQL Server でリモート BLOB ストレージ (RBS) テクノロジが作成され、その時点で SQL FILESTREAM プロバイダーが提供されました。 SharePoint Server サブスクリプションでは、SQL Server からネットワーク SMB ストレージにコンテンツをオフロードすることで、オンプレミス環境での SharePoint 展開の全体的なコストを合理的かつ使いやすいストレージ ソリューションとして削減するために、IT 管理者向けに新しいリモート共有プロバイダーが作成されました。
リモート共有プロバイダーの主な機能
SharePoint Server サブスクリプション エディションでは、新しい RBS プロバイダーリモート共有プロバイダーを提供します。
リモート共有プロバイダーの主な機能を次に示します。
- このプロバイダーは、リモート SMB システムへのバイナリ ラージ オブジェクト (BLOB) ストレージ オフロードをサポートし、SQL Server 側のコンテンツ データベース ストレージを完全に有効にします。 そのため、200 GB のサイズと同じ量のコンテンツ データベースの制限により、1 つのコンテンツ データベースに格納できるファイル ボリュームを増やすことができます。 そのため、ストレージのコストを削減するだけでなく、メンテナンスにも役立ちます。
- データの完全性をチェックしてストレージの問題を把握するための PowerShell コマンドレットがあります。
- SMB システムの既存のバックアップと復元の手法を適用することで、比較的合理的なディザスター リカバリーが提供されます。
リモート共有プロバイダーの制限事項
リモート共有プロバイダーは、新しいストレージ システムを SharePoint に導入します。 その他のシステムでは、状況によっては複雑さと信頼性のダウングレードが発生する可能性があります。 RBS に基づいているため、リモート共有プロバイダーにも適用される制限事項を次に示します。
- 透過的なデータ暗号化が有効になっている場合でも、BLOB では暗号化はサポートされません。
- RBS では、データ圧縮の使用はサポートされていません。
- コンテンツ データベースと BLOB ストレージは分離されるため、ファームからのバックアップと復元、およびコンテンツ データベース レベルでは、ディザスター リカバリーには十分ではありません。 BLOB ストレージは、ファームおよびコンテンツ データベース レベルのバックアップと回復を実行するときに、同時にバックアップおよび回復する必要があります。
リモート共有プロバイダーの長所と短所
SQL サーバー内に BLOB を格納する場合と比較すると、リモート共有プロバイダーを使用する利点と欠点があります。
利点:
- 非構造化データを SQL の外部に移動することで、SQL のパフォーマンスを向上させます。
- 低コストの SMB ストレージを使用して、ストレージ コストを削減します。
- 多数のファイルを格納します。
欠点:
- リモート ストレージ (SMB) には、他のバックアップと復元の手順が必要です。
- リモート ストレージ (SMB) でセキュリティとデータ保護を個別に構成する必要があります。
- 別のストレージ 層を使用すると、高可用性とディザスター リカバリー (HADR) であるシステム全体の可用性と信頼性が低下し、SMB ストレージ用に HADR を設定するまで既定では機能しません。
リモート共有プロバイダーの計画
リモート共有プロバイダーは、必要なシナリオに適しています。
- サイト コレクション内の膨大な量のコンテンツは、ストレージ コストとシステム パフォーマンスに問題を引き起こす可能性があります。
- サイト コレクションは、タイム クリティカルなビジネス向けではありません。 サイト コレクションがダウンしている場合は、コンテンツ データベースとリモート BLOB ストレージの復元に時間がかかる場合があります。 この特定のサイト コレクションのサービスダウンタイムは、organizationビジネスに大きな影響を与えることはありません。
- そのサイト コレクションに対する書き込み操作よりも多くの READ 操作。
SQL Server のバックアップまたは復元でリモート ストレージ システムに格納されている BLOB をカバーできない場合があるため、SharePoint としてリモート ストレージ システムのバックアップと復元の方法を計画する必要があります。 コンテンツ データベースとリモート BLOB ストレージを同時にバックアップできるように、System Center Data Protection Manager (DPM) を使用してバックアップと復元を管理することをお勧めします。
DPM では、SharePoint コンテンツ データベースとリモート SMB ストレージの両方の保護グループを作成して、これらのデータ セットを DPM でバックアップ/管理できます。 詳細については、以下を参照してください:
DPM を使用してバックアップと復元を管理しない場合は、次の 2 つの手順に従って SharePoint を順番にバックアップできます。
- PowerShell コマンドレットを使用して、ファームまたはコンテンツ データベース Backup-SPFarm バックアップします。
- 既存のバックアップ ツールを使用してリモート SMB ストレージをバックアップします。
SharePoint を元に戻すには、シーケンスを次のように元に戻します。
- バックアップ ストレージから SMB ストレージを復元します。
- PowerShell コマンドレットを使用してコンテンツ データベースまたはファーム Restore-SPFarm 復元します。
リモート共有プロバイダーは、データのセキュリティを確保するための暗号化を提供しません。 SMB ストレージによって提供されるセキュリティとアクセス制御に依存します。 そのため、BLOB データを脅威から保護するには、ストレージ レベルで適切なアクションを実行する必要があります。
- SMB 暗号化を有効にして、BLOB がネットワークとストレージを介して安全に転送されるようにします。
- アクセス制御を有効にして、SMB ストレージ内の BLOB にアクセスできるのは制限されたユーザーだけです。
- BitLocker を有効にしてデータの安全性を強化します。
高可用性の検討
SQL サーバーに付属する既定の FILESTREAM プロバイダーを使用すると、高可用性とディザスター リカバリー (HADR) は HADR クラスター SQL Server処理されます。
新しいリモート共有プロバイダーに移行すると、このSQL Server レベルの HADR は SMB ストレージ内の BLOB をカバーできません。 そのため、リモート共有プロバイダーは、既定で SQL サーバー HADR と同じをサポートできません。 HADR 対応の SMB ストレージを設定し、SharePoint および SQL サーバーとレイヤー HADR システムを統合するには、より多くのコストと労力が必要です。
高可用性は、過去にフェールオーバー SharePoint ファームを設定することでサポートされていました。 リモート共有プロバイダーでは、引き続き機能します。
リモート共有プロバイダーを使用したフェールオーバー ファームには、2 つの異なる構成があります。
アクティブな SharePoint ファームとフェールオーバー ファームの間で同じ SMB BLOB ストレージを共有します。
この構成には、SharePoint サーバーと SQL サーバーの 2 つのセットがありますが、BLOB 用に同じ SMB ストレージを共有します。 リアルタイム データベース同期は、アクティブな SharePoint ファームのアクティブな SQL サーバーからフェールオーバー SharePoint ファームの SQL Server への変更をストリーミングするように設定されます。 そのため、アクティブな SharePoint ファームに問題がある場合は、管理者はすぐに SharePoint ファームのフェールオーバーに切り替えることができます。
SMB BLOB ストレージ フェールオーバー バックアップを使用して、アクティブな SharePoint ファームとフェールオーバー ファーム間で同じ SMB BLOB ストレージを共有します。
この構成は、SMB BLOB ストレージのフェールオーバー バックアップがある場合を除き、構成 #1 とまったく同じです。 データベースが同期されるだけでなく、SMB ストレージもバックアップされます。 この状況では、アクティブな SharePoint ファームに問題がある場合は、他の設定でフェールオーバー ファームに切り替えて、SMB ストレージ UNC パスをフェールオーバー SMB ストレージに変更できます。
セキュリティとアクセス許可
リモート共有プロバイダーは、データのセキュリティを確保するための暗号化を提供しません。 SMB ストレージによって提供されるセキュリティとアクセス制御に依存します。 そのため、BLOB データを脅威から保護するには、ストレージ レベルで適切なアクションを実行する必要があります。
- SMB 暗号化を有効にして、BLOB がネットワークとストレージを介して安全に転送されるようにします。
- アクセス制御を有効にして、SMB ストレージ内の BLOB にアクセスできるのは制限されたユーザーだけです。
- 可能であれば、BitLocker を有効にしてデータの安全性を強化します。
- 「 各コンテンツ データベースの BLOB ストアをプロビジョニング する」セクションの手順を実行するために使用するユーザー アカウントは、RBS を構成する各データベースの
db_owner
固定データベース ロールのメンバーである必要があります。 - 「SQL Serverに RBS クライアント ライブラリをインストールする」の手順にあるクライアント ライブラリをインストールするユーザー アカウントと、各フロントエンドまたはアプリケーション サーバー セクションは、ライブラリをインストールするすべてのコンピューターの管理者グループのメンバーである必要があります。
- 「コンテンツ データベースごとに RBS を有効にする」セクションで RBS を有効にするユーザー アカウントには、Microsoft PowerShell を実行する十分なアクセス許可が必要です。
リモート共有プロバイダーの設定
RBS ライブラリを evert SharePoint フロントエンドとアプリケーション サーバーにインストールする
次のコマンド ラインを使用して、SharePoint ファーム内のすべての SharePoint フロントエンドおよびアプリケーション サーバーに RBS ライブラリをインストールします。
Msiexec /qn /lvx* rbs_install_log.txt /I RBS.msi ADDLOCAL="Client"
注:
GUI を使用して RBS ライブラリをインストールしないでください。
特定のコンテンツ データベースで RBS 機能を有効にする
RBS は、特定のコンテンツ データベースに適用されます。 そのため、新しいコンテンツ データベースで RBS を使用する必要がある場合は、必ず設定する必要があります。 その後、RBS プロバイダーをコンテンツ データベースに登録できます。
RBS を適用するこのコンテンツ データベースのマスター キーがあることを確認します。 マスター キーが存在しない場合は、コンテンツ データベース用の新しいキーを作成します。
特定のコンテンツ データベースのマスター キーを作成するには:
- これらの手順を実行するユーザー アカウントが、RBS 用に構成する各データベースの
db_owner
固定データベース ロールのメンバーであることを確認します。 - SQL Server Management Studio を開きます。
- コンテンツ データベースをホストする SQL Server インスタンスに接続します。
- [ データベース] を展開します。
- BLOB ストアを作成するコンテンツ データベースを選択し、[ 新しいクエリ] をクリックします。
- [ クエリ ] ペインに次の SQL クエリを貼り付け、一覧表示されたシーケンスで実行します。 いずれの場合も、
[WSS_Content]
をコンテンツ データベース名に置き換え、c:\BlobStore
を BLOB ストアを作成するvolume\directory
に置き換えます。 The provisioning process creates a folder in the location that you specify. BLOB ストアは 1 回だけプロビジョニングできます。 If you attempt to provision the same BLOB store multiple times, you'll receive an error.
#Replace with <your content database>
use [<Your content database>]
#Replace with your <Your SQL database instance>
if not exists
(select * from sys.symmetric_keys
where name = N'##MS_DatabaseMasterKey##')
create master key encryption by password = N'<Admin Key Password>'
以下のコマンド ラインを使用して、コンテンツ データベースごとに RBS を設定できます。 DBNAME と DBINSTANCE を、特定のコンテンツ データベース名とデータベース インスタンス名に置き換えます。
msiexec /qn /lvc* rbs.log /i rbs.msi TRUSTSERVERCERTIFICATE=true DBNAME="Your content database" ADDLOCAL="ServerScript,EnableRBS" DBINSTANCE="Your SQL database instance"
リモート共有プロバイダーの資格情報の設定
制限付き SMB ストレージにアクセスするには、特定のドメイン アカウントをリモート共有プロバイダーに割り当てて SMB ストレージ内の BLOB ファイルを読み取り/書き込みすることをお勧めします。 プロバイダーは PSCredential オブジェクトを使用して、この特定のアカウント資格情報を使用してリモート RBS ストレージにサインインしています。
RBS プロバイダーの PSCredential オブジェクトを取得するには、「 Get-Credential」 を参照してください。
リモート共有プロバイダーへの BLOB ストアの登録
コンテンツ データベースから SMB ストレージに BLOB ストレージをオフロードするには、リモート共有プロバイダーを使用して新しいリモート共有 BLOB ストアを作成し、特定のコンテンツ データベースに登録する必要があります。
Register-SPRemoteShareBlobStore
コマンドレットを使用して、特定のコンテンツ データベースの新しい BLOB ストアを登録できます。
Register-SPRemoteShareBlobStore -ContentDatabase <SPContentDatabasePipeBind> -Name <BlobStoreName[ValidateLength(8, 128)]> -Location <UNCPath> [-BlobStoreCredential <PSCredential>][- PoolCapacity <Int>]
コマンドレット パラメーターは次のとおりです。
-ContentDatabase <SPContentDatabasePipeBind>
新しい BLOB ストアが適用されるコンテンツ データベースには、コンテンツ データベース オブジェクトまたはコンテンツ データベース名を指定できます。
-Name <BlobStoreName[ValidateLength(8, 128)]>
新しく作成された BLOB ストアの名前。
-Location<UNCPath[ValidateLength(5, 256)]>
この BLOB ストアが使用する SMB ストレージの UNC パス。
[-BlobStoreCredential] <PSCredential>
SMB ストレージへのアクセスに使用される PSCredential オブジェクト。 このパラメーターが指定されていない場合は、現在の Web アプリケーションに適用されるサービス アカウントが使用されます。
[-PoolCapacity] <Int [ValidateRange(1000, 10000)]>
各 BLOB プール内の BLOB トランクの数。 このパラメーターが指定されていない場合は、1000 に設定されます。
コマンドレット構文の例:
Register-SPRemoteShareBlobStore -ContentDatabase $db -Name "RemoteBlob" -Location "\\SPVNEXT\blobstore"
BLOB ストアの切り替えとアクティブ化
登録済みのリモート共有 BLOB ストアは、アクティブ化されるまで有効になりません。
Switch-SPBlobStorage
コマンドレットは、新しく作成されたリモート共有 BLOB ストアにコンテンツ データベースに新しいコンテンツがルーティングされるように、 Register-SPRemoteShareBlobStore
後に実行する必要があります。
Switch-SPBlobStorage -RemoteShareBlobStore <SPRemoteShareBlobStorePipeBind>
このコマンドレットは、コンテンツ データベースの既定の BLOB ストレージを、指定されたリモート共有 BLOB ストアに切り替えます。 BLOB ストアはファーム内で一意であり、特定のコンテンツ データベースにリンクされているため、このコマンドレットでコンテンツ データベースを指定する必要はありません。
アクティブになるリモート共有 BLOB ストアには、リモート共有 BLOB ストア オブジェクトまたはリモート共有 BLOB ストア名を指定できます。
構文の例:
$blobstore = Register-SPRemoteShareBlobStore -ContentDatabase $db -Name "RemoteBlob" -Location \\SPVNEXT\blobstore
Switch-SPBlobStorage -RemoteShareBlobStore $blobstore
Switch-SPBlobStorage -ContentDatabase <SPContentDatabasePipeBind> -SQL
このコマンドレットは、既定の BLOB ストレージを SQL のコンテンツ データベースに切り替えます。
-ContentDatabase <SPContentDatabasePipeBind
コンテンツ データベース。SQL に戻す必要があります。 コンテンツ データベース オブジェクトまたはコンテンツ データベース名を指定できます。
SQL
コンテンツ データベースが新しいコンテンツに BLOB ストレージに SQL を使用することを示します。
構文の例:
Switch-SPBlobStorage -ContentDatabase $db -SQL
Web アプリケーション プール アカウントと SharePoint サービス アプリケーション プール アカウントにアクセス許可を付与する
RBS のセットアップ後、コンテンツ データベースに新しいスキーマ mssqlrbs
が作成されます。 そのため、Web アプリケーションとサービス アプリケーションがコンテンツ データベースの RBS にアクセスできるように、この新しいスキーマのアクセス許可を Web アプリケーション プール アカウントと SharePoint サービス アプリケーション プール アカウントに付与する必要があります。
SQL Server で次のサンプル SQL コマンドを使用して、アクセス許可を付与します。
ALTER AUTHORIZATION ON SCHEMA::mssqlrbs to [web_app_pool_account];
ALTER AUTHORIZATION ON SCHEMA::mssqlrbs to [service app_pool_account];
IIS のリセット
リモート共有 BLOB ストアがコンテンツ データベースの既定の BLOB ストレージになったら、すべての SharePoint フロントエンド サーバーと SharePoint アプリケーション サーバーで iisreset
を実行する必要があります。 その後、リモート共有プロバイダーを使用して、新しいコンテンツが外部 SMB ストレージに書き込まれます。
リモート共有 BLOB ストアの管理と構成
Get-SPRemoteShareBlobStore
コマンドレットを使用して、ファーム内のリモート共有 BLOB ストアを取得できます。
Get-SPRemoteShareBlobStore -RemoteShareBlobStore <SPRemoteShareBlobStorePipeBind>
このコマンドレットは、リモート共有 BLOB ストア名によってリモート共有 BLOB ストア オブジェクトを取得します。
Get-SPRemoteShareBlobStore -ContentDatabase <SPContentDatabasePipeBind>
このコマンドレットは、指定されたコンテンツ データベースのすべてのリモート共有 BLOB ストア オブジェクトを取得します。
Get-SPRemoteShareBlobStore
このコマンドレットは、現在のファームのすべてのリモート共有 BLOB ストア オブジェクトを取得します。
リモート共有 BLOB ストアの構成はいつでも変更できます。
Set-SPRemoteShareBlobStore -RemoteShareBlobStore <SPRemoteShareBlobStorePipeBind> [-Location <String>] [-BlobStoreCredential <PSCredential>] [-PoolCapacity <int>]
コマンドレット パラメーターは次のとおりです。
-RemoteShareBlobStore <SPRemoteShareBlobStorePipeBind>
リモート共有 BLOB ストアを変更する必要があります。 リモート共有 BLOB ストア オブジェクトまたはリモート共有 BLOB ストア名を指定できます。
[-Location <String>]
BLOB ストレージを切り替える必要がある UNC パス。 このパラメーターは、使用する SMB ストレージの UNC パスを変更します。 BLOB は古い SMB ストレージから新しい SMB ストレージに移動されません。
[-BlobStoreCredential <PSCredential>]
適用するために BLOB ストレージを切り替える必要がある PSCredential オブジェクト。
[-PoolCapacity <int>]
BLOB ストアで使用される各プールの容量。
あるリモート共有 BLOB ストアから別のリモート共有 BLOB ストアへの BLOB の移行
1 つのコンテンツ データベースに複数の BLOB ストアを含めることができます。また、これらの BLOB ストアの 1 つだけを WRITE に対してアクティブにできますが、他の BLOB ストアは READ 専用です。 BLOB をある BLOB ストアから別の BLOB ストアに移動する必要がある場合があります。 たとえば、新しい SMB ストレージを設定し、すべての BLOB を新しい SMB ストレージに移動する必要がある場合があります。 このような場合は、SQL または古い BLOB ストアから新しい BLOB ストアにデータを移行する必要があります。
次のサンプルに従うと、BLOB を古い BLOB ストレージから、Migrate() をコミットして作成された新しいアクティブな BLOB ストアに移行できます。
$db = Get-SPContentDatabase $YourDatabaseName
$rbss = $db.RemoteBlobStorageSettings
$rbss.SetActiveProviderName($YourBlobStoreName)
$rbss.Migrate()
BLOB を BLOB ストアから SQL コンテンツ データベースに移行する場合は、次の例に従って、アクティブなプロバイダーを空に設定します。
$db = Get-SPContentDatabase $YourDatabaseName
$rbss = $db.RemoteBlobStorageSettings
$rbss.SetActiveProviderName()
$rbss.Migrate()
リモート共有 BLOB ストアの登録解除
コマンドレット Unregister-SPRemoteShareBlobStore
を使用して、リモート共有 BLOB ストアの登録を解除できます。
Unregister-SPRemoteShareBlobStore -RemoteShareBlobStore <SPRemoteShareBlobStorePipeBind> [-Force]
コマンドレット パラメーターは次のとおりです。
RemoteShareBlobStore <SPRemoteShareBlobStorePipeBind>
リモート共有 BLOB ストアの登録を解除する必要があります。 リモート共有 BLOB ストア オブジェクトまたはリモート共有 BLOB ストア名を指定できます。 RemoteShareBlobStore がコンテンツ データベースでアクティブであるか、この BLOB ストアでまだ BLOB が使用されている場合、このコマンドレットは例外をスローします。
[-Force]
このスイッチは、RemoteShareBLOBStore がアクティブでなくても BLOB がまだ使用されている場合でも、登録解除を強制します。 このような BLOB ストアの登録を解除する必要がある場合は、このスイッチでコマンドレットを実行して、BLOB ストア内の使用中の BLOB の検出を無視できます。 BLOB ストアがコンテンツ データベースでアクティブな場合、このコマンドレットは例外をスローして、使用中の BLOB ストアの意図しない登録解除を防ぎます。
この -Force スイッチを使用することはお勧めしません。SMB ストレージに BLOB が残され、SharePoint のコンテンツがアクセスできなくなります。 BLOB を最初に移行してから、リモート共有 BLOB ストアの登録を解除することをお勧めします。
リモート共有 BLOB ストアのデータ整合性の検証
コマンドレット Test-SPRemoteShareBlobStore
によって、コンテンツ データベースで使用されるリモート共有 BLOB ストアを検証できます。
Test-SPRemoteShareBlobSotore -ContentDatabase <SPContentDatabasePipeBind> [-LogPath <String>]
コマンドレット パラメーターは次のとおりです。
-ContentDatabase <SPContentDatabasePipeBind>
コンテンツ データベースは、 に対して検証する必要があります
[-LogPath <String>]
検証ログのパス。