「第6回 MongoDB 勉強会 in Tokyo」にドタ参してきました

懇親会の枠が余裕があるということだったので、参加してLTまでやってきました。
乱入気味に突入したのに暖かく迎えてもらいありがとうございました。

LT

SolarisでMongoDB動くよと言う話。
ここにたどり着くまで色々あったわけですが割愛。
ノートPCの環境をOpenIndiana 151aにしたので、
プロジェクタに映るかなと思っていたんですが映らず・・・。
環境用意していったんですが、見せる事が残念です。
とはいえ、CPUぶんまわしたりもクライアント側が先に音を上げるので
動いてるぜー、ぐらいしかできなかったんですが。

Joyentについて

LTの際、会場で「Joyent」って?という声があったので、
会場で簡単に説明しましたが改めて紹介すると、アメリカのホスティング事業者です。
Triton | Joyent
node.jsのスポンサーやってたり、illumosにKVMインポートしてたりします。
ちなみにMongoDBのSolaris用バイナリのビルド環境はJoyentが提供しているようです。

他、補足

Zoneで動かすと面白いよという話をメインにすえましたが、
多分王道はMongoDB on ZFSでしょう。
recordsizeを可変にできるので、値を変えながらパフォーマンスを計測したりとか
ZFSRAIDと組み合わせで云々とか色々できることはあると思いますので、次回以降の宿題ということで・・・。

2011/09のリリースラッシュまとめ

OracleOpenWorldが近いことが関係してるのか、やたらSolaris関係でリリースが。
というわけでざっくりまとめ。

Solaris 11 Early Adopter

ダウンロードはこちらから。
http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index-454418.html
Oracleのアカウントが必要ですが、特にお金はかかりません。
11 Expressからのupdateは出来ないようで、クリーンインストールのみ(EAだから?)。
ざっとみたところ人によっては困りそうな箇所が散見されるのが気になるところ。
あと、zpoolのバージョンは33です。(11 Expressで31、他OSは大体28)

OpenIndiana 151a

ダウンロードはこちらから。
Download – openindiana
目玉はKVM on illumosが統合されたこと。
まだdevが外れてませんが、Stableは年内を目指す、という話だったはず。
ということで、心待ちにしている人は使ってバグを報告しましょう。
(twitterで呟く程度でも・・・、勝手に拾います)

Solaris 10 8/11

ダウンロードはこちらから。
Oracle Solaris 11 - Downloads | Oracle Technology Network | Oracle
11 EAと同様Oracleのアカウントが必要ですが、特にお金はかかりません。
とうとうupdateが2桁に達してしまったSolaris 10です。
対応デバイスの追加やセキュリティ周りのパッチがメインのよう。
詳しくはドキュメントで。
Oracle Solaris 11 - Documentation & Getting Started | Oracle Technology Network | Oracle

Joyent Cloud

ご利用はこちらから。
Triton | Joyent
この間、記事にしたSmartOSをリリースしたJoyentがリリースしたIaaSです。
PlatformはSmartOSで、Zoneによる仮想環境の提供も有り。

SmartOSを(軽く)触ってみた

一部界隈で騒がれているこれについて軽く触ってみたので所感を。
http://smartos.org/2011/08/15/kvm-on-illumos/

KVM用というかクラウドのプラットフォームとして設計されてるディストリのようです。
このため、OpenIndianaとはパッケージ構成などが違います。
ざっとみたところ、下記の感じでした。(見逃してたり勘違いしてたりする部分もあるかもしれません)

  • zfsのバージョンは28
  • X11-Serverが入ってないため、GUIなし
  • nwamがない
  • 最初からILBやVRRPがインストール済み
  • /opt以下は何もなし(DTraceToolKitがない)
  • 64bit版のみ
  • インストールができない(インストーラがない)
  • パッケージ管理コマンドがない

(下二つに関しては、まだlive版のみの影響だと思います。)


で、肝心のKVMについて。
実をいうと仮想マシンを動かすところまで行ってないです。
ただ、virt-managerもvirshコマンドもありません。
どうやらSolaris contenerのbrandを利用して動かすようです。
試しに作ってみた設定が↓(起動確認できてません)

oot@08-00-27-f8-fb-08 ~]# zonecfg -z kvmzone info
zonename: kvmzone
zonepath: /zones/kvmzone
brand: kvm
autoboot: false
bootargs: 
pool: 
limitpriv: 
scheduling-class: 
ip-type: exclusive
hostid: 
fs-allowed: 
net:
	address not specified
	allowed-address not specified
	defrouter not specified
	global-nic not specified
	mac-addr not specified
	physical: vnic0
	vlan-id not specified
attr:
	name: ram
	type: int
	value: 1073741824

Solaris contenerもカスタマイズしてるらしく、
見たことのないプロパティとかあったり・・・。

まとめ

contenerとして動かすようにすればリソース制御や
ZFSと連携させた仮想マシンのコピーも簡単にできるので良い実装だと思います。
brandをこういう形で復活させてくるというのは完全に意表を突かれましたが。
また、OpenSolaris + KVM ということでZFSとの連携が注目されてますが、
個人的にはCrossbowと連携させて使えるHyperVisorということの方が嬉しかったりします。
とにかく、今後がものすごく楽しみなディストリビューションです。

追記

Solaris contenerのbrandを利用する、というのは微妙に間違いで、brandを利用することも出来る、ということらしい。
きちんと調べたらqemu-kvmコマンド群があったので、仮想マシンの作成・起動は通常のコマンドからも可能ということで。

OpenIndiana on Xen

OpenIndianaをXen上で動かしてみたというお話。
きっかけはこのあたり。

環境は Xen4.1(Fedora 15)で確認しました。

以下はOpenIndiana b148をTextインストーラで構築してみた(ざっくりとした)手順です。
Xen環境の構築とか他へお任せ。
(参考:Features/XenPvopsDom0 - Fedora Project Wiki)
OpenIndianaのisoイメージはこちらからどうぞ。
Download – openindiana

まず、isoファイルからkernelとboot_archiveファイルを取り出します。

[root@xenhost ~]# mount -o loop /image/oi-dev-148-text-x86.iso /mnt
[root@xenhost ~]# cp /mnt/platform/i86xpv/kernel/amd64/unix /home/xen/domains/oi-148/platform/i86xpv/kernel/amd64/unix.iso
[root@xenhost ~]# cp /mnt/platform/i86pc/amd64/boot_archive /home/xen/domains/oi-148/platform/i86pc/amd64/boot_archive.iso
[root@xenhost ~]# umount /mnt

で、インストール時のドメイン定義ファイル。

name = 'oi-148'
memory = '1024'
disk = [ 'tap:aio:/images/solaris/openindiana/oi-dev-148-text-x86.iso,1:cdrom,r', 'tap:aio:/home/xen/domains/oi-148/disk.img,0,w' ]
vif = [ 'mac=00:16:3e:00:00:11, bridge=virbr0' ]
kernel = '/home/xen/domains/oi-148/platform/i86xpv/kernel/amd64/unix.iso'
ramdisk = '/home/xen/domains/oi-148/platform/i86pc/amd64/boot_archive.iso'
extra = '/platform/i86xpv/kernel/amd64/unix - nowin -B livemode=text' 
vcpus= 1
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

2009.06の頃と違うのは、extraの行。
以前の通り、「-B install_media=cdrom」とか書いても
起動に失敗します。
OpenIndiana(Solaris 11 Express)以降はLive(GUIインストーラ)版と
Textインストーラ版があるためだと思いますが詳しい経緯はよく分かりません。
まぁとにかく、起動してTextインストーラからインストール。
(参考:Oracle Solaris 11 Express 2010.11 のText Install:OSマニアの部屋:So-netブログ)
ちなみにF2とかF3が効かない場合は、ESC+2やESC+3で代用してください。

インストールが完了したらF9でquitして、「3 Shell」を選んで
zfsのbootpathを調べます。
まず、ZFSのbootfs領域のID。

root@openindiana:/root # zdb -d rpool | grep "ROOT"
Dataset rpool/ROOT/solaris@install [ZPL], ID 244, cr_txg 309, 1.96G, 73162 objects
Dataset rpool/ROOT/solaris [ZPL], ID 84, cr_txg 42, 2.00G, 73286 objects
Dataset rpool/ROOT [ZPL], ID 74, cr_txg 40, 31.0K, 7 objects

*1
このうち必要なのは、真ん中の行のIDの「84」。
次に、DiskのDevice Path。

root@openindiana:/root # zpool status | grep ONLINE
 state: ONLINE
        rpool       ONLINE       0     0     0
          c1d0s0    ONLINE       0     0     0
root@openindiana:/root # ls -l /dev/dsk/c1d0s0 
lrwxrwxrwx 1 root root 26 2011-07-05 02:33 /dev/dsk/c1d0s0 -> ../../devices/xpvd/xdf@0:a

このうち必要なのは、最後の「/xpvd/xdf@0:a」

そしてインストール後のkernelとboot_archiveを取り出します。
・・・kernelはisoと同一なので必須ではありませんが一応ということで。

root@openindiana:/root # zfs set=/a rpool/ROOT/openindiana
root@openindiana:/root # zfs mount rpool/ROOT/openindiana
root@openindiana:/root # scp /a/platform/i86xpv/kernel/amd64//unix xen@192.168.0.1:/home/xen/domains/oi-148/platform/i86xpv/kernel/amd64/
root@openindiana:/root # scp /a/platform/i86pc/amd64/boot_archive xen@192.168.0.1:/home/xen/domains/oi-148/platform/i86pc/amd64/
root@openindiana:/root # zfs set=/ rpool/ROOT/openindiana

*2


で、インストール後のドメイン定義ファイルはこちら。

name = 'oi-148'
memory = '1024'
disk = [ 'tap:aio:/home/xen/domains/oi-148/disk.img,0,w' ]
vif = [ 'mac=00:16:3e:00:00:11, bridge=virbr0' ]
kernel = '/home/xen/domains/oi-148/platform/i86xpv/kernel/amd64/unix'
ramdisk = '/home/xen/domains/oi-148/platform/i86pc/amd64/boot_archive'
extra = '/platform/i86xpv/kernel/amd64/unix - nowin -B zfs-bootfs=rpool/84,bootpath="/xpvd/xdf@0:a"' 
vcpus= 1
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

先ほど確認したbootfsのIDとDevice Pathを当てはめて
extra行を記述して、終わり。
これでXen上でOpenIndianaがxpvドライバで動きます。

LiveCDを使った場合のインストール方法(おまけ)

GUIじゃなきゃやだ、という人向け。
使用するisoイメージをLive版に置き換えて起動してください。
起動後は、以下の通り。(DHCPが有効な環境であれば1と2は要りません)


0)ログイン
Live版ではrootユーザでログインできません。
jackユーザでのみログインすることができます。(Passwordは「jack」)


1)ネットワーク設定を変更

jack@openindiana:~ $ sudo svcadm disable physical:nwam
jack@openindiana:~ $ sudo svcadm enable physical:default


2)IPアドレスを設定(IPアドレスは適当に)

jack@openindiana:~ $ sudo ipadm create-addr -T static -d -a 192.168.0.2/24 xnf0/v4static2
jack@openindiana:~ $ sudo ipadm up-addr -t xnf0/v4static2


3)sshデーモンを起動

jack@openindiana:~ $ sudo svcadm enable ssh


4)sshからログイン(リモートのXクライアントから)

[root@host ~]# xhost +
[root@host ~]# ssh -X jack@192.168.0.2


5)GUIインストーラを起動

jack@openindiana:~ $ sudo /usr/bin/gui-install

*1:zdbの-vvvは重いので、-dで確認してます

*2:scpは環境によって適当に変えてください。ftpでも可。

勉強会カンファレンス 2011に参加してきました。

勉強会カンファレンス 2011
https://sites.google.com/site/metacon2011/

Togetter /「勉強会カンファレンス2011」のまとめ
http://togetter.com/li/154242

こちらのMetacon Bazaar (コミュニティ屋台)に東京OpenSolaris勉強会として
びぎなーずの塚本さんと一緒に出展&ランチセッションでしゃべってきました。

ランチセッション

当初10分程度の予定だったのが、時間が押したため5分に。
で、当日言いそびれたことをちょっと補足。

  • 参加人数
    • 毎回20人〜30人くらい、うち初参加の人が2〜3人くらいというのが最近の傾向です。
  • 座席
    • コの字型に変更したりしています。
    • 基本方針は、「セミナーっぽくならないように」。
  • 当日の雰囲気
    • スピーカーが話しているのを聞くだけではなく、質問割り込み自由です。
    • なので結構関係ないネタに話が飛んだりしますが、それそれで楽しみましょうというところ。

出展

OpenIndianaやSolaris Internalを展示してました。
夕方くらいまでブースを維持しながら、セッションを聞いたり
他の勉強会の主催者さんたちと話しをしていました。

セッション

大規模セッションのお話や会場を貸していただいている企業側のお話など
普段聞けないようなことがもりだくさんでした。

ビール勉強会

サントリー ザ・プレミアムモルツを楽しむ会」ということで
ファンを増やすためにイベントに出展してるらしいです。
これがフリー戦略?みたいな。いや、大変おいしかったですモルツ。

謝辞

勉強会の運営について色々勉強させて頂きました。
スタッフの皆様、セッション登壇者の皆様、参加者の皆様、会場を提供して頂いた楽天
この場を借りてお礼を申し上げます。
本当にありがとうございました。
(特にボランティアで手伝ってもらった楽天の新人さんたち!)

反省

当日、OpenSolarisTシャツ着ていくの忘れた・・・。

東京OpenSolaris勉強会 2011.05

参加してきました。(後発表も)
ほぼ毎回参加はしてるんですが、今回はTODOとリハビリも兼ねて。
時期的に遅すぎですが、せっかく書いたしということで。

ZFSおさらい

ZFSスペシャリストとして名高い野崎さんがからZFSのおさらい。
当日のセッションに使ったのは30ページ弱ほどでしたが、
完全版の内容の充実っぷりはぜひご覧ください。

自宅ZFS自慢

[twitter:@s_miyaza]さん、[twitter:@hasegaw]さん、[twitter:@syoyo]さん、と私で
それぞれ自宅ZFSの構成を発表みたいなことをしました。
持ち時間20分ぐらいでとお願いして、私以外は大体時間通りでした。
ちなみに私はツッコミを激しくくらい1時間くらい・・・。

質問大会

時間切れ、ということで事前に募集したものではなく
会場から質問を募集。
ZFSおさらい」や「自宅ZFS自慢」ででたネタも併せて以下に列挙。(TODO含む)

ATOM環境への突っ込み
 小さいファイルいっぱいでやってみてほしい
 64bitじゃなくて、32bitではどうか
 NFSのmountオプションを変えてみたら?
 (NFSのf_syncが勝手にはしってるかもよ?)

・echo ::zfs_params | mdb -k のパラメータ一覧の意味ってなんだっけ?

・arcをstat形式でだしてくれるスクリプト(arcstat)
http://blogs.oracle.com/realneel/entry/zfs_arc_statistics

・2本でのRAID-Z
 構成はできます、一本デグレしても大丈夫。
 ただ、2本だったらRAID-1でいいんじゃない?

・ビープ音を無くしたい
 audiohd_ beep=0を/kernel/drv/audiohd.confに設定する

ZFSのメタ情報はどこにある?
 あちこちにいっぱい。
 http://twitter.com/#!/kohju/status/74384793281888256

・zpool scrubはどのくらいの頻度でやるのがいい?(2011/6/27追記)
 気が向いたらぐらいでOK。データブロックを読みに行った時壊れてたら自動で修復する。

zfs sendしたとき、データブロックが壊れてたら?(2011/6/27)
 途中でキャンセルされるため、壊れたデータがバックアップがれることはない。
 zpool scrubで修復してもう一度zfs sendをする必要がある。
 大量のデータをバックアップする際はあらかじめzpool scrubをかけてからzfs sendした方が良い。

資料一式は下のリンクからまとめてどうぞ。
http://hub.opensolaris.org/bin/view/User+Group+tsug/osol_study_2011_05

Atomマシン復活

電源ユニットを交換したところ見事に復活。
AC電源(こいつ↓)に変えたので、音はほぼ気にならなくレベルに。

ディスクも無事でしたが、どうもZFS経由のiSCSIがよろしくない。
連続でのファイル書き込みをするとハングする(2〜3GB程度で)
原因がZFS周りなのかはたまたNICがいけないのか。
DTraceとか使えば分かるんかなーこれ。