SharePoint 2010에서 FILESTREAM 사용

최초 문서 게시일: 2011년 4월 21일 목요일

작성자: Bill Baer(Microsoft Corporation 수석 기술 제품 관리자 - SharePoint)

FILESTREAM은 SQL Server 2008에서 새롭게 제공되는 기능으로, NTFS 파일 시스템에서 구조화되지 않은 데이터를 저장할 수 있도록 합니다. FILESTREAM(로컬/원격)은 주소를 지정할 수 있는 콘텐츠 또는 상용 저장소에서 구조화되지 않은 대규모 이진 데이터를 저장할 수 있도록 함으로써 자본 지출을 줄이는 메커니즘의 하나로 SharePoint 2010에서 지원됩니다.

구조화되지 않은 데이터

구조화되지 않은 데이터란 정의된 모델을 따르지 않거나, 관계형 테이블에 적합하지 않은 정보를 지칭합니다. SharePoint에서 구조화되지 않은 데이터는 Microsoft Office 문서 파일 형식, 비디오, 오디오 및 관련 파일 형식을 가리킬 수 있습니다.

 

구조적 데이터

SharePoint에서 구조적 데이터란 해당하는 구조화되지 않은 데이터 또는 BLOB와 연결된 메타데이터를 지칭합니다. 구조적 데이터의 가장 일반적인 예는 관계형 데이터베이스입니다.

 

SQL Server 및 구조화되지 않은 데이터 저장소

RBS, SQL BLOB 및 FILESTREAM의 세 가지 방법으로 SQL Server에서 구조화되지 않은 데이터를 저장할 수 있습니다.

  • RBS(Remote BLOB Storage). SharePoint는 SQL Server의 새로운 계층에서 RBS를 통해 별도의 BLOB 저장소(파일 시스템 또는 전용 BLOB 저장소)에서 데이터베이스 외부에 저장된 BLOB 데이터를 읽거나 업데이트합니다.
  • SQL BLOB(SharePoint에 포함된 기존의 BLOB 저장소를 지칭함). BLOB 데이터는 구조적 메타데이터와 함께 콘텐츠 데이터베이스에 저장됩니다.
  • FILESTREAM

 

FILESTREAM 개요

FILESTREAM은 varbinary(max) 데이터 형식에서 구현되며, 이 데이터 형식은 파일 자체가 아닌 파일 시스템 디렉터리(데이터 컨테이너라고도 함)를 포함하는 FILESTREAM 파일 그룹을 통해 파일 시스템에 구조화되지 않은 데이터를 저장하도록 데이터베이스 엔진에 명령합니다. 데이터 컨테이너는 데이터베이스 엔진 저장소와 파일 시스템 저장소 간의 인터페이스입니다. varbinary는 SharePoint 2010 콘텐츠 데이터베이스에 저장되는 BLOB(Binary Large Object)의 이진 데이터 형식 대상이며, 변수 길이 이진 데이터를 지칭합니다. (MAX)는 최대 저장소 크기가 2^31-1바이트(2GB)인 값을 지칭합니다. Remote BLOB Storage에서는 SharePoint에서 적용되는 2GB의 파일 크기 제한을 초과하는 메커니즘을 제공하지 않습니다.

 

SharePoint 2010에서 원격 BLOB 데이터는 RBS용으로 구성되는 콘텐츠 데이터베이스의 고유 식별자를 통해 참조됩니다(그림 참조).

 

 

 

 

 

FILESTREAM은 성능과 관련하여 여러 가지 이점을 제공합니다. 우선, FILESTREAM은 NT 시스템 캐시를 사용하여 파일 데이터를 캐시하므로 FILESTREAM 데이터가 데이터베이스 엔진 성능에 주는 영향을 줄입니다. 또한 SQL Server 버퍼 풀이 사용되지 않기 때문에 쿼리 처리에 메모리를 사용할 수 있습니다.

 

FILESTREAM은 SharePoint를 사용하여 1MB를 초과하는 BLOB 데이터 또는 FILESTREAM 기능을 활용하는 비디오 파일 등의 큰 BLOB 데이터를 저장하는 시나리오에서 최적의 값을 제공합니다.

 

특수 고려 사항

 

FILESTREAM을 통한 비즈니스 연속성 관리

 

FILESTREAM 파일 그룹은 주 서버에 만들 수 없으며, FILESTREAM 파일 그룹이 없는 데이터베이스에 대해서는 데이터베이스 미러링을 구성할 수 없기 때문에 데이터베이스 미러링은 FILESTREAM을 지원하지 않습니다. FILESTREAM 공급자를 사용하여 BLOB 데이터를 로컬로, 즉 같은 콘텐츠 데이터베이스 내에 저장하는 경우에는 데이터베이스 미러링용으로 데이터베이스를 구성할 수 없습니다.

 

FILESTREAM 공급자가 별도의 SQL 데이터베이스 내에 BLOB 데이터를 저장하도록 구성되어 있거나, 타사 BLOB 저장소를 사용하는 경우에는 콘텐츠 데이터베이스를 미러링할 수 있습니다. 그러나 데이터베이스 미러링은 콘텐츠 데이터베이스에만 적용되고 BLOB 데이터에는 적용되지 않습니다. BLOB 데이터는 별도로 처리해야 하며, 연결된 메타데이터(콘텐츠 데이터베이스)와 동기화된 상태로 유지해야 합니다. FILESTREAM BLOB 데이터베이스의 경우에는 로그 전달을 통해 이 작업을 수행할 수 있습니다.

 

FILESTREAM과 SQL Server Remote BLOB Store 간의 차이에 대해 자세히 알아보려면 다음 항목도 참조하십시오. https://blogs.msdn.com/b/sqlrbs/archive/2009/11/18/sql-server-remote-blob-store-and-filestream-feature-comparison.aspx(영문일 수 있음)

 

FILESTREAM 및 Office Web Applications 캐시

 

Office Web Applications 캐시는 Word 및 PowerPoint Web Applications에서 브라우저를 통해 보도록 요청된 문서 버전을 만드는 데 사용됩니다. 이 과정에서 동일한 문서를 여러 번 요청하는 경우 문서나 프레젠테이션의 캐시된 버전을 사용할 수 있도록 제공함으로써 서버 컴퓨터에서 성능을 높이고 리소스 사용량을 줄입니다.

 

Office Web Applications 캐시는 두 개의 고유 계층, 즉 서버 파일 시스템과 웹 응용 프로그램별로 호스팅되는 "특수" 사이트 모음 내에서 생성됩니다. Office Web Applications를 통해 수행하는 문서 또는 프레젠테이션 요청은 클라이언트에서 사용할 수 있도록 이미지를 렌더링할 때 두 캐시 모두를 통해 처리됩니다. Office Web Applications 기능이 활성화된 웹 응용 프로그램 내의 모든 사이트 모음에서 두 캐시 위치를 모두 사용합니다.

 

FILESTREAM이 구성되어 있는 콘텐츠 데이터베이스는 캐시된 문서 또는 프레젠테이션 버전을 구성된 공급자 위치에 저장합니다. FILESTREAM을 사용하도록 구성되지 않은 데이터베이스에 대해 Office Web Applications 캐시를 구성하는 것이 좋습니다.

 

SharePoint 2010에서 FILESTREAM 구성

다음 지침은 단일 서버 배포에서 데모용으로 사용하기 위한 것이며, 로컬 FILESTREAM 공급자를 구현합니다.

 

대상 SQL Server 인스턴스에서 FILESTREAM 사용

 

1. 시작 메뉴에서 모든 프로그램, Microsoft SQL Server 2008 R2, 구성 도구를 차례로 가리키고 SQL Server 구성 관리자를 클릭합니다.

2. 서비스 목록에서 SQL Server 서비스를 마우스 오른쪽 단추로 클릭하고 열기를 클릭합니다.

3. SQL Server 구성 관리자 스냅인에서 FILESTREAM을 사용하도록 설정할 SQL Server 인스턴스를 찾습니다.

4. 인스턴스를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

5. SQL Server 속성 대화 상자에서 FILESTREAM 탭을 클릭합니다.

6. Transact-SQL 액세스에 FILESTREAM 사용 확인란을 선택합니다.

7. Windows에서 FILESTREAM 데이터를 읽고 쓰려면 파일 I/O 스트리밍 액세스에 FILESTREAM 사용을 클릭하고 Windows 공유 이름 상자에 Windows 공유의 이름을 입력합니다.

8. 원격 클라이언트가 이 공유에 저장된 FILESTREAM 데이터에 액세스해야 하는 경우 원격 클라이언트가 FILESTREAM 데이터에 대한 스트리밍 액세스 권한을 가질 수 있도록 허용을 선택합니다.

9. 적용을 클릭합니다.

10. 시작, 모든 프로그램, Microsoft SQL Server 2008 R2, SQL Server Management Studio를 차례로 클릭합니다.

11. SQL Server Management Studio에서 새 쿼리를 클릭하여 쿼리 편집기를 표시합니다.

12. 쿼리 편집기에 다음 Transact-SQL 코드를 입력합니다.

 

EXEC sp_configure filestream_access_level, 2

 

쿼리 편집기에 다음 Transact-SQL 코드를 입력합니다.

 

RECONFIGURE

RBS 데이터 저장소 프로비저닝

 

1. 시작, 모든 프로그램, Microsoft SQL Server 2008 R2, SQL Server Management Studio를 차례로 클릭합니다.

2. 데이터베이스를 확장합니다.

3. BLOB 저장소를 만들 콘텐츠 데이터베이스를 선택하고 새 쿼리를 클릭합니다.

4. SQL Server Management Studio에서 새 쿼리를 클릭하여 쿼리 편집기를 표시합니다.

5. 쿼리 편집기에 다음 Transact-SQL 코드를 입력합니다.

 

use [Database Name]

 

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'

 

쿼리 편집기에 다음 Transact-SQL 코드를 입력합니다.

 

use [Database Name]

 

if not exists (select groupname from sysfilegroups where groupname=N'RBSFilestreamProvider')alter database [Database Name] add filegroup RBSFilestreamProvider contains filestream

 

쿼리 편집기에 다음 Transact-SQL 코드를 입력합니다.

 

use [Database Name]

 

alter database [Database Name] add file (name = RBSFilestreamFile, filename = 'c:\BlobStore') to filegroup RBSFilestreamProvider

Microsoft SQL Server 2008 R2 Remote BLOB Store 설치

 

다음 위치에 있는 Microsoft SQL Server 2008 R2 기능 팩에서 Microsoft SQL Server 2008 R2 Remot BLOB Store용 x64 패키지를 다운로드합니다. https://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=ceb4346f-657f-4d28-83f5-aae0c5c83d52

 

관리자 권한으로 명령 프롬프트를 열고 다음 명령을 실행하여 이전 단계에서 다운로드한 RBS.MSI를 설치합니다.

 

msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="<Database Name>" DBINSTANCE="<Instance Name>" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1

 

참고

위의 문에서 C:\Users\Administrator\Desktop\RBS.MSI와 같이 RBS.MSI의 전체 경로를 지정하고, DBNAME 및 DBINSTANCE의 값을 실제 작업 환경과 일치하도록 바꿉니다.

 

Remote BLOB Storage 사용

1. 시작 메뉴에서 모든 프로그램을 클릭합니다.

2. Microsoft SharePoint 2010 Products를 클릭합니다.

3. SharePoint 2010 관리 셸을 클릭합니다.

4. SharePoint 2010 관리 셸에서 다음 Windows PowerShell 문을 입력하여 구성할 콘텐츠 데이터베이스를 설정합니다.

$database=Get-SPContentDatabase –Identity “Database Name”

SharePoint 2010 관리 셸에서 다음 Windows PowerShell 문을 입력하여 콘텐츠 데이터베이스가 Microsoft SQL Server Remote BLOB Storage를 사용하는 방법을 결정하는 설정이 포함된 개체를 가져옵니다.

$rbs=$database.RemoteBlobStorageSettings

SharePoint 2010 관리 셸에서 다음 Windows PowerShell 문을 입력하여 선택한 콘텐츠 데이터베이스에 대해 RBS를 설치했는지 여부를 지정합니다.

$rbs.Installed()

참고

$rbs.Installed()의 결과는 True여야 합니다. 결과가 False인 경우에는 rbs_install_log.txt를 검토하여 RBS.MSI가 올바르게 설치되었는지 확인하십시오. 설치 문을 SharePoint 2010 관리 셸에서 실행했는지 확인하고, 다음 Windows PowerShell 문을 입력하여 선택한 콘텐츠 데이터베이스에 대해 RBS를 사용하도록 설정합니다.

 

$rbs.Enable()

SharePoint 2010 관리 셸에서 다음 Windows PowerShell 문을 입력하여 선택한 콘텐츠 데이터베이스에 대해 RBSprovider를 설정합니다.

$rbs.SetActiveProviderName($rbs.GetProviderNames()[0])

 

$rbs

 

참고

$rbs의 결과는 다음 표와 같아야 합니다.

표 1

 

표 1 부록

 

Enabled: 선택한 콘텐츠 데이터베이스에 대해 RBS가 사용하도록 설정되었는지 여부를 지정합니다.

 

ActiveProviderName: 새 파일이 저장될 SQL Remote BLOB Storage 공급자의 이름입니다. SQL Remote BLOB Storage를 사용하여 새 파일을 저장하지 않으려는 경우에는 null입니다.

 

MinimumBlobStorageSize: RBS Storage를 사용하기에 적합한 BLOB의 최소 크기를 나타냅니다. 지정된 MinimumBlobStorageSize를 초과하는 BLOB 데이터는 RBS 데이터 저장소에 저장됩니다.

 

FILESTREAM 성능 데이터에 따르면, 1MB를 초과하는 BLOB 데이터가 가장 효율적인 스트리밍 성능을 제공합니다. 다음 항목을 참조하십시오. https://msdn.microsoft.com/ko-kr/library/cc949109(sql.100).aspx(영문일 수 있음)

 

 

MinimumBlobStorageSize를 구성하려면

1. 시작 메뉴에서 모든 프로그램을 클릭합니다.

2. Microsoft SharePoint 2010 Products를 클릭합니다.

3. SharePoint 2010 관리 셸을 클릭합니다.

4. SharePoint 2010 관리 셸에서 다음 Windows PowerShell 문을 입력하여 MinimumBlobStorageSize를 1MB로 구성합니다.

$database = Get-SPContentDatabase “Database Name”

 

$database.RemoteBlobStorageSettings.MinimumBlobStorageSize=1048576

 

$database.Update()

UpgradePersistedProperties: 필드 이름 및 삭제되거나 변경된 필드 값 모음을 지정합니다.

 

설치 유효성 검사

FILESTREAM 구성 및 RBS 설치의 유효성을 검사하려면

 

1. 시작, 모든 프로그램, Microsoft SQL Server 2008 R2, SQL Server Management Studio를 차례로 클릭합니다.

2. 데이터베이스를 확장합니다.

3. BLOB 저장소를 만들 콘텐츠 데이터베이스를 선택하고 새 쿼리를 클릭합니다.

4. SQL Server Management Studio에서 새 쿼리를 클릭하여 쿼리 편집기를 표시합니다.

5. 쿼리 편집기에 다음 Transact-SQL 코드를 입력합니다.

USE [Database Name]

SELECT * FROM dbo.DatabaseInformation

RBSCollectionId 및 RBSProvider 행을 모두 사용할 수 있는지 확인합니다.

 

RBS 데이터 저장소 테스트

1. 사이트에 구성된 콘텐츠 데이터베이스에서 원하는 문서 라이브러리를 선택합니다.

2. 1MB보다 큰 파일을 업로드합니다.

3. RBS 데이터 저장소가 있는 컴퓨터에서 시작을 클릭하고 컴퓨터를 클릭합니다.

4. RBS 데이터 저장소 디렉터리로 이동합니다.

5. 파일 목록을 찾은 다음 수정 날짜가 가장 최근인 폴더($FSLOG 이외의 폴더)를 열고, 이 폴더에서 수정 날짜가 가장 최근인 파일을 엽니다. 이 파일의 크기와 내용이 업로드한 파일과 같은지 확인하고, 같지 않으면 RBS가 올바르게 설치되었으며 사용하도록 설정되었는지 확인합니다.

데이터 저장소 디렉터리 구조는 아래 다이어그램과 비슷하게 표시됩니다.

 

 

참고

구성된 MinimumBlobStorageSize보다 큰 문서를 업로드할 때 "URL '<문서 라이브러리>/File'이(가) 잘못되었습니다. 존재하지 않는 파일이나 폴더를 참조하거나 현재 웹에 없는 올바른 파일이나 폴더를 참조합니다."라는 오류가 표시되는 경우, SQL Server 구성 관리자를 열고 파일 I/O 스트리밍 액세스에 FILESTREAM 사용을 설정하고 SQL Server(MSSQLSERVER) 서비스를 다시 시작합니다.

 

추가 리소스

 

 

범주: 작업 방법, SharePoint 2010

게시일: 2011년 4월 22일 오전 9시

이 문서는 번역된 블로그 게시물입니다. 원본 문서는 FILESTREAM with SharePoint 2010을 참조하십시오.