스마트폰을 사용하는 현대인이라면 한 번쯤은 용량 부족으로 고민한 적이 있을 것입니다. 일일이 관리하기 번거로우니 필연적으로 사진 등을 클라우드로 자동 업로드하는 기능을 활용하는 경우가 발생합니다. 아이폰의 경우 주로 iCloud를 사용하게 되는데, iCloud는 기본적으로 5GB를 무료로 제공합니다. 네이버 MYBOX(무려 30GB)나 구글 드라이브에 비하면 적은 편이지만 무료로 잠시 사용하기에는 적절한 용량입니다. 이처럼 몇몇 대형 클라우드 벤더들은 무료 클라우드 스토리지 서비스를 제공하곤 하는데, 개개인 기준으로 적은 용량이라 하더라도 모이면 매우 큽니다. 2018년 기준으로 iCloud 무료 서비스 사용자가 무려 6억 8천만 명인데1, 이러면 애플은 3.4EB(엑사바이트)의 스토리지 공간을 무료로 제공하는 꼴이 됩니다. 하지만 자본주의에 충실한 애플은 당연히 6억 8천만 명의 무료 사용자에게 5GB를 전부 제공하지 않습니다. 대신 씬 프로비저닝이라는 스토리지 공간 관리 기능을 통해 5GB로 보이게만 하고 실제로는 사용하는 만큼만의 용량을 제공합니다. 이번 포스트에서는 전통적인 스토리지 공간 할당 방식인 씩 프로비저닝과 스토리지 공간 효율을 최적화하는 씬 프로비저닝의 개념을 소개해 보고자 합니다.

 

씩 프로비저닝

이 개념들을 소개하기에 앞서 스토리지 프로비저닝에 대해 간단히 설명해 보도록 하겠습니다. 스토리지 프로비저닝이란, 하드디스크나 SSD와 같은 물리적 장치의 스토리지 공간을 클라이언트에게 할당하는 작업을 말합니다. 각 장치의 스토리지 리소스는 논리적인 스토리지 풀로 묶이고, 사용 환경에 따라 공유 프로토콜들을 통해 할당된 파일시스템, LUN, VMware 가상 볼륨 등에 접근합니다. 이와 같은 공간 할당 방법 중 가장 기본적인 방법이 씩 프로비저닝입니다.

씩 프로비저닝(thick provisioning)은 전통적인 스토리지 프로비저닝 방식으로, fat provisioning이라고도 말합니다. 씩 프로비저닝을 쉽게 말하자면, 단순히 사용할 공간을 물리적 스토리지로부터 할당받는 방식을 말합니다. 10명이 일하는 사무실 환경에서 인당 300GB가 필요한 경우를 가정해 보겠습니다. 각 사용자가 300GB의 스토리지 공간을 할당받게 된다면 스토리지 풀에서는 총 3TB의 물리적 스토리지 공간을 차지하게 됩니다.

 

Alt text

< 씩 프로비저닝 >

 

씩 프로비저닝 공간은 lazy zeroing과 eager zeroing 두 가지 방식으로 생성할 수 있습니다. Lazy zeroing 공간은 사전에 zeroing과 같은 초기화 작업을 수행하지 않고 생성되며, 쓰기 작업이 발생하면 그제야 zeroing 과정을 진행하는 것을 말합니다. 이러면 데이터를 쓸 때 zeroing 과정에서 로드가 발생하기 때문에 쓰기 성능을 높이기 위해서 주로 eager zeroing 방식이 사용됩니다. Eager zeroing 공간은 미리 zeroing 작업으로 초기화를 진행해 놓기 때문에 쓰기를 지연 없이 바로 진행할 수 있습니다. 게다가 디스크 공간 생성 작업에서 기존 블록의 데이터를 zeroing으로 모두 제거해서 복구가 불가능해지기 때문에 데이터 보안 측면에서도 활용도가 높습니다.

씩 프로비저닝은 할당받은 만큼 사용하는 개념으로 사용량을 알고 그에 맞추어서 할당한다면 효율적인 운용이 가능합니다. 하지만 각 사용자가 사전에 확보된 300GB를 전부 채우기 전까지는 용량 초과 등의 문제는 없을 것이지만, 그렇게 되기 전까지는 사용자의 할당공간마다 필연적으로 미사용 공간이 발생할 것입니다. 각 사용자가 300GB 중 250GB를 사용해 사용률 80% 이상을 기록한다고 하더라도 총 500GB의 공간이 낭비됩니다. 이러면 사용 안 하는 공간만큼 손해라고 할 수 있겠죠? 게다가 사용자가 증가하거나 할당받은 공간을 다 채우게 되면 추가 용량을 확보하기 위해 스토리지 용량을 증축하게 되는데, 여기서 도입 비용, 전력, 냉방, 물리적 공간 등 인프라 운영비용이 추가로 발생하게 됩니다. 이러한 운영효율 문제와 비용 문제를 해소하기 위해 대부분의 스토리지 제품들은 씬 프로비저닝 기능을 지원합니다.

 

씬 프로비저닝

씬 프로비저닝(thin provisioning)은 사용하는 만큼 공간이 할당되는 온디맨드 방식의 프로비저닝 기능입니다. 씩 프로비저닝과 씬 프로비저닝의 차이를 국제전화 요금제로 비교하자면, 매월 일정 금액을 지급하는 월 정액제와 분 단위로 사용하는 만큼 계산되는 후불제로 표현할 수 있습니다. 위에 제시된 사무실의 예시를 다시 들어보겠습니다. 10명의 사용자가 각각 스토리지 풀 300GB를 요청했을 때, 관리자는 씬 프로비저닝을 통해 각 사용자에게 300GB를 할당한 것처럼 보이되, 실제 물리적 스토리지 공간은 각 사용자가 사용한 만큼만 할당됩니다. 인당 100GB만 사용하고 있더라도, 씩 프로비저닝에서는 실제 총 물리적 스토리지 공간이 총 3TB가 할당된 반면, 씬 프로비저닝에서는 총 1TB가 할당됩니다.

 

Alt text

< 씬 프로비저닝 >

 

씬 프로비저닝은 씩 프로비저닝처럼 물리적 용량에 할당 공간이 한정되지 않습니다. 가상화 기술을 통해 물리적 스토리지 공간 이상으로 공간을 할당할 수 있고, 데이터 쓰기 요청이 발생한 후에야 물리적 디스크와 엮입니다. 할당된 볼륨 공간에서 데이터 블록이 완전히 삭제되어서 공간이 미사용 상태가 되는 경우에는 기존의 스토리지 풀로 반환되는데 이를 공간 회수(space reclamation)라고 합니다.

SAN 환경에서의 씬 프로비저닝은 가상 LUN(virtual LUN)을 활용합니다. 씬 LUN(thin LUN) 이라고도 합니다. 물리적 LUN은 디스크와 같은 물리적 장치를 매핑해 생성할 수 있는 물리적 공간이 한정된 반면, 가상 LUN은 물리적 장치에 대한 매핑 없이 사용 가능한 물리적 공간 이상으로 가상 스토리지 공간을 생성할 수 있습니다. 이로써 가상 스토리지 공간을 물리적 공간보다 크게 생성해 놓고, 사용하는 만큼 그때그때 공간을 할당하는 방식으로 씬 프로비저닝을 구현합니다.

 

씩 프로비저닝과 씬 프로비저닝 비교

위에서 씩 프로비저닝이 전통적인 방식이라고 설명해 드렸지만, 이는 단순히 구기술과 신기술의 차이라고 하기보다는 사용환경에 따라 적용이 다른 것이라고 볼 수 있습니다. 씩 프로비저닝은 특히 실제 사용할 공간과 할당된 공간이 비슷한 사용 환경에서 장점을 가집니다. 무엇보다 별도의 스토리지 할당 및 공간 회수 작업이 필요하지 않기 때문에 성능에는 따로 영향을 주지 않습니다. 특히 eager zeroing이 적용된 씩 프로비저닝은 쓰기 성능과 데이터 보안을 위해서 많이 사용되는 반면, lazy zeroing 방식의 경우 eager zeroing 방식보다 공간을 빨리 생성할 수 있습니다.

씬 프로비저닝의 경우, 미리 할당될 공간에 비해 실제 사용할 공간이 비교적 적은 사용환경에서 효율적입니다. 기업 내 인프라 전체의 가용 스토리지 공간을 자동으로 확보하기 때문에 관리의 오버헤드를 최소화할 수 있고, 스토리지 증축 비용 및 운영비용을 줄임과 동시에 비즈니스의 성장에 알맞게 스토리지 도입계획을 세울 수 있어 예상외의 예산을 최소화할 수 있습니다.

하지만 씬 프로비저닝 또한 단점이 있습니다. 씩 프로비저닝의 경우 실제 스토리지 하드웨어에서 할당된 용량만큼 사용하는 방식이지만, 씬 프로비저닝은 실제 용량 이상으로 할당되기 때문에 지속해서 모니터링을 하지 않으면 어느 순간 가용 공간이 바닥날 수 있습니다. 특히 가상화 환경에서 사용하는 경우, 가용 공간이 없어지는 순간 가상머신을 사용할 수 없게 됩니다. 무엇보다 씬 프로비저닝의 가장 큰 단점 중 하나는 호스트에 부하가 발생한다는 점입니다. 호스트는 지속해서 스토리지 공간의 동적 할당과 공간 회수를 수행해야 하므로 호스트가 미션 크리티컬한 환경일 경우 씩 프로비저닝을 사용하는 편이 좋습니다.

 

마치며

최근 들어 기업들은 기업 내의 데이터센터 규모를 줄이고 퍼블릭 클라우드를 활용하거나 코로케이션 방식으로 비중을 늘리고 있습니다. 이러한 현상은 데이터센터가 단순히 구축 비용을 넘어서 유지비용의 부담이 크기 때문에 발생하고 있습니다. 2020년 기준으로 전 세계 전력 소비의 3%가 데이터센터에서 발생하는데2 그중 스토리지의 비중은 약 17%입니다3. 게다가, 데이터센터 내 하드웨어 도입비의 90%가 스토리지에서 발생4하는 것을 생각하면 데이터센터 운영에 있어서 스토리지 비용을 최소화하는 것은 매우 중요하다고 할 수 있습니다. 데이터가 늘어날 수밖에 없는 데이터센터 환경에서 스토리지 공간을 최적화하기 위해서는 앞선 시간에 소개해 드렸던 중복제거 기술이나 압축과 같은 데이터 축소 기술, 그리고 씬 프로비저닝과 같은 공간 효율화 기술을 잘 활용할 수 있어야 합니다.

 

참고

  • https://en.wikipedia.org/wiki/Thin_provisioning
  • https://www.solarwindsmsp.com/blog/thin-provision-vs-thick-provision
  • https://www.mycloudwiki.com/san/thick-vs-thin-provisioning/#:~:text=It%20is%20also%20known%20as,a%20set%2C%20called%20RAID%20set.
  • https://www.nakivo.com/blog/thick-and-thin-provisioning-difference/

 

각주

  1. https://www.cnbc.com/2018/02/11/apple-could-sell-icloud-for-the-enterprise-barclays-says.html 

  2. https://www.dxc.technology/cr/insights/145852-data_centers_play_key_role_in_reducing_ghg_emissions#:~:text=Producing%20electricity%20consumed%20by%20data,the%20Natural%20Resources%20Defense%20Council.&text=In%20fact%2C%20the%20Berkeley%20Lab,hours%20of%20electricity%20by%202020 

  3. https://davidmytton.blog/how-much-energy-do-data-centers-use/ 

  4. https://www.backblaze.com/blog/cost-of-cloud-storage/