仮想化でプリセールスしてるSEの一日

VMware から Azure まで、インフラや仮想化の最新情報をベンダー色をできるだけ抑えて綴っていきます

Windows Server 2012 ODX 機能の使い勝手 - (1) T10 XCOPY を OS レベルで

f:id:ogawad:20190203195637p:plain:right

(1) (2) (3) (4) (deep dive)

連休前、Microsoft 主催で「Windows Server 2012 Community Day」というイベントがあり、
次のような Hyper-V の設計ポイントについての登壇の機会をいただきました。

量が多くて駆け足になってしまったせいもあり、本ブログで最新情報などいくつかフォローアップしていきたいと思います。資料内で聞きたいことや取り上げて欲しいなどご要望があれば、気軽にお声がけください。

Windows Server 2012 Hyper-V の本格採用に必要なエンタープライズ設計術
http://download.microsoft.com/download/C/F/2/CF2F9D51-5D9E-45FE-B134-D0783220DCE8/20130426-Ogawa.pdf

Windows Server 2012 の ODX とは?

ODX (Offloaded Data Transfer: オフロードデータ転送) の実体は XCOPY Lite という SCSI の拡張コピーコマンド*1 です。

VMware は vSphere 4.1 の頃から「VAAI FullCopy」という名称で実装しており、現在販売しているストレージのほとんどが対応しています。ですので、どういった技術かはもちろん、仮想マシンのプロビジョニングやクローン, Storage vMotion といったシーンでその恩恵を既に得られている方も多いでしょう。



ただ、クローンや Storage vMotion は常に行うものではありません。
「セットアップやメンテナンスで得するだけか...」とプライオリティを下げてしまいがちですが、Windows Server 2012 の ODX に関しては、結構違います。

ハイパーバイザーである vSphere の場合は、コピーというとそのような用途になってしまいますが、ODX は Hyper-V ではなく Windows OS レベルでの実装 ですので、想像している以上に色々なことを実現できるのです。


Windows Server 2012 の ODX は OS レベルで動作する

ODX が実際に動いているビデオを 1 つ公開してみたいと思います。
これは、実際に私が撮ったもので、Hyper-V を有効化していない単なる WS2012 物理サーバーを、StoreServ という昨年12月に ODX に対応したストレージにつなげて、SAN ボリューム間をファイルコピーしています。
利用するファイルは各種キャッシュから溢れるように 50GB 以上、また重複排除が掛からないように Iometer を 1 時間以上回した後の iobw.tst バイナリです。

ODX が無効な場合


最初は Write Cache に救われますが、その後スループットは 300 MB/sec あたりに落ち着きます。右下のリソースモニタでも足周りに結構な負荷 (%アクティブ) が掛かっているのが分かります。

ODX を有効にした場合


スループットはシングルコピーで 600 MB/sec、最後の方で行っている多重コピーでは合計で 1 GB/sec と、8Gbps FC の理論値 800 MB/sec*2 を超えています。
(ODX の転送速度や処理時間については 別途解説 します)
ここで最も重要なのは、リソースモニタを見ても 20KB 程度の転送しかなく、サーバーの足周りに一切の負荷が掛かっていないということです。


つまり、Hyper-V の ODX は仮想マシンの移行だけではなく、普通のファイルをコピー・移動するといった 日常のエクスプローラー操作でも恩恵を受けられます
専用のアプリケーションも必要はありません。



Windows Server 2012 がリリースされて 1 年が経とうとしていますが、
ODX に関するこれまでの説明が「仮想マシンのストレージ移行」であったため、vSphere VAAI と同じようなイメージを受けていた方が多いと思います。
しかし、実際に ODX に対応したストレージで試してみると、幅広く恩恵を受けられることが分かりました。次回 はここをもう少し深堀りしてみたいと思います。

*1:ESX の SPC-2 SCSI Reservation などと同じく ANSI T10 で標準化されています

*2:FC は 8b/10b 変換