vSAN 의 핵심이라고도 할 수 있는 VM Storage Policy 에 대해 한번 알아보도록 하겠습니다.
제 개인적으로는 왜 vSAN 인가? 라는 질문에 대한 답이라고 생각합니다만.. ㅋㅋ, VM 단위로 각각의 Storage Policy 를 정할 수 있다는 것. 이게 가장 크죠.
그럼, VM Storage Policy 에 대해 한번 알아보도록 하겠습니다.
Storage Policy 내에서 설정이 가능한 항목은 아래와 같습니다. (vSAN 6.2 버전 기준)
- Number of Failures To Tolerate
- Number of Disk Stripes Per Object
- Flash Read Cache Reservation
- Object Space Reservation
- Force Provisioning
- Failture tolerance method
- Disable object checksum
- IOPS limit for object
하나씩 알아보고, 이것이 실제로 VM 에 어떤 영향을 주는지 한번 보도록 하죠.
Number of Failures To Tolerate(FTT)
말그대로, 몇개의 호스트 Failure 까지 대응할 수 있는지 입니다. 기본값은 1 입니다. 줄여서 보통 FTT 라고 표현합니다.
FTT=1 로 설정할 경우, Data 의 Copy 인 Replica 가 1개 생성됩니다.
Failture tolerance method 가 RAID 1 (mirroring) 일때는 최대 3까지
Failture tolerance method 가 RAID 5/6 (Erasure Coding) 일때는 2 까지 가능합니다. 1로 설정하면 RAID 5 2로 설정하면 RAID 6 가 됩니다.
Number of Disk Stripes Per Object(Stripe Width, SW)
Object (VMDK) 당 Stripe 를 몇개의 disk 할 것인지 정하는 옵션입니다. 1 부터 12 까지 설정가능하며 기본값은 1 입니다. 높히면 성능면에서 유리할 수도 있지만, 꼭 그런것은 아닙니다. 그 이유는 추후에 설명드리도록 하겠습니다.
12로 설정하면 vSAN cluster 내에 최소 12개의 Capacity disk 가 필요합니다. (FTT 를 고려하지 않았을때), FTT 까지 고려한다면? 더 많이 필요하겠지요
Flash Read Cache Reservation
특정 VM 를 위해 cache tier 의 read cache 를 예약해두는 기능입니다. 일반적으론 기본값인 0 을 사용하며, 이 VM 은 Read 성능이 정말 중요하다 라고 할때 한번 고려해보시기 바랍니다. 0~100 까지 설정이 가능하며,
만약 1TB VMDK 에 1% 를 설정해두었을 경우에는 10GB 만큼을 read cache 로 사용하도록 설정합니다. Cache SSD 는 object 별로 동등하게 share 하는데, 이걸 설정하게 되면 그 공간만큼은 다른 VM 에서 사용하지 못하기 때문에, 신중하게 고려하셔야 합니다.
Object Space Reservation
vSAN 에서는 Default 로 Thin Provisioning 을 사용합니다. (기본값 0), 100% 으로 변경하게 되면 Thick Provisioning 으로 변경됩니다. 이 때의 Thick Provisioning 은 lazy zeroed thick 입니다. (I/O 가 발생하는 순간 zeroed)
만약 50% 로 설정하게 되면, 1TB disk 일 경우 500GB 만큼을 Reserved 합니다.
Force Provisioning
Storage Policy 를 만족하지 않더라도 강제로 Provisioning 하는 기능입니다. 가급적이면 사용안하시는게 좋겠지요.
Failture tolerance method
RAID 1 일지 RAID 5/6 일지 결정하는 옵션이며, RAID 5/6 는 All Flash 구성에서만 사용가능하니 참고하시기 바랍니다. (Hybrid 구성에서는 사용불가)
Disable object checksum
기본값은 enabled 입니다. 데이터의 무결성을 검증하는데 쓰이기 때문입니다. RAID-1 구성이라면, 만약 Data 의 checksum 이 맞지 않을 경우 다른 Replica 에서 데이터를 읽어옵니다. Disk 등에 문제가 생겼을 경우 data corruption 이 발생할 수 있기 때문에, 꼭 쓰시는 것이 좋겠습니다.
IOPS limit for object
해당 object 로 보내는 IOPS 를 제한하는 역할 입니다. 여기서 I/O 의 사이즈는 32KB 인데요, 그 뜻은 만약 IOPS 를 10,000 으로 제한하였는데, VM 의 일반적인 I/O 가 64KB 라면, 실제로는 5,000 IOPS 로 제한하는 것을 의미합니다. Default 로는 사용하지 않는 것으로 되어있습니다. 32KB 의 I/O 사이즈를 바꾸는 기능은 지원하지 않습니다. 왠만하면 사용하지 않는 편이 좋겠습니다.
Part2 에서는 FTT 및 SW 설정에 따라서 Object 별로 Component 가 어떻게 배치되는지 알아보도록 하겠습니다.
잘 읽었습니다. 감사합니다.