Windows Server 2012 Offloaded Data Transfer (ODX)에 대해서..

Windows Server 2012가 Beta, RC를 거쳐, 점차 우리 인프라에 자리잡을 날이 얼마남지 않았습니다. 3년여만에 새롭게 출시되는 메이저 서버 버전인만큼 다양한 기술이 탑재되고, 업그레이드되어져 있습니다.

오늘은 많은 기술 중 ODX에 대한 부분부터 먼저 소개드릴까 합니다. ODX.. Offloaded Data Transfer라는 기술의 약자입니다. Offloaded라는 단어가 붙어있는 기술들이 몇가지 있습니다. TCP/IP Offloaded나 IPSec Offloaded 라는 단어는 네트워크 카드에서 많이 보이는 옵션인데, 보통 Offload라는 단어는 소프트웨어가 처리해줄 수 있는 부분에 대해서 하드웨어가 대신 처리해주는 부분을 많이 의미합니다. 소프트웨어가 처리하지 않고, 하드웨어가 처리하기에 시스템에 부하가 줄어들게 되고, 성능은 향상되게 됩니다.

스토리지에 저장된 데이터를 타 서버로 복사하는 경우, 이에 대한 데이터 전송은 모두 서버간 연결된 네트워크를 통해 전송됩니다. 이 경우, 네트워크에 대한 대역폭, 그리고 이를 처리하기 위한, 정확하게는 SMB 프로토콜 처리를 위한 서버의 CPU와 메모리를 소비해야 합니다.

만약, 같은 스토리지에 연결된 서버들간에 스토리지에 저장된 데이터를 복사해주더라도, 앞서 언급한 형태로 동작하여, 자원을 소모하게 되죠. 잘 생각해보시면, 스토리지에서 그냥 이동만 해주면 된는 작업을 네트워크를 통해서 서버가 개입해서, 처리하는 형태가 됩니다.

이 경우, 이렇게 처리되면 어떨까요?

  1. 스토리지에서 데이터에 대한 정보만 읽고, 이에 대한 복사를 스토리지 레벨에 요청(Offload Road)
  2. 스토리지에서 이에 대한 처리를 진행하고, 이에 대한 정보 전달(Token 전달)
  3. 복사 대상 서버에 스토리지 정보에 대한 토큰 전달
  4. 복사 대상 서버에서 토큰 정보에 기반하여, 쓰기를 스토리지 레벨에 요청(Offload Write)
  5. 복사 완료

이를 위해서는 스토리지 레벨에서 앞서 언급한 Offload Read/Write(SCSI PROXY READ/WRITE)과 Token에 대해서 처리가 가능해야 합니다. 당연히 기술의 발전에 따른 표준 규약이 잘 만들어지고, 이에 대한 규약을 T10 XCOPY Lite 스펙으로 마련해 놓았습니다. (T10 SCSI committee's SPC4 and SBC3)

Windows Server 2012에서는 이 표준 스펙을 사용하는 기술의 이름을 ODX(Offloaded Data Transfer)라고 부릅니다. 운영 체제에서만 가능한 기술이 아니기에, Dell, EMC, NetApp등 스토리지 업계와 함께, 관련 기술을 하드웨어에 탑재하는 방안을 완료한 것으로 알고 있으며, 꼬알라가 테스트한 스토리지는 Dell Equallogic PS6010 모델입니다. 너무나 당연한 이야기지만, ODX를 지원하는 펌웨어로의 업그레이드가 필요합니다. (Firmware 6.0 Beta, 2012/09/09 Update : 현재 Dell Equallogic PS 모델의 펌웨어는 정식 6.0.1 버전입니다.)

Dell 기술 블로그에 따르면, 아래와 같은 성능 향상이 일어나는 것으로 표명하고 있습니다. 베타의 경우에서 측정한 공식 결과기에 RTM 레벨에서는 더욱 향상될 것으로 보입니다.

image

실제 꼬알라가 여러 세미나 및 이벤트에서 활용하는 실제 사설 클라우드 환경에서 테스트한 동영상이 바로 상단의 동영상입니다. 복사시 사용되는 CPU나 네트워크, 그리고 같은 스토리지를 바라보는 경우에 대한 복사시 사용되는 CPU나 네트워크를 살펴보시면 이해가 더 빠르실 것으로 보입니다.

image

Hyper-V 기술에서는 ODX를 통해 아래와 같은 이점을 가질 수 있습니다.

image

관련 문서 목록입니다.