Windows Server 8 Deploy Scale-Out File Server Windows Server 8 에서, Scale-Out File Server 는파일기반의서버어플리케이션저장소를지속적으로사용가능하도록 scale-out 파일공유를제공합니다. Scale-Out 파일공유는동일클러스터내의노드들이동시에동일폴더를공유할수있습니다. 예를들어, SMB Scale-Out 을사용하는 4 노드파일서버클러스터를구성했다면, Windows Server 8 컴퓨터는 4 노드중의임의의노드를통해파일공유를접근할수있습니다. 이러한기능은 Windows 파일서버프로토콜, Windows Server 의 Failover Cluster, SMB 2.2 등을통해구현됩니다. 관리자는 서버어플리케이션 (ex, Hyper-V 또는 SQL Server) 에 scale-out 파일공유및 continuously available 파일서비스를제공합니다. 또한, 하나이상의서버를 online 함으로써좀더빠른응답을기대할수있습니다. 이러한모든기능은실제환경에서사용가능하고, 서버어플리케이션에 transparent 합니다. 이동철 2012-03-05
목차 데모환경... 2 개요... 3 Step 1 : Install prerequisites for Scale-Out File Server... 4 Role Service 및 Features 설치... 4 하드웨어검증및클러스터생성... 8 Cluster Shared Volume 에저장소추가... 13 Step 2 : Configure Scale-Out File Server... 15 Scale-Out File Server 구성... 15 Cluster Shared Volume 에 Continuously Available 파일공유생성... 19 Step 3 : Configure Hyper-V to use Scale-Out File Server... 26 Hyper-V 호스트를위한 Delegation 활성화... 26 파일공유에권한부여... 28 신규가상기계생성... 32 Step 4 : Configure Microsoft SQL Server to use Scale-Out File Server... 37 SQL Server 컴퓨터를위한 Delegation 활성화... 37 파일공유에권한부여... 38 데이터베이스파일생성... 41 Scale-Out File Server 파일공유의데이터베이스테스트... 44 참조자료... 54 페이지 1 / 54
데모환경 본데모환경은아래와같습니다. Scale-Out File Server 데모환경 Server Name : DC1 Role : Domain Controller Server Name : APP1 Role : Hyper-V Host SQL Server 2012 OS : Windows Server 8 Cluster Name : SCALEOUTCLU.Contoso.com Distributed Server Name : SCALEOUTFS.Contoso.com Cluster Disk 2 : C:\ClusterStorage\Voulme1 Server Name : NODE01 Role : File Server Active Node Share Name : \\SCALEOUTFS\SCALEOUTSHARE Server Name : NODE02 Role : File Server Passive Node Clustered Share Volume 페이지 2 / 54
개요 Windows Server 8 에서, Scale-Out File Server 는파일기반의서버어플리케이션저장소를지속적으로사용가능하도록 scale-out 파일공유를제공합니다. Scale-Out 파일공유는동일클러스터내의노드들이동시에동일폴더를공유할수있습니다. 예를들어, SMB Scale-Out을사용하는 4노드파일서버클러스터를구성했다면, Windows Server 8 컴퓨터는 4노드중의임의의노드를통해파일공유를접근할수있습니다. 이러한기능은 Windows 파일서버프로토콜, Windows Server의 Failover Cluster, SMB 2.2 등을통해구현됩니다. 관리자는 서버어플리케이션 (ex, Hyper-V 또는 SQL Server) 에 scale-out 파일공유및 continuously available 파일서비스를제공합니다. 또한, 하나이상의서버를 online함으로써좀더빠른응답을기대할수있습니다. 이러한모든기능은실제환경에서사용가능하고, 서버어플리케이션에 transparent 합니다. Windows Server 8 의 Scale-Out File Server 장점 Scale capacity dynamically : Scale-Out File Server는 2노드를지원하고, 최대 4노드까지지원합니다. 또한, 파일서버에연결된 서버어플리케이션 에전혀영향을주지않고, 노드추가삭제가가능합니다. Increased bandwidth : 모든클러스터노드는 scale-out 파일공유를위한 SMB 클라이언트요청을허용하고 serve할수있습니다. 결론적으로, scale-out 파일공유는높은사용율을기대할수있습니다. 추가적으로, SMB 클라이언트용량은 backend 스토리지시스템성능이아니라클러스터노드의성능에좌우됩니다. Transparent failover and node fault tolerance : 비즈니스중요서버어플리케이션는중단없는스토리지이용이가능해야합니다. SMB 2.2 서버클러스터및클라이언트 는대체클러스터노드들로 transparent failover 를지원합니다. Load Balancing : Scale-Out 파일공유는클러스터노드사이에서 load가분산됩니다. Scale-Out File Server 활용예 Windows Server 8 컴퓨터상에 Scale-out 파일공유를생성하고, 이 scale-out 파일공유에 Hyper-V 가상하드디스크및 SQL Server 데이터베이스파일을위치시켜서사용할수있습니다. 페이지 3 / 54
Step 1 : Install prerequisites for Scale- Out File Server 이번단계에서, Scale-Out File Server 구성에참여할노드들에아래와같은 Role Service 및 Feature 를설치합니다. 아래설치는 Server Manager 또는 Windows PowerShell 을사용할수있습 니다. File Server role service Failover Clustering Share and Storage Management Role Service 및 Features 설치 1. NODE01 서버에로컬관리자그룹의구성원으로로그인합니다. 2. Server Manager 가자동을시작합니다. 만약, 자동으로 Server Manager 가시작되지 않으면, Start 를클릭하고, servermanager.exe 를입력하고, Server Manager 를 클릭합니다. 3. QUICK START 부분에서, Add roles and features 를클릭합니다. 페이지 4 / 54
4. Add Roles and Features Wizard 의 Before you begin 페이지에서, Next 를클릭합니다. 5. Select installation type 페이지에서, Role-based or feature-based installation 를 클릭하고, Next 를클릭합니다. 6. Select destination server 페이지에서, NODE01 을선택하고, Next 를클릭합니다. 기본적으로로컬서버가선택됩니다. 페이지 5 / 54
7. Select server roles 페이지에서, File and Storage Services -> File Services 를확장하고, File Server 를선택하고, Next 를클릭합니다. 8. Select features 페이지에서, Failover Clustering 및 Share and Storage Management Tools 를선택하고, Next 를클릭합니다. Note Remote Server Administration Tools -> Role Administration Tools -> File Services Tools 순서로확장하고, Share and Storage Management Tools 를선택합니다. 9. On the Confirm installation selections 페이지에서, page, click Install. 을클릭합니다. 페이지 6 / 54
10. 위과정을클러스터에참여할다른노드인 NODE02 에서반복적으로수행합니다. 페이지 7 / 54
참고로, 이작업은아래와같은 PowerShell 명령어로도동일하게수행할수있습니다. Add-WindowsFeature name File-Services,Failover-Clustering,RSAT-CoreFile-Mgmt - IncludeManagementTools 하드웨어검증및클러스터생성 1. NODE01 서버에로컬관리자그룹의구성원으로로그인합니다. 2. Server Manager 가자동을시작합니다. 만약, 자동으로 Server Manager 가시작되지않으면, Start 를클릭하고, servermanager.exe 를입력하고, Server Manager 를클릭합니다. 3. Tools 를클릭하고, Failover Cluster Manager 를클릭합니다. 페이지 8 / 54
4. Management 부분에서, Validate Configuration 를클릭합니다. 5. Before You Begin 페이지에서, Next 를클릭합니다. 6. Select Servers or a Cluster 페이지에서, Enter name 부분에서클러스터에참여할서버 NODE01 의 FQDN 을입력하고, Add 를클릭합니다. 이작업을 NODE02 서버의 FQDN 도동시에입력한다. 7. Next 를클릭합니다. 페이지 9 / 54
8. Testing Options 페이지에서, Run all tests (recommended) 옵션을선택하고, Next 를 클릭합니다. 9. Confirmation 페이지에서, Next 를클릭합니다. 10. Summary 페이지에서, Create the cluster using the validated nodes 를선택하고, Finish 를클릭합니다. 이제클러스터생성마법사가수행됩니다. 페이지 10 / 54
11. Before You Begin 페이지에서, Next 를클릭합니다. 12. Access Point for Administering the Cluster 페이지에서, Cluster Name 부분에, 클러스터 이름 SCALEOUTCLU 를입력하고, Next 를클릭합니다. 페이지 11 / 54
13. Confirmation 페이지에서, Add all eligible storage to the cluster 를선택함을확인하고, Next 를클릭합니다. 14. Summary 페이지에서, Finish 를클릭합니다. 페이지 12 / 54
위과정은아래와같은 Windows PowerShell 명령어를수행하여동일하게작업을진행할수있습 니다. Test-Cluster Node server1, server2 New-Cluster Name ClusterName Node server1, server2 Ex) Test-Cluster Node NODE01, NODE02 Ex) New-Cluster Name SCALEOUTCLU Node NODE01, NODE02 Cluster Shared Volume 에저장소추가 Cluster Shared Volume 은 Failover Cluster 에서사용됩니다. 특정시점에하나이상의노드에서동 시에접근할수있습니다. Failover Cluster Manager 도구를사용하여 Cluster Shared Volume 을추 가할수있습니다. 1. NODE01 서버에로컬관리자그룹의구성원으로로그인합니다. 2. Server Manager 가자동을시작합니다. 만약, 자동으로 Server Manager 가시작되지않으면, Start 를클릭하고, servermanager.exe 를입력하고, Server Manager 를클릭합니다. 페이지 13 / 54
3. Tools 를클릭하고, Failover Cluster Manager 를클릭합니다. 4. Storage 를클릭하고, Cluster Shared Volume 으로추가하고싶은디스크를오른쪽마우스클릭하고, Add to Cluster Shared Volumes 를클릭합니다. 추가작업이완료된후, Cluster Disk 2 의 Assigned To 탭의값이 Cluster Shared Volume 으로변경되어있음을확인합니다. 위과정은아래와같은 Windows PowerShell 명령어를수행하여동일하게작업을진행할수있습니다. Add-ClusterSharedVolume "ClusterDiskName" EX) Add-ClusterSharedVolume "Cluster Disk 2" 페이지 14 / 54
Step 2 : Configure Scale-Out File Server Step 2 에서는, high availability 를위한 Scale-Out File Server 를앞서구성한 SCALEOUTCLU 클 러스터에생성합니다. 이렇게생성된 Scale-Out File Server 역할에 continuously available 파일공 유 를생성합니다. Scale-Out File Server 구성 1. NODE01 서버에로컬관리자그룹의구성원으로로그인합니다. 2. Start 를클릭하고, Failover Cluster 를입력한후, Failover Cluster Manager 를 클릭합니다. 3. SCALEOUTCLU 클러스터를오른쪽마우스클릭하고, Configure Role 를클릭합니다. 4. Before You Begin 페이지에서, Next 를클릭합니다. 5. Select Role 페이지에서, File Server 를클릭하고, Next 를클릭합니다. 페이지 15 / 54
6. File Server Type 페이지에서, File Server for scale-out application data 를선택하고, Next 을클릭합니다. 7. Client Access Point 페이지에서, Name 부분에, Scale-Out File Server 를접근할때사용할 NETBIOS 이름으로써, SCALEOUTFS 를입력하고, Next 를클릭합니다. 페이지 16 / 54
8. Confirmation 페이지에서, 설정을확인하고, Next 를클릭합니다. 9. Summary 페이지에서, Finish 를클릭합니다. 위과정이완료된후, SCALEOUTFS 역할의 Resources 부분을확인해보면, 아래와같이 Distributed Server Name 과 Scale-Out File Server 를확인할수있습니다. 페이지 17 / 54
또한, 위과정이완료된후, Active Directory DNS 에는아래와같이 SCALEOUTFS 에대한호스트 레코드가총 2 개가등록되는데, 이 IP 는각기 NODE01 (10.0.0.11) 과 NODE02 (10.0.0.12) 의임을 확인합니다. 즉, DNS Round Robin 을통해로드를분산할수있도록합니다. 또한, Active Directory Users and Computers 도구의 Computers 컨테이너에 SCALEOUTFS 페이지 18 / 54
네트워크이름이가상컴퓨터객체로생성되어있음도확인할수있습니다. 위과정은아래와같은 Windows PowerShell 명령어를수행하여동일하게작업을진행할수있습 니다. Add-ClusterScaleOutFileServerRole -Name DistributedNetworkName -Cluster ClusterName Ex) Add-ClusterScaleOutFileServerRole -Name SCALEOUTFS -Cluster SCALEOUTCLU Cluster Shared Volume 에 Continuously Available 파일공유생성 Failover Cluster Manager 를사용하여 Cluster Shared Volume 에파일공유를생성합니다. 1. NODE01 서버에로컬관리자그룹의구성원으로로그인합니다. 2. Start 를클릭하고, Failover Cluster 를입력한후, Failover Cluster Manager 를 클릭합니다. 3. SCALEOUTCLU 클러스터를확장하고, Roles 을클릭합니다. 4. SCALEOUTFS 파일서버역할을오른쪽마우스클릭하고, Add Shared Folder 를 클릭합니다. 페이지 19 / 54
5. Select the profile for this share 페이지에서, SMB Share Server Application 를 클릭하고, Next 를클릭합니다. 6. Select the server and path for this share 페이지에서, 아래와같이 C:\ClusterStorage\Volume1 을선택하고, Next 를클릭합니다. C:\ClusterStorage\Volume1 는앞서생성한 Cluster Shared Volume 인 Cluster Disk 2 의 Mount Point 입니다. 페이지 20 / 54
7. Specify share name 페이지에서, Share name 부분에, SCALEOUTSHARE 로입력하고, Next 를클릭합니다. 페이지 21 / 54
8. Configure share settings 페이지에서, Enable continuous availability 을선택했음을 확인하고, Next 를클릭합니다. Note 조정자노드 (Coordinator Node) 에서생성되는다량의메타데이터트래픽때문에, Scale- Out Filer Server 위의파일공유는접근-기반 enumeration 을사용하지않습니다. (You should not use access-based enumeration on file shares for Scale-Out File Server because of the increased metadata traffic that is generated on the coordinator node.) 9. Specify permissions to control access 페이지에서, Customize permissions 을클릭하고, 다음권한을부여합니다. 본데모 환경에서는아직아래설정을하지않습니다 : o Hyper-V 용도의 Scale-Out File Server 파일공유를사용한다면, 모든 Hyper-V 호스트컴퓨터계정, SYSTEM 계정, 모든 Hyper-V 관리자계정은파일공유및 NTFS 파일시스템에대해서 모든권한 (Full Control) 을할당받아야합니다. (If you are using this Scale-Out File Server file share for Hyper-V, all Hyper-V 페이지 22 / 54
computer accounts, the SYSTEM account, and all Hyper-V administrators must be granted full control on the share and the file system.) o Microsoft SQL Server 용도의 Scale-OUT File Server 파일공유를사용한다면, SQL Server 서비스계정은파일공유및 NTFS 파일시스템에대해서 모든권한 (Full Control) 을할당받아야합니다. (If you are using Scale-Out File Server on Microsoft SQL Server, the SQL Server service account must be granted full control on the share and the file system.) 10. Confirmation 페이지에서, Create 를클릭합니다. 페이지 23 / 54
위 Scale-Out File Server 파일공유를생성한후, 아래와같이 SCALEOUTFS 역할의 Shares 부분에앞서생성한 SCALEOUTSHARE 가보여짐을확인할수있습니다. 또한, SCALEOUTSHARE 의 Continuous Availability 값이 Yes 임도확인합니다. 페이지 24 / 54
위과정은아래와같은 Windows PowerShell 명령어를수행하여동일하게작업을진행할수있습 니다. New-Item -Name "folder" -ItemType DirectoryNew-SmbShare -Name ShareName -Path Path - FullAccess Domain\User -ContinuouslyAvailable:$True$acl = Get-Acl "folder"$acl.setaccessruleprotection($true, $True) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule( Domain\User, FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")$acl.AddAccessRule($rule)Set-Acl "folder" $acl 페이지 25 / 54
Step 3 : Configure Hyper-V to use Scale-Out File Server 데이터저장소로써 Scale-Out File Server 파일공유를지원하는 2 개의 Microsoft 어플리케이션은 Hyper-V 와 Microsoft SQL Server 입니다. 이번단계에서는, Scale-Out File Server 를사용할수있 도록 Hyper-V 구성합니다. Step 3 를수행한후, 구성도는아래그림과같이개략적으로설명이됩 니다. CSV 볼륨의 Scale-Out 파일공유에 Virtual Machine 생성예제 SMB-VM-01 \\SCALEOUTFS\SCALEOUTSHARE\SMB-VM-01\Virtual Hard Disk\*.vhdx \\ SCALEOUTFS\SCALEOUTSHARE \*.xml Server Name : DC1 Role : Domain Controller Server Name : APP1 Role : Hyper-V Host OS : Windows Server 8 Cluster Name : SCALEOUTCLU.Contoso.com Distributed Server Name : SCALEOUTFS.Contoso.com Cluster Disk 2 : C:\ClusterStorage\Voulme1 Server Name : NODE01 Role : File Server Active Node Share Name : \\SCALEOUTFS\SCALEOUTSHARE Server Name : NODE02 Role : File Server Passive Node Clustered Share Volume Hyper-V 호스트를위한 Delegation 활성화 이번단계에서는, delegation 을활성화할것입니다. Delegation 은 highly available SMB 공유 를 사용하는 Hyper-V 서버의컴퓨터계정에지정할것입니다. 본데모환경에서는 Hyper-V 호스트로써 APP1 서버를가정합니다. 페이지 26 / 54
1. DC1 서버에도메인관리자그룹의구성원으로로그인합니다. 2. Start 를클릭하고, Active Directory Users and Computers 클릭합니다. 3. Computers 컨테이너를선택합니다. 4. APP1 를오른쪽마우스클릭하고, Properties 를클릭합니다. 5. Delegation 탭에서, Trust this computer for delegation to any service (Kerberos only) 를클릭합니다. 페이지 27 / 54
NOTE: 보안을강화하기위해서는, APP1 Hyper-V 호스트서버에 CIFS 서비스에대해서만 delegation 하도록제한할수있습니다. 6. OK 를클릭합니다. 7. Windows PowerShell 를클릭합니다. 8. 이명령어를 Restart-Computer APP1 Force 실행합니다. Delegation 설정을적용하기 위해 APP1 을재시작합니다. 파일공유에권한부여 가상기계를생성하기전에, 관리자는 Continuously Available 파일공유에적절한권한을부여해 야합니다. 1. NODE01 서버에로컬관리자그룹의구성원으로로그인합니다. 2. Start 를클릭하고, Failover Cluster 를입력한후, Failover Cluster Manager 를클릭합니다. 3. SCALEOUTCLU 클러스터를확장하고, Roles 을클릭합니다. SCALEOUTFS 파일서버역할을클릭한후, 아래 Shares 탭에서 SCALEOUTSHARE 를오른쪽마우스클릭하고, Properties 메뉴를클릭합니다. 페이지 28 / 54
4. SCALEOUTSHARE 속성의 Permissions 탭을클릭한후, Customize permissions 를 클릭합니다. 페이지 29 / 54
5. Advanced Security Settings for SCALEOUTHOUSE 의 Permissions 탭에서, Hyper-V 호스트컴퓨터계정, SYSTEM 계정및모든 Hyper-V 관리자계정에 모든권한 (Full Control) 을할당합니다. 본데모환경에서는 APP1.CORP.CONTOSO.com 컴퓨터계정이 Hyper-V 호스트컴퓨터계정으로가정합니다. Add 버튼을클릭합니다. 6. Permission Entry for SCALEOUTSHARE 에서, Select a principal 를클릭하여, APP1 컴퓨터계정을추가합니다. 추가후, Permissions 부분에서 Full Control 을선택한후, OK 버튼을클릭합니다. 페이지 30 / 54
7. 아래와같이 Advanced Security Settings for SCALEOUTHOUSE 의 Permissions 탭의 최종권한을확인합니다. 8. 이제, Advanced Security Settings for SCALEOUTHOUSE 의 Share 탭에서, Hyper-V 호스트컴퓨터계정, SYSTEM 계정및모든 Hyper-V 관리자계정에 모든권한 (Full Control) 을할당합니다. 본데모환경에서는기본권한인 Everyone 의 모든권한 (Full Control) 을그대로사용합니다. 9. OK 를두번클릭하여작업을완료합니다. 페이지 31 / 54
신규가상기계생성 Windows Server 8 의 Hyper-V Manager 를사용하여가상기계를생성합니다. 가상기계위치를지 정하는부분에서, Scale-Out Filer Server 에서구성했던, Scale-Out File Server 파일공유를지정합니 다. 본데모환경에서는 APP1 서버에 Hyper-V 호스트로구성됩니다. 1. APP1 서버에로컬관리자그룹의구성원으로로그인합니다. 2. Start 클릭하여, Hyper-V Manager 를클릭합니다. 3. APP1 Hyper-V 호스트이름을오른쪽마우스클릭하고, New -> Virtual Machine 을 클릭합니다. 페이지 32 / 54
4. Before You Begin 페이지에서, Next 를클릭합니다. 5. Specify Name and Location 페이지에서, Name 부분에, SMB-VM-01 이라는적당한가상기계의이름을입력합니다. 6. Store the virtual machine in a different location 를선택합니다. Location 부분에, Scale- Out Filer Server 에서구성했던, Scale-Out File Server 파일공유를입력한후, Next 를클릭합니다. 페이지 33 / 54
7. Assign Memory 페이지에서, Startup memory 부분에적당한값을입력한후, Next 를 클릭합니다. 8. Configure Networking 페이지에서, Connection 부분에적당한네트워크를선택한후, Next 를클릭합니다. 9. Connect Virtual Hard Disk 페이지에서, Location 부분에서 Scale-Out Filer Server 에서 구성했던, Scale-Out File Server 파일공유의하위폴더가기본으로설정되었음을 확인하고, Next 를클릭합니다. 페이지 34 / 54
페이지 35 / 54
10. Completing the New Virtual Machine Wizard 페이지에서, Finish 를클릭합니다. 위와같이가상기계를 Scale-Out File Server 의 Continuously Available 파일공유에생성하게되 면, 가상기계의 VHDX 에대한 highly-available 가유지되기때문에, 가상기계에대한무정지운 영이가능합니다. 페이지 36 / 54
Step 4 : Configure Microsoft SQL Server to use Scale-Out File Server 데이터저장소로써 Scale-Out File Server 파일공유를지원하는 2개의 Microsoft 어플리케이션은 Hyper-V 와 Microsoft SQL Server 입니다. Scale-Out File Server 를사용할수있는 SQL Server 버전은 SQL Server 2008 R2 및 SQL Server 2012 입니다. SQL Server 2008 R2는 stand-alone 구성에서사용가능하고, SQL Server 2012는 Cluster 환경에서도 Scale-Out File Server 파일공유를사용할수있습니다. 본데모환경에서는아래와같이 SQL Server 2012를설치하면서, 모든데이터베이스파일을 Scale-Out File Server의파일공유에위치시켰습니다. Scale-Out File Server 파일공유에 SQL Server 2012 설치 SQL 2012 Instance \\SCALEOUTFS\SCALEOUTSHARE\SQLData\*.mdf \\ SCALEOUTFS\SCALEOUTSHARE \SQLData\*.ldf Server Name : DC1 Role : Domain Controller Server Name : APP1 Role : SQL Server 2012 OS : Windows Server 8 Cluster Name : SCALEOUTCLU.Contoso.com Distributed Server Name : SCALEOUTFS.Contoso.com Cluster Disk 2 : C:\ClusterStorage\Voulme1 Server Name : NODE01 Role : File Server Active Node Share Name : \\SCALEOUTFS\SCALEOUTSHARE Server Name : NODE02 Role : File Server Passive Node Clustered Share Volume SQL Server 컴퓨터를위한 Delegation 활성화 앞선 Step 3 -> Hyper-V 호스트를위한 Delegation 활성화 단계를반복적으로수행합니다. 역시, 페이지 37 / 54
본데모환경에서는, SQL Server 를 APP1 으로가정합니다. 파일공유에권한부여 SQL Server 데이터베이스를생성하기전에, 관리자는 Continuously Available 파일공유에적절한 권한을부여해야합니다. 앞서 Step 3 -> 파일공유에권한부여 단계와유사하게진행합니다. 1. NODE01 서버에로컬관리자그룹의구성원으로로그인합니다. 2. Start 를클릭하고, Failover Cluster 를입력한후, Failover Cluster Manager 를클릭합니다. 3. SCALEOUTCLU 클러스터를확장하고, Roles 을클릭합니다. SCALEOUTFS 파일서버역할을클릭한후, 아래 Shares 탭에서 SCALEOUTSHARE 를오른쪽마우스클릭하고, Properties 메뉴를클릭합니다. 4. SCALEOUTSHARE 속성의 Permissions 탭을클릭한후, Customize permissions 를클릭합니다. 5. Advanced Security Settings for SCALEOUTHOUSE 의 Permissions 탭에서, SQL Server 서비스계정에 모든권한 (Full Control) 을할당합니다. 본데모환경에서는 CORP\SQLSVC 사용자계정이 SQL Server 서비스계정으로가정합니다. Add 버튼을클릭합니다. 6. Permission Entry for SCALEOUTSHARE 에서, Select a principal 를클릭하여, CORP\SQLSVC SQL Server 서비스계정을추가합니다. 추가후, Permissions 부분에서 Full Control 을선택한후, OK 버튼을클릭합니다. 페이지 38 / 54
7. 아래와같이 Advanced Security Settings for SCALEOUTHOUSE 의 Permissions 탭의 최종권한을확인합니다. 페이지 39 / 54
8. 이제, Advanced Security Settings for SCALEOUTHOUSE 의 Share 탭에서, SQL Server 서비스계정에 모든권한 (Full Control) 을할당합니다. 본데모환경에서는 기본권한인 Everyone 의 모든권한 (Full Control) 을그대로사용합니다. 9. OK 를두번클릭하여작업을완료합니다. 페이지 40 / 54
데이터베이스파일생성 데이터베이스파일을생성할때, SQL Server Management Studio 또는 Query 를사용하여 Scale- Out 파일공유에데이터베이스파일을저장할수있습니다. SQL Server 2012 에서는, 설치과정중 에 Scale-Out 파일공유에모든데이터베이스파일을저장할수있는방법이제공됩니다. 본데모환경에서는, SQL 2012 RC0 버전을설치하면서, Scale-Out 파일공유에모든데이터베이스 파일을저장하는방법을구현합니다. 아래화면은 Windows Server 8 Beta 컴퓨터에 SQL Server 2012 RC0 를설치할때, 데이터베이스 엔진구성 부분에서, Data Directories 부분에서, \\SCAELOUTFS\SCALEOUTSHARE Scale-Out 파일공유폴더로지정한것입니다. 아래경고다이얼로그는 Scale-Out 파일공유에 데이터베이스 파일을위치시키면서, 설치를진 행할때, 반드시 파일공유 에 SQL Server 서비스계정이 모든권한 을가져야함을알려주는 것입니다. 페이지 41 / 54
설치가완료된후, Master 데이터베이스의파일경로는아래와같이 Scale-Out 파일공유임을확 인할수있습니다. 페이지 42 / 54
페이지 43 / 54
Scale-Out File Server 파일공유의데이터베이스테스트 1. \\SCALEOUTFS\SCALEOUTSHARE\SQLData 폴더에 SMBDATABASE 데이터베이스생성 하기. 아래 Script 를이용하여데이터베이스를생성합니다. -------------------------------------------- USE [master] /****** Object: Database [SMBDATABASE] Script Date: 2012-03-07 오전 12:48:46 ******/ CREATE DATABASE [SMBDATABASE] CONTAINMENT = NONE ON PRIMARY ( NAME = N'SMBDATABASE', FILENAME = N'\\scaleoutfs\SCALEOUTSHARE\SQLData\SMBDATABASE.mdf', SIZE = 204800KB, MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'SMBDATABASE_log', FILENAME = N'\\scaleoutfs\SCALEOUTSHARE\SQLData\SMBDATABASE_log.ld f', SIZE = 160960KB, MAXSIZE = 2048GB, FILEGROWTH = 10%) ALTER DATABASE [SMBDATABASE] SET COMPATIBILITY_LEVEL = 110 IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')) begin EXEC [SMBDATABASE].[dbo].[sp_fulltext_database] @action = 'enable' end ALTER DATABASE [SMBDATABASE] SET ANSI_NULL_DEFAULT OFF ALTER DATABASE [SMBDATABASE] SET ANSI_NULLS OFF 페이지 44 / 54
ALTER DATABASE [SMBDATABASE] SET ANSI_PADDING OFF ALTER DATABASE [SMBDATABASE] SET ANSI_WARNINGS OFF ALTER DATABASE [SMBDATABASE] SET ARITHABORT OFF ALTER DATABASE [SMBDATABASE] SET AUTO_CLOSE OFF ALTER DATABASE [SMBDATABASE] SET AUTO_CREATE_STATISTICS ON ALTER DATABASE [SMBDATABASE] SET AUTO_SHRINK OFF ALTER DATABASE [SMBDATABASE] SET AUTO_UPDATE_STATISTICS ON ALTER DATABASE [SMBDATABASE] SET CURSOR_CLOSE_ON_COMMIT OFF ALTER DATABASE [SMBDATABASE] SET CURSOR_DEFAULT GLOBAL ALTER DATABASE [SMBDATABASE] SET CONCAT_NULL_YIELDS_NULL OFF ALTER DATABASE [SMBDATABASE] SET NUMERIC_ROUNDABORT OFF ALTER DATABASE [SMBDATABASE] SET QUOTED_IDENTIFIER OFF 페이지 45 / 54
ALTER DATABASE [SMBDATABASE] SET RECURSIVE_TRIGGERS OFF ALTER DATABASE [SMBDATABASE] SET DISABLE_BROKER ALTER DATABASE [SMBDATABASE] SET AUTO_UPDATE_STATISTICS_ASYNC OFF ALTER DATABASE [SMBDATABASE] SET DATE_CORRELATION_OPTIMIZATION OFF ALTER DATABASE [SMBDATABASE] SET TRUSTWORTHY OFF ALTER DATABASE [SMBDATABASE] SET ALLOW_SNAPSHOT_ISOLATION OFF ALTER DATABASE [SMBDATABASE] SET PARAMETERIZATION SIMPLE ALTER DATABASE [SMBDATABASE] SET READ_COMMITTED_SNAPSHOT OFF ALTER DATABASE [SMBDATABASE] SET HONOR_BROKER_PRIORITY OFF ALTER DATABASE [SMBDATABASE] SET RECOVERY SIMPLE ALTER DATABASE [SMBDATABASE] SET MULTI_USER ALTER DATABASE [SMBDATABASE] SET PAGE_VERIFY CHECKSUM ALTER DATABASE [SMBDATABASE] SET DB_CHAINING OFF 페이지 46 / 54
ALTER DATABASE [SMBDATABASE] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) ALTER DATABASE [SMBDATABASE] SET TARGET_RECOVERY_TIME = 0 SECONDS ALTER DATABASE [SMBDATABASE] SET READ_WRITE -------------------------------------------- 위스크립트수행후, 아래와같이 SQL Management Studio 에서데이터베이스생성이정상적임을 확인합니다. 또한, \\SCALEOUTFS\SCALEOUTSHARE\SQLData 폴더에 *.mdf 및 *.ldf 가생성되어있음도확 인합니다. 페이지 47 / 54
2. SMBDATABASE 데이터베이스에예제테이블생성하기. 실제데이터입력테스트를위해 필요한예제테이블을생성합니다. 아래스크립트를사용하여테이블을생성합니다. ---------------------------------------- USE SMBDATABASE Go CREATE TABLE tblemployee ( EmpID INT, EmpName VARCHAR(25), DOB DATETIME, Salary MONEY, Password VARCHAR(8) ) ---------------------------------------- 정상적으로테이블이생성되었음을확인합니다. 페이지 48 / 54
3. 예제데이터를 tblemployee 에 insert 하는동안, Scale-Out File Server 파일공유를 Failover 합니다. Failover 하는동안에도여전히 insert 작업이중단없이진행됨을확인합니다. 예 제데이터의입력은아래스크립트를사용합니다. ----------------------------------------- DECLARE @i int; SELECT @i = 1; WHILE @i < 500000 BEGIN INSERT INTO tblemployee VALUES(12345, 'Test', GETDATE(), 10000,'LastSt') SELECT @i = @i + 1; END ----------------------------------------- 현재 SCALEOUTFS 역할의소유자가아래와같이 NODE01 임을확인합니다. 페이지 49 / 54
Scale-Out File Server 파일공유의데이터전송률을확인하기위해아래와같이 Performance Monitor 에서 SMB2 Server Shares -> \\SACLEOUTFS\SCALEOUTSHARE -> Transferred Bytes/sec 항목에대해서 NODE01 및 NODE02 모두모니터링합니다. 이제위스크립트를수행하면서, SCALEOUTFS 를 NODE01 에서 NODE02 로 Failover 합니다. 아래와같이 Query 가수행중임을알수있습니다. 페이지 50 / 54
아직 Failover 전이기때문에, SCALEFS 의소유자인 NODE01 을통해데이터가전송되고있음을 확인할수있습니다. 이상태에서아래와같이 Failover 이동을진행합니다. 페이지 51 / 54
아래와같이 Failover 가성공적으로진행되어, 소유자가 NODE02 가되었음을확인합니다. 이렇게 Failover 가진행되는동안에도, 여전히 Query 는정상적으로아래와같이진행되고있습니 다. 결과적으로아래와같이 Query 가성공적으로수행되었음을확인할수있습니다. 페이지 52 / 54
성공적으로테스트가진행되었습니다. 페이지 53 / 54
참조자료 Deploy Scale-Out File Server ( http://technet.microsoft.com/en-us/library/hh831359.aspx ) 페이지 54 / 54