まとめ

  • NetApp のパートナー、あるいや、Data ONTAP のオーナーとなり、support.netapp.com から Simulator を入手
  • ESXi で Multiextent モジュールをロード
  • データストアの移行、またはクローンでディスク形式を multiextent 形式から flat-vmdk 形式に変換
  • Data ONTAP に 28 本ディスクを追加し容量を増加
  • VAAI-NAS を使うため DataONTAP で vstorage を有効化

はじめに

Nested ESXi などで様々な検証するときに、非常によくお世話なる共有ストレージに NetApp Data ONTAP Simulator があります。NFS だけでなく iSCSI としても使え、重複排除や圧縮機能があり、SnapMirror によるレプリケーションまで使え、VAAI-Block と VAAI-NAS のいずれも利用することが出来き、さらには vSphere 6.0 の新機能である Virtual Volumes にも対応するという優れものです。特に、VAAI-NAS のクローン機能は、その 次元の違う早さ から非常に重宝します。仮想マシンのクローンが遅いとお嘆きの人ほど使ってみて欲しいところです。

実際の 10GB Eagar Zeroed Thick の HDD を持つ仮想マシンのクローンのログです。

僅か 3 秒と瞬殺です。最近の Linux であれば起動まで 20 秒程度 (Systemd ならもっと高速) ですので、まだまだコンテナに頼らずともイケよな〜とも思うこの頃。もちろんコンテナの良さは起動の速さだけではないのですが…

また、vCenter Site Recovery Manager の Storage Replication Adaptor も利用できるので、Disaster Recovery 環境の検証にも使える優れものです。

今回自身のラボを新調し NetApp Data ONTAP Simulator もデプロイし直すことになったので、備忘録として残します。

なお、support.netapp.com から Simulator をダウンロードしますが、NetApp との契約、所属会社と NetApp のパートナーシップのレベルによってダウンロード出来ない場合があるかもしれません。

目指す構成

シンプルに Nested ESXi に接続する構成を取ります。Private Network 用や Cluster Network 用の IP アドレスを振りますが、今回は VAAI-NAS だけを使う環境として 1 node cluster とします。

論理的なネットワーク構成

ネットワークは以下の 3 つを用意します。

  • Management Network: ノードの管理、クラスタの管理を行うためのネットワーク
  • Cluster Network: Clustered DataONTAP の Cluster Private Network。クラスター間のデータ転送ネットワークです。今回は 1 node ですので、形式上用意しただけです。
  • Data Network: ESXi からの NFS/iSCSI 接続を行うためのネットワーク

図に示すと以下のようになります。

Nested な構成なので、リソース節約のために 1 つの分散仮想ポート グループに全てのセグメントを詰め込みます。図に示すと以下のようになります。

また、初期の Simulator の構成では 1 GB のディスクが 28 本あるだけの寂しい環境のため、Simulator 内部のコマンドを使い 9 GB のディスクを 28 本を追加し 250GB オーバーの容量とします。この 250 GB というのは、重複排除と圧縮も使えるので検証環境としてはかなり豪勢な容量となります。ディスク シェルフの構成は以下になります。

9 GB x 56 本という構成も組めるのですが、それは別エントリで。

手順

この手順では、OnCommand System Manager/Simulator のダウンロードから、デプロイ、容量の拡張までをカバーします。

NetApp Data ONTAP Simulator と OnCommand System Manager 3.1.1 のダウンロード

NetApp のサポートサイト にアクセスし、ログインします。[Downloads] > [Product Evaluation] > [Data ONTAP ™ Simulator] > [Simulator 8.x] > [8.2.3] と進みます。

諸般事情から 8.3 ではなく 8.2.3 を選びます。8.3 は Maximize の方法が確立されていないことも影響しています

以下の 3 点をダウンロードします。

  • ESX 用 Clustered ONTAP: vsim_esx-cm.tgz (VMware Fusion 用と間違えないこと)
  • VSIM Licenses: 8.2.3 licenses Clustered-ONTAP: CMode_licenses_8.2.3.txt
  • Simulate ONTAP 8.2 Installation and Setup Guide: Simulate_ONTAP_8.2.1_Installation_and_Setup_Guide.pdf (8.2.2P1 の Documentation)

次に、OnCommand System Manager をダウンロードします。NetApp のサポートサイト から [Downloads] > [Software] > [OnCommand System Manager] > [Windows] > [Go!] > [OnCommand System Manager 3.1.1: View & Download] と進みます。

画面最下部の [Continue] をクリックし [END USER LICENSE AGREEMENT] を読み、[Accept] をクリックして OnCommand System Manager のバイナリをダウンロードします。

ONTAP Master の人ならいざ知らず NetApp 素人なので、ストイックに CLI で操作するのではなく、親切な GUI である OnCommand System Manager に頼ります。

OnCommand System Manager のインストール

予め Java 7 の JRE をインストールしておきます。次に、ダウンロードした OnCommand System Manager のインストーラーを起動し、[次へ] を押し続けてインストールを完了します。

DataONTAP 8.3 になると System Manager が DataONTAP に内蔵になるので便利なのですが、今回は 8.2.3 なので Windows にバイナリをインストールします。

ESXi への登録

ダウンロードした vsim_esx-cm.tgz を、vSphere Web Client から適当なデータストアにアップロードします。

ESXi に SSH ログインし tgz ファイルを展開します。

# tar xf vsim_esx-cm.tgz
# cd vsim_esx-cm

展開したディレクトリを vSphere Web Client から参照します。

[tgz を展開したデータストア] > [フォルダ: vsim_esx-cm]

と辿り [DataONTAP.vmx] ファイルを右クリックして仮想マシンを登録します。

再度ターミナルに戻り、仮想マシンの構成ファイルを確認します。

    # ls
    DataONTAP-flat.vmdk        DataONTAP-s044.vmdk        DataONTAP-s090.vmdk
    DataONTAP-nvram-flat.vmdk  DataONTAP-s045.vmdk        DataONTAP-s091.vmdk
    DataONTAP-nvram.vmdk       DataONTAP-s046.vmdk        DataONTAP-s092.vmdk
    DataONTAP-s001.vmdk        DataONTAP-s047.vmdk        DataONTAP-s093.vmdk
    DataONTAP-s002.vmdk        DataONTAP-s048.vmdk        DataONTAP-s094.vmdk
    DataONTAP-s003.vmdk        DataONTAP-s049.vmdk        DataONTAP-s095.vmdk
    DataONTAP-s004.vmdk        DataONTAP-s050.vmdk        DataONTAP-s096.vmdk
    DataONTAP-s005.vmdk        DataONTAP-s051.vmdk        DataONTAP-s097.vmdk
    DataONTAP-s006.vmdk        DataONTAP-s052.vmdk        DataONTAP-s098.vmdk
    DataONTAP-s007.vmdk        DataONTAP-s053.vmdk        DataONTAP-s099.vmdk
    DataONTAP-s008.vmdk        DataONTAP-s054.vmdk        DataONTAP-s100.vmdk
    DataONTAP-s009.vmdk        DataONTAP-s055.vmdk        DataONTAP-s101.vmdk
    DataONTAP-s010.vmdk        DataONTAP-s056.vmdk        DataONTAP-s102.vmdk
    DataONTAP-s011.vmdk        DataONTAP-s057.vmdk        DataONTAP-s103.vmdk
    DataONTAP-s012.vmdk        DataONTAP-s058.vmdk        DataONTAP-s104.vmdk
    DataONTAP-s013.vmdk        DataONTAP-s059.vmdk        DataONTAP-s105.vmdk
    DataONTAP-s014.vmdk        DataONTAP-s060.vmdk        DataONTAP-s106.vmdk
    DataONTAP-s015.vmdk        DataONTAP-s061.vmdk        DataONTAP-s107.vmdk
    DataONTAP-s016.vmdk        DataONTAP-s062.vmdk        DataONTAP-s108.vmdk
    DataONTAP-s017.vmdk        DataONTAP-s063.vmdk        DataONTAP-s109.vmdk
    DataONTAP-s018.vmdk        DataONTAP-s064.vmdk        DataONTAP-s110.vmdk
    DataONTAP-s019.vmdk        DataONTAP-s065.vmdk        DataONTAP-s111.vmdk
    DataONTAP-s020.vmdk        DataONTAP-s066.vmdk        DataONTAP-s112.vmdk
    DataONTAP-s021.vmdk        DataONTAP-s067.vmdk        DataONTAP-s113.vmdk
    DataONTAP-s022.vmdk        DataONTAP-s068.vmdk        DataONTAP-s114.vmdk
    DataONTAP-s023.vmdk        DataONTAP-s069.vmdk        DataONTAP-s115.vmdk
    DataONTAP-s024.vmdk        DataONTAP-s070.vmdk        DataONTAP-s116.vmdk
    DataONTAP-s025.vmdk        DataONTAP-s071.vmdk        DataONTAP-s117.vmdk
    DataONTAP-s026.vmdk        DataONTAP-s072.vmdk        DataONTAP-s118.vmdk
    DataONTAP-s027.vmdk        DataONTAP-s073.vmdk        DataONTAP-s119.vmdk
    DataONTAP-s028.vmdk        DataONTAP-s074.vmdk        DataONTAP-s120.vmdk
    DataONTAP-s029.vmdk        DataONTAP-s075.vmdk        DataONTAP-s121.vmdk
    DataONTAP-s030.vmdk        DataONTAP-s076.vmdk        DataONTAP-s122.vmdk
    DataONTAP-s031.vmdk        DataONTAP-s077.vmdk        DataONTAP-s123.vmdk
    DataONTAP-s032.vmdk        DataONTAP-s078.vmdk        DataONTAP-s124.vmdk
    DataONTAP-s033.vmdk        DataONTAP-s079.vmdk        DataONTAP-s125.vmdk
    DataONTAP-s034.vmdk        DataONTAP-s080.vmdk        DataONTAP-s126.vmdk
    DataONTAP-s035.vmdk        DataONTAP-s081.vmdk        DataONTAP-sim.vmdk
    DataONTAP-s036.vmdk        DataONTAP-s082.vmdk        DataONTAP-var-flat.vmdk
    DataONTAP-s037.vmdk        DataONTAP-s083.vmdk        DataONTAP-var.vmdk
    DataONTAP-s038.vmdk        DataONTAP-s084.vmdk        DataONTAP.vmdk
    DataONTAP-s039.vmdk        DataONTAP-s085.vmdk        DataONTAP.vmx
    DataONTAP-s040.vmdk        DataONTAP-s086.vmdk        DataONTAP.vmxf
    DataONTAP-s041.vmdk        DataONTAP-s087.vmdk        cfcard
    DataONTAP-s042.vmdk        DataONTAP-s088.vmdk        nvram
    DataONTAP-s043.vmdk        DataONTAP-s089.vmdk        uml
    # 

大量の仮想ディスクファイルがあることが分かります。DataONTAP-sim.vmdk の中身を見ると分かりますが、仮想ディスクが複数のディスクをマルチ エクステントとして分割されているため仮想ディスクが大量となっています。VMware Fusion や VMware Workstation ではよく使われるディスク形式ですが ESXi ではまず使われません。

他にもディスク形式があり、以下で確認することができます。
vSphere Web Services SDK: Enum – VirtualDiskType
豆知識となりますが、OVF として Export した vmdk ファイルは、上記にあるいずれの形式でもなく、圧縮され読取専用となる Streaming Optimized 形式として保存されます。
Virtual Disk Development Kit: Virtual Disk Types

このマルチ エクステント形式というのが難点で、標準状態の ESXi では仮想マシンを起動したり vmkfstools でコピーすることができません。マルチ エクステントの vmdk を読み込むためのモジュール multiextent を手動でロードする必要があります。

    # vmkload_mod multiextent
    Module multiextent loaded successfully
    # 

この後、大抵の Blog では vmkfstools を使ってリネーム、ディスク形式の変換を行うのですが、仮想ディスク名や *.vmx ファイル名が私の付ける仮想マシン名 (cdot-01a) と一致しないのが非常に気になります (ホント気分の問題だけです)。実は、データストアの移行やクローンを行うと、仮想ディスク名や *.vmx ファイルなどが仮想マシン名に揃えられるのです。また、ラボ環境なので性能度外視、容量重視とするために、データストアの移行/クローンを行う際に、ディスク形式はシンプロビジョニングとします。

データストアの移行とした場合に必要であれば、常用するデータストアにもう一度移行します。

仮想マシンの仮想ディスクが保存されているデータストアを変更することを、無条件に Storage vMotion といってしまいがちです。正しくはパワーオンしている仮想マシンのデータストアを変更する場合を Storage vMotion、パワーオン/オフに関わらず仮想マシンのデータストアを変更することをデータストアの移行 (Migrate) といいます。ただの言葉の違いかと思いきや、仮想マシンのパワーオン/オフによって仮想ディスクをコピーするモジュールやデータ パスが全く異なるので実は要注意です。この辺はまた別のエントリでご紹介したいと思います。

DataONTAP Simulator VM の初期設定

シリアル デバイスを追加しておきます。

また別エントリでの紹介となってしまいますが、コンソールの出力をシリアル コンソールにリダイレクトし、TeraTerm からアクセスすることもできます。

Increasing the capacity !

Simulator 起動後に Cluster の設定が完了したら、コンソールから以下のコマンドを実行します。

diag ユーザーで systemshell にログインし、vsim_makedisks というコマンドで 2, 3 個目の Shelf に 9GB のディスクを 14 本ずつ追加します。

    > security login unlock -username diag
    > security login password -username diag
    > set -privilege advanced
    *> systemshell
    % cd /sim/dev
    % vsim_makedisks -h
    % sudo vsim_makedisks -n 14 -t 36 -a 2
    % sudo vsim_makedisks -n 14 -t 36 -a 3
    % exit
    *> set -privilege admin
    > storage disk assign -all true -node cdot-01a

動画

上記の手順のうち、Simulator 起動後の初期設定、ディスク容量の追加、OnCommand System Manager のインストールまでを設定記録した動画になります。

VAAI Enabled

動画の最後で Storage Virtual Machine に対し vstorage 機能を有効にしています。ONTAP の NFS で VAAI-NAS を利用する際はこのコマンドが必ず必要になります。

    > vserver nfs modify -vserver svm-01a -vstorage enabled

その他

散々褒めちぎっている VAAI-NAS クローンですが、クローン元とクローン先のデータストアが同一でなければなりません。異なる場合は従来のクローン処理が延々とながれます。また、クローン元の仮想マシンにスナップショットが一つでもあると VAAI-NAS のクローンではなく従来のクローン処理が延々流れます。ヘコむ前に、データストアとスナップショットの有無を確認してください。

次のエントリで Virtual Storage Console をインストールし、ESXi からマウントしたいと思います。

参考