Storage Policy for non-VMDK file on vSAN

이전에 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 에 의해서 보호받을까요? 두가지 경우가 있습니다.

  1. VM 디렉토리내에 들어가있으면 VM 에 적용되어있는 Storage Policy
  2. VM 디렉토리가 아닌 별도의 디렉토리에 들어가있으면 Datastore Default Policy 

위와 같이 참고하시면 될것 같습니다.

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다