가상 컨트롤러는 클러스터에 참여하거나 참여하지 않을 수 있는 라이브 컨트롤러 VM(가상 시스템) 또는 존재하지 않는 VM일 수 있습니다. NSX Manager는 vCenter Server 인벤토리의 모든 VM 목록을 동기화합니다. 가상 컨트롤러는 vCenter Server 또는 호스트가 NSX Manager의 요청 없이 컨트롤러 VM을 삭제하거나 vCenter Server 인벤토리가 컨트롤러 VM의 참조 MOID를 변경할 때 생성됩니다.
컨트롤러가 NSX에서 생성되면 구성 정보가 NSX Manager 내부에 저장됩니다. NSX Manager는 vCenter Server를 통해 새 컨트롤러 VM을 배포합니다.
NSX 관리자는 컨트롤러를 생성하기 위해 NSX Manager에 대한 IP 주소 풀을 포함하는 구성을 제공합니다. NSX Manager는 풀에서 IP 주소를 제거하고, 컨트롤러 구성의 나머지와 해당 IP를 vCenter Server에 대한 VM 생성 요청으로서 푸시합니다. NSX Manager는 vCenter Server에서 요청의 상태를 확인할 때까지 기다립니다.
- The controller creation process was successful: 컨트롤러 VM이 성공적으로 생성되면 vCenter Server는 컨트롤러 VM을 시작합니다. NSX Manager는 나머지 컨트롤러 구성 정보와 함께 VM의 MOID(관리 개체 ID)를 저장합니다. MOID(또는 MO-REF)는 vCenter가 해당 인벤토리의 모든 개체에 할당하는 고유한 식별자입니다. 또한 vCenter Server는 이 MOID를 통해 VM을 추적하여 VM이 vCenter Server 인벤토리의 일부로 남아 있는지 확인합니다.
- The controller creation process was not successful: IP 및 네트워크 연결 구성이 잘못된 경우 NSX Manager에서 vCenter Server에 연결하지 못할 수 있습니다. NSX Manager는 미리 설정된 시간 동안 대기했다가 활성 클러스터에 참여할 단일 노드 컨트롤러 클러스터(첫 번째의 경우) 또는 새 컨트롤러를 생성합니다. 타이머가 만료되면 NSX Manager는 vCenter Server에 VM을 삭제하도록 요청합니다. IP 주소가 풀로 다시 반환되고 NSX는 컨트롤러 생성 실패를 선언합니다.
가상 컨트롤러가 생성되는 방식
NSX Manager가 컨트롤러 삭제를 요청하는 경우 vCenter Server는 MOID를 사용하여 삭제할 컨트롤러를 VM을 찾습니다.
그러나 vCenter 작업으로 인해 vCenter Server 인벤토리에서 컨트롤러 VM이 제거되면 vCenter는 해당 데이터베이스에서 MOID를 제거합니다. 컨트롤러 VM은 vCenter 인벤토리에서 제거된 후에도 NSX Manager에서 여전히 작동되며 활성 상태를 유지할 수 있습니다. 하지만 vCenter Server의 입장에서는 컨트롤러 VM이 더 이상 존재하지 않게 됩니다. vCenter Server가 해당 인벤토리에서 VM을 제거하더라도 VM이 삭제되지 않을 수 있습니다. VM이 여전히 활성 상태인 경우 NSX 컨트롤러 클러스터에 참여하고 있거나 참여하려고 시도하게 됩니다.
다음은 가상 컨트롤러가 생성되는 방법의 가장 일반적인 예입니다.
- vCenter Server 관리자가 인벤토리에서 컨트롤러 VM을 포함하는 호스트를 제거합니다. 나중에 호스트를 다시 추가합니다. 호스트가 제거될 때 vCenter Server가 호스트와 연결된 MOID 및 포함된 VM을 모두 삭제합니다. 호스트가 나중에 다시 추가되면 vCenter Server가 호스트 및 VM에 새로운 MOID를 할당합니다. NSX 사용자에게는 호스트와 VM이 여전히 동일하지만 vCenter Server의 관점에서는 호스트와 VM이 완전히 새로운 개체입니다. 그러나 실질적으로 해당 호스트와 VM은 여전히 같다고 볼 수 있습니다. 호스트 및 VM 내에서 실행되는 애플리케이션은 달라지지 않습니다.
- vCenter Server 관리자가 vCenter Server 또는 호스트 관리를 사용하여 컨트롤러 VM을 삭제합니다. 이 삭제는 NSX Manager에서 시작되지 않았습니다.
- 또한 이 경우에서의 삭제에는 VM 손실로 이어지는 모든 호스트/스토리지 오류도 포함됩니다. 이 경우 해당 VM은 vCenter Server에서 손실될 뿐만 아니라 클러스터 및 NSX Manager에서도 손실됩니다. 하지만 이 삭제가 NSX Manager에서 시작되지 않았으므로 NSX Manager 및 컨트롤러 클러스터 둘 다 해당 컨트롤러가 여전히 유효하다고 봅니다. NSX Manager로 반환된 컨트롤러 상태는 이 컨트롤러 노드가 다운되었으며 클러스터의 일부가 아니며 UI에 표시됨을 나타냅니다. 또한 NSX Manager에는 해당 컨트롤러에 더 이상 연결할 수 없음을 나타내는 로그도 있습니다.
가상 컨트롤러가 표시될 때 수행할 작업
- NSX Controller의 연결이 끊김에 설명된 대로 컨트롤러를 동기화합니다.
- 로그 항목을 참조하십시오. 컨트롤러 VM이 실수로 삭제되었거나 손상된 경우 강제 삭제(Forcefully Delete) 옵션을 사용하여 NSX Manager 데이터베이스에서 항목을 지워야 합니다. 자세한 내용은 NSX Controller 삭제을 참조하십시오.
- 컨트롤러를 삭제한 후 다음을 확인하십시오.
- 컨트롤러 VM이 실제로 삭제되었는지 확인합니다.
- show control-cluster startup-nodes 명령이 올바른 컨트롤러만 표시하는지 확인합니다.
- NSX Manager에 대한 syslog 항목이 더 이상 추가 컨트롤러를 표시하지 않는지 확인합니다.
NSX 6.2.7 이상에서 NSX Manager는 vCenter 인벤토리를 확인하여 컨트롤러 VM이 원래 MOID를 기준으로 하는 인벤토리에 여전히 존재하는지 검토합니다. NSX Manager가 인벤토리에서 컨트롤러 VM을 찾을 수 없는 경우 NSX Manager는 VM의 인스턴스 UUID를 사용하여 VM을 검색합니다. 인스턴스 UUID는 VM 내에 저장되므로 VM이 vCenter 인벤토리에 다시 추가되어도 변경되지 않습니다. NSX Manager에서 인스턴스 UUID를 사용하여 VM을 찾을 수 있는 경우 NSX Manager는 새 MOID로 해당 데이터베이스를 업데이트합니다.
그렇지만 컨트롤러 VM을 복제하는 경우 복제된 VM은 새 인스턴스 UUID는 물론, 원래 VM과 동일한 속성을 갖습니다. NSX Manager는 복제된 VM에 대한 MOID를 검색할 수 없습니다.
가상 컨트롤러에 대한 로그 항목
가상 컨트롤러가 감지되면 다음 오류 수준 로그 항목이 표시됩니다.
- 2017-07-31 22:15:05.844 UTC ERROR NVPStatusCheck ControllerServiceImpl:2146 - Controller <#> does not exist, might be deleted already. Skip saving its connectivity info.
- 2017-07-31 22:15:05.769 UTC ERROR NVPStatusCheck ControllerServiceImpl:2580 - the node is created by this NSX Manager <#>, but database has no record and delete might be in progress.