Windows 2000 Advanced Server & SQL 2000 Enterprise Server 와 MSCS 설치 2001-5-4 본문서는 Windows 2000 Advanced Server에 MSCS(Microsoft Clustering Service) 를적용하고 IIS와 SQL 2000을클러스터하는과정에대한내용을기술하고있다. 여기서기술된내용은가장일반적인방식에의한내용이므로각사이트의환경에맞추어면밀한검토를한후본문서를참고자료로사용하면무리가없을것이다. 본문서는테크데이타기술지원팀에서작성되었으며실제적용시발생하는예외적인문제에대해당사에서는어떤기술적인책임및지원도하지않는다. 실제적용전반드시충분한테스트를거쳐적용하여야할것이다. 또한 MS에서는클러스터된두시스템에 IIS를같이올리는것은권장하지않고있다. 1 MSCS 설치 1.1 설치전사전준비사항 1.1.1 MS의 HCL에권장된,Hardware(System, Storage, NIC) 를사용하여야한다. 1.1.2 OS를설치하고 Public과 Private 용으로사용할 Interface를결정한다. 1.1.3 각 Interface에해당하는 IP를부여한다. 이때하트비트용은사설IP를사용하여도무방하며복수를사용할수도있다.( 권장사항 ) 1.1.4 Public Interface는실제시스템에접근이가능한 IP여야하며이때클러스터서비스에적용할가상 IP도결정한다. 가상 IP는실제클라이언트가접근할수있는 IP여야한다. 1.1.5 시스템에부여할 IP 및각서비스에적용할 IP를 Define하고클러스터링서비스를위한시스템구성도를작성한다. 1.1.6 IP에종속적인서비스를추가할경우는해당서비스마다별도의 IP를할당하여야한다. 물론단일머신에서모든서비스를구동하고나머지가대기모드라고하면이는불필요하지만일종의 Active/Active Mode로구성을할경우는반드시필요한내용이다. 1.1.7 만일클러스터링구성을 Active/Active로구성을할경우라면각기두개의머신에서접근할수있는별도의물리적인볼륨이공유디스크에구성되어있어야한다. 즉동일한볼륨을두개의머신에서동시에접근할수는없기때문에 Raid 구성시미리구성을해두어야한다는의미이다. 예를들어서버A에 SQL을구동하고서버B는 SQL 대기모드이고서버A는 IIS를대기모드이고서버B가 IIS를구동하는형태로해야한다면공유디스크에는반드시 SQL을위한볼륨과 IIS를위한볼륨이별도로존재하여야한다는것이다. 1.1.8 MS에서는또한쿼럼로그를위한볼륨을따로두기를권장하고있다. 즉데이터가위치한볼륨에쿼럼로그를같이두게될경우해당볼륨에장애가발생한다면쿼럼로그역시접근이불가능하게되어클러스터서비스가같이장애를일으킬수있기때문이다. 1
1.1.9 클러스터서비스를구성하기이전에반드시아래의문서를필독하기바란다. 아래문서에는기타참고하여야문서의번호도첨부되어있다. 설치절차는매우중요한부분이다. 정상적인그리고성공적인클러스터링을원한다면반드시참고하여야할내용이다. Microsoft Cluster Service Installation Resources [Q259267] 1.2 MSCS는 OS에기본내장되어있는서비스이다. 프로그램추가 / 삭제메뉴에서클러스터서비스를선택하고진행을하면하드웨어에대한 HCL 동의를거쳐서비스를설치하게된다. 단 Windows 2000 Adv Server 또는 Windows 2000 Datacenter Server 여야한다. 1.3 시스템구성도 1.4 클러스터설치과정 ( 첫번째노드및노드추가방법 ) 프로그램추가 / 삭제에서 Windows 구성요소를선택하고구성요소중클러스터서비스를선택 한다. 2
시스템파일복사를시작한다. 3
운영체제를설치했던 CD 를필요로한다. 기본구성파일이설치가끝나면클러스터구성마법사가시작된다. 만일구성마법사에서 원하는작업을다끝내지못하였을경우나중에다시구성요소에서구성마법사를다시시작 할수있도록되어있다. 4
HCL 확인과정에서는반드시동의를거쳐야다음단계를진행할수있다. 처음설치하는노드가첫번째노드가된다. 나중에설치하여합류하는노드가두번째, 세번 째, 네번째가될것이다. 5
여기서지정하는클러스터이름은가상컴퓨터이름과동일한효과를갖는다. 즉클라이언트 입장에서는여기서지정된이름의컴퓨터가네트웍상에하나더만들어지는효과를가지게 되는것이다. 클러스터서비스는여기서지정된계정을통해서비스를하게된다. 서버관리자권한이상 의허가를가진계정을할당하여야한다. 6
MSCS는공유디스크가시스템에설치되어있지않으면클러스터서비스가설치되지않는다. 왜냐면 Quorum Resource Log의위치는클러스터노드가모두공유할수있는위치에있어야하기때문이다. 공유디스크가있고볼륨이잡혀있다면클러스터관리자에서사용할디스크를선택할수있는화면이나온다. 위화면이쿼럼리소스가위치할디스크를선택하는화면인데 MS에서는일반적으로디스크 I/O가빈번한곳이나중요한데이터가위치한곳은피하도록하고있다. 즉별도의볼륨을할당해달라는애기인데기껏몇십 Kb의데이터를위해별도의볼륨을지정하기는좀무리가있고가능한 DataBase같은데이터의영역을피하면될것이다. 여기서는 IIS 데이터영역을사용하도록하였다. DB보다는민감하지않고 I/O가적기때문이다. 7
위메뉴는 Heart Beat 통신용인터페이스를하나이상선택하도록권장하는내용이다. 왜냐면 Heart Beat 전용으로인터페이스를선택하였을경우 1개만설정되어있다면실제시스템에는문제가없다하더라도인터페이스에문제가발생해서 Fail Over가발생할수있기때문이다. 이런문제를방지하기위해최소한 2개이상을설정해놓으면인터페이스의장애로인한 Fail Over를방지할수있다. 8
이메뉴에서인터페이스를선택하고용도를선택할수있다. 기본은혼합네트워크로되어 있으며인터페이스가복수로설정되어있다면각용도에맞게설정을바꾸어주면된다. 아 래그림을참조하기바람. 9
10
위그림들은 2 개의인터페이스중 1 개는 Heart Beat 용으로 1 개는클라이언트 Access 용으로 설정하는것은보여주고있다. 인터페이스용도설정이끝나면클러스터관리 IP 를설정해야한다. 이 IP 를설정하면가상 의컴퓨터가하나생기게된다. 물론클라이언트에서는이가상 IP 로접근이가능하다. 또한 이 IP 에대한컴퓨터이름이 DNS 에등록되게된다. 11
클러스터구성마법사설정을모두마치면설정된값들이운영체제의레지스트리에저장되고 클러스터링서비스를위한준비가이루어진다. 12
클러스터설치작업이정상적으로잘끝났다. 이제 1 개시스템에서는클러스터서비스가구 동중이다. 클러스터구성을마치고다음그림을보면서비스에클러스터서비스가추가되어있음을볼 수있다. 또한 DNS 에도클러스터에할당한이름에대한호스트레코드가등록되어있음을 13
볼수있는데이는물론 DNS 를동적업데이트를허용해놓았기때문이다. 위그림은첫번째노드를설치하고클러스터관리자를실행한화면이다. 그림과같이클러스터노드가하나 (Jeanq01) 추가되어있고리소스그룹은원래클러스터그룹과디스크그룹이추가되어있을것이다. 여기서는작업을위해 Jean Cluster와 IIS Resource로이름을바꾸어놓은것이다. 리소스그룹내에리소스가어떤것들이등록되어있는지잘살펴보아야한다. 14
IIS 그룹은디스크만하나할당이되어있으며쿼럼리소스는 E Drive 에할당을해놓았다. 위그림은두번째노드에클러스터노드를추가하는작업이다. 동일하게프로그램추가 / 삭제 에서클러스터서비스를선택하고다음을선택한후서버구성에서클러스터두번째노드 또는그다음노드를선택한다. 15
두번째노드를선택하면가입할클러스터이름을입력하고클러스터에가입할수있는권한을가진계정을제시하도록요구받는다. 여기서기입한클러스터이름은 DNS를통해쿼리를하게되므로먼저첫번째노드의 DNS 서버에해당클러스터호스트레코드가반드시등록이되어있어야한다. 그렇지못할경우클러스터를찾지못하게되고가입을할수없게된다. 정상적으로클러스터정보를쿼리하고나면해당정보를참조한후구성을자동으로가져오 게된다. 두번째노드의인터페이스설정과첫번째노드의인터페이스구성을보고자동으로 클러스터통신과클라이언트통신용어댑터를맞추게됩니다. 16
다시클러스터가입계정에대한암호를확인한다. 17
두번째노드가입설정을모두마치고나서클러스터관리자를실행해보면위와같은결과를얻을수있을것이다. 두개의노드가추가되고네트워크는동일한 Segment끼리역할을위한그룹을자동으로생성함을알수있다. 위와같은구성이기본설정이완료된상태이며여기서부터필요에따라각종정보를수정할수있다. 18
위내용은서버에서 Transaction Service 를사용하는경우 DTC(Data Transaction Coordinator) 를클러스터에추가시켜주는과정이다. Comclust.exe 명령문을실행하면위와같은화면을 볼수있으며약 1 분내에작업이완료되고작업결과에대한메시지를보여주게된다. 이작업은클러스터노드에있는모든서버에서각각실행을해주어야한다. 19
Comclust.exe를실행하고정상적으로작업이종료되고나면위와같이클러스터그룹에 DTC 가추가되어있음을볼수있다. 1.5 설치과정에서 Public Interface와 Private Interface(Heart Beats) 를선택할때동일 Interface를같이사용할수도있고나눌수도있지만권장사항은물론나누는것이고하트비트는복수개를권장한다. 1.6 설치중사용할볼륨을선택하는데이때공유볼륨을선택할수있으며이는네트웍상에공유되어있는자원이아니라 Scsi Interface를통해두시스템이동시에접근이가능한스토리지를말한다. 보통전용 RAID System을사용한다. 1.7 클러스터관리자에서그룹및리소스생성을다음과정을통해설명한다. 1.8 위그림은리소스그룹을추가하는화면이다. 추가는클러스터관리자내에서아무곳에서나 마우스오른쪽버튼을누르고새로만들기를하면리소스와그룹이나오는데여기서그룹을 20
선택하면된다. 이름은서비스를구분하기위한이름이다. 1.9 다음과정에서는해당그룹에대한기본설정소유자를선택할수있다. 클러스터내의모든 노드를선택할수도있고특정노드만선택할수도있다. 이과정이끝나면그룹추가는완 료된다. 1.10 위그림은리소스를추가하는화면이다. 리소스의이름과종류그리고리소스를포함할그룹을선택하면된다. 리소스종류는이미클러스터서비스가알고있는서비스들이며 SQL 이나 Exchange 서버등별도로설치해야하는 Backoffice들은이목록에현재는나타나지않는다. 21
1.11 리소스에대한그룹을선택한다. 당연히리소스를작성하기전원하는그룹을만들어두어야 할것이다. 하지만다른그룹에포함한다음다시옮길수도있다. 1.12 위그림은기본설정소유자와는다른화면이다. 즉해당서비스를온라인시킬수있는노드를선택하라는의미이다. 노드가 4개일경우이리소스에대해서는 2개의노드에서만서로가능하도록할수있다는의미이다. 1.13 이상으로클러스터관리자를통해기본적으로서비스그룹과리소스를생성하고구성하는방법에대해알아보았고간단한관리적인측면은다음과정에서알아볼것이다. 2 클러스터관리자사용하기 2.1 다음그림은클러스터관리자화면이다. 22
2.2 그룹은현재서비스되고있는서비스그룹이며각각의소유자는클러스터노드에각기분산 배치할수있다. 즉그룹단위로노드를지정할수있다는애기이다. 2.3 위그림을보면사용자가새로추가한 IIS Service라는그룹안에이서비스그룹을구성하는리소스들을볼수있는데이리소스들은하나의서비스를구현하기위한기본구성요소들이다. 이중하나라도서비스에문제가발생하면클러스터서비스는전체서비스에장애가생겼다고보고해당그룹을대기중인노드로서비스위치를이전하게된다. 리소스의구성을보면하나의서비스를이루기위한구성요소임을알수있다. 즉데이터를저장하는디스크, 통신을위한 IP, 서비스를위한인스턴스등가장기본적인요소들로이루어져있다. 23
2.4 위그림은클러스터에서인식하고있는리소스종류들이다. 여기에추가로 SQL, Exchange Service 등이 Aware Software 로사용할수있다. 위리소스를 MS 에서는 Cluster Aware Application 이라고한다. 주의할것은 FTP Service 는포함되어있지않다. 2.5 위그림은인터페이스에대한그림이다. Nic_Private, NIC_Public등은자동으로생성된것이아니라관리자가인터페이스이름으로부여한것이다. 즉인터페이스이름이동일한 NIC들이같은그룹을형성하고있는것을볼수있다. 여기서보는것은클러스터노드의모든인터페이스들이나타난다. 인터페이스들의역할은사용자임으로변경이가능하다. 24
2.6 위그림은특정노드에서활성화된그룹을보여주고있다. 이화면을통해어떤노드에서 서비스가구동되고있는지를알수있는것이다. 현재기본클러스터서비스와 IIS 서비스가 구동되고있는것을알수있다. 2.7 위그림은활성노드에서실제서비스되고있는서비스구성요소들이다. 즉활성그룹에있는그룹을구성하고있는상세리소스들이라고할수있다. 이각각의리소스들중 1개라도서비스에문제가발생하면해당그룹은클러스터서비스에의해대기중인노드로서비스위치를옮기게되는것이다. 25
위그림은두번째노드의활성화된그룹을보여주고있다. 현재는노드 1 에서모든서비스를구동 중인상태이기때문에두번째노드에서는아무런서비스도실제로하고있지않다. 2.8 위그림은그룹을관리하는메뉴인데그룹에서마우스오른쪽키를누르면오프라인시키기, 그룹이동, 등록정보등이나오는데이중그룹이동은현재서비스되고있는노드를바꾼다는애기이며오프라인은말그대로해당서비스를중지하는것이다. 그렇다고해서다른노드로서비스가넘어가지는않는다. 왜냐하면클러스터서비스가관리자의요청에의해서비스를일시적으로중지해놓았기때문이다. 2.9 등록정보는그룹에대한모든정보를조정이가능하다. 26
2.10 위그림은해당그룹을구성하고있는리소스들중특정리소스의소속그룹을이동하는메 뉴이다. 당연히현재속해있는그룹외에다른그룹들만이표시된다. 또한해당리소스가종 속적인관계에있는경우는종속관계가없어야이동이가능하다. 2.11 위그림은그룹의등록정보인데기본설정소유자는이서비스에대한마스터역할을하는 서버를말한다. 특별히지정을하지않으면클러스터내의모든노드들이다소유자가된다. 단지정을하면 Fail back 을설정을해놓았을경우가장변화가있게된다. 27
2.11.1 위내용이장애복구옵션인데이옵션을설정해놓으면기본설정소유자로설정된서버가장애가나서서비스가다른노드로이전된후기본설정소유자서버가다시온라인이된경우서비스는다시제자리로자동으로돌아가게하는데이때시간을바로로해놓으면순간다운이자주발생하는경우서비스의잦은클러스터링으로클라이언트는서비스를거아받지못하게되는경우가발생할수도있으므로각별히주의해야한다. 2.12 위그림은관리자가임의로그룹을이동시킨화면의내용이다. 이동과동시에소유자는노드 2로바뀌고서비스는모드오프라인을시킨후다시해당노드에서온라인을시키게된다. 또한리소스는당연히가장종속적인리소스부터온라인으로올라오게된다이중단 1개의서비스라도문제가발생한다면당연히서비스는원하는노드에서실행하지못하고다시원래의노드로돌아가게된다. 3 Win2K Adv 서버에클러스터링서비스를적용후 SQL 2000 Enterprise Edition 설 28
치하기주 : Windows 2000 Advanced Server에 MSCS를적용하고여기에 SQL 2000 Enterprise Server Edition을설치하기이전에반드시수행해야할작업이있다. DTC를설치해주는작업이다. 이는클러스터링머신에서 Transaction 서비스를사용해야할경우클러스터링서비스에 Data Transaction Coordinator를등록해주어야하는데이이것이바로 DTC를설치한다고하는것이다. 실행명령은 comclust.exe이다. 이명령을클러스터링을할모든노드에서실행을해주면리소스에 DTC가추가된것을볼수있다. 그러고난이후 DB 서버를설치하면될것이다. 위내용만준수하면 DB 서버는어쩌면다른서비스를등록하는것보다도훨씬쉬운작업일지도모른다. 왜냐면한개의노드에서프로그램을설치하면클러스터된모든노드에동시에설치를진행할수있기때문이다. 1 SQL 2000 Server Ent. Edition 설치하기 1.1 클러스터노드에설치 CD 를넣고처음화면에서 DB 서버설치를선택한다. 29
1.2 DB 서버설치를선택하고다음을누르면아래와같은안내화면이나오고다음을누르면아래 와같이세개의설치옵션이나온다. 이중가상서버를선택해야클러스터링서비스위에 SQL 서비 스를설치하게된다. 30
1.3 가상서버를선택하고나면해당도메인의계정을입력하게되며이절차가완료되면 SQL 서비스를어떤노드에설치할것인지묻는창이나온다. 이창은설치마법사가클러스터서비스를감지하고클러스터링멤버를검색한후멤버로구성할수있는노드의목록을보여주고선택할수있도록하는것이다. 이때선택한노드는자동적으로 SQL 서비스가동시에설치가되게된다. 즉다른서비스처럼별도로각머신마다설치를하지않아도된다는것이다. 31
1.4 다음과정은클러스터링서비스위에 SQL 가상서버를설치하기위한 Parameter 를설정하는부 분이다. SQL Server 만을위한가상 IP 를선택하고클라이언트가엑세스할인터페이스를선택하게 된다. 32
1.5 다음과정은클러스터서비스를하고있는공유디스크를선택하는화면이다. 여기서실제데이터를저장할위치를선택하게된다. 물론시스템파일은각시스템의로컬에위치하게된다. 이는 SQL Server의 DB를저장할부분인데시스템파일은각노드에로컬로존재하지만데이터파일은공유디스크에있어야서비스를이전해도클라이언트가동일한서비스를계속받을수있기때문이다. 이때데이터를저장할볼륨은가능한클러스터정보파일이저장된 Quorum Resource 디스크를피하도록 MS에서는권장하고있다. 나머지과정은일반적인설치마법사에서제공하는내용이다. 1.6 기타과정은일반적인 SQL Server 설치과정과동일하다. 모든설치과정이완료되면 SQL 가상 서버설치는완료되게된다. 33
34
35
1.7 아래그림은두개의클러스터노드에서설치내용을보여주고있다. 즉단일머신에서설치작업 을완료했지만실제로는클러스터노드에포함된다른서버에도동일하게인스턴스가설치되어있 음을알수있다. 관리자입장에서는상당히편리한기능이라할수있겠다. 36
1.8 SQL Server 의설치가완료된다음클러스터관리자에서보면 SQL 서비스가클러스터자원으로 등록되어있음을볼수있다. 물론앞에서언급한 DTC 도같이설치되어있어야한다. 아래그림은 쿼럼리소스위치와관련정보창을보여주고있다. 37
위그림은클러스터관리자에서클러스터이름 ( 맨상위메뉴 ) 의등록정보창을열면볼수있다. 여기서클러스터의쿼럼리소스에대한구성정보및기타정보를변경할수있다. 마지막으로혹시 Com Application을사용하여 DB 서버를사용하는경우오류가발생하면아래내용을참조하기바란다. 만일 VB로작성한 DLL을 Com에등록해서사용한다면로컬로그온계정으로사용할지아니면지정된계정으로사용할지도확인해야한다. 로컬로그온계정으로사용한다면시스템은반드시로컬로그온이되어있어야한다. [Q2924] How to Disable Media Sense for TCP/IP in Windows 2000 [Q170769] PRB: "ODBC Resource DLL Is a Different Version Than..." Error [Q255770] PRB: ASP Generates Logon Failure: Unknown User or Bad Password [Q195956] Cannot Set AppRoot OutProc, MTS Package Identity Set to "Y" 38