QUADstor Installation & Configuration


Home Lab のストレージとしては最高の使い勝手を提供してくれる QUADstor ですが、最近インストール方法が変わったようです。ここでは、あらためてインストールをハードウェア構成を含めて (仮想マシンですが) 見ていきます。

  • 目標
  • 仮想ハードウェア構成
  • CentOS の設定
  • QUADstor のインストール
  • QUADstor の構成
  • vSphere ESXi からのマウント
  • 性能

目標

Home Lab は同じような環境をクローンすることを想定しています。自ずと Dedup が高効率で効きますので、容量よりも Dedup の速度を上げることとそこそこの速度 (帯域 100MB/s、遅延 10ms 以下) を目標とします。

仮想ハードウェア構成

QUADstor は DDT (Dedup Table) をディスク上にとることで、現実的な Inline Dedup を提供しているようです。このため DDT を保存するディスクは Home Lab でも最速のディスクにすると良いでしょう。また、Dedup と Compression (LZ4) も行うのでそれなりに CPU 負荷がかかります。実測では 100MB/s の負荷で CPU 負荷 200-250% (esxtop の値) なので 4 CPU もあれば十分です。そしてメモリについては QUADstor のマニュアルに 1TB ストレージあたり 2GB メモリとありますが、今回はディスク容量が 1TB と少なめなのですが多めに見積もって 6GB とします。

  • CPU: 4 vCPU
  • メモリ: 6TB
  • NIC1: vmxnet3 (管理用)
  • NIC2: vmxnet3 (iSCSI 用、MTU9000)
  • SCSI0: pvscsi
    • 16GB (vmdk、OS 起動用)
  • SCSI1: pvscsi
    • 16GB (vmdk、Dedupe メタデータ用)
      • Megaraid 9265-8i の RAID0 ドライブ (SSD x 2) 上に作成
  • SCSI2: pvscsi
    • 256GB SSD (pRDM、実データ用)
    • 256GB SSD (pRDM、実データ用)
  • SCSI3: pvscsi
    • 256GB SSD (pRDM、実データ用)
    • 256GB SSD (pRDM、実データ用)

SCSI アダプタを複数用意しているのは総計の Queue Size を増やしているためです。なお SSD x 4 をデータ領域としていますが、それほど早くはなりませんでした…Orz

RDM を使用しているのは、vmfs のオーバーヘッドで 1GB たりとも無駄にしたくなかったためです。不用意に「全 VM の D: ドライブ以降は RDM」というマゾいルールにしてはいけません。RDM は苦渋の選択で限定的に用いられるべきモノです。通常の UI からはローカルディスクを RDM とすることはできないので、vmkfstools で物理互換 RDM を作成します。

-a はこの RDM ディスクをぶら下げるアダプタのタイプを指定します。この -a の値と実際にぶら下げるアダプタのタイプが食い違うと、動くけども Storage vMotion できないなど不幸な状況になりかねないので注意して指定します。この RDM ディスクを仮想マシンに追加する場合は、RDM ディスクを追加するのでは無く、既存ディスクとして追加します。

CentOS のインストール

CentOS 6.5 64bit をインストールします。Basic Server でインストールし、後ほど QUADstor で必要なパッケージを追加します。

OS のアップデート

カーネルも上がるので、reboot しておきます。

VMware Tools のインストール

vmware-install.pl の -d オプションは、インストール中の質問にすべてデフォルトで回答します。

MTU=9000 を ifcfg ファイルに追加してジャンボフレームでの通信を有効にします。

有効かどうかまで比較していませんが、DDT 用に pvscsi の Queue を上げておきます。”vmw_pvscsi.cmd_per_lun=254 vmw_pvscsi.ring_pages=32″ をカーネルのパラメータに追加します。
※ iSCSI データストアが切断されるなど不安定さがあったため、現在は本パラメータを外して運用しています。(06.May.2014 現在)

QUADstor のインストール

以前は個別に rpm ファイルが配布されていましたが、現在はソースコードでの配布に変わったようです。以下では links コマンドでダウンロードしていますが、別 PC でダウンロードし WinSCP や Filezilla などでアップロードしてもよいです。

Apache の諸設定はしてくれないため、chkconfig で httpd の自動起動を設定し、httpd.conf の ServerName を編集しておきます。また、iptables で HTTP (80) と iSCSI (3260) も解放しておきます。Home Lab ということもあるので、性能を少しでも上げるため、iptables をオフにするのもよいでしょう。

QUADstor の構成

QUADstor の構成は、ブラウザベースのシンプルな UI から行います。その前に QUADstor における、物理ディスク、ストレージプール、仮想ディスクの関係を整理します。

  • 物理ディスク
    • 実際の物理ディスクで /dev/sdb などのデバイスを利用できます。ZFS を利用している場合は ZVol も利用できるようです。一つ、あるいは、複数の物理ディスクを束ねてストレージプールを作成します。
  • ストレージ プール
    • 物理ディスクを複数束ねたストレージ プールで、このプールからホストに提供する仮想ディスクを切り出します。
  • 仮想ディスク
    • ストレージ プールから切り出した、ホストに提供する仮想的なボリュームです。シンプロビジョニング、圧縮、重複排除といった機能を実装しています。

シンプルに構成するならば、1 物理ディスク / 1 ストレージ プール / 1 仮想ディスクといった、以下のような構成も可能ですが、この場合ログや DDT がデータと同一ディスクとなってしまい I/O が一つのディスクに集中してしまうので好ましくありません。

qs-setup-06

そこで以下のように、DDT とログを別のディスクにし、データを残りの 4 本のディスクに分散させます。今回の環境のログ/ Dedup のディスクに使用している Megaraid 9265-8i は BBWC を積んでおり Write-Back 構成にしています。Max 1GB/s、20,000 IOPS まで確認したことがある代物ですが、今回の QUADstor 環境は 10,000 IOPS を超える超えないかといったところでした。図にすると以下のような構成となります。qiscsi-0 という仮想ディスクを ESXi に見せることになります。

qs-setup-05

では、実際の設定を見てみましょう。

QUADstor のサーバーに http://${QUADstor_IP} でアクセスすると以下のような画面がでます。セキュリティ上好ましくない場合は、マニュアルを参考にしてください。

qs-setup-01

上部に System、Physical Storage、Storage Pools、Virtual Disks というメニューがあるだけのシンプルな画面です。QUADstor では、以下の手順で仮想ディスクを作成します。

  1. ストレージ プールの作成 (Storage Pools メニュー)
  2. ストレージ プールに物理ディスクを追加 (Physical Storage メニュー)
  3. ストレージ プールから仮想ディスクを作成 (Virtual Disks メニュー)

まず、デフォルトのストレージ プールとは別のストレージ プールを作成します。

Storage Pools > Add Pool

qs-setup-3-1

Pool Name を入力し、Submit します。Dedup / ログは既にある Default Pool で行うので、ここではチェックしません。

qs-setup-07-1

新しいストレージ プールができたことを確認します。

qs-setup-08

次に、それぞれのストレージ プールに物理ディスクを割り当てていきます。Default Pool に VMware 印のディスクを追加し、先ほど作成した qpool に TOSHIBA SSD x 4 を追加します。

Physical Storage > 各ディスクの Add

qs-setup-09-1

以下では、Default Pool に VMware 印のディスクを追加しています。Storage Pool のドロップダウンリストで物理ディスクが所属するストレージ プールを選択します。この辺ちょっと直感的な UI ではないですね。Log Disk にチェックを入れていますが、通常はシステムの方で自動的に決定するようです。

qs-setup-10-1

次に、TOSHIBA SSD 達を qpool に追加していきます。

qs-setup-11

今度は Log Disk をオフにし、Enable Compression をオンにします。

qs-setup-12-1

何故か追加時に指定できないパラメータがあるので、後から Modify で修正します。

qs-setup-13

Unmap や Write Cache の設定は後から修正します。Unmap も元気に動作するので、もちろん有効にしておきます。Home Lab 環境においてストレージ側でシンプロビジョニングを使用するならば、むしろ必須の機能でしょう。

qs-setup-14-1

残りのディスクにも同様の設定を行います。

qs-setup-15

いよいよ、仮想ディスクを作成します。

Virtual Disks > Add VDisk

qs-setup-16-1

iSCSI のディスク / ボリュームを作成するには、かなり歯ごたえのないパラメータですが、多くは後から変更することになります。シンプロビジョニングがデフォルトなので、容量は実用量以上にしても問題ありません。Home Lab では重複排除が非常に効くはずなので、気にならない程度に大きくしても問題無いでしょう。しかしながら、vmfs は後から拡張可能なので、不必要に大きくしないほうがいいかもしれません。大きくしすぎた場合、esxcli コマンドで Unmap する際にとても時間が掛かります。最も注意するパラメータはストレージ プールになります。複数ストレージ プールを作成した場合は気をつけて設定しましょう。

qs-setup-17-1

これで仮想ディスクは作成されましたが、Dedup は有効なものの Compression が効いていません。Modify で修正します。

qs-setup-18-1

Enable Compression をチェックし、その下の Submit を押せば Compression が有効になります。セキュリティについては、認証を使えるものの ホスト側の IQN でアクセス制御を掛けられないなど少々残念なところがあります。
また、巷の iSCSI ストレージ (特にスケールアウト型) は 1 LUN/ターゲットという構成で、1 LUN 毎に TCP セッションを張りパフォーマンスを稼ぎますが、QUADstor は UI 上からはターゲットは 1 つしか設定できない (複数設定できない) ようです。しかし、IET をベースにしているので、CentOS にログインし vi で各種設定ファイルを編集すればできるかもしれません。再度確認しましたら 1 LUN / Target でした。インドに足向けて寝られない…Orz (06.May.2014)

qs-setup-19-1

vSphere ESXi からのマウント

最初から説明するのが厳しくなってきたので、以下は既に終わっている段階から説明します。

  • ソフトウェア iSCSI の有効化
  • iSCSI 用の vmk インターフェースの作成と IP の付与
  • iSCSI 用の vmk インターフェース、および、仮想スイッチの MTU 9000 化

vSphere Web Client でログインし、以下のように UI を辿り、ターゲットポータルを追加します。

ホーム > ホスト > ESXi ホスト > 管理 > ストレージ > ストレージ アダプタ > ターゲット > 動的検出 > 追加…

qs-setup-25

QUADstor の iSCSI 用の IP アドレスを指定します。3260 は iSCSI で利用されるポートです。

qs-setup-26

ターゲット ポータルを追加すると、アダプタのスキャンを勧められるので、iSCSI Software Adapter を選択して右上のスキャンボタンをクリックします。

qs-setup-27-1

無事スキャンが完成すると、デバイス タブに QUADstor で作成したデイバスを確認できます。ハードウェア アクセラレーションが有効になっていることも確認しましょう。

qs-setup-28

デバイスが 1 つにも関わらずターゲットが 2 になっているのは、QUADstor の CentOS のもう一つインターフェースの IP アドレスが見えてしまっているためです。QUADstor の UI からは無効にできないので、パス タブで無効にするとよいでしょう。

qs-setup-28-1

さて、ハードウェアアクセラレーションが有効になりましたが、VAAI-Block の全てが有効になっていなくてもこの項目は有効と表示されてしまいます。esxcli コマンドで VAAI-Blcok が全てサポートされていることを確認しましょう。

下から 2 つめのデバイスが QUADstor のデバイスですが、しっかりと VAAI-Block の全ての機能がサポートされていることが確認できます。なお、naa.5000… で始まるデバイスは LSI-9207 SASHBA に接続されている SSD ですが、こちらはこちらで VAAI-Block のうち Zero と Delete (Unmap/Trim) がサポートされていることを確認できます。

あとは、FC 接続や他の iSCSI 接続の時と同じようにデータストアを作成するだけです。以下は作成したデータストアのデバイス バッキング情報と接続情報です。

qs-setup-36

qs-setup-37

性能

以下のようにvSphere ESXi の腹の中の iSCSI ストレージを内部スイッチで接続するのでそれなりの速度がでます。

qs-setup-38

この構成では、Dedupe/Compression なしの場合、200MB/s 程出ましたが、Dedupe/Compression ありの場合 100MB/s ほどまで落ちます。また VAAI-Clone による仮想マシンの Clone は 300MB/s 程で行われ、且つ、SSD への書き込み量も 1/10 程度になるので、大抵の Home Lab であれば要求を満たすのでは無いかと思われます。VAAI-Clone は esxtop で確認できます。esxtop コマンドを起動した後、u (ディスク デバイスの統計情報の表示)、f (表示する統計情報の選択画面に遷移)、o (VAAI 関連の統計情報を有効化)、Enter とすると、以下のような画面でムフムフすることができます。

qs-setup-39

いずれのデバイスも余力を持っているので、ESXi や QUADstor、内部で利用している Postgres のチューニング次第でさらなる性能向上を見込めるかも知れません。

[修正履歴]
06.May.2014 1 LUN / Target であることを確認。pvscsi のカーネルパラメータに注記を追加

コメントを残す