OpenSolarisで自宅NASを作りたい Vol.01

とりあえず、Mini-ITXNAS作るのにOpenSolarisはどうなのかということで試した結果を書いてみようと思います。
勉強会でOpenSolarisiSCSIやるのにMini-ITXは非力だよなんていっちゃったわけですが、用途によっては別に問題なさそうな気もしました。なので実際に試してみようと思ったわけです。性懲りも無くVol.01とか書いてますが、次があるかどうかはわかりません。

ディストリビューションとしてのOpenSolarisもそうですが、NexentaStorEONOpenSolarisのひとつなのでNASとして検証してみたいところです。

目的

TwitterのTL見てるとFC-SANを自宅に持っちゃってる人もなんか増えてきてるみたいなんですが、iSCSIで頑張ってみたいと思います(;・∀・)

とりあえず1GbpsでiSCSIでデータストレージ作って、windowsSSDのシステムディスクとアプリパーティションだけにできないのか?などと考えてるんですがどうなんでしょうね。システムのバックアップもiSCSI側に吐き出してZFSRAIDするなど。

とりあえずやりたいこと

  • PT1で録画と視聴を同時に2チャネルしても問題ないレベル(4チャネルは多分自分の環境的にない)
  • 動画の視聴でストレスのないレベル
  • 常時起動するなら70W以内に収める
    • 24時間つけっぱなしでも電気代1000円前後に収まるはず
  • 容量・パフォーマンスを求めるなら、メインPCが停止時には電源OFF
    • Wake-On-Lanで電源制御とか
  • 自分の求める部分(iSCSIストレージ/データ保全性/コストパフォーマンス)においてQNAPよりいいものを

というわけでいろんな環境でベンチとってアップできればいいなーなどなど。
PT2欲しい。

今回の環境

NAS
    • COMSTARでiSCSIとしてZFSのボリュームを切り出す
OS OpenSolaris 2009.06
マザー ZOTAC Geforce 6100-e-e
CPU DualCore Athlon2 x2 245 2.9GHz(ダウンクロック2.2GHz)
メモリ UMAX DDR2 800 4G
HDD ノート用100G2.5インチ(Fujitsu) WesterDegital Caviar Black WD5001AALS 500G x2
NIC Intel intel Gigabit CT Desktop Adapter EXPI9301CT

ちなみにこのマザーはSATAの設定がAHCIモードにできません。IDE互換モードのみ。

クライアント側
OS Windows XP
マザー ASUS P5Q-E
CPU Core2 Quad 9650 3.0GHz(オーバークロック3.76GHz)
メモリ UMAX DDR2 800 4G
NIC オンボード Marvell Yukon 88E8056

ベンチ結果

IOPS部分のみテキスト切り出し。

2.9GHz ストライプ 1000m zil_disable
  Random Read 4KB (QD=1) :    12.219 MB/s [  2983.2 IOPS]
  Random Write 4KB (QD=1) :    15.743 MB/s [  3843.6 IOPS]
  Random Read 4KB (QD=32) :   114.942 MB/s [ 28062.0 IOPS]
 Random Write 4KB (QD=32) :    64.291 MB/s [ 15696.2 IOPS]
2.9GHz RAID-Z 1000m zil_disable
  Random Read 4KB (QD=1) :    11.421 MB/s [  2788.4 IOPS]
  Random Write 4KB (QD=1) :    13.939 MB/s [  3403.1 IOPS]
  Random Read 4KB (QD=32) :   115.223 MB/s [ 28130.7 IOPS]
 Random Write 4KB (QD=32) :    33.350 MB/s [  8142.1 IOPS]
2.2GHz ストライプ 1000m zil_disable
  Random Read 4KB (QD=1) :    11.794 MB/s [  2879.3 IOPS]
  Random Write 4KB (QD=1) :    14.823 MB/s [  3618.8 IOPS]
  Random Read 4KB (QD=32) :   111.359 MB/s [ 27187.2 IOPS]
 Random Write 4KB (QD=32) :    37.188 MB/s [  9079.1 IOPS]
2.2GHz RAID-Z 1000m zil_disable
  Random Read 4KB (QD=1) :    11.618 MB/s [  2836.3 IOPS]
  Random Write 4KB (QD=1) :    12.584 MB/s [  3072.3 IOPS]
  Random Read 4KB (QD=32) :   113.563 MB/s [ 27725.3 IOPS]
 Random Write 4KB (QD=32) :    20.531 MB/s [  5012.4 IOPS]

まとめ

考察とか
  • readに関してはネットワークがボトルネックになってる
  • writeはダウンクロック率に対してガクッと落ち込むわけでもない
  • ストライプと比較するとRAID-Zは劣る。RAID-ZはRAID-Z(1,2,3)を使うならCPU性能はやはり必須
  • その他
    • あとからintel NIC(EXPI9301CT)でもだいたい同じ数値だったけど、なぜか4k書き込みだけすごく低い数値が出た。原因不明。
    • Wake-On-Lanはうまく機能しなかった。マジックパケット送ってもキーボードでも起動するけど画面出力もSSHもできない状態になってた。OpenSolaris側の対応の問題なのか、設定が悪いのか。
    • PT1で2チャネル同時録画と同時追っかけ再生しても全然I/Oで引っかかるところはなかった

次へ向けて
  • コア数多い方が良さそう
    • 会社のOpteron6128(8コア)でiSCSIで負荷かけると、コアでうまく負荷分散されてる感じだった
    • 低電圧クアッドコアがいいかも
      • Micro-ATXオーバークロック機能のあるマザーでダウンクロックして調整とかでもいいかも
      • Mini-ITXマザーはvcoreの設定できるのが少ない?このマザーではダウンクロックできたけど、電圧いじれないから消費電力的には変わらない。
  • ディスクある程度積むならMini-ITXでは厳しい
    • SATAポート少ない(オンボで多くて4つぐらい)
    • 拡張スロットが基本的に1個なのでNICSATAポート増設はどっちかひとつ
      • 容量少なめでいいなら(1TBぐらい)、2.5インチ640GBで3枚RAID-ZでスロットはNIC増設でもいいかも(PCI-eのもの)

次にMini-ITXで試すならAM3のMini-ITXマザーかな。今回はAM2+のもので廉価(5980円)。でもAM3だと15000円ぐらいするんで、スペースで妥協できるならばMicro-ATXで組んだ方がいいかなとも思う。TDP45WのAthlon2 X4 605e 2.3GHzと組み合わせてみたい。

QNAPと同じAtomD510でも検証したいけど、マザーがない。ASRockがSATA4ポートのD510マザー出してくれたら買います。お願いします。



[2010/05/23追記]

Thinkpad X60sのUbuntu9.10 をUbuntu10.04にアップデート

Ubuntu10.04 LTSの日本語remixがリリースされたのでアップデートしてみた。
基本的にアップデートより新規インストールがいいらしいけど、そんなにいじり倒してるわけでもなかったので、失敗したら新規に入れればいいかと思い、さくっとアップデートしてみた。
自分用備忘録。

手順

基本的にここの手順通りで問題なかった。

ウインドウボタンの配置変更

10.04から左にボタンが配置されて自分的には使いにくくなったので元通り右に変更。
Ubuntu Tweakでウインドウマネージャの項目で簡単に変更できるので問題無し。

Thinkpadの設定

設定していたトラックポイントが無効になっていたので、新たに設定しなおす必要がある。この場合9.10とは違う設定になるので注意。

ここの通りに、/usr/lib/X11/xorg.conf.d/20-thinkpad.confを作成して以下を追記。

Section "InputClass"
    Identifier "Trackpoint Wheel Emulation"
    MatchProduct "TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    Option "EmulateWheel" "true"
    Option "EmulateWheelButton" "2"
    Option "Emulate3Buttons" "false"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
EndSection

この後ログアウトするかXの再起動で無事使えるようになる。

感想

起動がさらに早くなるとのことだったけど、思ったほどではなかった。SSD(X25-V)だから期待してたんだけど、ログイン後にも読み込みが続いてデスクトップの壁紙がすぐにでなかったりとトータルではそんな変わらない気がする。アップデートしたからかな?

とりあえず問題なさそうなので使いつづけてみる。問題があれば新規インストールすればいいでしょう。

Iperfのインストール

自分用メモ。ネットワークパフォーマンス測定ツールのインストールと使い方。
Netpref使ってたけど、試しに使ってみた。

OpenSolarisにインストール

gccとgmakeがない場合は先にインストールしておく(自分の環境の場合)。

$ pfexec pkg install SUNWgmake SUNWgcc

あとはダウンロードして普通にconfigureしてmakeしてmake installするだけ。

$ ./configure --prefix=/opt/iperf
$ make
$ pfexec make install

サーバとして起動する場合は

$ /opt/iperf/bin/iperf -s

で待ち受ける。

Windowsにインストール

JperfというGUIクライアントがあるのでそれを利用。ダウンロードしてbatファイル実行で起動。
オプションもGUIで設定できる。オプション一覧は以下。

デフォルトだとread/writeのサイズが8kなのでスループットがあんまり出てない。-lでバッファサイズを調整できる。GUITCPのBuffer Lengthの部分で設定。
スループット的には調整したサイズで測ったものが最大と考えていいのかな?

[2010/05/24追記]

OpenSolaris 勉強会 for Admin(仮) 2010.04でCOMSTARについて話してきた

表題の通り、OpenSolaris勉強会でスピーカーやってきました。
今回はfor Admin(仮)ということで管理者向けということでしたが、最後まで(仮)のままでした。
いつもは自分はびぎなーずに参加してるんですが、びぎなーずの主催者の方(塚本さん)がお忙しいらしくしばらくそちらは休止のようです。
for Adminは坂上さんが提唱したとのことで今回が第1回だったわけです。その一発目の内容を自分が担うことになりました。なんという冒険。
以下概要

今回の勉強会用に作った資料 - Googleドキュメント

間違いのあった場所は気づいた限り修正しておきました。

[10/04/26追記]

同時開催で通称無印の勉強会もありました。こちらはいつも通りコアなお話だったようです。


概要

  • 13:00 - 13:50 for adminの説明,自己紹介
  • 13:50 - 15:20 COMSTAR の紹介(仮)
  • 15:20 - 15:30 休憩
  • 15:30 - 17:00 SMF徹底活用(仮)

というスケジュールでしたが、今回はCOMSTAR Dayとなりました。。。予定より早く開始しておきながら予定時間を大幅にオーバーすることに。しかもCOMSTARと銘打っておきながCOMSTARの核については50%も時間つかってないという釣りっぷり。資料を見ていただければわかると思います。

まあ一応理由があって、COMSTARだけで技術的な話しても
「で、それができて何がうれしいの?」
状態になるとつまらないなーと思ったんです。目的があって参加してる方だけならいいんですが、とりあえずどんなのか聞いてみようという方には魅力が伝わらないかなと。なので今回は「なぜOpenSolarisiSCSI(COMSTAR)をやるに至ったかの経緯と事例」、「自作する場合に困るパーツ選び」をどうしても盛り込みたかったわけです。
また、iSCSIすることでZFS上でLinuxなりWindowsなりを動かすことができるわけですが、このあたりの魅力をもっと語りたかったんですが、足りませんでした。ZFSのセッションとCOMSTARのセッションが別の2部構成ならもっといい形になっていたかもしれません。

結果、ひとりで3時間弱しゃべってしまって、坂上さんのSMFのお話を次回以降へお流れにしてしまいましたorzすいません。自分自身、SMFの話は楽しみにしてたので自分で自分の首を締めてしまったわけです。


というわけで今回がこういう場所での初めてのプレゼンだったわけですが、思っていたよりかは緊張しませんでした。ただ資料の内容、進め方、喋り方は色々反省点があるなと。大体雰囲気はつかめたので次回またこういう機会がどこかであればもうちょいうまくやれると思います。多分。

勉強会自体の感想としては、自分が仮想化の共有ストレージとしての実例を出しながらだったのでそちらの質問が多かったです。このあたりは実例がたまれば情報を出していければなーと思います。

次は瀧さんにじっくり使いこなす術を話て欲しいなーなんて思ってます。この前日のhbstudy(インフラエンジニア勉強会)でOpenSolarisの話にZFSへの食付きがよかったですし、ストレージの仮想化はもっと上手に語れる人がやればもっと面白くなると思いました。

懇親会

今回は3次会までありました。3次会まで参加したのは初めてだったんですが、楽しい話を色々聞けたのでよかったです。Twitterでフォローしたりされたりしていた人にたくさん会えたがよかったかなー。顔とアカウント名が一致しました。
OpenSolaris関係はTwitterでユーザーグループの方々が結構つぶやいているので、情報追っかける人は必須だと思います。まだ登録してない方は是非参加しましょう。

次回の勉強会も楽しみです。

OpenSolarisナイトセミナー 2010/04/16に途中から参加してきた&勉強会のお知らせ

タイトルがアレですが、途中から参加してきました。仕事のトラブルで予定時間で会社を出れずに20時過ぎから参加。
なのでひよこ組最終回ということで楽しみにしていたんですが、最後を逃してしまいました。残念。Crossbowの話聞きたかったなー。
毎回参加したセミナーや勉強会についてはなるべく自分なりの簡単なレポートを書いているんだけど、今回は内容は無い・・・。

セミナーの感想とか

「新入社員の OpenSolaris 奮闘記」Crossbow への道 最終章 - Project Crossbow 入門

というわけで今回は途中参加でこのセッションは不参加でした。あとで資料と公開されるであろう(?)動画を見ます。

Solaris 3 分クッキング レシピ第18巻「プリンターで日本語印刷 (続編)」

このセッションの途中から参加しました。なのでここもよくわからなかった。

Free Talk (Q&A)

ほぼここだけでの参加。色々質問が出ていましたが、Crossbow関係がやはり多かった。
一番面白い質問だったのが

  • 新人が自分で環境をつくるという今回の企画でどれぐらい時間がかかったのか?

というものです。新人教育ということを考えて、自分で調べて理解しながらやってみるということにどれぐらい費やすのかという糸だと思います。もちろん今回のひよこ組の方はUNIXやサーバ周りの知識が皆無の部分からスタートしていると思うので、何かしらのサーバOSを触ったことのある経験者とはスタートラインが違うと思いますが、こういう視点の質問は面白いなーと思いました。
この後の懇親会というか飲み会でもこの質問は良い質問だとおっしゃてる方がいましたし、自分も同感です。

というわけで、今回は全然まとめにもなんにもなってないけどここまで。

飲み会

今回は同僚と参加していたので誘って一緒に参加。総勢15,6人だったと思います。今回は来週の勉強会でスピーカーをするので、その部分をどうするかっていう打ち合わせ?みたいな目的もありました。
んで今、社内で進めているiSCSIのストレージの冗長化についてのアドバイスとかを求める意味もあり。

色々面白い話を聞けました。ストレージ周りの話もアドバイスをいただけました。このあたりは自分の方で進捗があれば追々公開していきたいと思ってます。
セミナー後に残ってたら自由に参加できるみたいなので、中の人やつっこんだ話をしたい方は是非。参加した人だけが聞ける面白い話なんかもたくさんあります。

しかし、Twitterで知らない間にフォローしたりされたりしていたのでなんか面白いなーと思いました。OpenSolarisの最新の動向を追っかけたい人はTwitterをオススメします。毎日面白い話がTL上で飛び交ってます。

2次会

さとかずさん(OpenSolarisエバンジェリストのお一人)と家が近いらしく、家の近くまでタクシーで返ってきてそのまま近くで明け方まで飲んでました。来週の勉強会の話とかその他OpenSolarisのお話を少々。

来週COMSTARについて勉強会で話すんですが、こういう場で発表したことがないので結構不安だったり、どういう部分にスポットをあてて話をすればいいのかわからなかったんですが、助言を頂いてちょっと気が楽になりました。
とりあえず自分がネタを提供するので足りない部分を色々他の方に補ってもらって、情報交換・参加者の知識の向上ができればいいかなーと。セミナーじゃないので気楽にさせていただきます。

というわけで来週の勉強会の告知。

自分はCOMSTAR(Common Multiprotocol SCSI TARget)についてお話します。といってもこのブログで書いてきた内容のおさらいが中心になると思います。ストレージ周りは未知の領域でまだまだ手探り状態。iSCSI?ナニソレ美味しいの?的な状態でOpenSolarisと出会ったわけで。Solarisも触ったことない中、ZFSの黄色本を手に入れ試行錯誤してきました。なので技術的に突っ込んだ話はできないので、実際に業務で使っている環境の紹介やいくつか取っているベンチマーク結果の紹介、操作のデモをやるつもりです。

COMSTARについての突っ込んだ情報って日本語のものがほとんどないので、自分が調べてきたことを伝えることで使うきっかけになればいいなーと思います。
タイトルにはfor Adminとありますが、「勉強会」なのでスピーカーを含めた参加者みんなが何かを得る場になればいいですね。うん。

XenServerから接続したSRのサイズ変更(iSCSI by COMSTAR)

うちの会社ではXenServerを使った仮想化を現在運用しているわけですが、SR(ストレージレポジトリ)として登録したLUのサイズが足りなくなったときにどうするか。
当然容量に余裕があれば増やすわけで、その手順をメモしておく。
ストレージの環境はOpenSolaris 2009.06

COMSTARとはなんぞ?というかたは以下を参照のこと。
COMSTAR Administration - OpenSolaris Information Resources - wikis.sun.com

具体的な使い方は以前のエントリを参照してください。
OpenSolaris 2009.06でCOMSTARを試す - tokuhy’s fraction

手順

概要

まずXenServerのSRのLUのサイズを変更するには、まず一度SRの接続を解除しないとダメです。なので手順としては以下の流れになります。

  1. 対象のSR上で動いているVMを一度全部シャットダウン
  2. XenCenterからもしくはコマンドでSRの接続を解除
  3. ZFSコマンドでボリュームのリサイズ
  4. SBD(SCSI Block Disk)のリサイズ
  5. XenCenterもしくはコマンドでSRに再接続

こんな感じの流れです。

具体的な操作

では順番に具体的な操作をSRの解除後から。

  • 現状100Gのボリューム(zfs create -V 100G iscsi/share)
  • 200Gへ拡張

を行ってみます。

まずZFSでボリュームを確認。

$ zfs get volsize iscsi/share
NAME         PROPERTY  VALUE    SOURCE
iscsi/share  volsize   100G     -

拡張します。

$ pfexec zfs set volsize=200g iscsi/share
$ zfs get volsize iscsi/share
NAME         PROPERTY  VALUE    SOURCE
iscsi/share  volsize   200G     -

これでZFS上では拡張されているのがわかります。ただこのままではSBDに反映されていないので、こちらもサイズ変更を行います。
まずは現状のサイズ確認。

$ pfexec sbdadm list-lu

Found 1 LU(s)

              GUID                    DATA SIZE           SOURCE
 --------------------------------  -------------------  ----------------
600144f0229d010000004bb1e07c0002      107374116864    /dev/zvol/rdsk/iscsi/share

200Gにしたので2倍の値をセットします。
書式はsbdadm modify-lu -s <変更後サイズ>

$ pfexec sbdadm modify-lu -s 214748233728 600144f0229d010000004bb1e07c0002
$ pfexec sbdadm list-lu

Found 1 LU(s)

              GUID                    DATA SIZE           SOURCE
 --------------------------------  -------------------  ----------------
600144f0229d010000004bb1e07c0002      214748233728    /dev/zvol/rdsk/iscsi/share

これでサイズ拡張がされたので、XenServerでSRに再接続すれば容量が増えています。

ちなみに使用量以上のサイズであれば縮小もできることも確認しました。

まとめとか感想とか

ここからはCOMSTARというよりXenServerの運用上の話。
サイズ変更は結構簡単にできるんですが、VMがオンライン状態での拡張ができません。これはXenServerの仕様ですが。
これができないと大量のVMが稼働している場合、変更するためにはすべてダウンさせなければならないので結構な手間かなーと。

  • LUを作るときは用途別もしくはグループ別にある程度のサイズで分ける。グループ1はSR-1、グループ2はSR-2上にそれぞれVMを作成する、みたいな。
  • これによりVMを作成するSRを分けることでメンテナンスの際にダウン対象を限定できる

のようなことをした方がよいのだろうか。このあたりの運用ノウハウがよく分からない。LUでなくストレージ側でストレージプール毎わけるのがいいのかな?誰か教えてください。XenServerの運用で共有ストレージを使う場合、こんな感じでSR作るのがいいんだろうか。
運用しながら環境に見合ったやりかた考えるしか無いか・・・。

Ubuntu9.10 on X60sの設定メモ(自分用)

ThinkPad X60sにUbuntu入れたときのメモ。自分用初期設定。随時更新。
とりあえずこれだけあればまずはなんとかなりそう。細かなカスタマイズは使いながら。

インストール

  • Ubuntu9.10。日本語環境に最適化された下記のものを使う方がよい。
  • X25-V(40G)のうち30Gにパーティションを切ってインストール。10Gは一切使わずに未使用領域のまま残しておく(性能劣化対策)

設定

当たり前にやること
  • [システム]-[システム管理]-[アップデート・マネージャ]でパッケージのアップデート
  • Firefoxのインストールと必要なアドオンの設定。既存の他のFirefox設定からインポート
    • ソフトウェアセンターでflash plugin 10をインストール
    • Firefoxの設定はwindows版と違って[編集]の項目のところにある
  • トラックポイントの設定
sudo vi /etc/hal/fdi/policy/mouse-wheel.fdi

で下記を追記。これでトラックポイントと中ボタンでスクロールができるようになる。これがないとThinkPadの意味がない。


true
2
6 7
4 5
4 5
true

設定したら再起動して反映させる。

カスタマイズ

Ubuntu Tweakの導入

カスタマイズの基本。ppa:tualatrix/ppaをPPAリポジトリとして追加する。

  • [システム]-[システム管理]-[ソフトウェア・ソース]の他のソフトウェアから「追加」を選択して貼り付け
  • Synapticでubuntu-tweakを検索してインストール
  • システムツールから起動
  • [デスクトップ]-[Compizの設定]で「高度な〜」にチェックを入れて適用
    • 実用的な拡張機能を両方有効
    • メニューの透過を有効
    • エッジの設定(右上:widget、右下:window、左上:workspace、左下:デスクトップ)
  • パッケージクリーナでいらないキャッシュやパッケージの削除
  • デスクトップにゴミ箱表示
Thunderbird3の導入

9.10のデフォルトパッケージでは2系なので、3.0を落としてきてインストールする。パッケージ管理ができないので、/optディレクトリにインストールしておく。

1.ダウンロードディレクトリに落とす
2.解凍して/opt以下に移動させホームディレクトリに設定ファイル保存用のディレクトリの作成

sudo mv thunderbird /opt
mkdir ~/.thunderbird

3.パネルにランチャを追加する

プリンタ

会社のプリンタで出力できるように設定

  1. ユーザー登録してダウンロードしたファイルを展開
  2. [システム]-[システム管理]-[印刷]
  3. 新規追加からネットワーク上のプリンタを検索
  4. 一覧に出てくるので選択して接続をクリック
  5. IPP network printer via DNS-SIDを選択
  6. PPDファイルを提供からダウンロードしたドライバを選択

これでOK

その他
  • 日本語入力の設定(IBUS-Anthy)
    • 半角/全角で起動
    • 全般タブでフォーカスアウト時の振る舞いを「保持」
    • キー割り当てでショートカットタイプを「ATOK」(WindowsGoogle日本語入力を使っていると操作性が近く?なる)
      • convert_to_half:F8のみに
      • convert_to_latin:ctrl+atを削除してctrl+Oを追加
    • [設定]-[外観の設定]で視覚効果で色々カスタマイズ
    • [システム管理]-[日本語環境セットアップヘルパ]で必要な日本語環境のアプリを入れる

その他メモ

  • USBスタートアップディスクの作成時、日本語を含むパスにISOイメージがある場合作成に失敗するのでアルファベットのみのパスへ配置する必要がある
  • ブート時にshiftキーを押しっぱなしでGRUBのメニューが表示できる(デュアルブート環境じゃない場合表示がスキップされる)。memtest86もメニューから実行可能。