ブログトップ 記事一覧 ログイン 無料ブログ開設

仮想化でプリセールスしてるSEの一日 このページをアンテナに追加 RSSフィード Twitter

2017年03月24日

Windows Server 2016 で RDMA / RoCE を利用する - (2) RoCE v2 の設定

f:id:ogawad:20121001003258p:image:right


それでは、Windows Server 2016 の Storage Spaces Direct (S2D) でも「強く推奨」とされている RDMA について設定方法をまとめていきたいと思います。


WS16 で RDMA を利用するにあたっては iWARP と RoCE の2つの方法がありますが、前回のとおり Azure や Azure Stack でも採用されている RoCE v2 をベースに説明していきます。下記の投稿も参考になりますので併せてご活用ください。


また、一部の設定は NIC やスイッチのメーカーに依存します。すべてのメーカーの設定を網羅することはできませんのであらかじめご了承ください。



ToR スイッチの設定

RoCE を使うには、少なくとも ToR スイッチは RoCE v2 に対応していなければなりません。お使いの ToR スイッチのマニュアルを参考に、RoCE v2 の通信を許可してください。下記は Mellanox スイッチの例です。



物理 NIC / CNA の設定

次に、物理 NIC*1 の設定です。

こういったケースでは、POST 画面から NIC BIOS 画面に入り、パラメーター調整していくのですが、私の知る限り RoCE の設定を NIC BIOS でやらせる製品は見たことがありません。

(最終的には購入した製品のマニュアルをご覧になった方が確実ですが)多くは下記のようなドライバパラメーターで設定すると思います。


f:id:ogawad:20170324071502p:image


この図は Broadcom CNA(旧 Emulex OneConnect の方)の設定画面です。
「Roce mode」というパラメーターがあります。

  • 「1」を選択した場合: RoCE v1 で動作
  • 「2」を選択した場合: RoCE v2 で動作

となっていますので、「2」を選択する必要があります。



Hyper-V ホストの設定

続けて、Hyper-V ホスト上で RDMA を有効にしましょう。


基本的には WS12 系と手順は変わりませんが、S2D で利用する場合は「Set-NetOffloadGlobalSetting」コマンドレットを利用して NetworkDirect パラメータを有効にする必要があります。

Set-NetOffloadGlobalSetting -NetworkDirect Enabled


S2D ストレージアクセス専用の物理 NIC を用意できない場合

Azure Stack もそうですが、S2D 専用の物理 NIC を用意できない場合は、以前手順を紹介した Switch Embedded Teaming (SET) モードの仮想スイッチを利用します。

RDMA に対応した SET 仮想スイッチにするために、内部的に用意した S2D セグメントに対して「Enable-NetAdapterRDMA」コマンドレットを実行します。

Enable-NetAdapterRDMA "<NICアダプタ名>","<NICアダプタ名>"


仮想マシンから直接 RDMA を利用できる??

私はまだ試したことは無いですが、
Hyper-V の仮想マシンは RDMA を喋らせることができるみたいです。


確かに、仮想 NIC のドライバパラメータに「NetworkDirect (RDMA)」というのがありますね。

f:id:ogawad:20170324073049p:image



RDMA 通信の確認方法

基本的には必要な作業はこれくらいです。

ちゃんと RDMA で動いていることの確認方法についてはパフォーマンスモニタを見るのが手っ取り早いと言われています。

f:id:ogawad:20170324074627p:image

*1:RoCE に対応した NIC の多くは、CNA (Converged Network Adapter) と呼ばれています

2017年02月28日

Windows Server 2016 で RDMA / RoCE を利用する - (1) RoCE は v2 へ

f:id:ogawad:20121001003258p:image:right


Windows Server 2016 には流行りのハイパーコンバージド (HCI) 機能
「Storage Spaces Direct(S2D)」が標準で備わっています。

VMware でいう vSAN みたいなもので、vSAN 同様に SSD が必須であったり 10G Ethernet が強く推奨されているのですが、S2D には vSAN には無いハードウェア連携技術として、HPC などで活用されている RDMA(リモート・ダイレクトメモリアクセス)の利用も 強く推奨 され、爆速な I/O を叩き出すといったことが可能とされています。


We strongly recommend 10+ GbE with remote-direct memory access (RDMA), either iWARP or RoCE.

https://technet.microsoft.com/ja-jp/windows-server-docs/storage/storage-spaces/storage-spaces-direct-overview

ということで、RDMA-enabled な S2D についてまとめてみます。


InfiniBand? iWarp? RoCE?

f:id:ogawad:20170321025248j:image:right

RDMA と聞いて思いつくのは InfiniBand かもしれません。

実際、Windows Server 2012 世代では SMB Direct として InfiniBand を活用しようとしていた節がありました。しかし、InfiniBand (IPoIB) による SMB Direct は、私が以前 こちら で書いたようなクリティカルな問題もあり、無理があったのは否めないところです。


実は、RDMA を実現できるプロトコルは InfiniBand だけではありません。iWarp や RoCE プロトコルでも利用できます。

ただ、WS12 世代の頃は InfiniBand 以外の情報はほとんどありませんでした。iWarp は仕方ないかもしれませんが、RoCE (RDMA over Converged Ethernet) は、InfiniBand よりも手軽な機器で利用できると言われて期待されていたものの、実際に手順が出てきたのは R2 のリリース後で、しかも「IPヘッダは持てない」と、これまた致命的な問題があり、そのまま陽の目を見ない感じがありました。


Windows Server 2016 S2D では「RoCE v2」が必要

このような R&D と現実とのギャップから、WS12 世代では RDMA-enabled を本番導入しているケースは、私の知る限りほとんど無かったのですが、2014 年に RoCE v2 となり、(意外と早く)IP ヘッダを持てるようになりました。


RoCEv2 IBTA 標準化完了(2014年9月16日) @kz_tomo

f:id:ogawad:20170321025247j:image

http://rdma.hatenablog.com/entry/2014/09/21/132500

この標準化には Microsoft も強く関わっていたそうで、Microsoft Azure の基盤で RoCE が利用されていることも 明らか*1 になっています。

Azure への実装からも分かるとおり、RDMA に強い思い入れのある Microsoft R&D チームは InfiniBand → RoCE 推し に変わります。技術的にそうせざるを得なかっただけかもしれませんが、結論として WS16 S2B では従来の InfiniBand の文字はなく、「RDMA v2 必須」となりました。


f:id:ogawad:20170321033114p:image:w200:right

「標準化」は市場拡大に重要です。

仕様が確立されますので、先導を切っている Mellanox だけでなく、Broadcom(旧 Emulex)や Cavium(旧 QLogic・Broadcom)の CNA でも RoCE v2 がサポートされましたし、10G/40G だけでなくコストパフォーマンスに優れた 25G も登場しました。

今年の梅雨ごろには投入すると言われている Azure Stack も RoCE v2 が採用されています。


次回は WS16 で RoCE v2 を利用するための設定 をサマライズしていきたいと思います。


参考

*1:どのサービスかは不明

2017年01月16日

Windows Server 2016 - Switch Embedded Teaming の構築手順 (2)

f:id:ogawad:20121001003258p:image:right


間が空いてしまいましたが、
Windows Server 2016 の新機能「Switch Embedded Teaming」(SET)が本番環境に適用していくための考察のつづきです。

前回は こちら


ダウンリンクポートのアサイン

SET 対応の仮想スイッチを作成し、アップリンクポート、つまり物理 NIC のアサインまでを行いました。次はダウンリンクポート、つまりホストやゲスト向けのポートをアサインしていきます。


現在は次のような状態ですので、、、

f:id:ogawad:20170116044342p:image:w300


このようにダウンリンクポートを増やしていく感じです。

f:id:ogawad:20170116044341p:image:w300



ダウンリンクポートの追加:
Add-VMNetworkAdapter     -ManagementOS -Name "<識別名>" -SwitchName "<仮想スイッチ名>"

ダウンリンクポートの切断:
Remove-VMNetworkAdapter  -ManagementOS -Name "<識別名>"

ダウンリンクポートにタグを付ける:
Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "<識別名>" -Access -VlanId <VLAN ID>

ダウンリンクポートのタグを外す:
Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "<識別名>" -Untagged

ダウンリンクポートのタグ付け状況の確認:
Get-VMNetworkAdapterVlan -ManagementOS

※ それぞれ -ManagementOS を付けることでホストに接続します。代わりに -VMName "<仮想マシン名>" とすると仮想マシンに接続しますが、仮想マシンへのアサインはオペミスを防ぐために PowerShell より Hyper-V Manager がお勧めです。


f:id:ogawad:20170116052625p:image

f:id:ogawad:20170116052624p:image


GUI(Hyper-V Manager)ではホストに対して複数のポートをアサインできないので PowerShell が必要です。設定すると GUI はグレーアウトします。

f:id:ogawad:20170116052906p:image

f:id:ogawad:20170116053108p:image


ゲスト(仮想マシン)への VLAN 設定は仮想スイッチではなく、ゲスト側の設定で行います。ここは VMware ユーザーがいつも「?」になるところです。

f:id:ogawad:20170116053535p:image



チーミングモードと分散アルゴリズムの設定

さて、チーミングモード分散アルゴリズム はどうすれば良いでしょう?


LBFO では次のようなパラメータがありました。

f:id:ogawad:20161224212248p:image


現状の設定は Get-VMSwitchTeam で確認できます。

f:id:ogawad:20161224194228p:image



チーミングモード

TeamingMode は「SwitchIndependent(スイッチに依存しない)」の一択です。文字どおりスイッチに非依存ですので、Link Aggregation(LAG)は組めません。もちろん LACP もダメです。

ここが従来までの LBFO を併用した方法との、唯一のデメリットかと思います。


分散アルゴリズム

LoadBalancingAlgorithm は、基本的にデフォルトの「Dynamic(動的)」で問題ありません。しかし、SET と同じく Windows Server 2016 の SDN の新機能である Packet Direct(PD)を使う場合は「Hyper-V Port」にする必要があります。


Packet Direct

Packet Direct は、次のような対応 NIC を搭載している場合のみ利用できる、Hyper-V ネットワークの新機能です。*1

仮想スイッチを作成(New-VMSwitch)する際に -EnablePacketDirect $true を指定し、その後「Windows Azure VFP Switch Extension」を有効にすることで利用できます。機会があれば今回のように手順や性能結果を共有したいと思います。

f:id:ogawad:20170116062721p:image



NIC パラメーターの調整

上記スクリーンショットのとおり、昨今の Windows ネットワークは Software-Defined と言えどハードウェアの力をどんどん借りるようになっています。

しかしながら、一部にはアクロバティックな機能もありますので、SET 環境では利用できないものがあります。そのような機能はネットワークの安定通信のためにも明示的に無効にしましょう。


SET 環境で利用できる Windows のネットワーク機能
  • DCB
  • VxLAN, NVGRE
  • SDN QoS
  • RDMA (SMB Direct)
  • Transmit-side Checksum offloads (IPv4, IPv6, TCP)
  • Receive-side Checksum offloads (IPv4, IPv6, TCP)
  • VMQ
  • RSS

SET 環境で利用できない Windows のネットワーク機能
  • 802.1X authentication
  • IPsec Task Offload (IPsecTO)
  • TCP Chimney Offload
  • Host QoS, Virtual Machine QoS (VM-QoS)
  • SR-IOV
  • Receive side coalescing (RSC)
  • Receive side scaling (RSS)

少し情報が古いですが こちら も参照ください。

2016年12月25日

Azure Backup で VMware 仮想マシンのクラウドバックアップ構築手順 (2)

f:id:ogawad:20121001003301p:image:right

昨日のつづき です。

VMware 仮想マシンを VADP 経由でちゃんとクラウドバックアップしてくれる Microsoft Azure Backup Server(MABS)について、VMware 環境への接続設定と、実際のバックアップ、価格感や注意点をまとめます。


MABS を VMware 対応バージョンに更新 (KB3175529)

2016年12月現在、公開されている MABS のインストーラーは、
VMware バックアップ未対応の古いバージョンとなっています。

管理 UI 内にある「更新プログラムの確認」をクリックするか、

f:id:ogawad:20161225100953p:image:rightダウンロードサイト に直接アクセスして、アップデータ*1 をインストールしてください。

アップデートが無事完了すると、「管理」画面の「運用サーバー」をクリックした際に「VMware の管理」といった項目が登場します*2



MABS バックアップサーバーと vCenter Server を接続

VMware バックアップ対応バージョンに更新したら、既存の vCenter Server と接続しましょう。MSFT 側で動画が用意されているので、そちらをご覧になるのが一番です。

Four simple steps to Backup VMware VMs using Azure Backup Server
https://azure.microsoft.com/ja-jp/blog/four-simple-steps-to-backup-vmware-vms-using-azure-backup-server/


各動画の内容は次のようになっています。

  1. vCenter CA 証明書チェーンのインポート
  2. MABS バックアップサーバー用の制限アカウントの作成(任意*3
  3. vCenter Server を登録
  4. バックアップジョブの作成


バックアップジョブ設定項目

バックアップソフトは「バックアップジョブが命」ですので、スクリーンショットをいくつか載せておきます。 ※ それぞれクリックすると拡大します。


バックアップターゲット選択画面(vCenter の仮想マシンフォルダ表示と一緒です)
VADP を叩くので仮想マシン単位。私の環境は仮想マシンが 200 台弱あるのですが、この手にありがちなフリーズなどは起きず、問題ありませんでした

f:id:ogawad:20161225132325p:image

f:id:ogawad:20161225111438p:image


D2D2T 的なバックアップですが、実は Azure へバックアップせずに
無償の D2D バックアップツールとして使うこともできます

f:id:ogawad:20161225111256p:image

f:id:ogawad:20161225112052p:image


こちらは Azure へ送る D2T 側のスケジュール設定

f:id:ogawad:20161225111254p:image


日次や週次データを全部保管し続けると使用量が増え続けるため、
古くなったデータは間引くことも可能です

f:id:ogawad:20161225111252p:image


ジョブ一覧画面
「指定どおりに動作しているか?」を重視した UX に見えます

f:id:ogawad:20161225113225p:image


レポート作成機能 もあります。
移植元のまま「DPM レポート」になってますね (笑)

f:id:ogawad:20161225113805p:image



他社のクラウドバックアップツールとの違い

3rd Party を見回せば、クラウドバックアップツールは正直言って結構あります。
しかし、Azure Backup はそれらと根本的に違うアドバンテージを持っています。


Azure Backup一般的な
クラウドバックアップツール
クラウドストレージ契約プランAzure BackupAzure Storage
バックアップ先ストレージAzure Storage の専用バージョンAzure Storage の通常バージョン
クラウドストレージ利用料○ 格安△ 高め
送信データ転送利用料○ 無償△ 課金対象
バックアップソフトウェア○ 無償△ 有償
差分・圧縮バックアップ○ あり△ ツールによる


気づきましたでしょうか? 携帯電話のデータカード専用プランと同様に、
Azure Backup は「バックアップ専用」の契約プランとなっています。

AWS のバックアップ専用ストレージサービスである Glacier は 3rd Party にも開放されていますが、Azure Backup は開放されていません。ですので、一般的なクラウドバックアップツールの場合は Azure Backup を使用できず、汎用クラウドストレージ(Azure Storage)を使わざるを得ないのです。

これらは仮想マシンを格納して動かしたりする Tier1 のストレージサービスですので、バックアップ保管領域に使うにはかなり高くつくのです。


Azure Backup の場合、50 GB の仮想マシンの丸ごとバックアップで 1,000 円。
年間で 12,000 円、5 年間利用してもたった 6 万円*4。しかもリストア時にダウンロード転送の追加課金は発生しない。契約プランから違いますので根本的に有利となっています。



転送速度やセキュリティは大丈夫?

Azure Backup は LRS/GRS といった三重化構成を取りつつもとても安価ですので、速度についてはそんなに期待できないのですが、これは運用上デメリットにはなりづらいでしょう。なぜなら、D2D2T 型*5 だからです。

一時領域の D2D までは同じデータセンター内でありますので、高速にバックアップできます。リストアについても、物理障害でフルリストアしたいのであれば、MABS サーバーに残っている D2D 一時領域から戻せば時間も掛かりません。

セキュリティについても、MABS バックアップサーバーだけがプロキシなどを通じてインターネットに出れれば十分です。



ハイブリッドクラウドは保守体制が重要

クラウドバックアップはかなりライトですが「ハイブリッドクラウド」の一種。

ですので、保守体制は特に気にしましょう。オンプレ側とクラウド側、そして穴になりやすい「繋ぎこみ」に至るまで、トラブル時にたらい回しされず、まるっと ワンストップで窓口対応 してくれるかどうか、窓口選びは重要だと思います。

どこの業者と保守契約するかは注意を払いましょう。

*1:MicrosoftAzureBackup-KB3175529.exe

*2:ベースが SCDPM2012 UR11 相当になります

*3:Adminstrator@vsphere.local を利用しても技術的な問題はありません

*4:実際にはデータ圧縮が行われるため容量課金は少なくなります。また世代保管をする場合、追加保管する差分データは別途課金されます

*5:本来 T は Tape を意味しますので、Cloud の意味で「D2D2C」と言うこともあるそうです

2016年12月24日

Azure Backup で VMware 仮想マシンのクラウドバックアップ構築手順 (1)

f:id:ogawad:20121001003301p:image:right

今回の記事は「vExperts Advent Calendar 2016」と連動しています。

せっかくクリスマスイブを陣取りましたので、私の得意とする二分野「Microsoft × VMware」の最新技術について書きたいと思います。

この2社、以前は真正面からのライバルでしたが、最近は少しベクトルがズレてきているのはご承知のとおり。Microsoft は自社の Azure クラウドサービスを重視していますし、VMware はオンプレ重視、クラウドについてはマルチクラウド戦略です。ここで、両社がコンフリクトしない 1 つのソリューションがあります。

「クラウドバックアップ」 です。


f:id:ogawad:20161224215248p:image



2016 年 11 月より Azure Backup Server に対応

正確というと、この VMware to Azure Backup は 今夏から実現できていました。

ではなぜ先月からかというと、System Center DPM が無くとも、ライセンス無償の Azure Backup Server (MABS) に対応し、懐の面でもスキルの面でもお手軽になった のです。

Microsoft TechNet - Azure Backup Server で VMware のバックアップが可能に
https://blogs.technet.microsoft.com/jpitpro/2016/12/07/announcing-vmware-backup-with-azure-backup-server/


しかも、このバックアップソフト(MABS)が結構優秀。

VMware のバックアップには NetBackup や Veeam などと同じく vSphere Storage API - Data Protection、つまり「VADP API」がしっかり使われており、機能・静止点保護・エージェントレスなどいくつもの点で VMware ユーザーが納得のいく出来になっています。



MABS バックアップサーバーの準備

バックアップサーバーとなる Windows Server マシンを 1 台用意します*1

仮想マシンでも構いません。スペックはさほど要求しませんが、Azure へ送る際の一時領域を持ちますので、ストレージ容量はそれなりには必要です*2

また、このマシンは Azure に送るための インターネット接続 (HTTPS) と .Net Framework 3.5 を事前セットアップしておく必要があります。



MABS バックアップサーバーのセットアップ

では、セットアップを始めてみましょう。簡単なのでコツだけ明記します。

Azure ポータルにアクセスし、Recovery Service コンテナを作成します。

f:id:ogawad:20161224222543p:image:w320


バックアップのはじめてウィザードを立ち上げ、
上記のとおり「オンプレミス」「VMware 仮想マシン」を選択

下記の画面で、MABS のインストーラー(約 3 GB)と Azure 側のコンテナ情報ファイルをダウンロードしてください

f:id:ogawad:20161224224230p:image


準備が完了したら MABS のインストーラーを実行します。
最初は解凍ウィザードが、その後セットアップウィザードが起動するはずです。

途中、資格情報コンテナファイルをインストールする画面があり、これを実施することで Azure 側との接続が完了します。


下図はインストールが完了画面です。

f:id:ogawad:20161225053530p:image


デスクトップに置かれたアイコンを実行すると、
MABS バックアップツールの管理画面が表示されます。

f:id:ogawad:20161225053528p:image



ディスクのフォーマット

未割当の空 LUN を MABS に追加して一時領域として利用できるようにします。

「管理」画面の右メニューより「ディスク」をクリックし、
メニューバーの一番左にある「追加」アイコンをクリックしてください。

f:id:ogawad:20161225070601p:image


f:id:ogawad:20161225070600p:image:right

正常に追加すると、ディスクの部分に空き容量を示す円グラフが表示されます。





アイコンも画面もなんだか SCDPM っぽい??

そう。MABS は SCDPM2012 のエンジンをそのまま移植しているため、いわゆる「日次」「週次」といったスケジュールバックアップはもちろん、差分といったバックアップソフト的な機能はそのまま実装されています。

長くなったので、このあたりはまた明日

*1:現時点では Windows Server 2016 は SIS が削除されているために非対応です

*2:バックアップ対象容量の 1.5 倍が目安。OS 領域とデータ領域で LUN を分けてください

Connection: close