본문 바로가기

Virtualization/VMware vSAN

[VMware] When FRA is enabled, inject errors only if there is a single DG.

일반적으로 vSAN 구축 후 Disk Fault 테스트를 진행할 때,

물리적인 Disk 분리가 아닌 논리적 스크립트 수행을 통해 디스크 장애 상황을 유발한다.

- 물리적인 Disk 분리 시, 실제 Disk Fault가 발생할 수 있어 디스크를 교체해야 하는 상황이 올 수 있다.

 

 

스크립트 수행은 매우 간단하다.

#cd /usr/lib/vmware/vsan/bin

#python ./vsanDiskFaultInjection.pyc -p -d naa.xxxx    // 디스크 장애 유발

#python ./vsanDiskFaultInjection.pyc -c -d naa.xxxx    // 디스크 장애 복구

 

+ 참고로 복구 커맨드(-c 옵션)는 한 번에 수행되지 않고 2~3번 진행해야 됐던 경우가 몇 있었다.

+ Degraded 유발 후에는 디스크 그룹을 제거 후에 다시 마운트해야 한다. 안에 메타 데이터 값(가비지)이 남을 수 있다고 한다.

 

 

 

근데 최근에 vSAN 7.0.1 구축 후, 통합테스트 진행 도중에 아래 사진과 같은 내용으로 커맨드를 실패했다.

 

When FRA is enabled, inject errors only if there is a single DG.

- 환경 : vSAN 7.0.1, 2-Disk Groups, All Flash

 

내용만 보면, 멀티 디스크 그룹 환경이기 때문에 FRA를 비활성화하면 되는 문제로 보인다.

하지만 vSAN 환경에서 FRA가 도대체 뭘까. 아무리 검색해도 Oracle 용어 외에 제대로 나오는게 없다. ㅠㅠ

 

 

 

원인

우선, 해당 파이썬 스크립트는 vSAN 공식 POC 가이드에 기재된 내용이다.

하지만 vSAN 7.0.1 버전의 공식 POC 가이드에는 해당 스크립트 부분이 쏙 빠져있다.

만약 나처럼 해당 문구와 함께 실패한다면, FRA를 먼저 비활성화 해야 스크립트 수행이 가능하다.

 

 

 

해결책

팀장님과 차장님의 힘을 빌려 해결할 수 있었다. (시니어의 위엄...)

하지만 여기부터는 아직 VMware에서 공식으로 문서화된 내용이 아니니 왠만하면 사전 테스트를 해보거나 POC 환경에서만 하는 것이 좋다고 생각한다.

 

 

01. 디스크 장애 유발

#esxcli system settings advanced set -o /LSOM/lsomEnableFullRebuildAvoidance -i 0    // FRA 비활성화

#cd /usr/lib/vmware/vsan/bin

#python ./vsanDiskFaultInjection.pyc -p -d naa.xxxx

 

위의 커맨드로 FRA를 먼저 비활성화한 후, 파이썬 스크립트 수행 시 사람 놀리듯 곧장 수행된다.

VM 컴포넌트나 디스크 그룹 상태 체크를 통한 테스트가 진행되었다면, 이제 복구하면 된다.

 

 

02. 디스크 장애 복구

#cd /usr/lib/vmware/vsan/bin

#python ./vsanDiskFaultInjection.pyc -c -d naa.xxxx

#esxcli system settings advanced set -o /LSOM/lsomEnableFullRebuildAvoidance -i 1    // FRA 활성화

 

마지막에는 FRA 값을 다시 Default 값인 1로 되돌려야 한다.

커맨드를 보면 느껴지겠지만, lsomEnableFullRebuildAvoidance의 붉은 부분이 해당 메시지의 FRA를 뜻하는 것으로 보인다.

 

 

 

 

 

- LSOM (Log-Structured Object Manager)

물리적 디스크 레벨 (SSD or HDD)에서 작동하는 vSAN의 내부 구성 요소 중 하나(CLOM, DOM, CMMDS 등).

VM 생성 시 DOM이 디스크에 컴포넌트 생성을 지시하면, LSOM이 실제로 생성 작업을 한다.

즉, LSOM이 컴포넌트에 대한 Read 캐시와 Write 버퍼링을 처리한다.

 

- FRA (Full Rebuild Avoidance)

해당 용어는 아직 제대로 알려진게 없다.

추측하기론 단어 그대로 LSOM에서 전체 Rebuild 수행을 방지하는 것으로 보이는데,

스크립트를 통한 테스트 시 불필요한 데이터 Rebuild를 막으려는 의도인지는 아직 전체적으로 확인이 필요하다;

 

 

 

참고 URL

vulpineox.tistory.com/entry/Compare-Difference-vSAN-POC-Guide-for-Hardware-Failure

www.altaro.com/vmware/vsan-architecture-components/