2009年12月31日木曜日

12月31日のココロ日記(BlogPet)

宇宙人さん、宇宙人さん…、ココロのこと見ててくださいね。いつか美味しい記事を作ってにょほほさんに喜んでもらうんです!

*このエントリは、ブログペットのココロが書いてます♪

コッペパン ぶどう&ホイップ

なんか、疲れちゃったなぁ。もう2009年も終わってしまう。2010年なんて…あーあ。



20091230



コッペパン

ぶどう&ホイップ
甲信地方産ぶどう果汁のゼリー使用



甲信地方産ぶどう果汁のゼリーとホイップクリームをサンドしました。・・・とのこと。



以前、似たのがあったなぁ。





 







■ 過去記事






2009年12月30日水曜日

実家のサーバーマシンのOSをアップデート

実家のサーバーマシン、といっても、

ジャンク・ノートパソコンで家庭内サーバ

という、しょぼいパソコンなんですが、3年半前にセットアップして以来、ほぼそのまんま。



FreeBSD 5.4というなんとも古いバージョンですが、とくに問題はなかったんです([E:coldsweats01]ホント?)



しかし、他のFreeBSDマシンをすべて7.2へアップデートしてしまったもので、それじゃ大掃除のつもりで、こいつもアップデートするかと。



ハードディスクではなくて、コンパクトフラッシュで動かしていたんですが、256MBだったのか・・・512MBかと思ってた。少ないなぁ。



200912291



前回のセットアップ作業ってどうやったっけ?けっこう泥臭い試行錯誤を繰り返したような気がするけど、うーん、忘れた。



ということで、今回は、ちょっとばかり洗練されたやり方を。



まず、FreeBSDなデスクトップパソコン(これも、現役を引退したお古ですが)で、jail環境を構築。



方法は、基本的にはjailのマニュアルに書いてあるとおり。



ただし、make buildworldするとき、src.confにWITHOUT_PROFILE=yesなどあれこれ指定して、不要なものがインストールされないように細工をしておきます。



また、kernelのCONFIGファイルも、いらないドライバを抜くなどチューニングして、ダイエットしてやります。



こうすることで、普通にインストールすると162MBほどディスクを使用していたところが、119MBに減りました。う~ん微妙[E:coldsweats01]



つぎにjail環境の中で、portsを使って、あれこれソフトウェアをインストール。
そうだ、前回は、/usr/local/binとか/usr/local/libのファイルを、手でコピーしたんだっけ。そのせいで、ソフトウェアをアップデートするのがおっくうになってたんだ [E:gawk]



そうして、jail環境で、ちゃんと動くことを確認。ちょっと洗練された方法ですね。自画自賛。



仮想マシンを使わずにjailを使う、ってのがミソかもしれません。何しろ、デスクトップマシンも、Pentium4 2.4GHz、1GBという、今となっては非力なマシンなもので、仮想マシンでエミュレートでもしようものなら、さらに遅くなってしまう。その点、jailなら、まったくといっていいほどオーバーヘッド無しに、快適に作業できます。
それと、jailの場合だと、host環境の方からは、ファイルシステムが丸見えになっているので、作業しやすいですね。うん、これはホント、すばらしく使いやすいです。





一方で、今運用中のサーバーマシンのディスクの内容を、/dev/ad0s1aとかから、直接ddで吸出して、デスクトップパソコンのほうへ、コピーしちゃいます。
このディスクイメージファイルは、mdconfigしてマウントしちゃえば、必要なファイルを新環境側へ自由自在にコピーできます。




というような感じで、jailを使って、満足の行く環境ができたので、ファイルをコピー・・・しようと思ったら、すでに256MBには入りきらなくなっていました。[E:coldsweats01]



というわけで、/usr/local/share、/usr/local/man、/usr/local/libあたりにあるファイルを、たとえば/extraといったディレクトリ以下へ移動して、シンボリックリンクを張っておきます。
CFへコピーするときは、/extraを抜いておく、という作戦です。





そして、mdconfigしたディスクイメージをいったんnewfsしてから、新環境のファイル一式を、tarでコピー。

さあ、これで、ディスクイメージができちゃいました。





いよいよ、サーバーのアップデート。サーバーをシャットダウンして、CFを取り出します。



あとは、CFをデスクトップパソコンに挿して。さきほど完成したディスクイメージを、ddコマンドで、CFへまるごとコピー。たぶん、このほうが、ファイルを1つずつコピーする場合よりも、短時間で書き込めると思います。



200912292



それから、たぶん、bsdlabel -w -b boot/boot /dev/da2s1a というようなおまじないコマンドで、ブートローダーをコピーする必要があるんじゃないかな。





で、CFをノートパソコンに挿して、ブート。



200912293



おっと、/etc/fstabを書くのを忘れてた [E:coldsweats01]



・・・とか、ちょっとしたミスはありましたが、無事、アップデート作業完了。



まあこれで、新しいOSで、新年を迎えられます。



200912294



 



2009年12月29日火曜日

藤子・F・不二雄大全集 第6回配本(2009年12月)

藤本弘先生からのクリスマス・プレゼント、到着。25日は不在だったため再配達してもらったので、手元に届いたのは26日でしたが。



藤子・F・不二雄大全集、12月は、この3冊。



パーマン (4)



200912281



東京に行く度に思うんですが、東京消防庁のキュータは、パーマンとは関係ないんでしょうか。





ドラえもん (4)



200912282



先日テレビアニメで見たばかりのチューケンパーがこれに収録されていました。けっこう昔の作品だったんですね。80年代中ごろかな、と思ってました。





海の王子 (1)



200912283



海の王子は、週刊少年サンデー創刊時に連載スタート。
噂では聞いてたんですが、一度も読んだことの無かった「海の王子」。楽しみです。
・・・まだ読んでないんだけど。
なにやら、元祖「妹萌え」なんだとか?





それにしても、「配達」ということは。
フ…、とうとう全巻予約しちまった。



全巻購入予約者特典の「F NOTE」(エフノート)は、12月31日が申し込み締め切りだ、という理由もありますが、それよりも、先月、書店で買い損ねそうになったのも大きな理由のひとつです。



でも、その書店って、「藤子・F・不二雄大全集 サポート書店一覧」にも出てるんですけど。



あ、発売日から、2、3日過ぎてたからかな。うん、きっとそうだ。



 






■ 過去記事







2009年12月28日月曜日

USB機器をLANで共有できる ~ コレガ CG-NUH01

しばらく前に、「USBデバイスを、TCP/IPで中継してくれるソフトウェアってないかなぁ~」と思って探したんですが、なかなか見つからず。
ソフトウェアは見つからなかったんですが、かわりに、それをやってくれるハードウェアがあるってことはわかりました。そんなに安くなかったし、対応するUSB機器が限定されているので、そのときは、買う気にはなれなかったんですが…



で、この記事を見て、おっ?!っと思い出しました。

■西川和久の不定期コラム■
USBデバイスサーバー アイ・オー「ETG-DS/US」レポート
~自宅の地デジをネットを使って事務所で観る!

別に、そんなことをしてまで地デジを見たくはないけど(生放送ではなく、録画してから、あとで見たいものだけ見ればいいじゃん…)、まあ、これはこれで欲しいかも! と思って、秋葉原へ出動。



見つかりませんでした [E:coldsweats01]



ですが、別のメーカーの似たような製品を見つけました。アイオーデータ以外にも、コレガ、グリーンハウス、プリンストンテクノロジなどから、同様な製品が出ているようです。パソコンショップでは、家庭用ルーターなどLAN製品のコーナーの片隅で、「デバイスサーバ」というような名称で扱われているようです。



一番安かったのと、iPhone 3G iPod touch動作確認済みというシールにひかれて(もってないけど[E:wink])、これにしました。

corega
かんたん!!便利!!
USB機器をLANで共有できる
 型番 CG-NUH01





200912271



3980円という値札がついてますが、さらに値引きされて、3742円でした。



これはUSBポートが1個だけ。USBが4ポートのものもありましたが、これでも、セルフパワーなUSBハブを使って、4個まで使えるそうです。





箱の中身は、CD-ROM、説明書、ACアダプタ、機器本体。



200912272





本体よりも、ACアダプタのほうが大きいです。大きさ比較用に、単三電池をおきました。電池で動作するわけではないです。



200912273



こう小さいと、ACアダプタがじゃまっけな気がしてくるわけで、USB給電とかできないのかなぁと思ったりするんですが・・・あれ、本末転倒?!



そういえば、PoE(Power over Ethernet)という、LANで給電する規格があるんですよね。一度も見たことないけど。





ドライバソフトは、なんとなくネットからダウンロードしてインストールしました。バージョン番号は、CD-ROMに入ってたものと同じみたいでしたが。



一度Windowsを再起動する必要がありました。



CG-NUH01本体のほうは、ACアダプタと、LANケーブルを接続。



そして、このNUHユーティリティを実行。





200912274



すでに、DHCPでIPアドレスを取得してました。



200912275



見つけたデバイスの名称みたいなのが表示されてましたが、表示されている下6桁の英数字は、この機器のMACアドレスの下3バイトの部分でした。





ためにし、iPod nano (第3世代)を接続してみると、お!認識された。



200912276



で、接続ボタンをクリックすると・・・



しばらくして・・・ほほう、なるほど、普通にiPodをUSBでパソコンに接続したときと同じように、iTunesが起動しました。



いつもと同じように、同期もできてました。



200912279





ところが、接続を解除するときに、ブルースクリーンが出て、パソコンが勝手に再起動しちゃったんですが・・・ きっと、たまたまパソコンの機嫌が悪かっただけですかね [E:coldsweats01]
重要なお仕事をしてくれているパソコンだったので、あとで、もうちょっと試してみよっと。





ありがちですが、この機器の設定は、Webブラウザ経由で、できるようになっていました。



200912277



今ちょっと気になったんですが、default routeの設定が見当たらないっていう・・・ま、いいか。



200912278



まだ簡単な動作確認をしただけなので、年末年始に、あれこれ試してみようと思います。





(2009/12/30 追記)
実家のパソコンで試してるんだけど・・・恐ろしく不安定・・・てゆーか、一度も動かない・・・
う~ん・・・






2009年12月27日日曜日

イルミネーション 2009.12

夕方、急に欲しいものができて、秋葉原へ。



せっかくなので、夜の光景を・・・と思って、自転車でうろうろしてみました。



200912261



秋葉原の、クロスフィールドのとこ。去年までは、青かったような。



200912262





皇居。微妙…いや、おしとやかな感じ。



200912263





丸の内。青色LEDは、もう流行ってないってことかな。



200912264





東京タワー。2009年もあとわずか。月日がたつのは、本当に早いなぁ。今年こそは!と思ったんだけど・・・



200912265





よくわかんない場所で、信号待ちのときに。六本木の近く?



200912266





秋葉原 ~ 丸の内 ~ 東京タワー ~ 六本木 ~ 青山 ~ 表参道 ~ 恵比寿 ~ ・・・ と、いつもよりも大回りして帰ってみました。






2009年12月26日土曜日

ナゾトキ 頭脳パンシリーズ

クリスマス当日のはずの12月25日は、すっかりとクリスマスムードも過ぎ去っているのでありました。



ナゾトキ頭脳パンシリーズ
カマンベールチーズ蒸し



200912251



例によって、裏には問題がのっているんです。





200912253

mod12での演算?
ガロア体ってあってよね、GF(12)かな。



と思って、値を求めたんです。その値は正解と一致はしてたんですが、なぜ12なのかの理由がちゃんと書かれていて、なるほどねと納得。





クリスマスが終わると、1週間で、今度はお正月。月日がたつのは、本当に早い。



そういえば、先週、akiba:Fに行った時、1月1日もやってるので予約しませんか?と言われてしまいました。大晦日は定休日で、元日は予約のみだけどやっているそうです。



200912252



毎年、年末年始は実家で、ゆったりと過ごすので、なかなかこの時期のイベントっぽいものには参加できないんです(家にいても、何もしないけど)。
今回は、行きたい催しが2件あるんだけど、あーあ。





■ 過去記事






2009年12月25日金曜日

クリスマスイブ2009

20091224



ラブプラスがあるから、クリスマス中止は中止、とか言われてたけど
はい、はい、そのとおりですよ。
・・・と言いたい所だったけど、プレゼント交換したあと、さっさと帰ってしまって、ぜんぜん盛り上がらなかったよ [E:coldsweats01]



2009年12月24日木曜日

12月24日のココロ日記(BlogPet)

悪い大塚を抱き枕にしたら気持ちいいですかねぇ……

*このエントリは、ブログペットのココロが書いてます♪

CR2032 その2

CR2032が100円ショップで売ってるんで、安いなーと思ってたところ、上には上がいた。



いや、下には下がいた、というべきか。



5個入り100円でした。



20091223



いろんな意味で、大丈夫なのかな・・・。





録画してあった番組の中で、こんなのを見つけた。






実写版キッキー ・・・みたいな。



不気味かも。





 



2009年12月23日水曜日

ナゾトキ 頭脳パン 小倉&マーガリン

地方によるのかもしれませんが、毎年、受験シーズンころにしか見かけない「頭脳パン」。



今回は、受験とは関係なく、今映画公開中のレイトン教授の宣伝がくっついてました。



ナゾトキ頭脳パン
 小倉&マーガリン



200912221



ナゾトキがついてます。



200912222



ゲームのレイトン教授シリーズって人気があったみたいですが、まったく興味がなくてスルーしてました。でも、こういう↑理詰めでとけるクイズみたいのだった好きかも。



レイトン教授の絵がついた菓子パンが、ほかにもいくつかありました。買わなかったけど。





 





■ 過去記事






2009年12月22日火曜日

(FreeBSD) ZFSの実戦導入は…

あいかわらず、ZFSの動作テスト中です。なかなか安定しなくって [E:coldsweats01]







まず、vfs.numvnodesの値ですが、こんな感じ。



20091221



増える一方ではなく、ときどき減ったりしてます。ファイルを削除すると、減りました。



たぶん、メモリに余裕がある間は、あまり減少しない、ってことだと思います。





ストレス・テスト中に、たまに発生していた、ときどき通信できなくなる、という問題。



ifconfig re0 down ; sleep 5 ; ifconfig re0 up



すると一瞬だけ直ることもあったりしたんですが。



これは、どうも、if_reドライバまわりの問題ではないか?という感じがしてきました。



emなネットワークインターフェイスカードを増設して使ってみたところ、通信できなくなる問題は、発生しなくなりました。



re0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 90:e6:XX:XX:XX:XX
        media: Ethernet autoselect (10baseT/UTP <half-duplex>)
        status: no carrier
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:02:XX:XX:XX:XX
        inet ***.***.***.*** netmask 0xffffff00 broadcast ***.**.***.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active



ただ、PCIなので、パフォーマンスが落ちるんじゃないか、という懸念はあります。



割り込みはこんな感じ。



% vmstat -i
interrupt                          total       rate
irq1: atkbd0                         292          0
irq16: hdac1 ohci+                    14          0
irq18: ohci2 ohci+                     4          0
irq20: em0                     359874479      14735
irq22: atapci0                  17501782        716
irq23: fwohci0                         2          0
cpu0: timer                     48840942       1999
irq256: hdac0                          1          0
cpu3: timer                     48837822       1999
cpu2: timer                     48837822       1999
cpu1: timer                     48837821       1999
Total                          572730981      23451





NFSでファイルを大量にコピーしたり、make buildworld buildkernel、 make installworld installkernel DESTDIR=~ などしても大丈夫でした。
portsのopenoffice.org-3-develもビルドできました。





さあ、これで実戦導入できるか、と思ったんですが、こんなトラブル発生。





Dec 21 12:18:37 HOST kernel: ad12: TIMEOUT - READ_DMA retrying (1 retry left) LBA=142673783
Dec 21 12:21:25 HOST root: ZFS: vdev I/O failure, zpool=storage path=/dev/ad12 offset=262144 size=8192 error=6
Dec 21 12:21:25 HOST kernel: ata6: port is not ready (timeout 10000ms) tfd = 00000080
Dec 21 12:21:25 HOST kernel: ata6: hardware reset timeout
Dec 21 12:21:25 HOST kernel: ad12: FAILURE - device detached
Dec 21 12:21:25 HOST root: ZFS: vdev I/O failure, zpool=storage path=/dev/ad12 offset=1500301230080 size=8192 error=6
Dec 21 12:21:25 HOST root: ZFS: vdev I/O failure, zpool=storage path=/dev/ad12 offset=1500301492224 size=8192 error=6



突然、/dev/ad12なディスクが1台、エラーを出したということで切り離されてしまいました。



# atacontrol list



ATA channel 0:
    Master:      no device present
    Slave:       no device present
ATA channel 1:
    Master:      no device present
    Slave:       no device present
ATA channel 2:
    Master:  ad4 <WDC WD15EADS-00P8B0/01.00A01> SATA revision 2.x
    Slave:       no device present
ATA channel 3:
    Master:  ad6 <WDC WD15EADS-00P8B0/01.00A01> SATA revision 2.x
    Slave:       no device present
ATA channel 4:
    Master:  ad8 <WDC WD15EADS-00P8B0/01.00A01> SATA revision 2.x
    Slave:       no device present
ATA channel 5:
    Master:      no device present
    Slave:       no device present
ATA channel 6:
    Master:      no device present ■さっきまで、ここにad12がいた
    Slave:       no device present
ATA channel 7:
    Master: ad14 <WDC WD15EADS-00P8B0/01.00A01> SATA revision 2.x
    Slave:       no device present





RAIDZ(RAID5相当)なので、ディスクが1台ダメになっても動いてしまうわけですが・・・


こんなことになっていました。



# zpool list
NAME      SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
storage  5.44T   837G  4.62T    15%  DEGRADED  -


# zpool status
  pool: storage
state: DEGRADED
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://www.sun.com/msg/ZFS-8000-9P
scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        storage     DEGRADED     0     0     0
          raidz1    DEGRADED     0     0     0
            ad6     ONLINE       0     0     0
            ad8     ONLINE       0     0     0
            ad12    REMOVED      0  126K     0
            ad14    ONLINE       0     0     0





こんなことをやっているうちに、ad12が復活しちゃいました。



# atacontrol reinit ata6
Master:      no device present
Slave:       no device present

# atacontrol detach ata6



# atacontrol reinit ata6
atacontrol: ioctl(IOCATAREINIT): Device not configured
Master:      no device present
Slave:       no device present



# atacontrol attach ata6
Master: ad12 <WDC WD15EADS-00P8B0/01.00A01> SATA revision 2.x
Slave:       no device present





smartctl -a /dev/ad12で、SMARTの情報を見ても、とくにエラーは記録されていませんでした。



SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%       302         -
# 2  Short offline       Completed without error       00%       278         -
# 3  Extended offline    Completed without error       00%       264         -
# 4  Short offline       Completed without error       00%       254         -
# 5  Short offline       Completed without error       00%       231         -
# 6  Short offline       Completed without error       00%       207         -
# 7  Short offline       Completed without error       00%       184         -
# 8  Short offline       Completed without error       00%       160         -
# 9  Extended offline    Completed without error       00%       150         -
#10  Short offline       Completed without error       00%       137         -
#11  Short offline       Completed without error       00%       113         -
#12  Extended offline    Completed without error       00%        99         -
#13  Short offline       Completed without error       00%        89         -
#14  Conveyance offline  Completed without error       00%         0         -



RAIDZのほうは、こんな感じで、修復できちゃうみたい・・・?!



# zpool offline storage ad12



# zpool online storage ad12





気になったので、scrubというのを実行。



# zpool scrub storage
# zpool status storage
  pool: storage
state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://www.sun.com/msg/ZFS-8000-9P
scrub: scrub in progress for 0h0m, 0.00% done, 1096h30m to go
config:

        NAME        STATE     READ WRITE CKSUM
        storage     ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            ad6     ONLINE       0     0     0
            ad8     ONLINE       0     0     0
            ad12    ONLINE       0  157K     0
            ad14    ONLINE       0     0     0

errors: No known data errors



1時間ちょっとで終了したらしく、とくにエラーもなし。



# zpool status -v storage
  pool: storage
state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://www.sun.com/msg/ZFS-8000-9P
scrub: scrub completed after 1h12m with 0 errors on Mon Dec 21 17:38:06 2009
config:

        NAME        STATE     READ WRITE CKSUM
        storage     ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            ad6     ONLINE       0     0     0
            ad8     ONLINE       0     0     0
            ad12    ONLINE       0  157K     0
            ad14    ONLINE       0     0     0

errors: No known data errors





まったくの野生の勘というか、経験的に感じることなんですが、今回発生したエラーは、ハードウェアの障害ではなく、ソフトウェア的な問題、FreeBSDのドライバ周りの問題のような気がしてなりません。



SMARTでエラーが記録されていない、という理由もありますが(SMARTも、あまりあてにならない気がしてるけど)、それ以外にも、ログを抜粋しますが・・・



Dec 21 12:21:25 HOST root: ZFS: vdev I/O failure, zpool=storage path=/dev/ad12 offset=1500301230080 size=8192 error=6
Dec 21 12:21:25 HOST root: ZFS: vdev I/O failure, zpool=storage path=/dev/ad12 offset=1500301492224 size=8192 error=6



Dec 11 18:22:25 HOST root: ZFS: vdev I/O failure, zpool=storage path=/dev/ad8 offset=1500301230080 size=8192 error=6
Dec 11 18:22:25 HOST root: ZFS: vdev I/O failure, zpool=storage path=/dev/ad8 offset=1500301492224 size=8192 error=6



Dec 11 18:22:40 HOST root: ZFS: vdev I/O failure, zpool=storage path=/dev/ad6 offset=1500301230080 size=8192 error=6
Dec 11 18:22:40 HOST root: ZFS: vdev I/O failure, zpool=storage path=/dev/ad6 offset=1500301492224 size=8192 error=6





異なる3台のドライブで(ただしモデルは同じ)、まったく同じ場所(offset=1500301492224とか)をアクセスして、同じエラーが出るなんて偶然、あるわけないと思うわけで。





ところで、このoffsetの数値は、ドライブの容量に近い値なんですが

=== START OF INFORMATION SECTION ===
Device Model:     WDC WD15EADS-00P8B0
Serial Number:    WD-WCAVU*******
Firmware Version: 01.00A01
User Capacity:    1,500,301,910,016 bytes


なんか意味ありげです。

1500301492224/512 = 2930276352
8192 / 512 = 16

なので、

# dd if=/dev/ad12 bs=512 iseek=2930276352 count=16 of=/tmp/ad12.dat
16+0 records in
16+0 records out
8192 bytes transferred in 0.485605 secs (16870 bytes/sec)

# hd /tmp/ad12.dat
00000000  00 78 a8 ae 00 00 00 00  00 00 00 00 00 00 00 00  |.x┏............|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 78 a8 ae  |.............x┏|
00000200  01 78 a8 ae 00 00 00 00  00 00 00 00 00 00 00 00  |.x┏............|
00000210  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*


# dd if=/dev/ad8 bs=512 iseek=2930276352 count=16 of=/tmp/ad8.dat
16+0 records in
16+0 records out
8192 bytes transferred in 0.038545 secs (212531 bytes/sec)
# hd /tmp/ad8.dat
00000000  00 78 a8 ae 00 00 00 00  00 00 00 00 00 00 00 00  |.x┏............|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 78 a8 ae  |.............x┏|
00000200  01 78 a8 ae 00 00 00 00  00 00 00 00 00 00 00 00  |.x┏............|
00000210  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*


# dd if=/dev/ad6 bs=512 iseek=2930276352 count=16 of=/tmp/ad6.dat
16+0 records in
16+0 records out
8192 bytes transferred in 0.030044 secs (272668 bytes/sec)
# hd /tmp/ad6.dat
00000000  00 78 a8 ae 00 00 00 00  00 00 00 00 00 00 00 00  |.x┏............|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 78 a8 ae  |.............x┏|
00000200  01 78 a8 ae 00 00 00 00  00 00 00 00 00 00 00 00  |.x┏............|
00000210  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*


さらには、0xaea87600 = 2930275840 です。

というわけで、意味ありげな数値が出てくるんですが、ここって、ZFSの管理用の情報が格納されている領域なんでしょうかね。





ディスク周りのハードウェアの情報。



# grep ata /var/run/dmesg.boot
atapci0: <ATI IXP700/800 SATA300 controller> port 0xb000-0xb007,0xa000-0xa003,0x9000-0x9007,0x8000-0x8003,0x7000-0x700f mem 0xfe7ffc00-0xfe7fffff irq 22 at device 17.0 on pci0
atapci0: [ITHREAD]
atapci0: AHCI v1.10 controller with 6 3Gbps ports, PM supported
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci0
ata3: [ITHREAD]
ata4: <ATA channel 2> on atapci0
ata4: [ITHREAD]
ata5: <ATA channel 3> on atapci0
ata5: [ITHREAD]
ata6: <ATA channel 4> on atapci0
ata6: [ITHREAD]
ata7: <ATA channel 5> on atapci0
ata7: [ITHREAD]
atapci1: <ATI IXP700/800 UDMA133 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xff00-0xff0f at device 20.1 on pci0
ata0: <ATA channel 0> on atapci1
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci1
ata1: [ITHREAD]
ad4: 1430799MB <WDC WD15EADS-00P8B0 01.00A01> at ata2-master SATA300
ad6: 1430799MB <WDC WD15EADS-00P8B0 01.00A01> at ata3-master SATA300
ad8: 1430799MB <WDC WD15EADS-00P8B0 01.00A01> at ata4-master SATA300
ad12: 1430799MB <WDC WD15EADS-00P8B0 01.00A01> at ata6-master SATA300
ad14: 1430799MB <WDC WD15EADS-00P8B0 01.00A01> at ata7-master SATA300




FreeBSDのメーリングリストで、気になる情報も発見。



http://docs.freebsd.org/cgi/mid.cgi?FC3C9F7DE00D4B8FA102488806B848D4



Date:      Wed, 16 Dec 2009 13:42:54 +0300
 Cc:        freebsd-stable@freebsd.org
Subject:   RE: 8.0-RELEASE: disk IO temporarily hangs up (ZFS or ATA related problem)




FreeBSD 8.0-RELEASEで、ZFSを使ってて、ディスクアクセスがときどき固まってしまう、という報告なんですが、これ、まったく同じ「WDC WD15EADS-00P8B0」で起きたっていってるんです。
たとえば、このハードディスクが持っている省電力のための機能が、なにか問題を引き起こすとかあるのでしょうか?





(2009/12/22 追記)
SATAをAHCIモードからIDEモードへ切り替えてみたけど、同じようなエラーが出て、ディスクが切り離されてしまい、ダメダメ。









2009年12月21日月曜日

アンテナ 4分配器

急に必要になったので[E:happy01] アンテナの4分配器を買ってきました。



200912201



分配器が430円。それと、F型コネクタが、手持ちのものでは足りないと思ったので、5個で500円。



せっせと、ケーブルを手作り



200912202



こんな感じになりました。



200912203



ケーブルが固いので、パソコン本体の裏で、つっぱってます…。





先代の1枚を抜いて、今回新規購入したのを2枚挿しにし、ソフトウェアもインストールしなおし。



やっと先ほど、セットアップ完了。
動作確認をしてるところですが、tvkとNHK教育で、dropが発生してる[E:weep]





P.S.



分配器を入れる前の土曜日に、すでに、NHK教育でdropが出てることを発見。関係ないのかも。寒くなったせい?







 



2009年12月20日日曜日

コッペパン クッキーミルククリーム

シンプルな感じなのに、おっ!これは・・・ と思いました。



20091219



コッペパン
クッキーミルククリーム



クッキーではさまれている、あの白いクリーム。子どものころ、あのクリームが好きで、あそこだけ食べたくて、さきにクッキーだけきれいに食べて、最後に、クリームを・・・。



あのクリームそっくりの味が、このパンでは、たっぷり味わえます。



シャリっとする食感もいいです。



 







■ 過去記事






2009年12月19日土曜日

CRARY SOUL BB

20091218



堪能しました。



日付が変わる前に帰宅できた。



CDも買えた。



つぶやいた。



もう思い残すことはない。



ん?









地震だ 5:42 AM Dec 18th Echofonで



秋葉原にいるみたいな 11:51 AM Dec 18th モバツイッターで



カレー食べてから帰る。今夜のためにも体力温存。 1:58 PM Dec 18th モバツイッターで



地図を眺めて、大塚までのルートを探索中。さっき風も強かったし、電車にしようかなぁ。 4:33 PM Dec 18th Echofonで



とりあえず青山まで出て、外苑東通り。ずっと北上して、コキコキっと曲がると、護国寺、新大塚、大塚。という感じ 4:46 PM Dec 18th Echofonで



バックアッププランとして、恵比寿か渋谷から、山手線。 4:47 PM Dec 18th Echofonで



雪谷大塚ならけっこう近いんだけどなぁ。 5:15 PM Dec 18th Echofonで



もっとも安全なプラン。五反田から山手線。ということにしよう。 さっき五反田通ってきたんだけど・・・ 5:32 PM Dec 18th Echofonで



池袋 7:00 PM Dec 18th モバツイッターで



大塚 7:04 PM Dec 18th モバツイッターで



着席中 7:14 PM Dec 18th モバツイッターで



@12bambi12 はぁい 7:23 PM Dec 18th モバツイッターで



きたー 7:35 PM Dec 18th モバツイッターで



1部おつかれ 8:36 PM Dec 18th モバツイッターで



演奏中につぶやくのかと思ったけどさすがにそれはないのですね。 8:46 PM Dec 18th モバツイッターで



第2部、開始。きゃっ 9:09 PM Dec 18th モバツイッターで



お疲れさま 10:11 PM Dec 18th モバツイッターで



まと・りょうこは、テルミンであって、けっして、がちょーん!ではない、と。 10:15 PM Dec 18th モバツイッターで



CD待ち 10:29 PM Dec 18th モバツイッターで



五反田。寒い! 11:13 PM Dec 18th モバツイッターで



11時55分帰宅。11時59分ブログ更新。 12:06 AM Dec 19th Echofonで



寒すぎて頭痛がする、という久々の感覚を味わいました。 12:06 AM Dec 19th Echofonで



マトリョミンをネット検索。すみません、谷啓さんのガチョーンを思い出しちゃったんです。 12:13 AM Dec 19th Echofonで



あのサンタの衣装は、クリーニング屋さんに出してるのかなぁ? 演劇関係専門のクリーニング屋さんとかあるのかなぁ。どんな衣装が持ち込まれても冷静に対処できるプロの店、みたいな… 8:27 AM Dec 19th Echofonで





2009年12月18日金曜日

欲しかったアレ

欲しかったアレが買えました。



しかも2個。



20091217



コレの先代を使っているんですが、とても働き者で、「もっと使いたいな」「もしも故障したら困る」 そんな理由で、コレも欲しいなと思っていたところでした。



けっこう入手しやすいという話もあるみたいですね。



 



2009年12月17日木曜日

12月17日のココロ日記(BlogPet)

ハガキの枚数、もっと増えませんかねえ…

*このエントリは、ブログペットのココロが書いてます♪

Microsoft Security Essentialsという無料のウイルス対策ソフトがあるんだそうだ

先週、この記事を見てはじめて知りました [E:happy01]



http://internet.watch.impress.co.jp/docs/special/20091211_334911.html
MS無料ウイルス対策ソフトでできること、できないこと
「Microsoft Security Essentials」導入レポート


へぇ~ あのマイクロソフトから、無料のウイルス対策ソフトが提供されていたなんて、全然知りませんでした。。



ちょうど某セキュリティ対策ソフトのウイルス定義ファイルの更新期間が終了していたので、試してみようかな・・・と思いました。



さて、ダウンロードしようかな、と思って、Internet Explorerで検索。検索エンジンは、マクロソフトのBingですよね、やっぱり。よくわかないけど。



あれ?



20091216



なにこの検索結果は?!  [E:coldsweats01]



Microsoft Security Essentialsをダウンロードするページって、いったいどこに!? [E:gawk]



謙虚なんですね、マイクロソフトさんって。



Googleで検索すると、1番目に出てきましたけど。



http://www.microsoft.com/Security_essentials/default.aspx
ウイルス、スパイウェア、マルウェア対策 | Microsoft Security Essentials







ちょっと笑える微笑ましい出来事もありましたが、無事、インストール完了。





200912162



私はどうもウイルスと縁がないようで、家のパソコンでウイルスが検出されたことが1度もないんです。だから、こういったセキュリティ対策ソフトのおかげで助かった、すばらしい、ありがとう! なんて思ったことはなく、むしろ、「なんかコイツのせいで、パソコンの処理が重くなってたまらないよ…」と、厄介者と思えるケースの方が多いんですね・・・



というわけで、あ、いや、理由にはなってませんが、このMicrosoft Security Essentialsの、何がいいのか、まだよくわかりません。



おっ!と思ったのが、コレです。





200912163



これって3年以上前のことですが

RealVNCに超やばいセキュリティホール

で書いたことのある、古いバージョンのRealVNCを検出してくれました。



アンインストールしたはずなのに・・・と思ったら、Windowsの機能である「システムの復元」で使われる、隠された領域にしっかりと保存されていたようです。



「System Volume Information\_restore{なんとかかんとか~」ってところに残ってたようです。





じゃ、これから頼みますよ、Microsoft Security Essentialsさん [E:heart01]







2009年12月16日水曜日

ただいまZFSの特訓中

最近、FreeBDS 8.0-RELEASE、amd64、メモリ4GBな環境で、ZFSを使い始めました。





「一度に2つ以上の変更をしてはいけない」といった原則がありますが、スピードの早い時代、そんな悠長なこともやってられません。

今回は



  • 新しいパソコン


  • はじめて使う64bit環境(amd64)


  • リリースされたばかりの新バージョンのOS (8.0-RELEASE)


  • はじめて使うZFS


ということで、新しいことづくめ。そんな要因からか、kernel panicがあったり、よくわかんない不調があったりと、ZFSが原因かどうかはわからないのですが、なかなかの駄々っ子ぶり。



まずは、ハードディスクの障害を疑って、smartctl -t long /dev/ad6 といったコマンドで、ハードディスクの自己診断テストを実行。
まったくエラーは無し。



つぎにチューニングすればいいのかな?と思い、ドキュメントを見ていて気がつきました。





では、/boot/loader.confになにやら追加してましたが、これは、amd64版の場合、FreeBSD 7.2以降から不要だと書いてありました。だから、削除。
そして、なんとなく/etc/sysctl.confに以下を追加。



kern.maxvnodes=400000

そしてその場でsysctl kern.maxvnodes=400000を実行。たしかデフォルトは100000だったかな?



あとはこれまでと同じ、動作テストを実行。
ZFSなところをNFS exportして、クライアントからどんどこファイルを書き込んだり、make buildworldしてみたり。



なんだか、今回は調子がよくて、まったくびくともしません。当たり前のように動いています。buildworld、buildkernel、installworld、installkernelすべてできました。



1つ気になるのは、vfs.numvnodesの値。



動作テスト実行中に、こんなperlスクリプトで、vfs.numvnodesの値を5秒間隔で記録しつづけてみました。



#! /usr/bin/perl
use strict;



my $LOG = "/var/log/numvnodes.log";



open( my $fp, ">$LOG" ) || die "open $LOG";



while (1) {
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
      localtime();
    my $n = `sysctl vfs.numvnodes`;
    $n =~ s/.*: //;
    my $tmp = sprintf("%02d:%02d:%02d %d\n", $hour,$min,$sec,$n);
    printf $fp $tmp;
    print $tmp;
    sleep 5;
}



値が、ほぼ常に、増加し続けるんですね。そういうものなんでしょうか。





20091215



これがある程度いったところで、また調子悪くなるとかだったら、いやだなぁ。







■ 関連記事







2009年12月15日火曜日

(FreeBSD) KQEMUは終了ってことらしい

今日、/usr/ports/UPDATINGを見て気がついたんですが、こんなことが書かれていました。



(Webでは、UPDATINGはどうやってリンクすればいいんだ?cvswebでいいか)



http://www.freebsd.org/cgi/cvsweb.cgi/ports/UPDATING.diff?r1=1.872;r2=1.873;f=h

20091206:
  AFFECTS: users of emulators/qemu
  AUTHOR: nox@FreeBSD.org



  The port has been updated to 0.11.1, which no longer enables kqemu
  by default (if built with the kqemu knob on), now you have to also
  pass -enable-kqemu (or -kernel-kqemu as with the previous versions)
  if you want to use it.  Also note the 0.11 stable branch is the last
  qemu branch that still supports kqemu, so if you depend on reasonable
  fast emulation on FreeBSD you should start looking for alternatives
  some time soon.  (virtualbox?)


kqemuというのは、qemuで、x86のエミュレーションをするときに、飛躍的に実行速度が向上するカーネルモジュールです。
とても重要な機能だと、私は思ってたんですが、そのkqemuをサポートするのは、qemuのバージョン0.11系列で終了する、と言ってます。



えー!?どういうこと???
これ以降のバージョンのQEMUでは、kqemuが使えなくなっちゃうのですか!!!



・・・とビックリして、QEMUのWebサイトを眺めてみても、とくにそれらしい情報が見つからなかったので、メーリングリストの過去ログを斜め読みしてみました。



たくさんのメールがあるのですが、だいたい、このあたりが参考になるかな~?



http://lists.gnu.org/archive/html/qemu-devel/2009-06/msg00019.html
[Qemu-devel] Killing KQEMU





http://lists.gnu.org/archive/html/qemu-devel/2009-06/msg00151.html
[Qemu-devel] POLL: Why do you use kqemu?





http://lists.gnu.org/archive/html/qemu-devel/2009-12/msg01394.html
[Qemu-devel] Re: [PATCH 1/2] Unbreak large mem support by removing kqemu





http://lists.gnu.org/archive/html/qemu-devel/2009-11/msg01006.html
Re: [Qemu-devel] bug report with kqemu on AMD 64


私が、超斜め読みして解釈してみた結果、なんとなくこんなことかな、と思ったのは、こんなこと。

LinuxのKVMを使えば、KQEMUを使った場合よりも、安定していて、かつ、高速に、QEMUでエミュレーションできる。


KQEMUのせいで、x86エミュレーション機能に、いろいろと制約がついてしまって、今後のQEMUの開発のあしかせになる。



へー、今はそういうことになってるんだ、と、私、はじめて知りました。



KVMについては、ここを参考にしました。



http://itpro.nikkeibp.co.jp/article/COLUMN/20071115/287236/
Linuxカーネル標準の仮想化機能KVM
プロセッサの支援機構とSPTで仮想化を実現



KVMは、仮想化を支援するプロセッサの機能(IntelならVT-x、AMDならAMD-V)が必須なんだそうですが、まあ、ここ最近発売された、安物ではない[E:coldsweats01]プロセッサならサポートしています。



Windows7でXPモードを使うときは、VT-x、AMD-Vが必須らしいので、少なくとも、今後発売されるパソコンのほとんどでは、サポートされることでしょうね。



問題は、KVMは、FreeBSDでは使えない、ということ。
・・・と思ったんですが、なにやら、ここで、移植したよ、という話も出てる。



http://retis.sssup.it/~fabio/freebsd/lkvm/
Linux KVM on FreeBSD



一方、こんなのもあるんですが



http://www.linux-kvm.org/page/BSD
KVM on BSD



これは、どうみても、kqemuのことが書かれているんですが、FreeBSDのkqemuってKVM相当のものなんですかね・・・?


まあFreeBSDでのKVMについてはよくわかんなかったんですが、FreeBSDの場合、このままでは、

今後はQEMUではなく、VirtualBoxを使えば、VT-xも使えるので、VirtualBoxを使えばいいんじゃない?

ってことになりそうな感じです。


えーとですね、というわけで、VirtualBoxを使ってみました。
ためしにWindows XPをインストールしてみました。



すごく快適に動きました。



今使ってるパソコンとは別のパソコンでの話ですが、2年くらい前、qemu+kqemuで、Windows XPを動かしたときよりも、格段にキビキビと動きました。すごいよ、VT-xの効果は。


というわけで、エミュレーション、仮想化、そういったことをしたかったら、古いパソコンは捨てて、いまどきのパソコンにしたほうがいい、ってことなのかもしれないです。



2009年12月14日月曜日

コッペパン なると金時芋あん&マーガリン

ひさしぶりに、見たことのないコッペパンを発見。



200912131



コッペパン
なると金時芋あん&マーガリン
徳島県産なると金時の芋あん



カロリーは高いんだろうな~と思いながら裏を見たら、書いてなかった。
書けないくらいスゴイ値なのか?!









いまでも毎日ラブプラスやってます。



ちょっとめんどくさくなってきたかな・・・



でも、このまえ、誕生日プレゼントをもらえてうれしかったな。
ゲームの中だけ・・・ [E:weep]








■ 過去記事






2009年12月13日日曜日

DHCPを使っていると休止状態中に自動的に復帰する?

今日は自宅内のネットワーク周りの設定の見直しをしまして、BINDやDHCPなど、設定がいいかげんだったのを、きちんとやりなおしました。



Windows XPなパソコンで、これまでIPアドレスの設定を手動設定にしてあったのを、DHCPによる自動割り当てにしました。



そうしたら、休止状態から、勝手に復帰するようになるじゃありませんか。



DHCPが原因だとはすぐに気がつかなかったんですが、いろいろ可能性を絞り込んでいくと、どうやらDHCPに違いない、という結論に至りました。



DHCPサーバーは、FreeBSDのportsでインストールしたisc-dhcp31-serverですが、/usr/local/etc/dhcpd.confで、

default-lease-time 600;
max-lease-time 7200;

となっていました。



たしか、リース時間の半分くらいで更新を試みるはずだったので、ということは5分くらいで更新するってことになるため、休止状態からすぐに復帰してくるのも納得。


そういうわけで、



default-lease-time 7776000;
max-lease-time 7776000;

に変更。かなり乱暴ですが[E:coldsweats01] ホストごとに固定IPを割り振っているので、そこで指定したほうがいいかな。



20091212



とりあえず、これで、すぐには復帰してこなくなりました。



いやぁ~こんな基本的なことも知らなかったなんて、恥ずかしい。



2009年12月12日土曜日

ただいまZFSの準備中

amd64なFreeBSD 8.0-RELEASEだとZFSの具合がよろしいらしい、ということで、本当に使い物になるのか、ちょっと試しています。



過去記事 (FreeBSD) はじめてのZFS



まずは、NFSサーバーにして、ZFSな領域に他のホストからアクセスできるようにしたいです。



/storage/hogeというのを作りました。



# zfs create storage/hoge
# df /storage/hoge
Filesystem     1K-blocks  Used      Avail Capacity  Mounted on
storage/hoge 4299005312    0 4299005312     0%    /storage/hoge



zfsのマニュアルを参考にしながら・・・
http://www.freebsd.org/cgi/man.cgi?query=zfs&manpath=FreeBSD+8.0-RELEASE



ttt.example.comというホストからのrootアクセスを許可するには、これでいいのかな?



# zfs set sharenfs='root=ttt.example.com' storage/hoge



確認してみると



# showmount -e
Exports list on localhost:
/usr                               nhh.example.com
/mnt_cd                            192.168.0.0



だめっぽい。/usrと/mnt_cdは、/etc/exportsで元々指定してあったものであり、/storage/hogeが現れない。



一応ためしてみるけど・・・だめだった。



ttt.example.com # mount -t nfs サーバー:/storage/hoge /mnt
[tcp] サーバー:/storage/hoge: Permission denied
[tcp6] サーバー:/storage/hoge: Permission denied



もっとシンプルな設定で試してみる。



# zfs set sharenfs=on storage/hoge



これでもだめだった。



というわけで、なんとなく、OSを再起動した。



すると今度は、なんかよさげ



% showmount -e
Exports list on localhost:
/usr                               nhh.example.com
/storage/hoge                    Everyone
/mnt_cd                            192.168.0.0



でも、Everyone、つまりどこからでもアクセス可能、ってんじゃ実用的ではない。



というわけで、アクセス制限つきでやってみようと思うんだけど・・・



# zfs set sharenfs='rw=ttt.example.com,root=ttt.example.com' storage/hoge



なぜかうまくいかない。



# showmount -e
Exports list on localhost:
/usr                               nhh.example.com
/mnt_cd                            192.168.0.0



ところが、sharenfs='on'なら大丈夫なんだよなぁ~



# zfs set sharenfs='on' storage/hoge
# showmount -e
Exports list on localhost:
/usr                               nhh.example.com
/storage/hoge                    Everyone
/mnt_cd                            192.168.0.0





いろいろ調べているうちに、仕組みがわかってきました。



zfs set sharenfs=~を実行すると、/etc/zfs/exportsというファイルに設定が書き込まれます。



# cat /etc/zfs/exports
# !!! DO NOT EDIT THIS FILE MANUALLY !!!



/storage/hoge rw=ttt.example.com root=ttt.example.com


mountdを再起動すればよい、みたいな話もあるようです。



# /etc/rc.d/mountd onerestart
Stopping mountd.
Starting mountd.



・・・で、気がつきました!!!



# ps axww | grep mount
1686  ??  Ss     0:00.01 /usr/sbin/mountd -r /etc/exports /etc/zfs/exports



ああ!/etc/zfs/exportsって、mountdがそのまま読み込んでいるんですね。



ということは、さっきの/etc/zfs/exportsの書式では、まずいじゃないですか。/etc/exportsのときと同じ書式で、sharenfs="..."を指定すればいいんじゃないかと。



こんな感じではないかと・・・



# zfs set sharenfs='-maproot=0 ttt.example.com' storage/hoge
# cat /etc/zfs/exports
# !!! DO NOT EDIT THIS FILE MANUALLY !!!



/storage/hoge -maproot=0 ttt.example.com
# showmount -e
Exports list on localhost:
/usr                               nhh.example.com
/storage/hoge                    ttt.example.com
/mnt_cd                            192.168.0.0



あ~、やっとできました。



やっとこさ、zfsな部分を、NFS exportする方法がわかりました。



これって、zfsのマニュアルに書いてある内容が、間違っているんじゃないか?!
というか、あれって、もしかして、Solaris10のマニュアルそのまんまなんじゃないかという気がしてきました。
あのexportsの書式は、Solarisのもの・・・なんじゃないですか?





さっそく、動作テスト。



よーし、おもいっきり負荷かけちゃうぞ~



NFS serverは、FreeBSD 8.0-RELESAE amd64で、ZFS
NFS clientは、FreeBSD 7.2-STABLE i386



tarで、clientからserverへ、でかいファイルをどかどかコピーしてみました。



えーとですね・・・しばらくして、NFS server側が、kernel panicして止まってました。



NFS server側のログ

Dec 10 17:55:27 hoge kernel: ad6: TIMEOUT - WRITE_DMA48 retrying (1 retry left) LBA=560749130
Dec 10 17:55:50 hoge kernel: ad8: TIMEOUT - FLUSHCACHE48 retrying (1 retry left)
Dec 10 17:55:56 hoge kernel: ad6: TIMEOUT - FLUSHCACHE48 retrying (1 retry left)
Dec 10 17:56:20 hoge kernel: ad8: TIMEOUT - FLUSHCACHE48 retrying (1 retry left)
Dec 10 17:56:29 hoge kernel: ad8: TIMEOUT - FLUSHCACHE48 retrying (1 retry left)
Dec 10 17:56:48 hoge kernel: ad6: TIMEOUT - WRITE_DMA48 retrying (1 retry left) LBA=1111238095
Dec 10 17:56:57 hoge kernel: ad8: TIMEOUT - WRITE_DMA48 retrying (1 retry left) LBA=1111235017
Dec 10 17:57:13 hoge kernel: ad8: TIMEOUT - FLUSHCACHE48 retrying (1 retry left)
Dec 10 17:57:20 hoge kernel: ad6: TIMEOUT - FLUSHCACHE48 retrying (1 retry left)



なにこれ?



NFS client側のログ
Dec 10 17:55:48 ttt kernel: nfs server hoge:/storage/hoge: not responding
Dec 10 17:55:50 ttt kernel: nfs server hoge:/storage/hoge: is alive again
Dec 10 17:56:46 ttt kernel: nfs server hoge:/storage/hoge: not responding
Dec 10 17:57:13 ttt kernel: nfs server hoge:/storage/hoge: is alive again
Dec 10 17:59:57 ttt kernel: nfs server hoge:/storage/hoge: not responding
Dec 10 18:00:28 ttt last message repeated 8 times
Dec 10 18:02:31 ttt last message repeated 67 times
Dec 10 18:12:36 ttt last message repeated 399 times


まだ、ZFSは、安心して使うことはできないのか?!





気のせいかもしれない、ということで、もうちょっと負荷テストをつづけていて、変なことに気がつきました。



それは

zfs上にあるisoイメージをmdconfigしてmountすると、書き込み中のNFS client側で、permission deniedというエラーが出る。

というもの。



NFSサーバー側で、



# mdconfig -a -t vnode -f /storage/tmp/8.0-RELEASE-amd64-disc1.iso
md1
# mount -t cd9660 /dev/md1 /mnt_cd



とやったとたん、NFSクライアント側(必死に、ファイルをtarで書き込んでいる最中)



x data1/nantoka/kantoka: Write failed: Permission denied: Permission denied



という感じで、Permisson deniedというエラーが出ます。



ちなみに、isoイメージが、UFSなところにある場合は・・・



# mdconfig -a -t vnode -f /usr/local/8.0-RELEASE-amd64-disc1.iso
md2
# mount -t cd9660 /dev/md2 /mnt_cd



大丈夫でした。





make buildworldでもしてみますか。



/usr/src、/usr/objをzfsにしてみる。



まず、src、objを作る。



# zfs create storage/src
# zfs create storage/obj



すると



# mount
~略~
storage/src on /storage/src (zfs, local)
storage/obj on /storage/obj (zfs, local)



となっていますが、マウント場所を変更できます。



# zfs set mountpoint=/usr/src storage/src
# mount
~略~
storage/obj on /storage/obj (zfs, local)
storage/src on /usr/src (zfs, local)



/usr/srcになりました。



同様に
# zfs set mountpoint=/usr/obj storage/obj



なるほどね。zfsっておもしろい。



# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
storage          121G  3.89T   658M  /storage
storage/hoge   121G  3.89T   121G  /storage/hoge
storage/obj     26.9K  3.89T  26.9K  /usr/obj
storage/ports    198M  3.89T   198M  /storage/ports
storage/src     26.9K  3.89T  26.9K  /usr/src



sysinstallでsrcを展開して、make buildworldしてみて、zfsに、それなりに負荷をかけて試験してみました。大丈夫そうだったんですが、別件で、問題発生???



裏では、NFSクライアントが、ひきつづき、ファイルを書き込みつづけていたんですが、突然、ネットワーク・アクセスができなくなりました。



ドライバif_reなんですが、いろいろ試行錯誤しているうちに、わかったのが



ifconfig re0 down ; sleep 5 ; ifconfig re0 up



とかやると、また通信できるようになるが、数秒~数十秒すると、また通信できなくなる。



あとは何度やっても、このくりかえし・・・でした。



突然、通信できなくなったのは、if_reが悪いのか、zfsが悪いのか・・・



ちなみに、サーバーとクライアントをひっくり返して



NFS Server = 7.2-STABLE UFS
NFS Client = 8.0-RELEASE ZFS



client側で、rsyncでコピーしたら(tarを使わなかったのは、差分コピーをしたかったから)、大丈夫でした。



これって、zfsのせいですか?






■ 関連記事







2009年12月11日金曜日

忘れかけていたリラックマスープマグ

毎度のことですが、引換券になってしまって、1ヶ月ほど待たされることになった、ローソンのリラックマスープマグ。



ふと思い出して、引き取りに行ってきました。



20091210



これでやっとすべてが終了したかと思ったら、「ミッフィー絵皿プレゼント」なるものがはじまっていました。



ちょっとは、休ませてくれ~



 






■ 過去記事





 



2009年12月10日木曜日

12月10日のココロ日記(BlogPet)

にょほほさんのあたまに、まだココロがいっぱい入ってないですよ!

*このエントリは、ブログペットのココロが書いてます♪

(FreeBSD) はじめてのZFS

FreeBSD 7.0-RELEASEのときに鳴り物入りで登場(?)したZFSですが、どうも安定性がイマイチだとか、メモリがたくさんないとダメとか、そんな噂もあって、私は試したことがありませんでした。



でも、どうやら、FreeBSD 8.0のamd64版だと、十分実用的なんだそうです。



というわけで、いまさらですが、はじめてZFSを試しに使ってみました。



これ、昔使っていたvinumより、ずっと簡単で、しかも、すごく便利で使いやすいです!





一番信頼性のある情報は何? もちろん、FreeBSD Handbookですね。



FreeBSD Handbook
Chapter 20 File Systems Support
20.2 The Z File System (ZFS)
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/filesystems-zfs.html


それと、上記のページからリンクされていた、ここ。



ZFS Tuning Guide
http://wiki.freebsd.org/ZFSTuningGuide


くれぐれも、こんなブログは参考にしないでくださいね。



ブログに書かれた情報は、それが書かれた時点でのことなので、時間がたつと、もしかすると状況が変わっちゃうこともありますから。



何かをはじめるときのきっかけとしては、お気軽でいいかもしれませんけど…。





使ったOSとハードウェアは、こんな感じ。

FreeBSD 8.0-RELEASE amd64
CPU: Athlon II X4 605e
メモリ 4GB
ハードディスク 1.5TBを4個

FreeBSD HandbookとZFS Tuning Guideを参考にして、



/boot/loader.conf に、以下を追加。
(2009/12/15訂正) よく読んだら、amd64のFreeBSD7.,2以降の場合は、これは不要だと書いてあった。

vm.kmem_size_max="1024M"
vm.kmem_size="1024M"
vfs.zfs.arc_max="100M"

再起動しなくちゃいけないんだろうけど、めんどくさかったので、そのまま。



/etc/rc.confに、以下を追加。

zfs_enable="YES"

んでもって、以下のコマンドを実行。

/etc/rc.d/zfs start

メモリが4GB未満のときはナンタラ機能を無効にするよ、みたいなメッセージが出てたような気もしますが・・・はあ、そうですか。[E:catface]





今回使用するハードディスクドライブの一覧。



# atacontrol list
ATA channel 0:
    Master:      no device present
    Slave:       no device present
ATA channel 1:
    Master:      no device present
    Slave:       no device present
ATA channel 2:
    Master:  ad4 <WDC WD15EADS-00P8B0/01.00A01> SATA revision 2.x
    Slave:       no device present
ATA channel 3:
    Master:  ad6 <WDC WD15EADS-00P8B0/01.00A01> SATA revision 2.x
    Slave:       no device present
ATA channel 4:
    Master:  ad8 <WDC WD15EADS-00P8B0/01.00A01> SATA revision 2.x
    Slave:       no device present
ATA channel 5:
    Master:      no device present
    Slave:       no device present
ATA channel 6:
    Master: ad12 <WDC WD15EADS-00P8B0/01.00A01> SATA revision 2.x
    Slave:       no device present
ATA channel 7:
    Master: ad14 <WDC WD15EADS-00P8B0/01.00A01> SATA revision 2.x
    Slave:       no device present



ad4は、/とか/usrとかで、すでに使っているので、zfs用には、ad6、ad8、ad12、ad14だけを使いました。



一応、FreeBSD Handbookに書いてある順番に試してみて、念のための確認。
ざっくり、こんな感じです。



ad14を1個だけ使って、exampleという名前の「プール」を作る。
# zpool create example /dev/ad14



/exampleというのができていることが確認できる。
# df



普通のファイルシステムと同じように使える。
# cd /example
# touch testfile
# ls -al



gzipでデータ圧縮をするファイルシステムが作れちゃう。[E:happy02]
# zfs create example/compressed
# zfs set compression=gzip example/compressed



圧縮を止めることもできる。
# zfs set compression=off example/compressed



アンマウントする。
# zfs umount example/compressed
# df



マウントする。
# zfs mount example/compressed
# df



mountコマンドでも、マウントされていることを確認できる。
# mount



データを二重化して、信頼性を向上できる。
# zfs create example/data
# zfs set copies=2 example/data



以上のように、試しに作ったものを、全部ごっそりと削除。
# zfs destroy example/compressed
# zfs destroy example/data
# zpool destroy example



ZFSの何が一番すごいか、っていうと、個人的に思うのは、こんなところでしょうか。



  • /example と /example/compressed と /example/data の3つのファイルシステムがあるように見えるけど、それぞれに、どれだけの容量を割り当てるのか、指定する必要がない。
  • 今までだと、/usrには16GB、/usr/localには32GBを割り当てる、とか指定してた。いわゆる、「パーティションを切る」。


  • 使っているうちに容量が足りなくなったら、別のファイルシステムに一部のファイルを追い出して、シンボリックリンクを張っておく、とか苦肉の策をとったりしてた。


  • けど、ZFSならそんな必要ない。
  • データ圧縮とか、二重化(つまりミラーリング)とかを、自由自在に指定できる。




次に、複数のドライブで試してみました。



# zpool create storage ad6 ad8 ad12 ad14
# zfs list
NAME      USED  AVAIL  REFER  MOUNTPOINT
storage    72K  5.35T    18K  /storage
# df -h /storage
Filesystem    Size    Used   Avail Capacity  Mounted on
storage       5.4T      0B    5.4T     0%    /storage



わーい、5.4テラバイトのディスクができちゃった [E:happy01]



# zpool status
  pool: storage
state: ONLINE
scrub: none requested
config:



        NAME        STATE     READ WRITE CKSUM
        storage     ONLINE       0     0     0
          ad6       ONLINE       0     0     0
          ad8       ONLINE       0     0     0
          ad12      ONLINE       0     0     0
          ad14      ONLINE       0     0     0



errors: No known data errors



まあ、これは試してみただけです。削除、と。



# zpool destroy storage
# zpool status
no pools available
# zfs list
no datasets available





ZFSには、RAID-Zという目玉機能があるそうで、今度はそれを試してみました。



こんな感じで、4個のハードディスクドライブを使って、RAID5相当のものを作ってみました(最低3個のドライブからRAID-Zを作れます)。



# zpool create storage raidz ad6 ad8 ad12 ad14
# zpool status
  pool: storage
state: ONLINE
scrub: none requested
config:



        NAME        STATE     READ WRITE CKSUM
        storage     ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            ad6     ONLINE       0     0     0
            ad8     ONLINE       0     0     0
            ad12    ONLINE       0     0     0
            ad14    ONLINE       0     0     0



errors: No known data errors



# df -h /storage
Filesystem    Size    Used   Avail Capacity  Mounted on
storage       4.0T      0B    4.0T     0%    /storage



さっきの容量は5.4TBでしたが、RAID-Zのときはパリティのために1個分の容量がとられるので、4TBしか使えなくなってしまいます。まあ十分ですか。



ためしにportsのファイルを置いてみることにしました。ついでなのでgzip圧縮もしてみます。



# zfs create storage/ports
# zfs set compression=gzip storage/ports



# df -hl
Filesystem       Size    Used   Avail Capacity  Mounted on
(一部省略)
storage          4.0T    128K    4.0T     0%    /storage
storage/ports    4.0T    128K    4.0T     0%    /storage/ports



# zfs list
NAME            USED  AVAIL  REFER  MOUNTPOINT
storage         136K  4.00T  28.4K  /storage
storage/ports  26.9K  4.00T  26.9K  /storage/ports



cvsupの設定ファイルを用意。/storage/portsに、ファイルが置かれるようにします。



# cat /etc/cvsup.ports
*default  host=うちのサーバー
*default  base=/var/db
*default  prefix=/storage
*default  release=cvs tag=.
*default  delete use-rel-suffix



cvsup(csup)を実行



# csup /etc/cvsup.ports
Connected to うちのサーバー
Updating collection ports-all/cvs
Checkout ports/.cvsignore
Checkout ports/CHANGES
Checkout ports/COPYRIGHT
Checkout ports/GIDs
Checkout ports/KNOBS
Checkout ports/LEGAL
Checkout ports/MOVED
Checkout ports/Makefile
Checkout ports/Mk/bsd.apache.mk
Checkout ports/Mk/bsd.autotools.mk



途中省略



Checkout ports/x11-wm/xmonad-contrib/Makefile
Checkout ports/x11-wm/xmonad-contrib/distinfo
Checkout ports/x11-wm/xmonad-contrib/pkg-descr
Checkout ports/x11-wm/xmonad-contrib/pkg-plist
Finished successfully



# zfs list
NAME            USED  AVAIL  REFER  MOUNTPOINT
storage         197M  4.00T  28.4K  /storage
storage/ports   197M  4.00T   197M  /storage/ports



# du -sh /storage/ports/
206M    /storage/ports/



んーと、どうやら206MB、使用中らしいです。



/storage/portsを、普通のファイルシステムへコピーして、ディスク使用量を比較してみますか。



# mkdir /usr/local/tmp
# cd /storage
# tar cf - ports | tar xf - -C /usr/local/tmp/



しばらくかかる



# du -sh /usr/local/tmp/ports/
435M    /usr/local/tmp/ports/



えーと、435MB。ということで、たしかに圧縮の効果はあるみたいです。



こんなコマンドで、圧縮率を確認できるんだとか。



# zfs get compressratio
NAME           PROPERTY       VALUE          SOURCE
storage        compressratio  2.51x          -
storage/ports  compressratio  2.51x          -




まだあまり試してないですが、このまま使い続けてみます。



マウント場所を変更したり、RAID5以外にも、RAID10やRAID6などもできるみたいだし、スナップショットをとることもできるようだし、・・・機能がてんこもり。



いいかもしれない。







裏話。



ZFSを使う前に、

そういえば、最近、チップセットにRAID機能があるんだったよな~
Intel Matrix RAIDとかいったっけ?

と思いまして・・・



あ、これ、AMDじゃん [E:coldsweats01]









「ザ☆ネットスター! - 12月号 -」を見ました。



これ、ぜんぜん知らなかった。





20091209



別に、知ってなくてもいいか、と思った。





■ 関連記事







2009年12月9日水曜日

その瞬間を見逃さなかった

なんとなく、ボ~っと見てる「侍ジャイアンツ」なんですが、
この人、このカットの後で・・・



200912081



あっ!髪型がっ!!



200912082



その後のカットでは、また元に戻る。



200912083



色を間違えたのか、それとも、わざとやったのか、・・・





この、わけのわからん機械が、なんとなくすごかった。



200912084