이전에 vSAN 에서 생성되지 않은 vmdk 를 vSAN datastore 에서 사용하는 경우 문제점. 이라는 글을 통해서 아래와 같은 내용을 공유한적이 있습니다.
vSAN Datastore 에서 생성되지 않은 vmdk file 을 vSAN datastore 에서 사용해야 할 경우, 바로 사용하면 안된다.
Clone 또는 Storage vMotion 을 통해 vSAN 에서 사용하는 vmdk 형태로 변환하는 과정이 필요하다. 이 과정을 거치지 않으면 해당 VMDK 에는 Storage Policy 가 적용되지 않기 때문에 vSAN 의 Protection 에 의해 보호 받을 수 없다
vSAN 에서는 VMDK 를 제외한 다른 것 (ISO file 등) 은 Policy 에 의해 보호되지 않기 때문에 그런 파일들을 vSAN datastore 내에 저장하는 것은 권장하지 않는다.
음. 그런데 위 내용에서 잘못된 내용이 있습니다. 바로 ISO File 을 언급한 부분입니다. 사실 계속 ISO File 들도 Storage Policy 를 통한 Protection 아 안되는 것으로 알고 있었는데, 제가 잘못 알고 있던 부분이 있었습니다.
테스트로 600MB 정도의 ISO 파일을 vSAN 데이터스토어에 업로드 했습니다. (ISO 라는 폴더 아래에)
esxcli vsan debug object list
위 명령어를 치면 현재 vSAN Cluster 내에 있는 object 리스트가 나옵니다.
Object UUID: b9e91f5b-0f0a-cae4-29a5-005056bbefa2 Version: 5 Health: healthy Owner: comp-esxi03a.byounghee.local Size: 255.00 GB Used: 1.82 GB Policy: CSN: 18 hostFailuresToTolerate: 1 SCSN: 13 Configuration: RAID_1 Component: b9e91f5b-fcce-b0e5-33c7-005056bbefa2 Component State: ACTIVE, Address Space(B): 273804165120 (255.00GB), Disk UUID: 52a21e19-2a52-a5f5-24a0-1cac6eaab05a, Disk Name: naa.6000c29b5f7dcd96843e1f51d2b6fb95:2 Votes: 1, Capacity Used(B): 989855744 (0.92GB), Physical Capacity Used(B): 977272832 (0.91GB), Host Name: comp-esxi01a Component: a2f71f5b-4b2c-2d98-365f-005056bb5695 Component State: ACTIVE, Address Space(B): 273804165120 (255.00GB), Disk UUID: 52507b29-4fd8-62ec-dab0-415020d74e72, Disk Name: naa.6000c29cab4cedaada23591f3ac0b78c:2 Votes: 1, Capacity Used(B): 989855744 (0.92GB), Physical Capacity Used(B): 977272832 (0.91GB), Host Name: comp-esxi03a.byounghee.local Witness: 371a225b-5c65-9014-e311-005056bb3d89 Component State: ACTIVE, Address Space(B): 0 (0.00GB), Disk UUID: 52a1a2df-2a7d-578b-2d70-eab361529aac, Disk Name: naa.6000c2958f500aa41079d0d1544ec25d:2 Votes: 1, Capacity Used(B): 12582912 (0.01GB), Physical Capacity Used(B): 4194304 (0.00GB), Host Name: comp-esxi02a Type: vmnamespace Path: /vmfs/volumes/vsan:52a9c729ef0fd3d2-86361f25b5d7d3f8/ (Exists) Group UUID: b9e91f5b-0f0a-cae4-29a5-005056bbefa2 Directory Name: ISO
파일 한가지를 더 올려봤습니다. 크기는 한 350MB 정도
Object UUID: b9e91f5b-0f0a-cae4-29a5-005056bbefa2 Version: 5 Health: healthy Owner: comp-esxi02a Size: 255.00 GB Used: 2.50 GB Policy: CSN: 19 hostFailuresToTolerate: 1 SCSN: 13 Configuration: RAID_1 Component: b9e91f5b-fcce-b0e5-33c7-005056bbefa2 Component State: ACTIVE, Address Space(B): 273804165120 (255.00GB), Disk UUID: 52a21e19-2a52-a5f5-24a0-1cac6eaab05a, Disk Name: naa.6000c29b5f7dcd96843e1f51d2b6fb95:2 Votes: 1, Capacity Used(B): 1358954496 (1.27GB), Physical Capacity Used(B): 1342177280 (1.25GB), Host Name: comp-esxi01a Component: a2f71f5b-4b2c-2d98-365f-005056bb5695 Component State: ACTIVE, Address Space(B): 273804165120 (255.00GB), Disk UUID: 52507b29-4fd8-62ec-dab0-415020d74e72, Disk Name: naa.6000c29cab4cedaada23591f3ac0b78c:2 Votes: 1, Capacity Used(B): 1358954496 (1.27GB), Physical Capacity Used(B): 1342177280 (1.25GB), Host Name: comp-esxi03a.byounghee.local Witness: 371a225b-5c65-9014-e311-005056bb3d89 Component State: ACTIVE, Address Space(B): 0 (0.00GB), Disk UUID: 52a1a2df-2a7d-578b-2d70-eab361529aac, Disk Name: naa.6000c2958f500aa41079d0d1544ec25d:2 Votes: 1, Capacity Used(B): 12582912 (0.01GB), Physical Capacity Used(B): 4194304 (0.00GB), Host Name: comp-esxi02a Type: vmnamespace Path: /vmfs/volumes/vsan:52a9c729ef0fd3d2-86361f25b5d7d3f8/ (Exists) Group UUID: b9e91f5b-0f0a-cae4-29a5-005056bbefa2
보시면 눈치채신 분들도 있겠지만, Object 가 개별파일마다 생성되는것이 아니라 Directory 별로 생성됩니다. 즉 Object 가 아닌 개별파일에 대해서 Policy 를 적용할 수 없기 때문에, Object 인 디렉토리 단위로 Policy 를 적용하는 것입니다. 한가지 의문점이 생길수도 있습니다. 600MB 파일과 350MB 일데 실제로는 한개의 component 가 왜 1.25GB 를 차지하고 있는지.
그 이유는 새로 디렉토리를 생성해보면 알 수 있습니다. Test 란 이름의 디렉토리를 생성해봤습니다.
Object UUID: 73e6265b-3b39-a49c-8c8a-005056bbefa2 Version: 5 Health: healthy Owner: comp-esxi02a Size: 255.00 GB Used: 0.67 GB Policy: hostFailuresToTolerate: 1 CSN: 1 Configuration: RAID_1 Component: 73e6265b-683b-299d-0f18-005056bbefa2 Component State: ACTIVE, Address Space(B): 273804165120 (255.00GB), Disk UUID: 52507b29-4fd8-62ec-dab0-415020d74e72, Disk Name: naa.6000c29cab4cedaada23591f3ac0b78c:2 Votes: 1, Capacity Used(B): 360710144 (0.34GB), Physical Capacity Used(B): 356515840 (0.33GB), Host Name: comp-esxi03a.byounghee.local Component: 73e6265b-1041-2a9d-cdb4-005056bbefa2 Component State: ACTIVE, Address Space(B): 273804165120 (255.00GB), Disk UUID: 52a1a2df-2a7d-578b-2d70-eab361529aac, Disk Name: naa.6000c2958f500aa41079d0d1544ec25d:2 Votes: 1, Capacity Used(B): 360710144 (0.34GB), Physical Capacity Used(B): 356515840 (0.33GB), Host Name: comp-esxi02a Witness: 73e6265b-5d68-2b9d-242c-005056bbefa2 Component State: ACTIVE, Address Space(B): 0 (0.00GB), Disk UUID: 52a21e19-2a52-a5f5-24a0-1cac6eaab05a, Disk Name: naa.6000c29b5f7dcd96843e1f51d2b6fb95:2 Votes: 1, Capacity Used(B): 12582912 (0.01GB), Physical Capacity Used(B): 4194304 (0.00GB), Host Name: comp-esxi01a Type: vmnamespace Path: /vmfs/volumes/vsan:52a9c729ef0fd3d2-86361f25b5d7d3f8/ (Exists) Group UUID: 73e6265b-3b39-a49c-8c8a-005056bbefa2 Directory Name: Test
아무런 파일이 없어도 약 component 당 0.34GB 정도의 크기를 차지하는걸 볼 수 있습니다. Namespace 를 위해 Reserve 된것으로 보면 되지 않을까 합니다.
그렇다면 어떤 Storage Policy 에 의해서 보호받을까요? 두가지 경우가 있습니다.
- VM 디렉토리내에 들어가있으면 VM 에 적용되어있는 Storage Policy
- VM 디렉토리가 아닌 별도의 디렉토리에 들어가있으면 Datastore Default Policy
위와 같이 참고하시면 될것 같습니다.