SSD+SATAのハイブリッドストレージ Nimble Storageについて調べてみた

Nimble Storageというストレージプロダクトがあるらしい。
それについて調べたことを書いてみる。
うたい文句をみるとTintri VMstoreと似てる感じがするなぁ・・・と思いつつ内容を調査した。

なお、これは以前書いた「Nimble Storage」という記事についてのアップデートです。
簡単に言えば、書いた記事には誤りがあったための更新ついでに、競合との比較です。

Tintri VMstoreと大きく違う点

・Nimble StorageはiSCSIストレージ
 汎用的に使えるiSCSIストレージ
 VMware/Hyper-V/通常のWindows/Citrixで使える
 TintriはNFSストレージで、さらにVMware以外は公式にサポートしない

・SSDはRead Cacheとして使用
 実体は全てSATA HDD上に置かれている
 Tintriは、SSDとSATA HDDのどちらかに置かれており、必要に応じて自動的に移動する

・Web GUI以外の管理手法が完備されている
 SNMP MIB、CLI操作が使える
 Tintriは、Web GUI以外に無い

・vSphere関連のプラグインが一通り揃っている
 VAAI, vSphere Client plugin, SRM pluginがある。
 2013年5月現在TintriはVAAIのみ

・VSS連携も可
 WindowsのVolume Shadowcopy Serviceとの連携も可能

・レプリケーション機能を初期リリースからサポート
 Tintriは、最新のver2.0でサポートのはずだが、2013年5月現在入手できず。

・容量拡張手法がいくつかある
 容量が足らない→Shelf増加(パフォーマンス低下は無い)
 パフォーマンスが足らない1→SSDの容量アップ(オンラインで実施可能)
 パフォーマンスが足らない2→システム追加+クラスタ化
 Tintriの場合、「システム追加」しかない

・複数システムをクラスタ化できる
 複数のNimble Storageを1システムの様に取り扱うことができる
 ユーザはNimbleを使い分ける、ということを意識する必要は無い
 Tintriの場合、明示的に使い分ける必要がある。

・Web GUIからシステムアップデートができる
 Web GUIからシステムアップデートができる、というのは良くあるが
 アップデートするバージョンを複数から選択できる、というのは珍しい。
 最新は嫌、とか、導入済みのものと合わせたい、という場合に便利。
 Tintriは、本体にキーボードとUSBメモリを取り付けて、コンソール操作でのアップデート。

細かな話

・実データをHDDに書くけど遅いんじゃないの?
もちろん、まともに書くと遅いので、うまくごまかしています。

書き込まれたデータはある一定サイズになるまで、メモリ(NVRAM)上にため込まれます。
既定サイズを超えたら、データ圧縮をおこない、HDDに書き込みます。
ここで既定されているサイズは、SATA HDD 11本で構成されたRAID6に書き込む際に、最速シーケンシャルwriteになるように設定されている。(以降「writing block」と呼びます。なおこの表記はオフィシャルではありません)
つまり、速度が落ちるランダムwriteを排除している、ということになる。

・データ書き換え時ってどうしてるの?
データが書き換えられた時は、書き換え後のデータは通常のwriteデータと共にメモリ上にため込まれます。
そして、通常の書き込みプロセスと同様にwriting block単位で圧縮書き込みされます。
書き換え前のデータは不要になりますが、これはひとまず、メタデータ上のみで無効化されます。
その後、システム負荷を見計らいつつ、データ再配置処理がおこなわれ、空き領域が回収されます。

・え?データは圧縮されてるのに、再配置ってどうやるの?
はい、データが圧縮書き込みされているので、単純な再配置処理ではありません。
再配置は、不要になったデータが含まれているwriting block単位でおこなわれます。
まず、writing block内にある有効なデータをメモリ上に読み込みます。
この読み込んだデータと、通常のwriteデータを合わせて、新規のwriting blockとして、ディスクに書き込みをおこないます。
その後に、元々のwriting blockを無効化し、再利用可能状態にします。

・SSDを冗長化してないけどいいの?
キャッシュでしかないので問題ない。
壊れたらそのSSDを使わなくなるだけで、他のSSDを使って改めてキャッシュされる。
SSDを交換したら、改めて使用される。

・いろいろモデルがあるけどどういう違い?
CS2xxとCS4xxは、CPUの違い
CS220/240/260およびCS420/440/460は、それぞれSATA HDDの容量の違い。
Baseモデルとx2 Flashモデル、x4 Flashモデルの違いは、4本入っているSSDの容量の違い。
例えば、CS220のBaseモデルだったら80GB SSDが4本で320GB、という感じ。

・複数Shelfとかクラスタを組んだ時とかってデータ配置どうなるの?
初期配置としては、均等になるようばらばらに割り振る。
使っていくうちにデータ使用量の偏りが出てくる。
そのような場合は、Re-balance処理が実施され、均等になるように再配置される。
Re-balance処理は低プライオリティで実行されるためパフォーマンス影響は少ない。

・いい資料が見付からないんだけど
Nimble storage Communityを探すといろいろ出てくるよ。

IBM版LTFSをRHEL5で使ってみた

IBMのLTOチェンジャーを使ってLTFSを構築することになったので、やってみた。

用意するもの
・Linux用LTOドライバ lin_tape
 配布はlin_tape-バージョン.src.rpmという形のsource rpmなので、rpmbuildでコンパイルする
・IBM版LTFS LE(Library Edition)
 IBMページを起点に入手・・・と行きたいところだが、実際には気軽に入手できないので注意。
 IBM LTOチェンジャーを買うと、IBM営業経由でSoftware CDを入手することができる。
 Webで入手できるのはCDに対するアップデータで、ベースがないと動作しない。

手順

1. lin_tapeをインストール
 インストール後、/dev/st0、/dev/nst0という形だったLTOドライブは
 /dev/IBMTape0という名前になる。
2. 現状のデバイス名確認
 # ls -l /dev/IBM*
 「IBMChanger0」はLTOチェンジャー部分のデバイス
 「IBMtape0」はLTOテープドライブ分のデバイス
3. LTFS LEをインストール
 まぁ、普通にRPMをインストール

・LTFS LEの起動
チェンジャーデバイスが「/dev/IBMchanger0」
LTFSのマウントポイントを「/ltfs」とする場合、以下の様に起動する。

[root@ltfs ~]# ltfs /ltfs -o changer_devname=/dev/IBMchanger0
LTFS14000I LTFS starting, LTFS version 2.1.2.0 (2501), log level 2
LTFS14058I LTFS Format Specification version 2.1.0
LTFS14104I Launched by "ltfs /ltfs -o changer_devname=/dev/IBMchanger0"
LTFS14105I This binary is built for Linux (x86_64)
LTFS14106I GCC version is 4.1.2 20080704 (Red Hat 4.1.2-52)
LTFS17087I Kernel version: Linux version 2.6.18-194.el5 (mockbuild@x86-005.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64
LTFS17089I Distribution: Red Hat Enterprise Linux Server release 5.5 (Tikanga)
LTFS14063I Sync type is "time", Sync time is 300 sec
LTFS17085I Plugin: Loading "ibmtape" driver
LTFS17085I Plugin: Loading "unified" iosched
LTFS17085I Plugin: Loading "ibmtape" changer
LTFS17085I Plugin: Loading "ondemand" dcache
LTFS11593I LTFS starts with a product license version (20120712_1200)
LTFS12165I lin_tape version is 1.74.0
LTFS12118I Changer identification is '3572-TL         '
LTFS12162I Vendor ID is IBM
LTFS12159I Firmware revision is 0021
LTFS12160I Changer serial is 00000XXXXXXXXXXX
LTFS12196E IOCTL: INQUIRY PAGE -1056947426 failed -20501 (err 22) 00000XXXXXXXXXXX
LTFS12165I lin_tape version is 1.74.0
LTFS12158I Opening a device through ibmtape driver (/dev/IBMtape0)
LTFS12118I Drive identification is 'ULT3580-HH5     '
LTFS12162I Vendor ID is IBM
LTFS12159I Firmware revision is BBNF
LTFS12160I Drive serial is 1068082305
LTFS17160I Maximum device block size is 1048576
LTFS13500I On-demand dentry cache is initialized
LTFS11545I Rebuilding the cartridge inventory
LTFS14506I LTFS admin server is listening on port 2112
LTFS14111I Initial setup completed successfully
LTFS14112I Invoke 'mount' command to check the result of final setup
LTFS14113I Specified mount point is listed if succeeded
[root@ltfs ~]# 

注意:自動起動してくれないので、サーバを起動するたびに実行する必要がある。

・LTFSでのデバイス認識状況を確認

[root@ltfs ~]# ltfsadmintool -I
1068082305 -> Device: /dev/IBMtape0 [ULT3580-HH5] , Library address: 257, Status: Available
[root@ltfs ~]# 

ドライブが1台であるばあい、こんな風に表示される。

・LTFS上のテープメディア認識状況を確認
「ltfsadmintool -i」で確認します。

[root@ltfs ~]# ltfsadmintool -i
BMV157L5 -> Location: Medium storage element,    Address: 4095, Capacity:   0GB, Remaining:      0GB, Status: Unknown
BMV156L5 -> Location: Medium storage element,   Address: 4097, Capacity:   0GB, Remaining:      0GB, Status: Unknown
BMV158L5 -> Location: Medium storage element,   Address: 4099, Capacity:      0GB, Remaining:      0GB, Status: Unknown
[root@ltfs ~]# 

「Status: Unknown」となっている場合は、まだフォーマットされていないか、一度の読み込まれたことがないテープです。

・LTFSで利用するLTOテープをフォーマットする

[root@ltfs ~]# ltfsadmintool -t BMV157L5 -f 
LTFS15000I Starting mkltfs, LTFS version 2.1.2.0 (2501), log level 2
LTFS15041I Launched by "/opt/IBM/ltfs/bin/mkltfs -d /dev/IBMtape0 -s BMV157"
LTFS15042I This binary is built for Linux (x86_64)
LTFS15043I GCC version is 4.1.2 20080704 (Red Hat 4.1.2-52)
LTFS17087I Kernel version: Linux version 2.6.18-194.el5 (mockbuild@x86-005.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64
LTFS17089I Distribution: Red Hat Enterprise Linux Server release 5.5 (Tikanga)
LTFS15003I Formatting device '/dev/IBMtape0'
LTFS15004I LTFS volume blocksize: 524288
LTFS15005I Index partition placement policy: None
LTFS17085I Plugin: Loading "ibmtape" driver
LTFS12165I lin_tape version is 1.74.0
LTFS12158I Opening a device through ibmtape driver (/dev/IBMtape0)
LTFS12118I Drive identification is 'ULT3580-HH5     '
LTFS12162I Vendor ID is IBM
LTFS12159I Firmware revision is BBNF
LTFS12160I Drive serial is XXXXXXXXXX
LTFS17160I Maximum device block size is 1048576
LTFS17157I Changing the drive setting to write-anywhere mode
LTFS15010I Creating data partition b on SCSI partition 1
LTFS15011I Creating index partition a on SCSI partition 0
LTFS12207I Logical block protection is disabled
LTFS17165I Resetting the medium's capacity proportion
LTFS11097I Partitioning the medium
LTFS11100I Writing label to partition b
LTFS11278I Writing index to partition b
LTFS11100I Writing label to partition a
LTFS11278I Writing index to partition a
LTFS15013I Volume UUID is: ae724b01-e9ce-40b8-8786-573eab051801
LTFS15019I Volume capacity is 1425 GB
LTFS12207I Logical block protection is disabled
LTFS15024I Medium formatted successfully
Tape BMV157L5 successfully formatted or unformatted.
[root@ltfs ~]# 

なお、一度、LTFSでフォーマットしたことがあるメディアは、上記のコマンドではフォーマットできない。
「ltfsadmintool -t BMV157L5 -f — -f」というふうに「– -f」というオプションをつける必要がある。

・LTFSでフォーマットされ、認識されたことを確認
下記は、BMV157L5 とBMV156L5をフォーマットした後の表示です。

[root@ltfs ~]# ltfsadmintool -i
BMV157L5 -> Location: Data transfer element,    Address:  257, Capacity:   1327GB, Remaining:   1296GB, Status: Valid LTFS
BMV156L5 -> Location: Medium storage element,   Address: 4097, Capacity:   1327GB, Remaining:   1296GB, Status: Valid LTFS
BMV158L5 -> Location: Medium storage element,   Address: 4099, Capacity:      0GB, Remaining:      0GB, Status: Unknown
[root@ltfs ~]# 

・テープへの書き込み

/ltfs/の下を覗くと、バーコードラベルのディレクトリが表示されます。
そこにcdコマンドで移動したり、cpのコピー先として指定したりすることで
通常のファイルシステムと、ほぼ同等に使うことができます。

格安050VoIP電話を使って自宅回線としてみる

いま、自宅の電話はbiglobeのVoIPサービスを使っている。
それをプロバイダとは直接関係しないVoIPサービスに替えてみようと思った。

050電話回線の候補は3つ。
・Fusion個人向け:FUSION IP-Phone
・Fusion個人向け:FUSION IP-Phone SMART
・Covia個人向け:FleaLine Light

まぁ、3つあげたけど、実際には、これ、全部、Fusion VoIPを利用しているので、実体は1つ、という感じです。
なので、通話料とか無料通話可能先はどれでも同じです。

・基本料が無料だけど、βサービス中なFUSION IP-Phone SMART
・留守番電話と着信転送サービスが無料になったFUSION IP-PhoneとIP-Phone SMART
・追加料金で市外局番03の電話番号も持てるFLeaLine Light
という感じでしょうか。

うちは、個人向け開始が一番早かった、FleaLine Lightを1回線と、使わない限りは月額料金がかからないFUSION IP-Phone SMARTを1回線もっています。

ちなみに、FUSION IP-Phone SMARTは公式サイトを見ると、スマートフォンでしか使えないように見えますが、よくあるご質問に「IP-Phone SMARTはパソコンにインストールしたソフトフォンでも利用できますか?」と「IP-Phone SMARTはIP電話機でも利用できますか?」があり、どちらも「できます」と回答されているとおりに、使って問題ないのです。

そんなわけで、入手したのが、Grandstream Networkの「HandyTone 702 ATA

買ったのは2012年12月で、日本で取り扱ってるところがなかったので、ebayで買いました。
送料込み$53。当時だと日本円で4400円でした。

この機種を選んだ理由は、ルータ機能が必要であれば「HandyTone 502 ATA」なのですが、不要。
1回線のみの「HandyTone 701 ATA」と、2回線のHandyTone 702 ATA、4回線のHandyTone 704 ATAを比較したところ、価格的に701と702で大差がなく、4回線も必要ない、ということで「Handy Tone 702」ということになりました。


2019/06/13の現行商品はHT801HT802になります。

日本代理店もできたようなので導入しやすくなっています。


このHandy Toneは、Web GUIもマニュアルも、英語です。
日本語はありません。

マニュアルに関しては、旧機種についてのものが検索すれば出てくると思いますが、まぁ、必要無いでしょう。

使い方は簡単

「LANポートにLANケーブル」、「FXS1(Phone1)ポートに電話」をさして、準備。

HandyToneにどういったIPアドレスが割り当てられたかを、電話で確認。

1. FXS1につないだ電話の受話器を上げる
2. 「***」と3回、「*」を押す
3. 受話器から「ひあー ざ にゅー おぷしょん」的な声が聞こえてくる
 (マニュアル見ると「Enter a Menu Option」っぽいんだけど、そう聞こえない)
4. 「02」を押す。
5. 受話器から「あいぴーあどれす」と言う声と共にIPアドレスが読み上げられる。
 192.168.1.102、だったら「わん、ないん、つー」「どっ」「わん、しっくすー、えいっ」「どっ」「わん」「どっ」「わん、ぜろ、つー」
 という様に聞こえます。

IPアドレスが分かったらブラウザから「http://IPアドレス」にアクセスします。

初期パスワードは「admin」です。

設定した方がよい項目がいくつかあります。

「BASIC SETTINGS」内では以下です。
・「Time Zone」を「GMT+9:00 (Japan,Korea, Yakutsk)」

「ADVANCED SETTINGS」内では以下です。
・「NTP Server」を「ntp.mfeed.ad.jp」「ntp.nict.jp」

日本で使う時に感じる、いろんな音の違和感を無くすために「ADVANCED SETTINGS」内の「Call Progress Tones」で以下を変更を変更した方がいいでしょう。

・受話器上げたあとの音の違和感無くす
  Dial Tone:f1=350@-13,f2=440@-13,c=0/0;→「f1=400@-19,c=0/0;」
・電話がかかってきた時
  Ringback Tone: f1=440@-19,f2=480@-19,c=2000/4000;→ 「f1=400@-19,f2=385@-20,c=1000/2000;」
・話し中の時
  Busy Tone:f1=480@-24,f2=620@-24,c=500/500;→ 「f1=400@-19,c=500/500;」
・Reorder Tone:f1=480@-24,f2=620@-24,c=250/250;→ 「f1=480@-19,f2=620@-19,c=1500/1500;」→(どうやら先方から切られた時の音にも使われるらしい)「f1=400@-19,c=500/500;」
・Confirmation Tone:f1=350@-11,f2=440@-11,c=100/100-100/100-100/100;→ 「f1=600@-16,c=250/250;」
・Call Waiting Tone:f1=440@-13,c=300/300-300/10000;→ 調整中・・・というかどういう時に使うのかよく分からない。

次に、VoIP契約(VoIPアカウント)に関する設定は「FXS Port」で行います。

・「Account Active」を「Yes」
・「Primary SIP Server」に適切なVoIPサーバの設定
 Coviaの場合:「flvoip?????.covia.jp:5070」(契約時に送られてくるものを指定
 FUSION IP-Phone SMARTの場合:「smart.0038.net」
・「SIP User ID」に契約時の資料にあるUser IDを入力
・「Authenticate Password」に上記User IDのパスワード
・「Local SIP port」を場合によっては指定
 Coviaの場合:「5070」
 Fusion IP-Phone SMARTの場合:「5060」(標準値
下から1/3ぐらいの場所にある設定で
・「SLIC Setting」を「Japan CO」
・「Caller ID Scheme」を「NTT Japan」

これで、なんとなく使える感じです。

「Caller ID Scheme」を「NTT Japan」とすることで、電話機に「iD」マークがつき、ナンバーディスプレイ(発信者番号表示)に対応してくれます。

ただ、うちでつないだ電話機の場合、着信時に番号表示をしてくれないのですが、着信履歴を見るとちゃんと番号表示をしてくれる、という中途半端な状態で認識されています。

で、FleaPhone CP-D02にFleaCallをインストールして設定したFleaPhone Lightを、IIJ mioの200kbps契約状態で、Bフレッツ回線の自宅に設定したFusion IP-SMARTに電話をかけたところ、まぁ、普通に通話できました。

Fusion IPの標準機能で、何秒電話を取らなかったら留守番電話になる、とか
登録してあるメールアドレス宛に着信があったことの通知、とかができる、というので
家にいなくても、着信があったことがわかる、という感じです。


余談ですが、この記事のIDが、最近の記事のIDと比較すると古いものになってますが、
2012/12に途中まで書いて放置してたからだったりします。

Flash Air ProがFlucard ProのTREK2000から発売?

Flash Air Proという製品が、Flucard Proを販売しているTREK2000から販売になるようです。

東芝から販売しているFlash Airと、ロゴも同じなので、販売者が変わるって感じになるんでしょうかね。

(2013/06/08: trekflashair.comにアクセスするとflu-card.comに飛ばされるようになりました。どうやら誤った公開だったようです)

flashairpro
FlashAir Pro
flashcard
FlashAir
flucard
Flucard Pro

で・・・Flash Air Proのサポートページを見てみると、早速Firmware 1.15なんてものが出てるわけですよ。
もちろん、ダウンロード

Flucard/PQI AirCardの時と同じ手法で展開。(「PQI AirCardのfirmwareが出たのでFlucard Proのfirmwareとざらっと比較」)

$ ls -l
合計 5340
-rwxrwxrwx 1 osakana user     261  4月 16 16:26 autorun.sh
-rwxr--r-- 1 osakana user 2853952  4月 16 16:26 image3cc
-rwxr--r-- 1 osakana user 2450426  4月 15 20:36 initramfs3cc.gz
-rwxrwxrwx 1 osakana user  114844  4月 15 19:01 program.bin
-rwxr--r-- 1 osakana user     124  4月 15 19:03 version3.txt
$ expr 2450426 - 8
2450418
$ cat initramfs3cc.gz |tail -c 2450418 > initramfs3cc-tmp.gz
$ file initramfs3cc-tmp.gz
initramfs3cc-tmp.gz: gzip compressed data, from Unix, last modified: Mon Apr 15 20:18:37 2013
$ gzip -dc initramfs3cc-tmp.gz > initramfs3cc-tmp
$ file initramfs3cc-tmp
initramfs3cc-tmp: ASCII cpio archive (SVR4 with no CRC)
$ ls -l initramfs3cc-tmp
-rw-rw-r-- 1 osakana user 4611584  5月 18 09:46 initramfs3cc-tmp
$

で、initramfsを展開していくと、いろいろ出てくる、という手法は変わらずでした。

「/etc/init.d/rcS」にはちょっと興味深い記述が・・・

get_toshiba -p "APPMODE"

なんてのがありまして、東芝版FlashAirとの関連性をうかがわせるものとか

firmwareアップデートが終わった後の初回起動時に、SDカード内部を掃除するための記述が以下の様になっていて

if [ -f /mnt/sd/program.bin ];
then
        echo "delete program.bin so that it will not program again"
        #refresh_sd
        echo "rm program.bin"
        rm -f  /mnt/sd/program.bin
        rm -f  /mnt/sd/Image
        rm -f  /mnt/sd/image
        rm -f  /mnt/sd/initramfs.gz
        rm -f  /mnt/sd/u-boot.bin
        rm -f  /mnt/sd/mtd_jffs2.bin
        rm -f  /mnt/sd/ka_bootldr.bin
        rm -f  /mnt/sd/Image3
        rm -f  /mnt/sd/image3
        rm -f  /mnt/sd/initramfs3.gz
        rm -f  /mnt/sd/Image3cc
        rm -f  /mnt/sd/Initramfs3cc.gz
        rm -f  /mnt/sd/image3cc
        rm -f  /mnt/sd/initramfs3cc.gz
        <略>

Flucard ProとPQI AirCardの両方に対応できる記述になっていたり

#flu_app 8
#refresh_sd

Flucard用アプリの起動がコメントされてたり、flu_app自体はbin内にあったり、と、基本的には、Flucard Pro GEN3と同等で、+東芝アプリ、という雰囲気を感じます。

まぁ・・・実物がいつ出てくるのか楽しみですね。

ネットワークストレージ業界の標準ハードウェアSupermicro 6036ST-6LR

ここ2年ぐらいの間に、いろんな形でのSSD/FlashとHDDを組み合わせた形で高速化を図っているネットワークストレージ(NFS/iSCSI)の製品が出ています。

以前、うちのblogでも紹介したTintri VMstoreNimbleStorageがそんな感じの製品です。

で・・・Tintri VMstoreは特徴がそのままだったので、すぐにわかったのですが、
NimbleStorageも、よくよく調べてみれば情報があり、正体がわかってきました・・・

どっちも、Supermicro社のSuper Storage Bridge Bay (SBB)シリーズSYS-6036ST-6LRでした。(日本の代理店ページ)

まぁ、マザーボードを2枚積んで、両方のシステムからストレージベイにアクセス出来るようなサーバ筐体で、汎用的な製品が他にないので、こうならざるおえないですけどね。

1筐体にマザーボードが2枚積まれていますが、マザーボード間は10GbpsのNIC 2組でクロス接続されており、そこを使ってアクティブ/スタンバイ監視をおこなったり、キャッシュ情報のやりとりなどをおこなったりします。
(まぁ、そこらへんは、ソフトウェア実装に依存しますが)

また、マザーボードには拡張スロットが3つ(PCIe x8が1,PCIe x4が2)と、SASポートが1つあるので、拡張性という面でもまずまずなところです。

Tintri VMstore T540の方は、拡張筐体をサポートしていませんが、
NimbleStorage CS2xxシリーズの方は、拡張筐体をサポートしています。

まぁ、肝心なのは上に載せるソフトウェアの問題なので、ハードウェアが一緒であったとしても、違いが出せれば問題ないですけどね