스토리지 프로비저닝
스토리지 프로비저닝(storage provisioning)이란 스토리지 리소스를 호스트가 실행하는 애플리케이션의 용량과 가용성,성능 요구 조건에 따라 호스트에 할당하는 과정을 말한다. 스토리지 프로비저닝은 전통적인 방법과 가상화 방법, 이 두 가지 방법으로 수행할 수 있다. 가상 프로비저닝(virtual provisioning)은 가상화 기술을 이용해 스토리지를 공급한다.
전통적인 스토리지 프로비저닝에서느 물리적 디스크를 논리적으로 그룹화하고, 요청된 RAID 레벨을 적용해 RAID 집합을 형성한다. RAID 집합의 드라이브 개수와 RAID 레벨은 RAID 집합의 가용성과 용량, 성능을 결정한다. 종류와 속도, 용량이 같은 드라이브를 사용해 RAID 집합을 구성해 최대 사용 용량과 안정성, 성능의 지속성을 보장하는 것이 좋다. 예를 들어, RAID 집합에 용량이 다른 드라이브가 섞여 있으면 가장 작은 디스크 용량에 맞춰 RAID 집합의 전체 용량을 구성한다. 더 큰 드라이브의 남은 저장 공간은 사용하지 않는다. 이와 비슷하게 RPM(revolutions per minute)이 높은 드라이브와 낮은 드라이브가 있으면 RAID 집합의 전체 성능은 떨어진다.
RAID 집합은 보통 집합의 개별 드라이브 용량을 합하기 때문에 대용량 저장 공간을 갖는다. 가용 저장 공간을 작은 단위로 파티션해 논리적 유닛(logical unit)을 만든다. 이 유닛을 호스트의 요구사항에 따라 호스트에 할당한다.
논리적 유닛은 집합에 속한 물리적 디스크에 고르게 분포한다. RAID 집합에서 만들어진 각 논리적 유닛은 논리적 유닛 넘버(LUN, logical unit number)라 불리는 고유 ID를 부여받늗나. LUN은 호스트로부터 RAID 집합이 어떻게 구성되고 조직되는지 숨긴다. 전통적인 프로비저닝 기법으로 생성된 LUN을 가상화 프로비저닝 기법으로 생성한 LUN과 구분하기 위해 두꺼운 LUN(thick LUN)이라고도 한다.
LUN을 구성하고 가상화가 아닌 호스트에 할당할 때는 LUN을 찾기 위한 버스 스캔이 필요하다. 운영체제에게 이 LUN은 로raw 디스크로 보인다. 이 디스크를 사용하려면 파일 시스템으로 포맷한 후 파일 시스템을 마운트해야 한다.
가상 호스트 환경에서는 LUN이 하이퍼바이저에게 할당된다. 하이퍼바이저도 LUN을 로 디스크로 인식한다. 이 디스크는 하이퍼바이저 파일 시스템으로 설정하고 가상 디스크를 생성한다. 가상 디스크는 하이퍼바이저 파일 시스템에 있는 파일이다. 그 후 가상 디스크를 가상 머신에 할당하면 가상 머신에 로 디스크로 나타난다. 가상 디스크를 사용하려면 가상화가 아닌 환경에서와 같은 단계를 수행하면 된다. 여기서는 LUN 공간이 여러 가상 머신에 의해 공유되고 동시에 액세스될 수 있다.
가상 머신은 스토리지 시스템의 LUN을 직접 액세스할 수도 있다. 이렇게 하면 전체 LUN이 단일 가상 머신에 할당된다. 가상 머신에서 실행하는 애플리케이션이 응답 시간이 중요하고 다른 가상 머신과 스토리지를 공유하는 것이 응답 시간에 영향을 끼치는 경우 이렇게 하는 것이 좋다. 직접 액세스하는 방법은 가상 머신이 물리적 머신과 클러스터된 경우에도 사용한다. 이 경우 가상 머신은 물리적 머신이 액세스하고 있는 LUN을 액세스하게 된다.
메타LUN은 용량을 추가하거나 성능을 높이기 위해 LUN을 확장하는 방법이다. 메타LUN은 2개 이상의 LUN을 합해 만든다. 메타LUN은 베이스 LUN과 1개 이상의 컴포넌트 LUN으로 구성된다. 메타LUN은 이어 붙이거나(concatenated) 스트라이핑될 수 있다.
이어 붙인 확장은 추가 용량을 베이스 LUN에 더한다. 이 확장에서 컴포넌트 LUN은 베이스 LUN과 같은 크기일 필요는 없다. 이어 붙인 메타LUN의 모든 LUN은 반드시 모두 보호되거나(패리티나 미러) 모두 보호되지 않아야 한다(RAID 0). 메타LUN 안에서 여러 RAID 유형을 섞어 사용할 수 있다. 예를 들어 RAID 1/0 LUN은 RAUD 5 LUN과 결합할 수 있다. 그러나 RAID 0 LUN은 RAID 0 LUN과만 이어 붙일 수 있다. 이어 붙인 확장은 빠르지만 성능상의 이점은 없다.
스트라이프 확장은 베이스 LUN의 데이터를 베이스 LUN과 컴포넌트 LUN에 다시 스트라이핑한다. 스트라이프 확장에서 모든 LUN은 같은 크기이며 같은 RAID 레벨을 가져야 한다. 스트라이프 확장은 스트라이핑된 드라이브의 개수가 늘어나기 때문에 성능이 향상된다.
이어 붙인 확장과 스트라이프 확장의 모든 LUN은 디스크-드라이브 유형이 반드시 같아야 한다. 즉 모두 파이버 채널이거나 모두 ATA여야 한다.
가상화 프로비저닝은 스토리지 어레이에서 물리적으로 할당된 것보다 많은 용량의 LUN을 만들고 제공할 수 있다. 가상화 프로비저닝으로 만들어진 LUN을 전통 LUN과 구분하기 위해 얇은 LUN(thin LUN)이라고 한다.
얇은 LUN은 만들어져 호스트에 제공될 때에 필요한 모든 물리적 스토리지를 할당하지 않아도 된다. 물리적 스토리지는 물리적 공간의 공유 풀에서 필요할 때 호스트에게 할당된다. 공유 풀(shared pool)은 물리적 디스크로 이뤄진다. 가상화 프로비저닝의 공유 풀은 LUN을 만드는 드라이브의 집합인 RAID 그룹과 유사하다. RAID 그룹과 마찬가지로 공유 풀은 1개의 RAID 보호 레벨을 지원한다. 그러나 RAID 그룹과는 달리 공유 풀은 많은 개수의 드라이브를 포함할 수 있다. 공유 풀은 단일 종류이거나(단일 드라이브 유형) 여러 종류가 섞여 있을 수 있다. (플래시, FC, SAS, SATA 드라이브 등).
가상화 프로비저닝은 좀 더 효율적으로 스토리지를 호스트에게 할당할 수 있다. 가상화 프로비저닝은 또한 실제 스토리지 어레이에서 사용 가능한 양보다 더 많은 용량을 할당할 수 있다. 공유 풀과 얇은 LUN은 호스트의 저장 공간 요청이 커짐에 따라 쉽게 확장할 수 있다. 스토리지 어레이에 여러 개의 공유 풀을 만들 수 있고, 공유 풀을 여러 얇은 LUN이 공유할 수도 있다.