PowerScale: 클러스터의 시간이 Active Directory와 동기화되지 않음
Summary: 클러스터의 시간이 Active Directory 도메인 컨트롤러와 동기화되지 않았습니다.
Symptoms
Active Directory 시간이 클러스터 시간과 4분 이상 차이가 날 경우 클라이언트 인증에 실패할 수 있습니다. AD 도메인에 가입된 클러스터는 도메인 컨트롤러의 시간과 거의 일치해야 합니다. 노드 클록은 초 또는 최대 1분까지 다를 수 있지만 4분 이상의 차이로 다음과 같은 증상이 발생할 수 있습니다.
- Windows 클라이언트가 클러스터에 인증할 수 없습니다.
- 시간 동기화 오류에 대한 경고가 전송됩니다.
- 이
/var/log/messages파일에는 다음과 유사한 항목이 포함되어 있습니다.
2014-04-07T04:15:01-03:00 <4.5> example-1(id1) lsass[60726]: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Clock skew too great) 2014-04-07T07:41:28-03:00 <30.3> example-3(id3) lsass[59264]: [lsass] Resetting schannel due to status STATUS_TIME_DIFFERENCE_AT_DC (0xc0000133) while authenticating user 'LAB\jdoe' 2014-04-07T07:41:28-03:00 <30.3> example-3(id3) lsass[59264]: [lsass] AD_NetrlogonOpenSchannel(dc1.example.com) failed with 3221225779 (0xc0000133) (symbol: 'STATUS_TIME_DIFFERENCE_AT_DC') 2014-04-07T07:41:28-03:00 <30.3> example-3(id3) lsass[59264]: [lsass] Network error connecting to EXAMPLE.COM. Error code: 40134 (symbol: LW_ERROR_RPC_ERROR) 2014-04-07T07:41:28-03:00 <30.5> example-3(id3) lsass[59264]: [lsass] Domain 'example.com' is now offline
Cause
OneFS에서 시간 동기화는 다음 두 가지 방법으로 관리됩니다.
-
내부 시간 동기화(클러스터 노드 내)
- 외부 시간 동기화(클러스터 외부)
클러스터가 AD 도메인에 가입하면 기본적으로 초 단위까지 정확하게 외부 시간 동기화를 위해 SMB(Server Messenger Block)를 사용합니다. 내부적으로 NTP(Network Time Protocol)는 밀리초 단위의 정밀도로 시간 동기화를 관리합니다.
AD 도메인 컨트롤러와 동기화할 때 시간이 크게 수정되지 않도록 하려면 정밀도를 높이기 위해 SMB 대신 NTP를 사용하도록 컨트롤러를 구성합니다. 크게 조정하면 Kerberos 티켓이 만료된 것으로 나타나고 인증 오류가 트리거되는 등의 성능 문제가 발생할 수 있습니다.
Resolution
클러스터와 도메인 간의 시간차를 확인합니다.
아래 명령을 실행하여 노드 및 도메인 컨트롤러의 날짜와 시간을 확인합니다.
# isi_for_array -s date
# isi_for_array -s /usr/likewise/bin/lw-get-dc-time <domain_name>
시간 동기화가 올바르게 설정되었는지 확인합니다.
아래의 모든 단계를 수행하여 AD 도메인 컨트롤러를 구성하고 클러스터가 AD 컨트롤러와 올바르게 동기화되는지 확인합니다.
Active Directory 서버에서 NTP를 구성합니다.
Windows 2003 - 2012 Server의 경우 NTP 서버를 가리키도록 NTP를 구성합니다. 자세한 내용은 Microsoft TechNet 웹사이트의 Windows 시간 서비스 도구 및 설정 페이지를 참조하십시오.
메모
한 곳에 연결할 수 없는 경우 두 개의 AD 도메인 컨트롤러를 이중화에 사용할 수 있는지 확인합니다. 시간은 공용 NTP 서버 또는 GPS가 장착된 시스템과 같은 내부 소스의 정확한 계층 구조를 따라야 합니다.
AD 도메인 컨트롤러가 NTP를 지원하고 NTP가 방화벽 또는 기타 설정에 의해 차단되지 않았는지 확인합니다.
-
클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
-
다음 명령을 실행합니다. 여기서
<ipaddr1>및<ipaddr2>은 첫 번째 및 두 번째 AD 도메인 컨트롤러의 IP 주소입니다.
ntpdate -q -u <ipaddr1>
ntpdate -q -u <ipaddr2>
AD 도메인 컨트롤러가 NTP를 지원하는 경우 각 명령의 출력은 다음과 유사합니다.
서버 <ipaddr1>, 계층 1, 오프셋 0.427215, 지연 0.04138
11 5 월 15:45:46 ntpdate [79498] : 시간 서버 <ipaddr1> 오프셋 0.427215 초 조정
AD 도메인 컨트롤러가 NTP를 지원하지 않는 경우 출력은 다음과 유사하며, 이 경우 도메인 관리자에게 도움을 요청해야 합니다.
나5-10-3: 11 May 15:49:40 ntpdate [79741] : 동기화에 적합한 서버를 찾을 수 없습니다.
클러스터의 시간을 AD 도메인 컨트롤러의 시간과 일치하도록 설정합니다.
- 클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
- 다음 명령을 실행합니다. 여기서
<ippaddr1>은 클러스터를 동기화할 AD 도메인 컨트롤러의 IP 주소입니다.
isi_for_array -s "ntpdate -u -b <ipaddr1>"
출력은 다음과 유사합니다.
예-1: 11 5 월 15:49:48 ntpdate [79756] : 단계 시간 서버 <ipaddr1> 오프셋 0.541754 초
예 -2 : 11 5 월 15:49:48 ntpdate [99580] : 단계 시간 서버 <ipaddr1> 오프셋 0.541843 초
예 -3 : 11 5 월 15:49:48 ntpdate [63251] : 단계 시간 서버 <ipaddr1> 오프셋 0.480573 초
ntp.drift 파일을 삭제합니다.
이 ntp.drift file은 시스템 클럭의 클럭 드리프트에 대한 기록입니다. 충분한 데이터가 누적되면 이 파일이 다시 생성됩니다.
-
클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
-
실행 중인 OneFS의 버전에 따라 명령줄에서 다음 명령 중 하나를 실행합니다.
isi_for_array -sX "rm -fv /var/crash/ntp.drift"
AD 도메인 컨트롤러를 NTP 서버로 사용하도록 클러스터를 구성합니다.
-
OneFS 웹 관리 인터페이스를 열고 다음 중 하나를 수행합니다.
-
OneFS 7.0 이상에서는 Cluster ManagementGeneral > SettingsNTP > 탭을 클릭합니다.
-
각 AD 도메인 컨트롤러의 Server IP or hostname 상자에 IP 주소를 입력한 다음 Add를 클릭합니다.
-
Submit을 클릭합니다.
또는 명령 프롬프트에서 이 작업을 수행할 수 있습니다.
-
클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
-
다음 명령을 실행합니다. 여기서
<ipaddr1>및<ipaddr2>은 첫 번째 및 두 번째 AD 도메인 컨트롤러의 IP 주소입니다.
isi_ntp_config ipaddr1>
서버 <추가 isi_ntp_config ipaddr2 서버 <추가>
메모
새 NTP 설정이 클러스터의 모든 노드에 전파되는 데 23시간이 걸릴 수 있습니다. chimer 노드는 AD 도메인 컨트롤러에 시간을 동기화하고, 클러스터의 노드는 chimer 노드에 시간을 동기화합니다.