NexentaStor on ESXi 的なお話。

NexentastorのESXiへのインストール

今回はNexentaStore 3.1.5をESXi上にインストールします。
(後半では、4.0.xについても追記済み)

●仮想マシンの作成
「新規仮想マシンの作成」から、構成で標準でセットアップ
注意点は、
・ゲストOSをSolarisのSun Solaris 10(64-bit)に変更
・HDDは、SCSIで20GBで作成(OS部分のみに必要な容量です。)
・メモリを標準1GBから2GB以上に変更
・CD/DVDで、データストアISOファイルにダウンロードしたNexentaStor-Communityのisoを指定し、
パワーオン時に接続にチェックを入れる
・NICでネットワーク接続先を、任意の場所に指定
・起動HDDを冗長化する場合は、SCSI-HDDを20GBでさらにもう一個追加する。

なお、標準にすれば、SCSIコントローラはLSI Logic、NICはE1000になるはずです。

●インストール
電源オンでインストールが始まります。
注意点としては、起動HDD冗長化するときには、2つのHDDにチェックを入れるというところです。
冗長化しないなら、1つで問題ありません。

●初期設定1
インストール完了後、再起動で製品登録の画面になります。
http://www.nexenta.com/register-evalにアクセスして、
画面に出ているMachine Signatureを登録します。

その後、IPアドレス/サブネット/DNS/デフォルトゲートウェイと、
管理用プロトコル/ポートを設定します。

●初期設定2
http<s>://<IPアドレス>:<ポート>にアクセスし各種設定を実施

Host Name: NS002
Time Zone: Asia Japan – Japan
Keybord Layout: Japanese

Admin/Rootのパスワード

メール設定は必要に応じて

ネットワーク設定も環境に応じて設定

iSCSIイニシエータの設定は、使用するなら設定

DiskやVolimes,Foldersの設定は、ここではまだストレージ用のHDDを追加していないためスキップ

もし、安全性よりパフォーマンス優先なら、「Optimize I/O perfoamance forCIFS/NFS/iSCSI UPS-backed deployments?」にチェックを入れる。

その後、一度電源オフ

●機器の追加
NICと、データ保存用HDDをハードウェアに追加します。
・NICはE1000で追加します。
ただし、ESX5.1のU2以降、ESX5.1GA上でNexentastorを稼動させる場合は、
VMXNET3にしないと大量の通信を行った場合にスループットが低下するようです。
(VMware ESXi 5.1 U2 または ESXi 5.5 GA における、e1000 アダプタを使用する Solaris 仮想マシンでのネットワーク スループットのパフォーマンスの問題 (2086372))
ただし、VMXNET3のインターフェイスではMTU変更は出来ない(失敗する)ようです。こんな情報も見つけましたが、まだ試していません。
(Cannot increase MTU setting for virtual machines running Solaris with VMXNET3 network interface (2032669))

・データ保存用HDDを追加する場合、SCSIコントローラを追加する場合は、LSI Logicパラレルを指定します。

RAIDを組む場合は、同一容量のHDDを必要台数分追加します。
ここでは、新しいRAID領域ごとに別のRAIDコントローラを追加して、その下にそれを構成するHDDを接続しています。

●追加した機器の設定
・NICの設定(IP/サブネットマスク/MTU)
Setting->Network
・HDDの追加
Data Management->Data Sets

・volumesの追加
ここで、HDDを選択してRAIDを構成します。RAIDを組まないこともできます。
ここでは、noRAIDとします。

・Foldersの追加
volumesの中に、Foldersを作成します。
ここでは、nfsとします。

・作成したFoldersで、NFSを有効にします。
設定はデフォルトで問題ありませんが、NFSのバージョンは3に変更します。
(Data Management -> Shares -> Configureからも設定できます。)
ただ、このままだとすべてのユーザが読み書きできるので、セキュリティ的には別途検討要です。

1654315653_11

・ESXから設定したNFS領域をマウントします。
構成 -> ストレージ -> ストレージの追加 -> ネットワークファイルシステム から追加します。
サーバ:NexentastorのIPアドレス
フォルダ:/volumes/<ボリューム名>/<フォルダ名> (例:/volumes/noRAID/nfs)
データストア名:データストア識別名

1654315653_105

●確認
この時点で、ESXiのデータストアとして、NexentaStorのNFSが参照可能となっています。
ただし、Write速度が非常に遅いと思います。

1654315653_205

●チューニング
主なチューニングに関連する項目は、以下のとおり

Setting -> Preferences

system
Sys_zfs_nocacheflush : デフォルトはno。YesにするとHDD内キャッシュが有効になるがDiskが仮想ディスクの場合の効果は不明。もちろん停電には弱くなるのでYesにする場合は自己責任で。

DataManegment -> DataSet

Folder
Record Size:128KB推奨
LogBuas: 通常はlatencyで問題なし。
ただし、シングルタスクでのパフォーマンスを求める場合はここをthroughputにすると
パフォーマンスが向上する場合があります。
Deduplication: 通常はoff。
有効にすると重複排除機能が有効になりますがその分CPU特にメモリ負荷が高くなり、結果的にパフォーマンスが落ちる傾向が強いです。
バックアップ用領域に利用すると効果が高いです。その場合の設定はsha256,verfyが比較的安全かも。
Compresson: 通常はoff。
有効にすると、圧縮機能が有効になりますが、その分CPU負荷が高くなります。ただし圧縮してDiskに書き込むことになるので、データの内容によってはパフォーマンスがあがる場合もあります。
on=lzjbと同義です。圧縮率は低いですが、CPU使用率も低い傾向があるようです。なお、gzip=gzip-6と同義になります。
on=jzjb -> gzip-1 -> gzip=gzip-6 -> gzip-9となるにしたがって圧縮率が上がりますが、CPU負荷も上がりますので、。
Sync: 書き込みパフォーマンスに重大な影響があります。
デフォルトは、Standerdです(WriteThrou的な設定)。
disableにすると、WriteBack的な動きになり、書き込みパフォーマンスが一気に上がりますが、
突然の停電などが発生した場合にデータ欠損が発生する可能性があります。
ただ、ZFS由来のZFSであれば、WriteHole問題が発生しないことになってますので、
大きな問題はない気がしますが、自己責任でお使いください。

Volume
Deduplication: Folder内の意味と同じ。Volume内のFolderに対するデフォルト値のようです。
Sync: Folder内の意味と同じ。Volume内のFolderに対するデフォルト値のようです。
AutpExpand: パフォーマンスとは直結しませんが、onにするとDiskサイズが増えたときに領域を自動拡張してくれます。

あとは、細かいチューニングをくりかえして、環境に応じた最適値を見つける必要があります。

最新版への更新はまた別途必要であれば。

 

その他ナレッジ

CUIコンソールの入り方

コンソール画面でrootやadminユーザでログインすれば、CUIで操作できます。
adminユーザでログインした場合は、shellが一般ユーザで起動します。suで特権モードでのshell操作も可能です。

また、rootの場合はNMC(Nexenta Management console)が起動し、Nexentastorの設定などがコマンドできるようになります。
この環境はshell環境とは違い、用意されたコマンドのみが使用できます。
GUI(Webインターフェース)でできる設定ができるようになっています。

NMCからshellを起動する

コンソールかsshでrootでログインする。

option expert_mode=1 -s
!bash

option ~は、最後に-sをつけると最初の1回のみの実行でOKです。
その後は!bashのみで起動できるようになります。

nexenta-bash

NexentaStorの初回起動時のCUIネットワーク設定を再度実行する

NMCにを起動して、以下のコマンドを実行します。

setup appliance init

うまくGUI(Webインターフェース)を起動できなかった場合にも再インストールする必要はありません。

 

NexentaStorのバージョンアップ

 NMCを起動して、以下のコマンドを実行します。
新しい更新があれば、表示されますので、
必要に応じて更新します。更新した場合は再起動が行われます。

setup appliance upgrade

nexenta-upgrade

正常に再起動でき、動作を確認したら、NMCにログインすると、今後更新を反映させるかの確認があります。ここで、反映させておかないと次の再起動時に更新がキャンセルされますのでご注意ください。

 

その他よく使うNMCコマンド

help                ヘルプ表示
setup appliance reboot     再起動
setup appliance poweroff   シャットダウン

<tab>キー2回でコマンドの候補がでますし、コマンドの後Enterでコマンドに対するオプションや説明が表示・選択できますので結構感覚的に操作できます。

最新のESXi付属のVMware-Toolsを使用する方法

VMXNET3やPVSCSIを使用するために、
本家VMwareToolsを導入する場合は、以下のURLの手順でインストールできます。

http://plone.4aero.com/Members/lmarzke/howto/nexentastore-installation-on-vsphere

ただ、4.x系だとVMXNET3がうまく動かない場合があるので、
apt-getコマンドでopen-vm-toolsやをインストールしたほうがいいかもしれません。

 

パッケージ管理

Nexentastorにはパッケージ管理としてaptがデフォルトでインストールされています。これを利用して、VMware-tools(open-vm-tools)をインストールできます。
ただし、!bashからコンソールではなく、adminでログインしてsuにならないとうまくレポジトリにアクセスできない場合があるのでご注意を。

apt-get update
apt-get install open-vm-tools

もし、proxy経由での接続が必要であれば、以下のように環境設定を設定します。

export http_proxy=”http://proxy:port”
export https_proxy=”http://proxy:port”
export ftp_proxy=”http://proxy:port”

その他、vmxnet3ドライバや、pvscsiドライバも用意されています(3.1.5だと標準でインストール済み)

nexenta-vmxnet3    - VMware EtherAdapter v3, Rev 5
nexenta-pvscsi       – Solaris driver for VMware para-virtualized SCSi HBA, Rev 15

ちなみに、その他のコマンド例
apt-cache search open-                             open-を含むインストール可能なパッケージを表示する
dpkg -l                                                          インストール済みパッケージの表示

その他のコマンドの参考
http://landisk.kororo.jp/debian/04_apt-get_dpkg.php

 

ESXiからNFS,iSCSI接続する際の推奨パラメータについて

ESXiからNFS,iSCSI接続する際の推奨パラメータは以下のとおりのこと

#NFS OPTION VALUE
Nfs.heartbeatfrequency 20
Nfs.heartbeatdelta 12
Nfs.heartbeatmaxfailures 10
NFS.HeartbeatTimeout 5
Nfs.Sendbuffersize 264
Nfs.Receivebuffersize 256
Nfs.MaxVolumes 256
Net.TcpipHeapMax 128
Net.TcpipHeapsize 32

#ISCSI ADVANCED SETTINGS OPTION VALUE
MaxOutstandingR2T 8
FirstBurstLength 16777215
MaxBurstLength 16777215
MaxRecvDataSegLen 16777215
RecoveryTimeout 120

 

ESXiとのVAAI 連携について

ESXiのストレージオフロード機構であるVAAIをNexentaStoreでは使用できます。

iSCSIについては、NexentaStor 4.0.3 FP2までは標準でサポートしており、
nexentastorでiSCSI領域を作成、ESXi側でマウントすれば、
自動的にハードウェア支援が有効になります。

NexentaStor 4.0.3 FP3以降では、デフォルト無効なので、
https://nexenta.com/products/downloads/nexentastor
からvaaictlをダウンロードして、転送し、

chmod 555 ./vaaictl
./vaaictl –enable

とする必要があるようです(後で確認します。)

NFSの場合は、別途プラグインをNexentaStor、ESXi側両方に導入する必要があります。

2015/4現在のプラグインのバージョンは1.0-129です。
現状NexentaStore CE 3.1.xとvSphere5.xの組み合わせで動作を確認しています。

http://www.vclouds.nl/nexenta-3-1-4-and-beta-nexenta-nfs-vaai-plugin-released/
http://blog.mattvogt.net/2013/04/03/nexenta-vaai-nas-beta-released/

ただ、NexentaStore CE 4.xに導入してみましたが、エラーとなってプラグインが起動せずでした。
(ld.so.1: nas_vaai_server: fatal: libzproxy.so.1: open failed: No such file or directory Killed)

vSphere6.xにプラグインを導入で寄付かは不明です。

(追記)
vSphere6.xについては、ドキュメントはありませんが、実際にESXi 6.5にNAS VAAI Plugin(ver 129)を導入してみたところ、Nexentastoe3.1.xのNFSデータストアで、「サポート対象」と表示されることを確認しました。

NAS VAAI Plugin(ver 129)は、以下からダウンロードできるNV4V-2.2.1.zipに含まれているようです。(NexentaConnect-2.3.zipにも含まれていることを確認済みです。)
https://nexenta.com/products/downloads/nexentaconnect-view-edition/nexenta-vsa-vmware-horizon-view-zip

 

Nexentastor 4.0.5FPのiSCSIのマッピングでエラーが出た場合の対処

Nexentastor 4.0.5FPのバグらしいです。

エラーメッセージ:
warning: Failed to open /opt/HAC/RSF-1/log/rsfapi.log for logging [ No such file or directory]
Error: cannot connect to server 127.0.0.1: Failed to obtain socket options
Error: [127.0.0.1] ERROR: rsfcomms returned an error
read_rsf failed [status=1]
cannot connect to server 127.0.0.1: Failed to obtain socket options
ERROR: rsfcomms returned an error
Error: read_rsf error [node=127.0.0.1, letter=7]
WARNING: no localhost connection

対策はこちら

https://prodpkg.nexenta.com/nstor/4.0.5.0/docs/NS-4.0.5-FP2-Release_Notes.pdf?a

HA NEX9167

It is possible for the directory “/opt/HAC/RSF-1/log” to not be created during installation, leading to the inability to create zvol mappings.
# mkdir /opt/HAC/RSF-1/log
# svcadm enable svc:/network/rpc/rpcstmfha:default

これでもだめなら、以下のプラグインを入れるといいみたいです
(GUIでうまくいかない場合は、コマンドライン[setup plugin install]でためしてみるとよいかもしれません)

導入プラグイン:
rsf-cluster 40-0-31  RSF-1 Cluster management extension (3.11.1p1)

上記プラグイン導入後は、マッピングがうまくいくようになるようです。

 

iSCSIでマルチパスを使用する場合の調整

NexentstorのiSCSIをマルチパス構成でvsphere Clientと接続した場合、
vSphere側でパラメータの調整をすることでパフォーマンスがあがるとのことです。
・ロードバランスルール
・ロードバランス頻度の調整

https://nexenta.com/sites/default/files/docs/Best%20Practices%20for%20VMware%20vSphere%20with%20NexentaStor.pdf

 

Nexentastor Connunity editionのライセンスについて

Nexentastor 3.xの頃は、実使用量が18TB超えるまでだったと記憶していたけど、
Nexentastor 4.xはプールに使用したDiskの総認識容量が18TBに超えるまでになっていたらしい。(Enterprise Editionと同じ扱い?)

今回、8TB x4 のRAID10でプールを構成しようとして、見事に制限に引っかかりました(8×4=32>18)。
制限に引っかかると、私の気づいた部分だけですが、以下の部分が変わりました。」

・右上にメールのようなマークがでて、クリックすると、制限を越えたとのメッセージが表示
・設定済みのライセンスコードが消える
・最新へのパッチ更新がエラーになる[setup appliance upgrade]
・iSCSIのマッピングができなくなる(エラーになるが、別の理由かも)

ただ、プールの作成や、Folder,zvolの作成と、NFSの設定、その他初期設定などはできたみたいなので、NFSで使う分には設定できた感じでしたが、iSCSIとして使うことはうまくいきませんでした。

とりあえず今回は、WSのマザーボード上のLSI 2308のRAID機能を使って、
8TB x 2のMirror Volume(RAID1)を2つ作成し、それをNexentastorに見せて回避しました。本当は生のDiskを割り当てたほうがパフォーマンスはあがるようなのだけど、ライセンス的な問題と、Nexentastor上のDiskと、物理的なDiskの関係がわからなくなったため、この方式ととることにしました。
(なお、LSI 2308のRAID機能でRAID10のVolume作って試したら、パフォーマンスが半分になりました。)

個人的な感想としては、comminiry editionで使用する場合は以下の選択支ですかね。

・vsphere6.xでvvol機能を使う方
-> Nexentastor 5.x(これから検証予定です)
(comminiry editionではDiskは認識容量10TBまで管理可

・vSphere5.xでnfsをメインで運用していて、仮想マシンクローンをよく使う方
-> Nexentastor 3.1.x + nas VAAI plugin
(comminiry editionではDiskは実使用量18TBまで管理可?)

・iSCSI機能をメインに使う方や、NexentastorのPluginをいろいろ使いたい方
->Nexentastor 4.x
(comminiry editionではDiskは認識容量18TBまで管理可)

 

RAIDコントローラの制御について

Z820の内蔵SASコントローラ LSI2308のRAID機能を使っている関係で、RAIDノードの状況(状態、リビルド状態)がBIOS上からしか確認できないのはつらすぎます。

なので、LSI 2308の状態ををpci path throughで接続しているNexentaStorで確認するために、制御ツールをインストールします。

ダウンロードはこちらhttps://www.broadcom.com/support/download-search/?dk=sas2ircu
https://www.broadcom.com/support/download-search/?dk=sas3ircu

sas2ircuはSAS2xxxコントローラ用(6Gbps対応SAS、LSI2308はこっち)
SAS3ircuはSAS3xxxコントローラ用(12Gbps対応SAS)

ダウンロードしたものを解凍して、
sas2ircu_solaris_x86_rel(NexentastorはsolarisベースのOSなので)フォルダ内のバイナリを、Nexentastorの/usr/sbin/にコピーして実行権限を付与します。
(ここでは、ESXiのnfsデータストア経由で転送して、rootコンソール(!bash)で操作しています)

以下のような情報が取得できます。

SASコントローラのリスト

SASコントローラ0の各種情報

SASコントローラ0の各種情報のRAIDボリューム情報
(最初のRAID10構築後、1つめのリビルド[Synchronise中]です。)