師走

もう今年も後3週間ばかり。

振り返ってみると、今年はだいぶひどい年になったような気がする。もっとも、そのうち震災に関わる諸々を取り除けば普段とさほど変わらないような気はするし、震災と原発が結局ひどい印象の大半を作っているのだろう。ただ、そのことはいろいろなことを考えるための良いトリガにもなった。それに加えて、今年はだいぶ多くの人と(主にtwitter経由で)知り合った年でもあった。twitterを使い始めたのが2007/4/27 20:08:45(+0000)、らしいのですでに4年と7ヶ月強経過しているが、今年ほど知り合いが増えた年は無かった。色々と教えて頂くことも多くてありがたい限り。今後ともよろしくお願いします。

さて。世界的にいろいろなシステムに無理が出てきているのは間違いないし、ここ数十年安定しているように見えたシステムのいくつかは私が生きている間に破綻を見ることになるだろう、ということが明らかになったが、だからと言ってそれは状況が悪化したことを示すわけではない。システムは巨大すぎて変化速度は遅いが変化し始めたことを変えることはほぼ不可能だ。そうであれば、明らかでないまま破綻を迎えるよりは明らかになっていたほうが選択肢は増える。そんなふうに考えれば、悪い知らせに聞こえる話だってじつは悪い話ではない。確かに今の日本の状況は極端に悪いし、そういう状況に放り込まれてしまった自分を不幸だと嘆くことも出来るが、それをトリガに色々考えていけばいいだけの話。これまで通り、最悪ケースを想定しつつ楽観的にススメ、は継続しつつ見直しを図っていけば、あとはなるようになるだろう。個人的に言えば、状況は悪くないんじゃないだろうか。まあまずはマクロに見て考える。ミクロなのはその次だ。

まだ大掃除も始めたばかりだが、実家を出てから溜に溜め込んだ資料やら書籍やら資材やら、大幅に捨てている。来年はシンプルに(Keep It Simple, Stupid!)生活してみたい。ミニマリストになりたいとまでは思わないが、可能な範囲で。いつでも臨機応変な動きが取れるように。

皆様今年はお世話になりました。また来年もよろしくお願いいたします。

openindianaとFreeBSDのzfs互換性

opensolarisが、というよりはsolarisが守銭奴様に買収されて久しい。

うちはファイルサーバにopensolarisを使っているのだが、この際solarisの一番安いライセンスが現実的な値段であればO社と契約しようかとも思ったのだが、だいぶ非現実的な価格だったこともあって契約に至らず、かといってopensolarisは状況が状況で、ということで移行先に悩んでいた。

移行先はいくつかあるが、その中でも一番手間無くすっと移行できそうなのがopenindiana。出た当初はちょっと手間が要りそうな気配ではあったが今はだいぶ手軽に使える模様、VM上で色々テスト中だ。

ところでうちは昔はよくFreeBSDを使っていた。しばらく使わなくなってしまっていたが、zfsのOS間互換がどれくらい効くのか知りたくて、FreeBSD9-RC1を入れてみた。試すのは、zfsのアレイを相互のOS間で入れ替えて使えるのか、だ。

まず環境。openindianaについては先日の記事の通り。あの後、pkg image-update –be-name solaris-151として、openindiana 151aにアップデートしたがその程度の違い。いずれも、zfs version5とzfs pool version28がサポートされている。

FreeBSDは、0.5GBのSCSIディスクを3台追加(/dev/da1, /dev/da2, /dev/da3)してから、それぞれにfdiskで500MBのスライス(partition type=191(=0xbf, Solaris(new)))を作成した。それぞれ/dev/daNs1となっている。こんな感じ。

freebsd# fdisk /dev/da1
******* Working on device /dev/da1 *******
parameters extracted from in-core disklabel are:
cylinders=512 heads=64 sectors/track=32 (2048 blks/cyl)

parameters to be used for BIOS calculations are:
cylinders=512 heads=64 sectors/track=32 (2048 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 191 (0xbf),(Solaris x86 (new))
    start 32, size 1023968 (499 Meg), flag 0
	beg: cyl 0/ head 1/ sector 1;
	end: cyl 499/ head 63/ sector 32
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>

これで、

freebsd# zpool create tank raidz1 /dev/da1s1 /dev/da2s1 /dev/da3s1

してやって、このようにzpoolを作ることが出来る。

freebsd# zpool status tank
  pool: tank
 state: ONLINE
 scan: scrub repaired 0 in 0h0m with 0 errors on Wed Nov  2 16:25:18 2011
config:

	NAME        STATE     READ WRITE CKSUM
	tank        ONLINE       0     0     0
	  raidz1-0  ONLINE       0     0     0
	    da1s1   ONLINE       0     0     0
	    da2s1   ONLINE       0     0     0
	    da3s1   ONLINE       0     0     0

errors: No known data errors

ここからが本番。これでFreeBSD側をシャットダウンして(*)、openindiana側のディスクとしてこれら3本のディスクを追加。openindiana側を起動する。でおもむろにimportしてみると。

root@solaris:~# zpool import
  pool: tank
    id: 7276812488085196296
 state: ONLINE
status: The pool was last accessed by another system.
action: The pool can be imported using its name or numeric identifier and
        the '-f' flag.
   see: http://www.sun.com/msg/ZFS-8000-EY
config:

        tank           ONLINE
          raidz1-0     ONLINE
            c2t8d0p1   ONLINE
            c2t9d0p1   ONLINE
            c2t10d0p1  ONLINE

他のシステムで使ってるよって怒られてしまう(exportを忘れたためか)が、指示の通り名前を指定してimportしてみると、すでにtankという名前のzpoolがあるのでまたも怒られてしまう。で、新しい名前も指定してやると、こうなる。

root@solaris:~# zpool import -f tank tankbsd
root@solaris:~# zpool status
  pool: rpool
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          c2t0d0s0  ONLINE       0     0     0

errors: No known data errors

  pool: tank
 state: ONLINE
  scan: resilvered 63K in 0h0m with 0 errors on Tue Jun 28 18:55:01 2011
config:

        NAME          STATE     READ WRITE CKSUM
        tank          ONLINE       0     0     0
          raidz1-0    ONLINE       0     0     0
            c2t3d0s0  ONLINE       0     0     0
            c2t4d0s0  ONLINE       0     0     0
            c2t6d0s0  ONLINE       0     0     0

errors: No known data errors

  pool: tankbsd
 state: ONLINE
  scan: scrub repaired 0 in 0h0m with 0 errors on Wed Nov  2 16:25:18 2011
config:

        NAME           STATE     READ WRITE CKSUM
        tankbsd        ONLINE       0     0     0
          raidz1-0     ONLINE       0     0     0
            c2t8d0p1   ONLINE       0     0     0
            c2t9d0p1   ONLINE       0     0     0
            c2t10d0p1  ONLINE       0     0     0

errors: No known data errors

この通り。中にあったデータもとりあえずファイルの中身は問題なく扱うことが出来た。uid/gidもそのまま、日付時刻も同じ。ちなみに、この状態でopenindianaをシャットダウンして(*)、FreeBSD側を起動(まだ同じdiskはマウントしている)すると、このパーティションのマウントに失敗する。もう一度FreeBSD側でimportしてやれば読むことは可能だ。

結論としては、どうやらあまり凝ったことをしなければ、openindianaとFreeBSDの間でzpoolを移行することはさして難しくない、ということになるだろう。参考になれば幸い。

–追記(2011/11/04)

よく見たら、インポート後にopenindiana側で見た玉のディスク名がc2t8d0p1とかになっていることに気がついた。論理ディスク名はここにあるように、c[論理コントローラ番号]t[論理バスターゲット番号]d[ドライブ番号]となって、その後ろにs[スライス番号]もしくはp[fdiskバーティション番号]が付く。うっかり癖でfdiskパーティション(FreeBSDのfdiskだとスライスって書いてあるのがややこしい)を切ったのが原因だったわけで、適当にopenindianaで試したときのようにs0になるように切りたければ、use entire diskしておきつつdisklabelで末尾がaのFreeBSDパーティション(これがsolarisだとスライス)を作っておけばいいんじゃなかろうか。そうなるとda1s1aとかになるはず。そのうち暇が出来て必要になったら検証してみよう。

(*)どっちもexportを忘れた。だからいちいちimportで怒られるのだと思われる。

モノづくりの事業規模

細々ながら法人を立ち上げてから5年半になる。個人事業だった時代を含めたら8年ほど、軸にしている業種を少しずつシフトさせながら来たが、当初と今との情勢は驚くほど違う。特に、リーマンショックをはじめとする経済への打撃が、消費者の持つ「お金」というものへの感覚を変えてしまったことが情勢を大きく変えた要因なのだろう。

私のようなど素人が経済についてここで論じるつもりはさらさないが、これからの時代、ごく小さい規模での製造業が出来ないものかと考えている。家庭内手工業的というと大変印象が良くないかもしれないが、日本でいえば伝統工芸程度の規模での工芸品でない製品の製造は出来ないものだろうか。伝統工芸の世界では、たとえば作業ごとに職人が分かれていて、分業でものを作っているケースがよく見られる。ざっくり言えばあのイメージだ。

もちろんそのまま電子機器やら何やらの世界に適用することは難しいだろうが、すでに分業制は当然のようにあって、何が難しいかといえば結局のところコストにあるわけだ。たとえば樹脂の射出成型で超がつくほど簡単なケースを作るだけでも、数万個だとかというロットでつくるならともかく、100個やそこらでは1個単価が何千円にもなってしまう。設計まで丸投げしたらそんな程度では済まないだろう。昔は電子回路類もかなり高価だったはずが、この辺りはアジア各国の製造業者とのブローカーが出てきたおかげで(アジア各国も超小ロット製造をやるようになってきたのもあって)だいぶ安価になってきている。なんだかんだでここはおそらくだいぶ問題ではなくなってくるはずだ。

だが、それでも大量生産と比べたら高いものになることは間違いない。そういうところで伝統工芸などは「ストーリー」をつけることで割高感を解消しているように見える。職人が1つ1つ手作りしているだの、国内で作っているだの、時間がかかっているだの、歴史が、由来が、云々。手仕事で長時間かけて洗練されてきたことは否定しないが、いずれもとても定性的で主観的なストーリー。この辺りは一つのカギになるような気がする。

そういうところをうまくクリアして、何か小ロットしか生産しないもので何か出来たらちょっと楽しいんじゃないか、そんな夢想。価格競争さえしなければ、しなくてよい立ち位置になれば、できるんじゃないかなと思っている。