Microsoft/Cluster

Failover Cluster Virtual Network Adpater

로멘틱가이 2014. 10. 21. 15:04

Failover Cluster Virtual Network Adapter

 

1. Node Health 모니터링

- Node 들 사이에서 가능하지 않은 노드들을 확인한다.

- Ping이 아닌 안정적이고 보안에 강한 Request-Reply를 사용하는 Unicast를 사용한다.

- 서버들 중에 반응하지 않는 서버가 있는 경우 Recovery Action을 수행함

 

2. Failover Cluster Virtual ADapter(NetFT)

- NetFT는 Cluster에서 노드들 사이에서 모든 가능한 인터페이스를 사용하여 TCP연결을 Fault-Tolerant하는 Adapter이다.

- Cluster들은 Cluster간 통신하기 위해 여러 개의 Cluster가능한 Adapter를 사용하는 구조이다.

- Cluster를 위한 내부 NIC Teaming과 유사하다.

- NetFT는 네트워크가 실패하였을때 우선 순위에 따라 다른 네트워크로 통신 연결을 전환한다.

 

3. NetFT Virtual Adapter

- Ipconfig /all을 사용하여 Microsoft Fialover Cluster Virtual Adapter를 확인할 수 있음

- Cluster Node에서 첫번째 Physical NIC의 Mac 주소의 Hash 값을 기반으로 생성한 MAC 주소를 사용한다.

- User가 해당 설정을 Manual하게 생성할 수 없다.

- Driver는 C:\Windows\System32\Drivers\Netft.sys 이며 장치 관리자의 Network Adapter에서 Microsoft Failover Cluster Virtual Adapter로 확인할 수 있음

 

4. NetFT 아키텍처

- NDIS 6.2 miniport Virtual Adapter를 사용

- RSS 지원

- Route된 네트워크 연결을 통해 TCP와 UDP에 대한 Network Fault Tolerance를 사용

각 링크는 독립적으로 모니터링 되고 있음

- IPv4와 IPv6를 지원함

- Route Failure 감지를 구성

- Physical Adapter와 Virtual Adapter간 터널 구성(UDP / IP 사용)

- 3343 포트 사용

NetFT : UDP 3343

ClusSvc  : TCP 3343

 

5. Network Topology Manager

- Network Topology Manager는 Node 사이에 여러 개의 연결을 Subnet을 바탕으로 구분한다.

- Drive들은 Failure를 감지하고 Failover 함

 

6. NetFT Virtual Adapter Performance Filter

- Cluster 네트워크의 성능 향상

- 향상된 성능을 위해 NetFT Driver로 직접 Packet을 전달함

- Default로 Disable

Hyper-V Cluster가 아닌 경우에 대해 Enable

 

7. Cluster Communication

Cluster는 3가지 타입의 Communication을 사용함

- Network Health Monitoring

Heartbeat은 NIC의 health상태에 대한 모니터링 결과를 보 낸다.

모든 Cluster 가능 Network를 통해 보낸다.

- Intera-Cluster Communication

- Cluster에 있는 노드 사이에 Database Update와 상태 동기화에 대해 보낸다.

ex) Cluster에 새로운 Resource가 생성되면 모든 Node에 업데이트되어진다.

- 하나의 Interface를 통해 진행되어진다.

 

8. Network Bandwidth Planning

- Heartbeat

134 Bytes

Latency에 민감함

Cluster Heartbeat이 NIC 포화로 인해 블록되어지면 Cluster Membership에서 Node가 제거될 수 있다.

Badnwidth는 중요하지 않음

- Intra-Cluster Communication

File/Hyper-V Cluster에서는 안정적이지만 SQL/Exchange Cluster에서는 무거울 수 있음

Latency는 Cluster 상태 변경을 느리게 만들 수 있다.

Bandwidth는 중요하지 않음

- CSV I/O Redirection

종종 발생

Latency와 Network Performance가 Storage I/O 성능에 영향을 미치므로 중요함

QOS가 중요함

Network Bandwidth가 중요함

CSV의 Disk 연결은 SMB를 통해서 진행되어짐

 

9. CSV Networking 고려사항

- CSV 요구사항

SMB

Server, Workstation Service

NTLM

- CSV 성능 Tuning

SMB Multi Channel과 RDMA를 사용하는 경우 CSV Traffice에 이점이 있음

NetBIOS를 Disable하면 성능이 향상되어짐

Jumbo Frame으로 인한 이점은 적지만 구성하는 것을 권고함

- IF SMB Multi Channel을 사용할 수 있는 구성이 아닌 경우 NetFT 로직을 사용한다.

 

10. Cluster Heartbeat 구성

Property 

Default 

Maximum 

Description 

 SameSubnetDelay

1초 

2초 

가장 자주 Heartbeat이 보내짐 

SameSubnetThreshold 

5 heartbeat 

120 heartbeat 

NIC가 다운 되기 전 Heartbeat 누락된 갯수 

CrossSubnetDelay 

1 초 

4 초 

 서로 다른 서브넷을 통해 Heartbeat을 보냄

CrossSubnetThreshold 

5 hearbeat 

120 heartbeat 

NIC가 다운 되기 전 다른 서브넷을 통해 Heartbeat을 보냄 

- Powershell

(Get-Cluster) . SameSubnetThreshold = 10

- Windows 2012 R2의 경우 Hyper-V의 Network Failure가 변경되어짐

SameSubnetThreshold : 10

CrossSubnetThreshold : 20

 

11. Cluster 생성 동안 Heartbeat 갯수 수정

- Network가 느린 경우 Cluster 생성 시 Timeout으로 인한 오류가 발생할 수 있다.

- Registry 값을 통해 해당 값을 변경할 수 있다.

HKLM\SYSTEM\CCS\Services\ClusSvc\Parameters

DWORD

SetHeartbeatThresholdOnClusterCreate

각각의 Node에서 변경해야함