새로운 VST 레벨을 통해 성능과 비용에 맞게 플래시 사용 최적화 가상 스토리지 계층화(VST)는 자동 스토리지 계층화(AST)에 대한 NetApp의 접근 방식입니다. AST 기술은 데이터센터에서 플래시 기반 미디어의 향상된 성능을 활용하는 동시에 비용과 복잡성을 최소화할 수 있도록 지원합니다. SSD(Solid-State Disk) 및 컨트롤러 기반 플래시와 같은 플래시 기반 장치는 초당 랜덤 읽기 작업을 초고속 하드 디스크 드라이브(HDD)보다 25-100배 더 많이 처리할 수 있지만 이러한 성능에는 기가바이트당 15-20배 더 높은 비용이 소요됩니다. VST는 전체 데이터셋을 고가의 플래시 미디어에 영구적으로 배치하지 않고 핫 데이터 블록을 식별하여 플래시에 저장하는 동시에 콜드 데이터는 저렴한 저속 미디어에 저장합니다. NetApp은 최적의 솔루션을 설계하기 위해 AST가 해결해야 하는 과제를 파악하고자 많은 시간과 노력을 투입했습니다. NetApp은 최근 VST에 2가지 제품을 추가함으로써 이제 클라이언트 애플리케이션에서 디스크 서브시스템까지 포함된 엔드 투 엔드 플래시 옵션을 제공하게 되었습니다.
이러한 3가지 레벨 모두는 계속해서 다음과 같은 VST의 모든 이점을 제공합니다.
이 기사에서는 NetApp Flash Pool 및 Flash Accel 기술을 사용하는 디스크 서브시스템 레벨 및 서버 레벨 VST 옵션에 대해 설명하며 3가지 레벨을 각각 언제 어디에서 구현해야 하는지에 대한 일반 지침을 제공합니다. Flash Cache에 익숙하지 않으신 분들은 원문 Flash Cache 기사에서 자세한 내용을 확인하십시오. 그림 1) NetApp Virtual Storage Tier가 이제 인프라 내의 여러 레벨에서 운영되어 플래시 사용을 보다 최적화할 수 있도록 지원함 Flash Pool NetApp Flash Pool은 NetApp Aggregate 레벨에서 작동합니다. (Aggregate는 RAID 그룹의 모음입니다.) Flash Pool은 SSD(Solid-State Disk)로 구성된 RAID 그룹을 기존 64비트 Aggregate에 추가함으로써 생성되며 SSD와 HDD의 두 가지 기술을 최대한 활용하는 하이브리드 디스크 어레이가 만들어 집니다. SSD는 Aggregate 내의 볼륨에 대한 랜덤 읽기 및 반복적인 랜덤 쓰기(덮어쓰기)를 저장하여 하드 디스크 드라이브(HDD)에서 이 작업의 로드를 덜어주기 위해 사용됩니다. 결과적으로 더 적은 디스크 스핀들을 사용하거나 성능 중심 디스크보다는 용량 중심 디스크를 사용하여 동일한 수준의 성능과 전반적으로 더 나은 대기 시간을 달성할 수 있습니다. Flash Pool은 SSD 수준의 대기 시간 및 처리량 이점과 HDD 수준의 대용량 스토리지를 제공합니다. 디스크 서브시스템 레벨 Flash Pool 접근 방식은 다음과 같은 다양한 이점을 제공합니다.
Flash Pool 작동 방식 Flash Pool 기술 작동 방식을 이해하기 위해서는 SSD에 대한 랜덤 읽기 및 랜덤 덮어쓰기를 식별 및 제공하는 프로세스를 이해해야 합니다. 먼저, 읽기 요구 시 블록은 디스크에서 스토리지 컨트롤러 메모리로 읽혀 지며, 읽기 이벤트는 랜덤 또는 순차적 읽기로 분류됩니다. 랜덤으로 분류된 블록은 컨트롤러 메모리에서 없어질 때가 되면 SSD에 기록됩니다. 동일한 블록의 후속 읽기는 SSD에서 처리됩니다. 쓰기 측면에서 Data ONTAP은 쓰기 요구에 최적화되어 있습니다. 효율적인 NVRAM을 사용하여 들어오는 쓰기 요청을 저널링하여 지연 없이 완료되었음이 인식될 수 있습니다. 쓰기가 수집되고 알고리즘에 의하여 가능한 시점에 언제나 풀 스트라이프(full stripe)로 디스크에 기록되므로 쓰기 모음을 순차적 쓰기 작업으로 전환하여 RAID 및 HDD에서 최적의 성능을 구현합니다. Flash Pool의 목표는 HDD의 I/O 로드를 덜어주는 동시에 다시 읽거나 쓸 가능성이 높은 블록이 SSD에 유지될 수 있게 하는 것입니다. 대규모 순차적 쓰기는 HDD에서 더욱 효율적으로 처리됩니다. 순차적 쓰기를 SSD에 보관하면 리소스가 최적 상태에 못 미치게 사용됩니다. 랜덤 쓰기 및 특히 반복 덮어쓰기 블록이 가장 이상적인 Flash Pool SSD의 타깃 대상입니다. Flash Pool은 읽기 가능성이 높은 블록과 반복 쓰기 블록으로 SSD를 채웁니다. Data ONTAP은 쓰기 요청을 받으면 쓰기가 순차적이 아닌 랜덤인지 여부와 동일한 블록 위치의 이전 쓰기도 랜덤이었는지 확인합니다. 만일 그렇다면, 그 쓰기 요청은 SSD로 이동됩니다. Flash Pool에서 블록이 제거되는 방식 Data ONTAP® 기술은 각 블록의 "핫" 정도를 추적하는 히트 맵(heat map, 지속성을 위해 SSD에 저장)을 유지합니다. 읽기는 "중립" 시에 Flash Pool에 들어갑니다. 후속 읽기는 블록의 온도를 "웜" 및 "핫"으로 높입니다. 쓰기도 "중립" 시에 Flash Pool로 들어갑니다. 그러나 후속 덮어쓰기는 블록의 온도를 높이지 않습니다. 사용 가능한 SSD 공간이 부족해지면 Data ONTAP은 각 패스에서 각 블록의 온도를 줄이는 제거 스캐너를 실행하기 시작합니다. 예를 들어 "핫" 블록이 "웜"이 되고 "웜" 블록이 "중립"이 되며 "중립" 블록이 "콜드"가 됩니다. 스캐너 패스 간에 블록을 읽거나 덮어쓰면 블록의 온도가 다시 상승합니다. 즉, "핫"은 읽기에 대해 최대로 유지되고 "중립"은 덮어쓰기에 대해 최대로 유지됩니다. "콜드" 블록을 읽거나 덮어쓰지 않으면 다음 스캐너 패스에서 온도가 "제거"로 감소됩니다. 이때 "읽기" 블록이 제거되는 동시에 덮어쓰기 블록이 HDD에 기록되도록 예약됩니다. 이 메커니즘은 Flash Pool이 가득 차면 핫 데이터만 유지되도록 합니다. Flash Pool은 핫 데이터를 보유하기 위해 동적으로 조정되며 읽기 및 덮어쓰기 전용 Flash Pool의 양은 풀을 사용하는 워크로드의 요구사항에 의해서만 결정됩니다. 그림 2) 블록은 히트 맵을 기반으로 Flash Pool에서 제거됨. 풀이 가득 차면 제거 스캐너가 각 패스에서 각 블록의 "온도"를 줄입니다. 블록은 "제거" 온도에 도달하면 제거됩니다. 스캐너 패스 간의 액세스는 블록 온도를 높이므로 "핫" 데이터가 Flash Pool에 유지됩니다. Flash Pool 성능 NetApp은 아직까지 Flash Pool 기술을 사용한 벤치마크를 공식적으로 발표하진 않았지만 OLTP 워크로드를 사용하여 잠재적 영향을 보여주는 전후 비교 연구를 수행했습니다. 동일한 FAS6210 기본 구성을 시작으로 IOPS당 비용에 대한 한 가지 사례와 스토리지 GB당 비용에 대한 두 번째 사례에 최적화된 Flash Pool을 구현했습니다. 그 결과는 그림 3에 나와 있습니다. 2가지 사례 모두에서 전체 대기 시간이 상당히 향상되는데 이는 여러 사례에서 총 IOPS보다 인식된 성능에 더 큰 영향을 미칠 수 있습니다. 그림 3) 비용/효율성 및 성능에 미치는 Flash Pool의 영향 표 1) Flash Pool 요구사항 및 옵션
NetApp Flash Pool 기술을 구현 및 사용하는 방법에 대한 자세한 내용은 NetApp TR-4070: Flash Pool 설계 및 구현 가이드를 참조하십시오. Flash Accel NetApp Flash Accel 소프트웨어는 2012년 8월에 발표되었고 2012년 후반에 제공됩니다. Flash Accel은 NetApp VST 이점을 네트워크로 확장하여 서버 자체를 포함하도록 설계되었습니다. 로컬 플래시 장치가 서버에 있다는 것은 관리해야 하는 직접 연결 스토리지가 있음을 의미합니다. 이로 인해 데이터 보호에 잠재적 문제가 발생하고 데이터 사일로가 격리됩니다. Flash Accel을 사용한 서버 캐슁은 이러한 문제를 제거하고 다양한 이점을 제공합니다.
Flash Accel의 첫 번째 릴리즈는 VMware® vSphere® 5.0 이상 및 Windows® VM과만 연동됩니다. 이후 릴리즈는 추가 VM, 다른 하이퍼바이저 및 베어메탈을 포함하도록 지원이 확장될 예정입니다. Flash Accel 작동 방식 Flash Accel은 다음 3가지 구성요소로 이루어집니다. NetApp vCenter VSC 플러그인: Flash Accel의 구성 및 관리는 VMware vCenter™에서 실행되는 NetApp VSC(Virtual Storage Console)용 플러그인을 사용하여 수행됩니다. 이 플러그인을 사용하여 다음을 수행할 수 있습니다.
Flash Accel 하이퍼바이저 플러그인(ESX 호스트에 설치됨): 하이퍼바이저 플러그인은 ESX 호스트에 설치되며 VSC를 사용하여 정의한 구성에 따라 로컬로 연결된 장치(예: SSD)와 스토리지 어레이 경로에 대한 제어 기능을 설정합니다. 이 플러그인은 논리적 장치를 만들고 ESX 스토리지 스택에 SCSI 장치로 표시합니다. 동일한 WWN을 사용하는 여러 ESX 호스트에서 생성된 논리적 장치를 통해 ESX에서 장치를 공유 장치로 처리할 수 있으므로 이 장치를 사용하는 VM이 vMotion® 및 VMware HA 운영에 참여할 수 있습니다. 하이퍼바이저 플러그인은 VM 마이그레이션 기능뿐만 아니라 플래시 장치의 관리 기능을 제공하고 동적 리소스 공유 및 캐쉬 블록 중복제거도 지원할 수 있습니다. Windows VM의 Flash Accel 에이전트: Windows 게스트 VM를 위한 사용자 레벨 에이전트가 구현됩니다. 이 에이전트의 기능은 다음과 같습니다.
이 서비스 에이전트는 웹 서비스를 VSC로 엑스포트하고 Windows PowerShell™ cmdlet을 통해 드라이버와 통신합니다. 그림 4) Flash Accel은 각 VM 및 VMware vSphere용 플러그인에서 실행되는 에이전트를 포함하며 vCenter 내에서 실행 중인 NetApp VSC를 통해 제어됨. ESX 호스트에서 사용 가능한 PCI-e Flash 카드나 SSD를 사용할 수 있습니다. 그림 4에 나와 있듯이 Flash Accel은 ESX 서버의 로컬 플래시 리소스를 사용하여 Windows 가상 시스템에 대한 캐슁 계층을 제공합니다. 플래시 장치는 ESX 호스트의 여러 VM 간에 공유되어 각 VM에 자체 로컬 캐쉬를 제공합니다. VM의 모든 읽기는 재사용을 위해 로컬에 캐슁되어 백엔드 스토리지의 향후 읽기 로드를 덜어줍니다. 쓰기는 백엔드 스토리지에 기록되지만 캐쉬에서 다시 읽기에 사용될 수 있습니다. Flash Accel 캐쉬에는 캐쉬 운영 및 스토리지 매니저라는 2개의 주요 영역이 있습니다.
데이터 일관성은 Flash Accel의 가장 중요한 기능입니다. Flash Accel에 알리지 않고 백엔드 데이터가 변경되는 경우 캐쉬 데이터와 백엔드 스토리지 데이터가 동기화되지 않을 수 있습니다. 이로 인해 캐쉬에서 애플리케이션/최종 사용자에 잘못된 데이터가 반환되어 데이터 손상이 발생할 수 있습니다. 다음은 데이터 일관성이 문제가 되는 2가지 상황입니다.
이러한 상황에서 Flash Accel의 이점은 차이점이 있는 블록만 무효화하고 변경되지 않은 모든 블록은 유지한다는 것입니다. 이와 같은 상황이 발생하는 경우 사용 가능한 다른 솔루션으로 캐슁된 데이터를 모두 완전히 삭제하고 전체 캐쉬를 리워밍(rewarming)할 수 있습니다. 이 작업에는 데이터에 따라 몇 시간에서 며칠이 걸릴 수 있으며 이 기간 동안 성능이 저하됩니다. Flash Accel 성능 Microsoft® Exchange에서 생성되는 디스크 I/O 로드를 시뮬레이션하는 JetStress를 사용하여 Flash Accel을 포함한 구성과 포함하지 않은 동일한 구성의 성능을 비교했습니다. Flash Accel을 추가하면 읽기 및 쓰기 모두에서 I/O 성능이 약 77% 향상되었습니다. 애플리케이션 읽기가 주로 Flash Accel에서 처리되므로 백엔드 스토리지가 읽기에 덜 사용되어 더 나은 쓰기 성능을 제공할 수 있었습니다. 따라서 전반적인 애플리케이션 성능이 크게 향상되었습니다. 그 결과는 그림 5에 나와 있습니다. 그림 5) Exchange 워크로드를 시뮬레이션하는 JetStress를 사용할 경우 Flash Accel은 읽기 및 쓰기 I/O를 약 77% 향상함 VST 옵션 선택 최상의 VST 레벨을 선택하면 비용 최소화를 지원하도록 모든 워크로드를 가속화하여 Flash 투자의 이점을 극대화할 수 있습니다.
즉, 공유 스토리지 인프라 내에서 워크로드 특수성이 서버 레벨에서 최대이고 컨트롤러 레벨에서 최소입니다. 하나의 워크로드를 가속화해야 하는 경우 서버 레벨 VST를 선택하는 것이 좋습니다. 모든 워크로드를 가속화해야 하고 성능 중심에서 용량 중심 디스크로 전환해야 하는 경우 디스크 서브시스템 레벨이나 컨트롤러 레벨을 선택합니다. NetApp을 이용하여 새롭게 Flash 기술을 구현할 경우, 먼저 Flash Cache나 Flash Pool 기술로 시작한 다음 대기 시간에 매우 민감한 애플리케이션의 추가 성능 향상이 필요한 경우 Flash Accel을 추가하는 것이 좋습니다. Flash Cache와 Flash Pool 선택과 관련하여 다음과 같은 유사점과 차이점이 있습니다.
일반적으로 Flash Pool은 테이크오버 이벤트 이후에도 지속적인 이점을 제공하므로 미션 크리티컬 애플리케이션에 적합합니다. 또한 덮어쓰기 비율이 높은 애플리케이션에도 적합하며 FAS2200 시리즈에서 사용할 수 있는 유일한 옵션입니다. 메인 메모리와 유사성이 많은 Flash Cache는 고성능 파일 서비스를 위한 다양한 이점을 제공할 수 있습니다. Flash Pool과 Flash Cache를 동일한 스토리지 시스템에 설치할 수 있지만 대체로 큰 이점은 없습니다. Flash Pool을 사용하는 Aggregate의 데이터 블록은 Flash Cache에 캐슁되지 않습니다. 결론 NetApp은 VST에 Flash Pool 및 Flash Accel을 도입함으로써 플래시를 사용하여 I/O 성능을 최적화하는 2가지 새로운 방법을 제공합니다. 일반적인 구별 지침으로 다음 특징을 기억하십시오.
여러 레벨을 결합하여 전체 성능을 최적화하는 동시에 투자를 최소화할 수 있습니다. 어떤 옵션을 선택하든 VST가 설치되어 있으면 관리할 것이 거의 없습니다. 필요한 경우 구현을 미세 조정할 수 있지만 대부분의 경우 기본 설정으로도 잘 작동하며 상당한 이점을 얻을 수 있습니다. Tech OnTap 지금 바로 NetApp 커뮤니티의 Tech OnTap을 방문하여 구독 신청하십시오. | | ||||||||||||
![]() | ![]() |
| 연락처 | 구매 방법 | 피드백 | 채용 | 구독 | 개인 정보 보호 정책 | © 2012 NetApp |