티스토리 뷰
Storage Provisioning에 대한 구성 방식
스토리지를 프로비져닝 할 때 자주 등장하는 용어가 Thick Provisioning과 Thin Provisioning 이다.
실제 고객사에서 아무생각없이 아래 3가지 프로비져닝 방식을 마구 잡이로 쓰는 경우를 참 많이 봐 왔다.
이 부분이 참 많이 아쉬웠다. 조금만 이해하면 효과적으로 사용하기 참 좋은 방식인데, 아래 정리를 해 보았다.
VMware 기반의 Storage Provisioning을 할 때 주로 등장하는 용어이기도 하다.
VMware를 기준으로 소개하면, 이러한 스토리지 Provisioning은 크게 3가지 타입으로 지원한다.
Thick Provision Lazy Zeroed (느리게 비워지는 씩 프로비저닝)
Thick Provision Eager Zeroed (빠르게 비워지는 씩 프로비저닝)
Thin Provision (씬 프로비전)
Tip : 다시 한번 언급하지만 VMware 설정은 영어로 보는 것을 권고한다. KB를 통해 트러블슈팅을 할 때도 검색하기가 어렵고, 해석도 프로비저닝 예시 처럼 정말 엉망인 경우가 많다.
[그림 : vCenter에서 디스크 프로비져닝 화면]
[ Thick Provisioning 의 2가지 ]
“ Thick Provision Lazy Zeroed (느리게 비워지는 씩 프로비저닝) "
사전에 설정된 디스크 공간을 확보하고, 그 안에 존재하는 값들을 사용하면서 제거하고 사용하는 방식이다.
이 방식은 초기 할당은 매우 빠르지만 일단 공간은 확보하고, 사용되지 않는 공간에 남아 있는 기존 데이터는 삭제하지 않고 실제 Write가 일어 날 때 사용하는 방식으로 초기 디스크 할당은 빠르지만 사용하면서 기존 데이터를 삭제하고 쓰는 과정을 반복하므로 디스크 쓰기에 단점은 존재한다.
프로덕션에서 사용할 수 있는 방식으로는 가장 적합하지 않은 방식이기도 하다.
장점 - 초기 디스크 설정이 빠르다.
단점 - 실제 데이터를 사용할 때 해당 섹터에 기존 데이터가 있을 때 삭제하면서 데이터를 쓰는 과정을 반복하기 때문에 Eager Zeroed Disk 할당 방식에 비해 성능이 떨어짐. 또한 실제 디스크 사용 공간 여부와 관계 없이 디스크 사용 공간 소모가 큼.
“ Thick Provision Eager Zeroed (빠르게 비워지는 씩 프로비저닝) "
사전에 설정된 디스크 공간을 확보하고, 확보하는 순간에 "0" 값을 채워서 확보된 공간을 완전히 청소하고 시작하는 방식이다.
이 방식은 초기 디스크를 설정하고 VM을 배포할 때 가장 오래 걸린다.
그 이유는 할당된 디스크만큼 사실상 포맷과 같은 “0” 값으로 데이터를 전부 써 버리기 때문이다.
보통 VMDK를 삭제하면 디스크에서 완전삭제 된다고 오해하기 쉽지만, 실제는 파일 인덱스를 삭제하는 경우가 많다.
파일 인덱스를 삭제해 버리면 쓰레기 데이터가 되므로, 데이터가 존재하더라도 그냥 남는 공간으로 처리하기 때문이다.
하지만 이렇게 되면 세밀하게 판단해 보면 보안에 위협이 될 수 있다.
이 방식을 사용하게 되면 할당된 공간만큼을 완전히 프로비저닝하고 시작하는 방식이다.
보안상으로 큰 장점이 존재하지만, 단점도 있다.
처음부터 전체 공간을 “0”의 값을 채우고 시작하기 때문에 프로비져닝이 가장 느리다.
하지만 한번 할당되고 나면, 데이터를 쓸 때에는 추가적인 작업이 없으므로 , 이 때 부터는 Lazy zero방식 보다는 훨씬 빠르게 사용할 수 있다.
이러한 이유로 프로덕션에서 사용할 때 가장 권고하는 방식이 될 수 있다.
장점 - 디스크 설정 이후에 , 실제 데이터를 사용 할 때 추가적 작업 없이 곧바로 데이터를 Write 할 수 있음.
단점 - 초기 디스크 설정시, 최초 할당된 데이터만큼 디스크 공간 모든 곳에 "0" 을 채우고 시작하기 때문에 초기 설정이 느림.
Disk 할당 방식에 비해 성능이 떨어짐. 또한 실제 디스크 사용 공간 여부와 관계 없이 디스크 사용 공간 소모가 큼.
[ Thin Provisioning ]
사전에 디스크 공간을 확보하지 않고, 초기에 필요한 공간만 차지하고 필요에 따라 디스크 공간을 확보하면서 사용하는 방식이다.
사용자에게는 Thick Provision 방식과 유사하게 보여주고, 실제 데이터는 사용량 만큼만 채우는 방식으로 자원의 효율성 측면에서는 매우 효과적이다.
하지만 사전에 할당하지 않기 때문에, 추가로 데이터를 쓸 때 마다 데이터를 쓸 수 있는 섹터를 찾아가야 하므로 스핀들이 많아지고,
속도가 저하될 가능성이 높다.
속도 자체로는 가장 느린 방식이다. 섹터를 찾고, 데이터를 지우고 다시 데이터를 쓰는 방식을 택하기 때문이다.
따라서 이 방식은 주로 프로덕션 이전에 개발환경에 적하다.
밑에서 다시 언급하겠지만, 지금까지 언급된 상황들은 대부분이 SAS/SATA Disk 기반의 전통적인 디스크 환경을 의미한다.
Flash Disk가 대중화 되어 있는 상황에서는 조금 다르게 보아야 하며, 아래에서 다시 언급하겠다.
장점 - 디스크 공간의 활용도가 매우 좋음. 디스크 할당량 만큼 차지하지 않고, 실제 데이터가 저장 될때 그 공간을 확보하는 방식.
단점 - SSD와 같은 디스크를 사용하지 않을 경우, 실제 데이터가 저장 될 때 빈 공간을 찾아야 하고, 찾은 이후에 폐기된 데이터를 청소하고 저장하는 방식으로 가장 속도가 느림.
[ 고려 사항 ]
위의 세가지 디스크 할당 방식은 전통적인 방식으로 , SSD가 대중화되면서 디스크 섹터를 찾아나가는 스핀들이 필요없는 환경에서는 오히려 모든 측면에서 Thin Provisioning이 우수할 수 있다.
우선 SSD환경에서는 섹터를 찾기위해 스핀들 현상 자체가 없으므로, 검색시간이 사실상 무의미 하기 때문이다.
이러한 이유로 최근 환경에서는 Thin Provisioning을 벤더들에서는 많이 권고를 하고 있다.
하지만 보안적 측면에서는 여전히 Eager Zeroed Disk가 유리할 수 있다.
실제 VMDK를 삭제하더라도 데이터스토어에 데이터가 완전히 삭제되는 것이 아니기 때문이다.
이러한 이유는 보통 VMDK를 삭제 하더라도, 파일 테이블에서 인덱스만 삭제하기 때문이다.
물론 특수한 도구를 사용하지 않으면 해당 데이터를 복구해서 보는 것은 불가능하다.
하지만 Eager Zeroed Disk 방식을 사용하게 되면 데이터 영역이 최초에 완전히 삭제되어, 이전 데이터를 복구할 수 없는 방식으로 데이터의 보안상으로는 유리한 방식이다.
디스크의 프로비져닝 방식은 속도와 디스크 공간의 효율적 사용, 보안 측면을 꼼꼼히 따져보고 판단할 문제이다.
하지만 개인적인 판단으로 Flash/SSD 디스크 보편화된 이후에 방식에서는 , VM Template은 Eager Zeroed Disk로 구성하고 배포시에는 Thin Provisioning으로 구성하는 것도 괜찮은 조합으로 보인다.
또한 SSD를 사용하지 않은 사용자라면, 개발환경에서는 Thin Provisioning으로 구성하고 프로덕션에서는 Eager Zeroed Disk 배포방식을 권장한다.
실제 현재 사용 중인 VM 디스크의 배포 방식을 확인하는 방식은 vCenter 에서 “VM” 을 선택하고 “ Edit Setting "에서 디스크 항목을 보면 알 수 있다.
'가상화 > VMware' 카테고리의 다른 글
ESX SSH Key 인증방법 (0) | 2019.05.15 |
---|---|
vCenter 기반의 CentOS 설치 및 배포하기 (0) | 2019.03.11 |
VMware language change (0) | 2019.03.05 |
공지사항