[MIP-400] 도메인 환경에서 미러디스크 리소스 구성 시 Local Administrator 가 필요한 이유를 밝힌다.
Subject
도메인 환경에서 미러디스크 리소스 구성 시 Local Administrator 가 필요한 이유를 밝힌다.
APPLIES TO:
MCCS For Windows, DK 7.4.3
SYMPTOMS
도메인 환경에서 미러디스크 리소스 구성 시 Local Administrator 계정이 필요한 이유를 시나리오를 작성하여 확인한다.
CAUSE
*<MCCS 동작 원리>*
MCCS 는 target에서 미러리소스를 Online 시도 하기전에, 리모트 미러 IP로 Ping TEST를 성공유무를 확인하고, emcmd 명령인 getserviceinfo 명령을 통해 리모트의 DataKeeper 서비스가 동작 중인지 확인한다.
만약 성공하면, switchovervolume 명령을 시도하고, 실패를 하면 deleteLocalMirrorOnly 명령과 CreateMirror 명령을 수행하게 된다.
*<도메인 환경에서 Local Administrator가 필요한 이유>*
MCCS 서비스 로그온 계정은 Local System 이다. MCCS에 사용하는 모든 명령은 Local System 으로 실행하게 된다.
Domain 환경에서 emcmd target_IP getserviceinfo 명령을 수행시, Local System 계정으로 실행하게 된다. 이를 바탕으로 아래와 같은 시나리오를 작성한다.
1. PsExec.exe -i -s cmd 를 실행하게되면, cmd 창이 Local System 계정으로 실행된다. (작업관리자에서 cmd process를 확인하게 되면, 사용자가 SYSTEM으로 표시된다. )
2. 새롭게 열린 cmd 창에, emcmd target_IP getserviceinfo 를 실행하게 되면, 1311 Error 가 발생하면서 명령이 실패한다.
{code}
C:\>emcmd 200.200.200.12 getserviceinfo
Error opening connection to system '200.200.200.12' [1311]
C:\>net helpmsg 1311
지금은 로그온 요청에 서비스할 수 있는 로그온 서버가 없습니다.
{code}
3. runas 명령을 통해 Local Administrator 명령으로 실행시, 정상 실행 된다. (작업관리자에서 cmd process를 확인하게 되면, 사용자가 Administrator로 표시된다. )
{code}
C:\>runas /user:2008R2active\administrator cmd
2008R2active\administrator의 암호 입력:
cmd을(를) 사용자 ""2008R2active\administrator""(으)로 시작하려고 합니다...
{code}
{code}
C:\Windows\system32>emcmd 200.200.200.12 getserviceinfo
Service Description = 'SteelEye DataKeeper Service'
Service Build Type = Release
Service Version = 7.5.0
Service Build = 750019
Driver Version = 7.5.0
Driver Build = 750019
Target Dispatch Port = 9999
Volume Bit Map = 8h
Service Start Time = Thu Oct 24 13:45:02 2013
Last Modified Time = Thu Oct 24 13:45:36 2013
NetBIOS Name = 2008R2STANDBY
Full Domain Name = 2008R2STANDBY.sundomain.local
{code}
SOLUTION
위의 테스트 결과에 따라 MCCS에서는 Domain 환경에서 getserviceinfo 명령을 실행시, Domain 환경일 경우에는 executeBatchScriptAsUser()를 이용하여, Local Administrator 와 암호를 이용하여 getserviceinfo 명령을 실행하고, WorkGroup 환경일 경우에는 executeBatchScript() 를 이용하여, 계정과 암호 정보 없이, 명령을 실행한다.