[Dongclee의 2012년 3월 9번째 포스팅 (no Step-By-Step 가이드)] Windows Server 8 Hyper-V Advanced 기능 3 : Offloaded Data Transfer

계속해서 Hyper-V 8의 Offloaded Data Transfer(ODX) 기능을 소개합니다.

Hyper-V Offloaded Data Transfer (ODX) ( https://technet.microsoft.com/en-us/library/hh831375.aspx )

최근 스토리지 하드웨어 업체들이 대량의 데이터를 near-instantaneous 복사하는 기술을 제공합니다. 이러한 최신의 복사 기술을 활용하기 위해, Windows Server 8는 “Offloaded Data Transfer (ODX)” 기능을 제공합니다. “Offloaded Data Transfer” 기능을 사용하게 되면, 가상 기계들 사이의 대량의 데이터 복사는 Hyper-V 서버를 거치지 않고 직접 전송되므로, 빠르게 데이터 복사를 완료할 수 있습니다. ODX 기술은 현재 Window 8이 설치된 물리적 서버 및 가상 기계에서 모두 사용 가능합니다.

Hyper-V Offloaded Data Transfer는 다음 환경에서 지원이 가능합니다:

  • 가상 하드 디스크 파일을 호스트하는 Hyper-V 서버는 Offloaded Data Transfer 기능이 포함된 스토리지 하드웨어가 장착되어 있어야 함
  • VHDX 기반 가상 디스크를 사용할 때, Offloaded Data Trasnfer 기능을 최적으로 사용할 수 있음
  • 가상 IDE 컨트롤러에 연결된 VHD 기반 또는 VHDX 기반 가상 디스크는 Offloaded Data Transfer 기능을 사용할 수 없습니다. IDE 디바이스는 Offloaded Data Transfer 기능이 지원되지 않기 때문입니다.

ODX의 기본적인 개념은 아래와 같습니다.

ODX는 스토리지 디바이스 내의 데이터 전송을 위해 tokenized 방식을 사용합니다. 원본 데이터 및 대상 데이터는 동일 볼륨, 동일 기계 내의 다른 볼륨, SMB2를 통한 로컬 볼륨과 원격지 볼륨, SMB2를 사용하는 2개 다른 기계들의 2개 볼륨 등에 위치할 수 있습니다. ODX의 기본적인 데이터 전송 알고리즘은 아래와 같습니다:

  • ODX 기술을 사용하는 어플리케이션은 원본 스토리지 디바이스의 “Copy Manager”에 Offload Read 요청을 보냅니다.
  • ODX 어플리케이션은 “Copy Manager” 로 부터 Offload Read 요청에 따른 token을 받습니다. 이 token은 복사될 데이터의 표시입니다.
  • ODX 어플리케이션은 token을 포함한 Offload Write 요청을 대상 스토리지 디바이스의 “Copy Manager”에게 보냅니다.
  • ODX 어플리케이션은 “Copy Manager”에게 Offloaf Write 요청에 대한 결과(ex, allow 또는 deny)를 보냅니다. “Copy Manager”는 원본 디바이스로부터 대상 디바이스로 데이터를 전송하고, ODX 어플리케이션에 Offload Write 결과를 보냅니다.

 

ODX를 지원하는 스토리지 디바이스는 반드시 T10 표준 스펙 (T10 XCOPY Lite Spec. ( https://www.t10.org/cgi-bin/ac.pl?t=d&f=11-059r8.pdf ) ) 을 지원해야 합니다.

원본 LUN 과 대상 LUN이 ODX를 지원한다면, 기본적으로, Windows 8은 ODX를 사용하여 데이터 전송을 시도합니다. 스토리지 디바이스가 ODX를 지원하지 않는다면, Windows 8은 원본 및 대상 LUN을 “not ODX capable” 로 표시합니다.

ODX를 사용하는 예제 모델로는 아래와 같습니다. 

  • 물리적 디스크, 가상 하드 디스크 및 SMB 공유 디스크 사이의 데이터 전송 : ODX 어플리케이션은 원본 LUN에 Offload Read 요청을 보냅니다. 원본 LUN의 “Copy Manager”는 ODX 어플리케이션에 token을 발급합니다. ODX 어플리케이션은 이 token을 사용하여 대상 LUN에 Offload Write 요청을 보냅니다. “Copy Manager”는 스토리지 네트워크를 통해 원본 LUN으로부터 대상 LUN으로 데이터를 전송합니다.

 

  • 단일 서버 내의 ODX 사용 : 단일 서버 구성에서, ODX 어플리케이션은 Offload Read 및 Offload Write 요청이 동일 서버에서 발생합니다. 아래 그림에서, Server 1 또는 가상 기계 1은 “원본 LUN (VHD 1 또는 물리적 디스크 1)”과 “대상 LUN (VHD 2 또는 물리적 디스크 2)”을 접근할 수 있습니다. ODX 어플리케이션은 원본 LUN에 Offload Read 요청을 보내고, 원본 LUN으로부터 token을 받습니다. ODX 어플리케이션은 이 token을 사용하여 대상 LUN에 Offload Write 요청을 보냅니다. “Copy Manager”는 동일 스토리지 어레이 내의 원본 LUN으로부터 대상 LUN으로 데이터를 전송합니다.

 

  • 2 서버내의 ODX 동작 : 2대의 서버와 “동일 Copy Manager”에 의해 관리되는 다중 스토리지 디바이스로 구성되는 환경임을 가정합니다.
    1. Server 1 및 가상 기계 1은 원본 LUN을 호스트합니다. Server 2 및 가상 기계 2는 대상 LUN을 호스트합니다. Server 1은 SMB 프로토콜을 사용하는 클라이언트가 접근할 수 있도록 원본 LUN을 공유합니다. 또한, Server 2은 SMB 프로토콜을 사용하는 클라이언트가 접근할 수 있도록 대상 LUN을 공유합니다. ODX 어플리케이션은 원본 LUN 공유 및 대상 LUN 공유를 모두 접근할 수 있습니다.
    2. 원본 및 대상 스토리지 디바이스는 SAN 구성에서 “동일 Copy Manager”에 의해 관리됩니다.
    3. ODX 어플리케이션은 원본 LUN에 Offload Read 요청을 보냅니다. ODX 어플리케이션은 원본 LUN으로 token을 받고, 이 token을 사용하여 대상 LUN에 Offload Write 요청을 보냅니다. “Copy Manager”는 다른 서버의 다른 스토리지 디바이스에 위치한 원본 LUN 으로 부터 대상 LUN 으로 데이터를 전송합니다.

 

  • 대량 데이터 마이그레이션 : 데이터베이스 파일, 스프레드쉬트 파일, 텍스트 파일 및 이미지와 같은 데이터를 구형 시스템에서 신규 시스템으로 전송하는 것이 대량 데이터 마이그레이션의 한 예제입니다. ODX 기술은 구형 스토리지 시스템으로부터 신규 스토리지 시스템으로 데이터를 마이그레이션하는데 사용됩니다. 이때, 구형 스토리지 시스템은 신규 스토리지 시스템의 “Copy Manager”에 의해 관리되어야 한다는 전제 조건이 있습니다.
    1. Server 1 은 구형 스토리지 시스템을 호스트하고 있습니다. Server 2는 신규 스토리지 시스템을 호스트합니다. Server 1은 SMB 프로토콜을 사용하는 “데이터 마이그레이션 클라이언트”가 접근할 수 있도록 원본 LUN을 공유합니다. 또한, Server 2은 SMB 프로토콜을 사용하는 “데이터 마이그레이션 클라이언트”가 접근할 수 있도록 대상 LUN을 공유합니다. ODX 어플리케이션은 원본 LUN 공유 및 대상 LUN 공유를 모두 접근할 수 있습니다.
    2. 구형 및 신규 스토리지 디바이스는 SAN 구성에서 “동일 Copy Manager”에 의해 관리됩니다.
    3. ODX 데이터 마이그레이션 어플리케이션은 원본 LUN에 Offload Read 요청을 보냅니다. ODX 어플리케이션은 원본 LUN으로 token을 받고, 이 token을 사용하여 대상 LUN에 Offload Write 요청을 보냅니다. “Copy Manager”는 다른 서버의 다른 스토리지 디바이스에 위치한 원본 LUN 으로 부터 대상 LUN 으로 데이터를 전송합니다.
    4. 또한, 대량 데이터 마이그레이션은 동일 위치의 하나의 서버에서도 발생할 수도 있습니다.

 

  • Tiered 스토리지 디바이스 내의 호스트 제어 데이터 전송 : Tiered 스토리지 디바이스는 여러 다양한 스토리지 미디어로 데이터를 분류하는 시스템입니다. 이러한 Tiered 스토리지 디바이스는 비용 절감, 성능 향상 및 용량 확장성에서 장점을 제공합니다. “분류 (Categories)”는 보호 필요성, 성능 요구사항, 사용빈도 등등 기타 여러 고려 사항에 기반하여 수립됩니다. Tiered 스토리지 디바이스 내의 호스트 제어 데이터 마이그레이션에서 ODX가 활성화되어야 합니다. 아래는 ODX가 활성화된 tiered 스토리지 디바이스의 예제입니다.

    1. Server 는 tiered 스토리지 시스템을 호스트합니다. 원본 LUN은 Tier 1 스토리지 디바이스에 존재하고, 대상 LUN은 Tier 2 스토리지 디바이스에 존재합니다.
    2. 모든 tiered 스토리지 디바이스는 “동일 Copy Manager”에 의해 관리됩니다.
    3. 데이터 마이그레이션 어플리케이션이 원본 LUN에 Offload Read 요청을 보내고, 원본 LUN으로 부터 token을 받습니다. 데이터 마이그레이션 어플리케이션은 token을 이용하여 대상 LUN에 Offload Write 요청을 보냅니다. “Copy Manager”는 다른 tier 스토리지 디바이스에 위치한 원본 LUN으로부터 대상 LUN으로 데이터를 전송합니다.
    4. 데이터 마이그레이션 작업이 완료되었을 때, 데이터 마이그레이션 어플리케이션은 Tier 1 스토리지 디바이스로부터 데이터를 삭제하고, 스토리지 공간을 회수합니다.

ODX 주요 장점은 아래와 같습니다:

  • 물리적 서버들 및 가상 기계들 사이에서 Offload 복사 작업을 수행할 수 있음
  • 스토리지 네트워크 사이에서 고속의 데이터 전송률 확보
  • Offload Read/Write 작업 동안에 서버의 CPU 사용률 및 네트워크 대역폭 사용률을 절감할 수 있음
  • Intelligent 데이터 전송 옵션을 사용하면, 어플리케이션은 Offload Read/Write 작업을 최적화할 수 있음