FreeBSD

zfs HDD入れ替え

日々自宅サーバの運営を続けていると・・・色々なトラブルに巻き込まれるもので、たいてい年末に何かある。で、今年のネタは・・・普段のメンテで再起動した方がいいだろうなということをやることはままあるのだけども(本来再起動は滅多にしなくていいのだが、うちの場合なぜかWebサーバの再起動がかけられず、Apache HTTPdのアップデートの時はほぼ再起動)、12月に入ってからどうも再起動してリモートログインするのに時間がかかる。コンソール出力を見ると確かに何かリトライしているなあと思っていて時間ができそうな年末にでも見てみようとなったわけである。すると・・・

Perl 5.14.2とImageMagick/PerlMagickのアップデート

毎年年末年始に帰省しないせいか、いつも休みに入るとサーバー関係の更新作業を行っているのだが、今年は長らく懸案事項となっていたPerlのバージョンアップとImageMagick/PerlMagickのアップデートをやってみることにした。Perlのバージョンアップ自体はたいした作業ではないのでメモレベルなのだが、PerlMagickが異様に難しいので、バイナリパッケージをインストールって言う人は手を出しちゃいけません。
ImageMagick/PerlMagickは最後にうまくビルドできた6.4.1からバージョンを上げることができず、それでいながらMovableTypeでは必須。ということで、今回も懲りずに6.7.4-2にアップデートしてみてから、PerlMagickにトライすることにした。今回の作業をまとめると、いままでPerlMagickがインストールできなかったのは、どうもImageMagickやPerlMagickだけでなく、Perlのコンパイルオプションにも秘密が隠されていた。(おそらくamd64環境で問題になりそうで、x86だと問題ないと思う。) 我が家のOS環境はFreeBSD9.0RC3であるが、OS付属以外のユーザーランドはFreeBSD7環境なので、作業自体はFreeBSD7を導入しているマシンで行い、rsyncでバイナリを同期している。GCC周りで問題もあろうと思うので、いつかの段階でLLVM/Clangに乗り換える必要がありそう。CPANライブラリはMovableTypeが動かせるようにそろえるというこれまで通りの方針で進める。

MTOSのためのメンテ

MovableType5のためのアップデートをこの連休で行った。(一部はみ出てしまって、結局のびてしまったが。) ざっくりとしたまとめとしては、

  • Perlを5.8.8から5.10.1へ
  • バックエンドDBをLiteSQL3からMySQL5.1に変更
    というところが大きなところ。Perlのバージョン変更自身は大きな問題ではなかったのだが、意外にImageMagickのインストールと言うべきか、PerlMagickのインストールに時間を要してしまった。(なんだかんだこれは1ヶ月くらいいろいろやってる。) 結局のところ、ImageMagick 6.5系とPerlMagickの組み合わせでは現状うまくインストールできないところがわかった。GDを入れて様子を見ていたのだが、JPEGのリサイズ時にかなり画質が悪化するので実用に耐えない感じ。これだと厳しいので、ちょっと古いが5.4系を維持することとした。(穴とかなきゃいいけど。) しばらく様子見せざる得ない状況である。(もうLinuxとかWindowsとかしかうまくいかないのかもしれないな。)
    バックエンドDBのMySQLへの移行自身はそんなに手間がかかるところではなかった。MySQLのインストールもおおむね問題なさそうである。MTOSの全体的な使い回し自身はしばらく変わりそうにもないし、変えたところでパフォーマンスとかの差はなさそう。まあ次期MTOS5はSQLite3やPostgreSQLのサポートが切られているので、泣く泣く変更と言うところか。
    いったん最低限な環境は整ったので、ぼちぼち記事を書いていこう。

サーバ環境アップデート

先週は秋の大型連休だったのですが、なかなか時間が取れていなかったので、1年半ぶりにサーバ環境をアップデートしました。(とはいうものの、FreeBSD自身のベースのユーザーランドは手をつけていないけど。こっちはあまり気合いがいらないので追々に。)

まず長らく使用してきたperl-5.8系(5.8.8)から5.10系にアップデート。さすがにもうPerl5系はここいらでしばらくでかいバージョンアップはなかろうという判断。一応MTOSを動かせるようにライブラリをインストール。残った問題点はImage::MagickとCrypt::DSAのインストールがうまくいっていないこと。どちらもどこが問題なのか突き詰めている間に連休が終わってしまったので放置。Image::Magickは写真なのでサムネイルやCAPTCHAの画像生成を行うために使っていたが、サムネイル作成はGDにお任せにすることにして、CAPTCHAに関してはreCAPTCHAで代用することとした。ただしれCAPTCHAの字が読みにくい。私人間なんですが。
最近あまり使っていないがrubyは1.8系と1.9系の一応最新版に追従しておいた、入れただけで放置。Pythonは最近始めてみたので2.6.2を導入。
今回のアップデートで一番大きかったのはEmacs22からEmacs23への変更か。僕はもう10年くらい前からEmacs+SEMI(APEL/FLIM/SEMI)+Wanderlustという環境でメールの読み書きをしているので、エディタのEmacsのバージョンアップはメール読み書き環境の大幅な変化を引き起こす。今回のアップデートでUTF-8周りの文字化けメールがほぼ解決しそうである。まあEvolutionのような訳の分からない思想(iso-2022-jp なヘッダーの符号化で q-enc 使って、本文はUTF-8とか)で送ってくるのはヘッダも本文も読めなくなって大きな問題。まあ読めないメールは読み飛ばせばいいのであるが、読めない方が悪いとかいう強者の論理を持ってくるけしからん人がいるので、Emacs23には期待していたのだ。効果は予想以上に大きい。おおむね読めるようになった物の、やはりCJKな人たちがこれまでの歴史を踏まえて作ってきたMUAを使いましょうよと声を大にして言いたい。あと何も考えなくてもUTF-8が使えるようになったのは大きいな。
あとはApacheの最新版への追従とかそんなところ。あとsshdの設定も変更してみた。以前よりは厳しめの設定となっているはずである。(だいぶんGroupとかアクセス先の制限とかかけてみたし。)
あとMovableTypeの設定を変更してみた。これまではユーザー登録をできなくしていたのだが、たぶんめんどくさい向きもあると思うので、ユーザー登録をできるようにしてみた。新規ユーザーはコメントのみ投稿可能。あとCrypt::SSLeayをインストールしたので、いろいろなOpenIDをつかった認証も行けるはずであるが、これらはテストが足りないので、使ってみてください。いちおうmixi OpenIDとかは使えそうではあるけど。

Seagate HDD Firmware書き換え

各方面でいろいろと騒がしかったが、SeagateのHDDのFirmware不具合の件。まとめも良くわからんのだが、SeagateのBarracuda 7200.11などにアクセス不能になる不具合 (セキュリティホールmemo)をウォッチしていて、どうやら更新も一段落したので、うちも対応することにした。最近のメディアはたとえば「SeagateのBarracuda 7200.11などにアクセス不能になる不具合」とかいった初期報道はある物の結局どうなったのかは報道しない。全くどいつもこいつも無責任なのである。