IBM Storwize V7000についていろいろ

IBM Storwize V7000についてのドキュメントベースでの適当な考察とかいろいろもろもろ・・・

Storwize V7000とは?

元々のStorwizeは、NASとクライアントの間に入れて、NASに書き込むデータを圧縮してしまおう、というStorwize社のプロダクトでした。(当時、日本では東京エレクトロンが取り扱っていた)
NAS上に書き込まれるのは圧縮されたデータであるため、直接NASにアクセスすると、読めない謎のデータがおいてある、という認識となる。
プロトコルヘッダを見て、圧縮をしているらしく、NetApp/EMC CelerraのCIFS/NFSだと動くのに、
Linux NFSサーバだと、全然圧縮動作をしてくれない、なんて動きをしていました。

そんなプロダクトをIBMが買収したのですが・・・なぜか、旧Storwizeは、IBM Real-time Compression Appliance(RtCA)という名前でリリースし、Storwizeという名前は全然別のプロダクトに持って行かれました。
(ちなみに現行製品はSTN6500、STN6800ですが、この型番、旧Storwize時代のまんまです)

新Storwizeは、IBMが元々リリースしていたStorage Volume Controller(SVC)というストレージ仮想化装置と、ストレージを一体化したものとして、仕切り直した形になっています。
で、SVCというのは、IBM x3550にLinuxを入れてLinux版のDatacore SANsymphonyのOEM版を動かしている、という感じのプロダクトです。

で、現行製品のStorwize V7000というのは・・・

ハードウェア的には2U筐体にストレージエンクロージャとサーバを突っ込んだもの
ソフトウェア的にはSVC同等機能+XIV的な管理GUI

ちゃんとしたあたりは、IBMのサイトに転がっているマニュアルやRedBookを参照してください。

それらの資料と実際の動作を見た結果、明示されていないけど、なんとなく、こうなのかな?と想定されるところを以下に書いてみました。
なので、以下に書かれていることは、IBMの公式見解ではなく、あくまで個人的な感想です。

内蔵ディスク関連

・内蔵ディスクは ソフトウェアRAIDとして使用
メインCPUを使用して処理するソフトウェアRAIDとして実装されているようだ。
作成したソフトウェアRAIDは、Mdiskという形で認識させている。
(SVCの機能を単体ディスクに対して直接適用している形)

→ 内蔵ディスクが高負荷になると、メインCPU負荷があがり
それに伴い、外部RAIDに対する処理が遅延する可能性がある。
あまり内蔵ディスクにディスクを増設しすぎない方がいいのではないか?

・おそらく処理を簡略化するために、作成できるRAID構成が限定されている。
メインCPUへの負荷軽減等を考え、ある程度RAID構成を決めうちしてる
と想定される。

SAS/SATAチップ的に考えると、内部はディスク4本で1つの単位となっていて
その帯域をうまく使えるように8本もしくは12本、という単位があるのだと思われる。

なので、これ以外の単位のRAID5/6は、パフォーマンス面で
若干不利になるのだと思われる
(なので「Optimize for perfomance」と「Optimize for capatcity」がある?)

・スペアディスクは常にスペアとなる
スペアディスクは障害時に「一時的に使用されるもの」といった位置づけであり
障害ディスク交換後、内容をコピーする処理(コピーバック)が走る。
このため、ディスク交換後、パフォーマンス低下が発生する。

たぶん、このコピーバックする、というのも、RAID構造の簡略化、の一環

・内蔵ディスクについてのGUIが貧弱なのも、おまけだから?
SVCの機能を単体ディスクに対して直接適用している、というだけなので
従来のインタフェースを使っても、同等の設定を行うことはできるが、
ある程度簡単に設定ができるように「内蔵」という設定項目を作った
というような位置づけな印象を受ける

・たぶん、Web GUIはSVC/V7000/XIVで開発が共通化されてそう
実際のバックエンド処理については、分かれていそう

Easy Tier関連

・Easy Tierは、SSDだけでくんだMdiskを作ってから設定する

・SSD用Mdiskは、SSD 2本のRAID10で作成する

・スペアSSDを用意しておかないと、SSDの代わりに普通のHDDを
使用してしまうという仕様で、マニュアルでも警告されている。
HDDが割り当てられてしまうと、Easy Tierの意味がなくなるのと、
そもそもストライプされないHDDに頻繁な書き込みされることになり、
かえって遅くなるので注意が必要。

・SSD-HDD間のデータ移行はエクステント単位で行われる
ストレージプールで設定したエクステントサイズは
最小16MB、デフォルト256MB、最大8192MBと設定できるが
SSDは読み込みは速いが書き込みは遅い、という特性がある。
このため、エクステントが大きいと時間がかかってしまうはず。
Easy Tierを効率よく使用するにはエクステントを
小さく設定した方がよいと想定される。
警告: エクステントサイズによりV7000全体の管理容量が変わるので注意

・・・そういえば、旧製品時代は「すとあうぃず」って読んでたのに、いまは「すとあわいず」だなぁ・・・
てっきり、「Storage Wizard」の略だと思ってたのに

Tintri VMstore T445

この記事についてのアップデート内容をTintri VMstore T540に記載しています。
下を読んだあとに、上記記事を見てください。
— 2011/11/21 追記分はここまで —
VMware vSphere Blogの「VMworld 2011 – Interesting Storage Stuff.」でいくつかストレージが紹介されている。

その中で、Tintri社のTintri VMstore T445って、なんだろ?と調べてみた。

VM(Virtual Machine)に特化したストレージ、ってことは、どーせまたiSCSIストレージなんでしょ?と見てみたんですが、NFSストレージ、と書いてあってちょっとびっくり。

ハードウェアとしては・・・

4U筐体にヘッド部分とストレージが含まれており、1筐体で8.5TBを提供する、とのこと。
ストレージ自体は、「160GB SSDを9本」+「1TB HDDを15本」で、どちらも3.5インチ形状。

というか、データシートの製品写真を見る限り、3.5インチディスク24本構成で、4Uで、このカラーリングってことは、SUPERMICROの4U SuperChassis 846シリーズってことですよね・・・たぶん。

ソフトウェア的には特に書いていないですが、Linuxベース・・・なんでしょうかねぇ?

おもしろそうな点

・NFSストレージであること

・vSphere Client用のプラグインがある
 各VMごとのストレージパフォーマンス(IOPS/MBps)が見れるようだ
 それも、時系列変位のグラフも提供できるようだ
 (Eliminate VM Performance Bottlenecksより)

マイナス点

・SSD/HDD共にRAID6を組む、という記述。(Redundancy RAID6 + hot spare for all SSDs and HDDs)
 SSDにもRAID6組む、というのはSSDの寿命的にどうなの?
 SSDとHDDの使い分けは?
 SSDにもRAID6組むぐらいだから、キャッシュ扱いではなく、メインで使用?

・標準ではギガイーサ2本しかない
 ただのIntelマザーボードだから増設すればいいんだけど・・・

・アラート機能がメール通知とHTTPS管理画面での通知のみ(Alerts SMTP for email alerts, HTTPS for polling)
 NetApp風のAutosupportをサポートを用意している(Autosupport HTTPS (optionally through proxy))のはいいんだけど・・・

・拡張性が0
 これ系だと良くうたわれている「Scalability」が一切書いてない。
 まぁ、8.5TB割り切り型、と考えればいいのかもしれない。

一番の問題点

・ヘッドが壊れたら全滅っぽい
 筐体の冗長性については、一切触れられていませんでした。
 (Tintri VMstorage Datasheet, Virtualize more with VM-aware storage, Eliminate VM Performance Bottlenecksの確認した結果)

安くて、それなりに早いストレージが欲しい、という要件であればいいのかもしれないです。

つまりは、クラウド系で、一時作成系のVMを置く場所として、という要件ぐらいですかねぇ。

データを保持し続ける用途で使うには、バックアップ機能が無い、とか、ヘッドの冗長性が無い、とかいうことを考えると、かなり難しい気がします。

そうそう、ノックスが取り扱うようで、ascii.jpにノックス、VMware専用NAS「Tintri VMstore T445」を投入という記事が出ています。

最大の特徴は、VMwareとAPI連携するファイルシステムで、LUN(Logical Unit Number)を廃し、1ノード=1データストアという構成で利用する。運用中でもノンストップで拡張できるほか、仮想マシンごとに優先順位を付けたり、パフォーマンスの統計をとることが可能だという。

なんて記述がありますが、ここでいう記述はいろいろ誤解を招きそうな感じで、Tintriの資料を読んだ限りでは、「VMwareとAPI連携するファイルシステムで、LUN(Logical Unit Number)を廃し、1ノード=1データストアという構成で利用する」とは「VMwareとはAPI連携し、VMwareとのアクセスはNFSで行い、1ノード=1データストア=1 NFS共有で利用する」という意味で、
「運用中でもノンストップで拡張できる」というのは、「各VMに割り当てた専用データストアの容量が拡張できる」という意味だと思われます。

後者の「ノンストップ拡張」は、NFSデータストアで一般的な仕様で有り、特に注目するべき点ではないような印象を受ける。

もうちょっと資料が出てきてくれないかなぁ・・・

vSphere ESXのパス選択方法の変更

IBM SVCなるものを導入し、VMware vSphere ESX/ESXiで使用することになったわけだが、設定に微妙な点を発見した。

それは、ESX/ESXi側でマルチパスの設定変更が必要だと言うこと。

まず、現状、どんな設定になっているのかを確認するために、ESX/ESXiにsshでログインして「esxcli nmp device list」と実行した。 (ESXi 6.xでは esxcli storage nmp device list )

~ # esxcli nmp device list

naa.xxxxxxxxxxxxxxe9d80000000000002d
    Device Display Name: IBM Fibre Channel Disk (naa.xxxxxxxxxxxxxxe9d80000000000002d)
    Storage Array Type: VMW_SATP_SVC
    Storage Array Type Device Config: SATP VMW_SATP_SVC does not support device configuration.
    Path Selection Policy: VMW_PSP_FIXED
    Path Selection Policy Device Config: {preferred=vmhba2:C0:T3:L11;current=vmhba2:C0:T3:L11}
    Working Paths: vmhba2:C0:T3:L11

ずらずら~
~ # 

マルチパスに関する設定は「Path Selection Policy」がソレになる。

現状は「VMW_PSP_FIXED」となっている。

これは、とりあえずアクセスできたパスをずっと使い続け、そのパスが死んだ時に初めて違うパスを使ってみよう、という「固定」の方法となる。

次に、ESX/ESXiで設定できるマルチパスの方式としてどんなものがあるのか?というのを確認するため、「esxcli nmp psp list」コマンドを実行する。 (ESXi 6.xでは esxcli storage nmp psp list )

~ # esxcli nmp psp list
Name              Description
VMW_PSP_FIXED_AP  Fixed Path Selection with Array Preference
VMW_PSP_MRU       Most Recently Used Path Selection
VMW_PSP_RR        Round Robin Path Selection
VMW_PSP_FIXED     Fixed Path Selection
~ # 

方式としては4種類あることが分かる。

それぞれについて簡単に解説をすると・・・


「VMW_PSP_MRU / 最近の使用」

最近使ったパスを優先して使う。

Active/Passive型RAIDの場合の標準設定。

LSI Logic OEM系のRAIDだとコレ。IBM DS3xxx、DS4xxxx、DS5xxxが該当になるはず。

「VMW_PSP_FIXED / 固定」

最初にアクセスできたパスをずっと使い続け、そのパスが死んだ時に初めて違うパスを使ってみようかな。という感じの使い方。

そして、最初にアクセスしたパスが復旧したら、まだ戻る。

Active/Active型RAIDの場合の標準設定。

「VMW_PSP_FIXED_AP」

基本はVMW_PSP_FIXEDと同じだが、Active/Passive型RAIDや、ALUAモード対応RAIDにも対応させた形式。

ちなみにALUAとは非対称論理ユニットアクセス(Asymmetric Logical Unit Access)で、SCSI SPC-3の使用として規定されたI/Oパス決定の仕組みです。詳しく知りたい人はEMC CLARiX 非対称アクティブ/アクティブ機能(ALUA)詳細レビューで解説されているので、参考にしてください。

「VMW_PSP_RR / ラウンド ロビン」

複数あるパス間で、バランスを取りながら使用していく形式。

Active/Active型のRAIDでないと使えない形式。


以前のIBM SVCはマルチパスの仕組みがちょっといけてないところがあったようですが、現在のIBM SVCではかなり改善されているようで、「VMW_PSP_RR」が使用できるようになっています。

しかし、設定の現状をみると「VMW_PSP_FIXED」。

まず、システムに登録されているストレージごとのパス利用方法の既定値(デフォルト)を確認するために「esxcli nmp satp list」を実行します。 (ESXi 6.xでは esxcli storage nmp satp list ) 

~ # esxcli nmp satp list
Name                 Default PSP       Description
VMW_SATP_SVC         VMW_PSP_FIXED     Supports IBM SVC
VMW_SATP_SYMM        VMW_PSP_FIXED     Placeholder (plugin not loaded)
VMW_SATP_MSA         VMW_PSP_MRU       Placeholder (plugin not loaded)
VMW_SATP_LSI         VMW_PSP_MRU       Placeholder (plugin not loaded)
<略>
~ # 

SVCの場合、「VMW_PSP_FIXED」と定義されているのがわかる。

調べてみると、IBM SVCの以前のバージョンでは固定だったらしい。

仕方が無いので手動で変更。

GUIから変更することも可能ではありますが、ディスク数が多いと、全部に対して手動で変更する必要があるので非常に大変なので、コマンドで変更した方がいいでしょう。

「esxcli nmp device setpolicy –psp VMW_PSP_RR –device デバイス名」で変更できます。(ESXi 6.xでは esxcli storage nmp device set –psp=VMW_PSP_RR –device=デバイス名)

とりあえず、ESXiでsshログインを有効にしてから、sshでログインして、SANで認識されているディスクはすべてRound Robinに設定、というものすごくおおざっぱなコマンドを実行する感じになります。

for device in `esxcli nmp path list|grep "Device: "|awk '{ print $2 }' | grep naa`
do
	esxcli nmp device setpolicy --psp VMW_PSP_RR --device $device
done

上記のスクリプトは

現行のVMware ESX/ESXi 4.0/4.1に置いて、SANのディスクは「naa.xxxxxxx~」という感じの名前で認識される。
なので、対象となるデバイス名を取り出して、それに対してパスを設定する、ということを行う。
といったもの。

エラー処理とかは一切考えていないので、ちゃんと設定できたかどうかは別途確認してください。

NHK技研公開 ハードディスクの高速化技術

今日から日曜まで砧のNHK技研の一般公開です。
いろいろ展示はありましたが、ノーマークだったところの注目株を1つ

磁気記録デバイスの高速化技術
 ~ スーパーハイビジョン用小型記録装置を目指して ~

やってることは簡単。

ハードディスクの内周と外周ではアクセス速度が違います。
であれば2台を組み合わせて常に一定速度が出るよう、うまーくミックスさせてアクセスさせるよう、変換基板を作りました。
ってもの。

RAID0をもーちょっと進めたようなイメージのものですね

こんな感じで、ほんと市販してそうな雰囲気の基板となっていました。

実際には、これ1セットだけじゃ到底スーパーハイビジョン用の記録帯域には追いつかないが、少しでもディスク本数を減らせる技術として開発しているんだそーな

まぁ、こういう話を聞くと、やっぱりDDNのRAIDなんだけどディスク障害が発生してもすぐにリビルドしない、とか、セクタ不良で代替処理とかに時間がかかりそうなときは、それを意図的に無視する(そして映像データの方のエラー訂正で修正する)とか、そんな処理が重要なんだなー、って改めて思って見たり。

LinuxのCDPソフト R1Soft CDP

ProwareのNASについて調べていたら、ProNAS ver 1.3.xのchangelogに面白い記述を見つけた。

ProNAS 1.3.04 Software Release Notes(pdf) より
「NEW: Support CDP」

をや?いつの間に

ProNASのOSイメージをftpより入手してみると・・・どうやら、R1Softのプロダクトを使っている模様

R1Softのページを見てみると、Freetoolとして、Linux Hot Copy(hcp)なんてものも公開している。
ext4はLinux kernelのバグのせいで使えないらしいけど、それ以外であればkernel 2.6環境でオンラインバックアップがとれるらしい。

まぁ、入手は登録制のようですがね。

Double Take以外の選択肢があるってことで、ちょっと気になるところです。

にしても、proNASは元々drbd+Linux LVM+xfsでレプリケーションってやってたんだけど、それの置き換えになるのかなぁ・・・これは・・・
proNAS ver 1.1.0xのころは完成度がひどかったし
(注: proNAS 1.1.x用HW, proNAS 1.2.x用HW, proNAS 1.3.x用HWと全て別系統です)