NexentaStor Community Editionの初期設定的な何か

以前のエントリで概要とインストールについて書いたわけですが、実際に使うとなると色々設定する必要があるわけです。
概要についてはこちら

自分も全部の機能を把握してるわけではないので、とりあえず手をつけた部分をメモがわりに。あとここではCommunity Edition(以下CE)を対象にしています。内部のシェルで操作(expert mode)する部分が多分にあります。標準のコマンドラインからの操作以外のシェル操作はEnterprise Edition(以下EE)の場合サポート対象外になるのでやらないほうがいいです。CEは機能削られてるので自分で面倒見れるなら自分で色々いじくればいいんじゃね?のスタイルで使える人に向いてるかも知れません。もともとサポートないので。

尚、ここで解説するバージョンは3.0.4です。過去の例からマイナーバージョンの違いでも変わる部分があるので参考にする方はその点ご注意ください。

インストール後の設定

前回のエントリで紹介したwizardによる初期設定が終わってからのものです。どういう用途であれ大体共通する設定です。簡単にまとめておきます。といってもそんなに多くはないです。追加があれば内容はアップデートするかもしれません。

アップグレード

まずはシステムのアップグレードで最新に。コンソールからかもしくはSSHでログインします。ユーザーはrootです。

nmc@nexenta:/$ setup appliance upgrade

問い合わせがあるのですべてyesで。アップグレードされるモジュールがあれば自動ですべてアップグレードされます。アップグレード後はNMSが再起動するのでログアウトさせられます。

expertモードの設定

再ログインしてexpert modeを有効にする
NexentaStorはアプライアンスOSなので専用の管理コマンド(NMC)と管理インターフェイス(NMV)を持っています。前回のエントリで触れました。CEはEEから機能が制限されています。また、デフォルトにないアプリケーションをインストールしたいという要望もあります。そのためにシェル(bash)が使えるようになっています。ただデフォルトでは無効化されているので、このモードを使うよというフラグを建てる必要があります。

nmc@nexenta:/$ option expert_mode=1 -s

実行後以下のコマンドでシェルに入ることができます。

nmc@nexenta:/$ !bash
You are about to enter the Unix ("raw") shell and execute low-level Unix command(s).
Warning: using low-level Unix commands is not recommended! Execute?  (y/n)

yを入力すればシェルに移行します。-sをつけなければ一時的な移行です。-sはフラグ永続化のオプションです。

NexentaStorはOpenSolarisのOS/Net(ON)とubuntuユーザランドが組み合わさったものです。なのでubuntuのパッケージが使えます。3.0.4の場合、Ubuntu 8.04(Hardy Heron) LTSとの組み合わせになっていますです。

/etc/bash.bashrcの編集

Linuxっぽくllとかlaとかviとかをaliasでコマンド操作したい場合はここへ追記すればよい。

alias vi='vim'
alias la='ls -al'
alias ll='ls -l'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias grep='grep --color=always'

みたいな。

vimrcの編集

viの設定したなら。~/.vimrcの編集。デフォルトだとコピペしたときにタブでインデントされてうざかったりします。そんな場合は

"set cindent sm wm=0 tw=0
"set cindent sm wm=0 tw=0

な感じでコメントアウトして

set noautoindent
set nosmartindent
filetype plugin indent off

とか追記すればいいのでは。

screen
# echo "escape  ^Tt" >> ~/.screenrc
開発環境のインストール

そのままだとgccとかも入ってないので必要なものまとめてインストール。とりあえず追加で何かアプリケーションを自分でビルドしたいならあると幸せ。

# apt-get install build-essential
SMARTmontoolsのインストール

EEにはS.M.A.R.TのプラグインがあるがCEでは削られている。ただもちろん自前で用意すればデータはとれます。SMARTmontoolsはapt-getで取ってこれます。ソースからビルドするのも可能です。データ取得してスクリプトで加工すれば監視系のアプリケーションと連携させることもできるでしょう。

# apt-get install smartmontools

でインストール。

# smartctl -a /dev/rdsk/c0t27d0

とかすればデータが取れます。ただSCSI(SAS)はそのままで取れますが、SATA接続のHDDはエラーで取得できません。SATAのコントローラ接続のHDDは以下の感じで。HDD名は適宜読み替え。

# smartctl -d sat,12 -a /dev/rdsk/c3t0d0
arcstat.pl

ARCの利用状況をmpstatやvmstatみたいな感じで出力することができるperlスクリプトです。ダウンロードして実行権限付与すればそのまま使えます。以下のリンク先からダウンロード可能です。

使い方は-hで調べてください。出力項目の説明も書かれています。以下も参考に。

出力はこんなかんじです

# arcstat.pl
    Time  read  miss  miss%  dmis  dm%  pmis  pm%  mmis  mm%  arcsz     c
13:34:26   20M  637K      3  195K    1  442K    5  198K    4     7G   50G
13:34:27     1     0      0     0    0     0    0     0    0     7G   50G
13:34:28     0     0      0     0    0     0    0     0    0     7G   50G
# arcstat.pl -x
    Time   mfu   mru  mfug  mrug  eskip  mtxmis  rmis  dread  pread  read
13:34:52   20M    5M   428   428     3K       0     0    13M     7M   20M
13:34:53     1     0     0     0      0       0     0      1      0     1
13:34:54    14     3     0     0      0       0     0     14      0    14

まとめ

簡単にまとめた程度ですが、こんな感じで環境を整えればユーザランドUbuntuなのでLinuxに近い感覚で操作できると思います。さらにOpenSolaris由来のSMF(Linuxだとdaemontoolsみたいな)やdtraceなども使えるので、両方の理解が深ければ弄れば色々できそうです。まあいじくり倒すならNexenta Core Platform使ってnapp-itで操作するとかもいいかもしれないですが、機能が色々あるのが魅力的です。Runnerという機能でサービスの監視ができたり、スナップショットの自動取得、scrubの設定、ストレージ機能(iSCSI,CIFS,NFS,WebDAVなど)の操作ができたり。


ただ、機能として自動スナップショットの設定はGUIでできますがスナップショットの転送ができません。なので取得して差分転送でバックアップする処理を自前で実装しています*1。その他だと削られてるCOMSTARの設定や、リソース監視でMuninを入れてSMFでサービス登録して動かしたりしてます。いろいろLinuxのアプリケーションをビルドできるのでいじると楽しいかもしれません。
ただし最初にも書きましたがEEではやらないでください(念のため)。CEで頑張りたい人は色々いじるといいでしょう。


残念なところとしてはzpoolのバージョンが26と少し古いところです。OpenSolaris b134ベースになってるので1年以上前になりますかね。その辺りはOpenIndianaがIllumosベースでリリースされれば追随していくと思います。ユーザーランドも次回のメジャーバージョンアップではUbuntu 10.04 LTSべースになるんじゃないかと思ってます。

*1:自前でやると微妙にNMSとの整合性の部分でめんどくさい部分があるんですが・・・