DNS 영역이 로드 되지 않는 장애

로그에 event 4000, 4007 자주 보입니다.

dns error

 

Symptoms

VM으로 운영중인 AD서버가 몇번 비정상 셧다운을 반복하다 DNS 서버 중 하나가 DNS 영역이 로드되지 않고 DNS 이벤트 로그에 ID 4000 및 4007이 기록.

Event ID 4000:
DNS 서버가 Active Directory를 열 수 없습니다. 이 DNS 서버는이 영역의 디렉토리에서 정보를 가져 와서 사용하도록 구성되어 있으며 해당 영역이 없으면 영역을로드 할 수 없습니다. Active Directory가 제대로 작동하는지 확인하고 영역을 다시로드하십시오. 이벤트 데이터는 오류 코드입니다.

Event id 4007:

DNS 서버가 응용 프로그램 디렉터리 파티션 <partition name>에서 Active Directory의 <zone> 영역을 열 수 없습니다. 이 DNS 서버는이 영역의 디렉토리에서 정보를 가져 와서 사용하도록 구성되어 있으며 해당 영역이 없으면 영역을로드 할 수 없습니다. Active Directory가 제대로 작동하는지 확인하고 영역을 다시로드하십시오. 이벤트 데이터는 오류 코드입니다.

또한
DNS 콘솔을 열려고하면 “액세스 거부”라는 팝업이 나타납니다.
DNS 서버 서비스가 시작되어 실행되고 있으나,  DNSCMD를 사용하여 AD 통합 영역에서 작업을 수행하려고하면 “액세스 거부”가 표시됩니다.

Cause

특정 DC / DNS 서버가 자체 또는 PDC와의 보안 채널을 잃어 버렸을 때 발생합니다.

Resolution

  1. netdom resetpwd /server:<PDC.domain.com> /userd:<Domain\domain_admin> /passwordd:*
  2. reboot

 

Link : https://support.microsoft.com/en-us/help/2751452/dns-zones-do-not-load-event-4000-4007

가상화 환경에서 AD 운영시 주의점

많은 회사들이 가상화를 운영중에 있습니다.
몇몇 회사들은 가상화 환경에서 AD서버를 운영중인 곳도 있습니다.
가상화에서 AD를 운영중이라면, 복원계획에 있어 신중해야 합니다. 가상화에는 스냅샷이라는 기능이 제공됩니다.이는 일부 변경 사항들을 되돌리기 위해 사용을 합니다.
아주 유용한 기능이지만 도메인서버나 인증서버등에서는 아주 신중히 운영을 해야 합니다.

몇일전 저도 실수한 내용을 공유드립니다.

1) 저는 최근에 발생한 장애의 트러블슈팅을 위해 사전 찍어놓은 스냅샷으로 롤백하길 원합니다. 도메인 환경은 두 개 혹은 그 이상의 도메인 컨트롤러를 가지고 있고 단일 도메인 포레스트입니다. 도메인 컨트롤러는 모두 Windows Server 2008 R2에서 동작합니다.

2) 일반적인 시스템 상태 백업 대신에 가상 머신 스냅샵을 사용했습니다.
3) 스냅샷 중의 하나로 DC 한대(PDC)를 복원했습니다.
4) 그 이후 DC들간의 복제가 깨집니다.

DC에서는 다음과 같은 복제 증상이 나타납니다.
1) Netlogon 서비스가 중지상태입니다.
2) 디렉터리 서비스 이벤트로그에 복제 오류가 기록되고, 이벤트 ID 2095와 함께 이벤트 원본에 NTDS 복제가 기록됩니다.
3) 디렉터리 서비스 이벤트 로그는 두 개의 경고를 기록하는데, 이벤트 원본은 NTDS General이고 이벤트 ID는 1113과 1115입니다.

이는 정합성 문제입니다.

간단하게 예를들어 스냅샷으로 롤백하기전 PDC에 있던 A라는 계정을 생성했는데…계정생성전의 시점으로 롤백을 할 경우 입니다.
그렇게 되면 A라는 계정의 usn은 10이였다면, 복원을 하면서 USN은 9가 되어 버립니다.
복제서버는 이미 10으로 알고 있는데 PDC가 9로 알고 있으니 충돌이 나는 것입니다.

AD Replication에 대한 이해가 조금 필요합니다.

도메인 컨트롤러(DC)는 복제 파트너간에 필요한 업데이트를 추적하기 위해서 USN(Update Sequence Numbers)을 사용합니다.
디렉터리 내의 데이터에 변화가 생길 때마다 USN은 변화가 발생한 것을 나타내기 위해 값이 증가합니다.
DC 저장소의 각 디렉터리는, USN을 각 원본 복제 파트너로부터 받은 마지막 업데이트를 추적하기 위해서 사용합니다.
각 DC는 디렉터리 파티션의 복제물을 저장하는 DC의 가장 높은 USN을 알고 있는 테이블을 가지고 있습니다.
각 DC는 Invocation ID라고 불리는 NTDS 설정 개체의 값도 가지고 있습니다. 이 값은 로컬 AD 데이터베이스의 버전을 구분하기 위해 사용됩니다.

복제 프로세스동안 USN을 사용하는 두 값이 있습니다. 하나는 Up-to-dateness vector 이고, 다른 하나는 High water mark입니다. Up-to-dateness vector는 원본 DC로부터 받은 원래의 업데이트를 추적하기 위해서 목적지 DC에서 유지하는 값입니다. 목적지 DC가 디렉터리 파티션을 위한 업데이트를 요청할 때 목적지 DC에 보내기 위해 필요한 특성의 값을 감소시키는 값을 사용하는 원본 DC의 Up-to-dateness를 제공합니다. 원본 DC는 Up-to-dateness vector 값을 복제 주기가 완료될 때 목적 DC에 보냅니다. High water mark는 특정 디렉터리 파티션의 개체를 위해 특정 원본 DC로부터 받은 마지막 변경을 추적하기 위해 목적지 DC가 유지하는 값입니다. 이 값은 이미 목적지 DC에 적용된 것을 원본 DC에서 목적지 DC로 보내는 것을 방지합니다.

Invocation ID는 DC에서 실행되는 디렉터리 데이터베이스를 구분하는 GUID 값이고 서버 개체의 ID로부터 구분되어 유지됩니다. 서버 개체의 ID는 변하지 않지만 디렉터리 데이터베이스의 ID(Invocation ID)는 시스템 상태가 마이크로소프트 API를 사용하여 복원될 때 변경됩니다. 모든 도메인 컨트롤러는 그것의 원본 복제 파트너의 디렉터리 데이터베이스의 추적을 유지합니다. Up-to-dateness vector와 High water mark는 Invocation ID를 참조해서 DC는 AD 복제의 복사본이 어디서부터 오는지 알게 됩니다.

위와 같은 장애 상황을 바로잡으려면 롤백 이슈가 있는 DC에서 다음과 같이 작업해야 합니다.

1) 먼저 장애서버가 pdc라면(FSMO역할 서버) 다른 DC에 역할을 전달해야 합니다. 방법에는 Transfer와 Seize가 있는데 복제이슈가 있다면 Transfer가 잘 안되는 경우가 많습니다.

그냥 seize를 진행합니다.

2) ‘dcpromo /forceremoval’을 실행하여 해당 DC를 강제적으로 제거합니다. 이것은 변경에 대한 복제를 시도하지 않고 서버에서 AD를 제거합니다. 제거가 완료되고 서버를 다시 시작하면 workgroup의 단독 서버가 될 것입니다.
3) DC에서 장애난 dc의 메타데이터 클린업을 실행하고 복제 파트너를 제거합니다.
4) 이 환경에서 복제가 한번 완료되면 제거된 서버를 도메인에 조인하고 DC로 승격시킵니다.

이와 같이 일을 방지하기 위해서는
1) DC 이미지를 백업하기 위해서 이미징 소프트웨어를 사용하지 마세요.
2) DC의 스냅샷을 만들거나 적용하지 마세요.
3) 가상 머신을 끄지 말고 가상 디스크를 백업으로 복사하세요.

끝.

 

vcsa 6.0에서의 호스트 추가 Error

역시 경험보다 중요한건 없습니다.

” a general system error occurred:unable to get signed certificate for host error_bad_environment (10) (10)”
general error.png

 

 

 

서버를 수십번 설치해 보고, 여러 KB를 찾아보았지만 답은 없었습니다.
인증서도 바꿔보고…

그런데..답은..
vcsa의 Log full로 정상적인 동작이 이뤄지지 않은 Case입니다.

vcsa의 확인결과
vcsa sda3 size full.png
sda3가 Full 입니다.
위 파티션이 Full sizing이 되면서 서비스가 중단되는 현상이 발생되었습니다.
(모니터링을 하지 않으니 장애가 발생해도 문제가 뭔지….ㄷㄷㄷ)

sda3는 audit.log가 쌓이는 파티션으로 root암호라던지 로그인에 대한 log를 저장합니다.
확인하고 log를 정리합니다.
audit.log 파일을  확인합니다.
ls -lh

audit.log 파일 잘라 내기 (파일을 삭제하지 않고 내용 정리)
truncate -s 0 audit.log

서비스를 재시작 합니다.

https://kb.vmware.com/s/article/2149278

Migrate Active Directory Server 2008 R2 to Server 2016

windows 2008이 20년 1월로 EoS됩니다.
아직 windows 2003 쓰는데도 있긴 하던데…그건 좀 아닌거 같고
windows 2016으로 migration을 진행합니다.

진행순서는…
1. 기존 2008서버에 스키마 버젼을 올려주고
2. 신규 2016서버는 맴버서버로 조인하고
3. 신규 2016서버를 도메인 설치하고
4. 작업마스터 역할을 이전해주고
5. 기존 2008 서버를 삭제하고 띄어내어 주면 됩니다.

먼저 어떤 서버가 작업마스터 인지 확인을 합니다.
c:\netdom query fsmo
ad migration_check fsmo

이제 스키마 버전을 확인합니다.
시작 – 실행 – regedit
>Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
경로로 가서 확인//
migration ad_check schima version.png
위와 같이 windows 2008은 스키마 버젼이 47입니다.

이제 해당 스키마를 승격시켜 줍니다.
2008서버에 2016 iso파일을 CDROM으로 붙이고 아래의 경로에서 실행합니다.
cd D:\support\adprep
D:\adprep /forestprep
ad migration_upgrade fsmo version
ad migration_upgrade fsmo version2.png
이제 2008서버 사전준비는 되었고,

신규서버를 설치하고, windows 2016를 도메인 조인하고, AD를 설치합니다.

이제 ndtsutil 명령을 이용해서 마스터 역할을 넘깁니다.
Command Prompt로 들어가서 아래의 명령으로 진입합니다.
ntdsutil01 roles connections connect to server

ntdsutil – roles – connection – connect to server 신규 windows 2016 서버

스키마 마스터 부터 넘깁니다.
transfer schema master
ntdsutil.png

차례대로 아래의 역할들을 넘깁니다.
transfer naming master
transfer PDC
transfer RID master
transfer infrastructure master

다 넘기고 나면, 다시 확인합니다.
result.png

 

위와 같이 넘어간것을 확인할수 있습니다.
이제 남은 2008 서버를 제거하면 됩니다.

기존의 2008서버 제거는
시작 – 실행 – dcpromo 로 진행을 하면 되고, 중간에 “이 서버는 도메인의 마지막 도메인 컨트롤러이므로 도메인을 삭제하십시오” 는 체크 해제 해야 합니다. (당연함)
dcpromo.png

 

요렇게 진행할수 있습니다.
끝.

 

vSAN 내용 정리

2014년 3월 이후 5년이 지난 시점이지만, 일반 제조에는 많이 운영이 되지 않는듯? 하여 다시 정리해 봅니다.

장점이라면,
1.일반 레가시스토리지보다 빠른 성능
2.로컬디스크로 올플래시 구현
3.완벽한 scale-out 방식으로 호스트 추가마다 성능+저장공간 우상향
4.스토리지 단계까지의 이중화 구성

단점이라면,
1.최소 서버 3대이상 필요
2.반드시 ssd disk가 필요
3.데이터스토어 분리 불가(하나의 데이터스토어만 생성됨)

정도이고, vSAN에 대해서는…

Virtual SAN이라는 이름으로 나왔지만, 현재는 vSAN으로 통일.
2014.03월 5.5부터 나와서 현재 6.7까지 출시
로컬Disk를 이용한 가상스토리지를 구현, (ssd + hdd = 하이브리드, ssd+ssd는 올플래시)
여기서 ssd는 캐시용 , hdd는 저장공간용
vsan 개념.png

호스트(서버)당 1개 이상의 디스크그룹이 필요
디스크 그룹은 1개 이상의 ssd와 1개 이상의 hdd필요
클러스터당 하나의 데이터스토어만 구성
VM은 오브젝트/컴포넌트/위트니스로 구성됨.

오브젝트와 컴포넌트는 아래와 같음.
vsan object.png

오브젝트 = VM
컴포넌트 = 실제 저장되는 disk요소
위 그림처럼 한개의 vm은 2개의 리플리카로 저장, 운영되고, 2개의 오브젝트는 각 디스크에 복제 저장되게 구현.(스토리지 정책에 따라 2개 이상의 복수개로 가능)
최소 3대이상으로 구현 가능하고, 추천은 4대
Scale-out 방식으로 호스트가 추가된때  마다 성능의 우상향.

대략 이런듯 합니다.

vSAN 구성의 요구사항 정리

엔터프라이즈 데이터 센터에서 가장 널리 사용되는 소프트웨어 정의 스토리지 솔루션입니다. Microsoft는 Storage Spaces Direct가 있지만, 특히 관리 측면에서 여전히 가장자리가 약간 어려운 면이 있습니다.(솔루션면에서 MS가 따라가는 형국이네요)

VMware vSAN 요구 사항

  • 하나의 SAS 또는 SATA SSD 또는 플래시 장치
  • 캐시 크기를 살펴보면 전체 용량 스토리지의 10 % 이상 이어야 합니다.
  • 캐시 장치에 VMFS 포멧은 사용될 수 없습니다.
  • vSphere Flash Read Cache는 vSANCache에 할당 된 Cache를 사용하지 않아야 합니다.


VM
스토리지

  • 하이브리드 그룹 구성에는 하나 이상의 자기 디스크가 있습니다.(디스크 그룹당 7개)
  • 올 플래시 디스크 그룹에는 모든 SSD 또는 PCIe 플래시 장치가 있습니다.

 

스토리지 컨트롤러

  • 스토리지 컨트롤러에는패스 스루 모드 또는 RAID 0 을 수행하는 기능이 포함되어야합니다.
  • VMware vSAN은 RAID 컨트롤러에 의한 조정없이 RAW 디스크에 직접 레벨 액세스해야합니다.
  • vSAN및 비 vSAN 디스크에 대한 컨트롤러 모드를 혼합하지 마십시오.

 

메모리 요구 사항

메모리 요구 사항의 경우 VMware는 디스크 그룹 수에 따라 필요한 메모리 고려 사항에 대해 실제로 우수한 KB 를 제공합니다.
참조 : http://byounghee.me/2017/04/21/vsan-memory-consume/
참조 : https://kb.vmware.com/s/article/2113954

 

네트워크 요구 사항

소프트웨어 정의 스토리지 솔루션은 노드간에 데이터를 동기화하기 위해 참여하는 호스트 간의 높은 대역폭 연결이 중요합니다. vSAN도 마찬가지이며, vSAN을 활성화 하기 위한 다양한 네트워크 수준 요구 사항을 충족해야 합니다.

  • 하이브리드 환경 = 1Gbps 이상의 연결
  • 올 플래시 = 전용 또는 공유 10Gbps 연결
  • vSAN 트래픽을 위한 VMkernel 네트워크 어댑터 필요
  • vSAN 클러스터의 모든 호스트는 vSAN L2 또는 L3 네트워크에 연결 되어야 함.
  • IPv4 및 IPv6 모두 지원
  • 대기 시간 요구 사항은 다음과 같습니다.
    • non-stretched vSAN clusters의 경우 최대 1ms RTT
    • 확장된 stretched Cluster일 경우 두 사이트  간 최대 5ms RTT
    • 사이트에서 witness Node(감시 노드)까지 최대 200ms RTT

 

VMware vSAN 설치 소프트웨어 요구 사항

클러스터 요구 사항

  • 모든물리적 ESXi 호스트 의 장치, 드라이버, 펌웨어 버전이 동일해야하며 vSAN 환경이 모두 VMware 호환성 매트릭스에 존재해야 함.
  • 대부분의 환경에서 vSAN 클러스터에 대한 호스트가 3 개 이상 있어야합니다. 2 노드 구성도 가능하지만 의미없는 구성이며, Recommended는 4 Node 입니다.
  • vSAN 클러스터 호스트는 한 번에 하나의 vSAN 클러스터에만 속할 수 있습니다.(데이터 스토어도 하나만 생성되고 쪼갤수 없습니다)

 

VMware vSphere 요구 사항

6.0이후 버젼부터 가능하지만, 최신이 가장 성능이 좋습니다.

라이센스 요구 사항

vSAN을 설치하면 60 일의 유예 기간이 있습니다.(평가판)
기본적인 구성은 RAID1 방식이지만, 고급 라이센싱을 통해 RAID 5/6, 중복 제거 및 압축 기능을 수행 할 수 있습니다. 라이센싱은 클러스터의 물리적 CPU 수를 기반으로합니다.
vsan license edition

VMware vSAN 아키텍처

vSAN은 vSAN 클러스터의 각 호스트에서 로컬 스토리지 장치를 사용하여 생성 된 공유 객체 데이터 스토어입니다. SAN 및 NAS와 같은 다른 공유 스토리지 유형의 사용은 지원하지 않습니다.

vSAN은 장애 도메인 개념을 사용하여 데이터를 보호합니다. 기본적으로 vSAN 클러스터의 각 호스트는 장애 도메인입니다. vSAN은 호스트 전체에 데이터를 분산하여 하드웨어 또는 기타 장애에 대한 탄력성을 제공합니다. 또한 여러 호스트를 포함하는 명시적 장애 도메인을 생성 할 수 있습니다.

예를 들어 스몰 스타터로 3대의 호스트로 vSAN을 구성했습니다.
구성후 이런저런 검증을 통해 도입이 최종 결정되어 15대의 규모로 확장을 계획하고 있습니다.
간단하게 호스트를 추가하고, 호스트가 늘면 늘수록 성능이 우상향 되는 특징처럼 별어려움 없이 추가할수 있습니다.
1번 랙에 5대 , 2번 랙에 5대, 3번 랙에 5대로 최종 구축을 했습니다.

그런데,
vSAN을 구성하는 3대의 랙중에 하나의 랙이 전체 전력장애가 발생하여 전부 다운되었다면?
(서버랙 전체가 다운되는일은 극히 드물겠지만)
이렇게 여러대의 서버랙에 걸쳐 vSAN을 구성했다면?? 간단하게 데이터가 하나의 랙에 집중되지 않도록 분산 배치 하는것이 “장애 도메인” 입니다.
데이터를 분산하여 전체 서버 랙의 장애와 같은 다른 장애 도메인에 대해 탄력성을 제공 할 수 있습니다.

장애도메인이 복수의 랙에 걸쳐  데이터분산 및 장애에 대한 이중화를 제공하였다면, 더 확장된 기술인 “Stretched-Cluster” 로
지역간, 지리적으로 떨어져 있는 vSAN 데이터 스토어를 클러스터화 할수 있습니다.
지리적으로 떨어져 있는 데이터센터간 , 혹은 IDC간 vSAN 데이터스토어를 클러스터화 합니다.
stretched cluster.png

 
2014년 3월에 5.5version으로 나온 기술이, 벌써 5년입니다.
빠르게 진화하고 있고, 충분히 레가시 스토리지를 대체할수 있는 기술입니다.

끝.