2008年1月15日

HDD入れ替えとLVMの導入

カテゴリー: [Linux] [blog] [自宅サーバ]

自宅のサーバが、そろそろ稼働開始から3年くらいになり、HDDが心配なのとパーティションのサイズに問題が出てきて不自由になってきたので、思い切ってHDDを入れ替え、LVM(Logical Volumn Manager)での管理に変更することにしました。
ついでなので、ソフトウェアRAIDで、RAID1にすることに。

まず、今のケースでは小さすぎてHDDが2台のらないので、入れ替え。

Gentooのinstallcdをつかって起動し、古いHDDをUSB経由で接続して、作業開始。
経験上、Gentooのinstallcdは、USBのHDDでも簡単につながるので便利です。

LVMにしない(できない) /bootとrootパーティションは、同じサイズのRAID1のパーティションを作ってddでコピー、のつもりがミスで少し小さいサイズになってしまって失敗。

よく考えてみれば当たり前で、/dev/hda1と/dev/hdb1 を束ねて/dev/md1 を作るとき、/dev/hda1と/dev/hdb1 を古いパーティションと同じサイズにしても、先頭にスーパーブロックが書き込まれるから、その分減るわけです。なので、普通にファイルをコピー。

その他のパーティションは、LVMで作るので、LVM用のRAID1のパーティションを作り、それをVolume Groupに追加。そこから切り出して、以前のシステムのパーティションに相当するLogical Volumeを作っていきました。
各Logical Volumeは、前のサイズよりは、少し大きめになるように取っていきました。
そして、作ったLVに、元のHDDからddでデータをファイルシステムごとコピーし、

resize2fs /dev/(Volume Gruop名)/(Logical Volume名)

で、LVのサイズいっぱいに拡張して、コピー終了。
ただ、コピーにけっこう時間がかかりました。
普通にファイルシステム作ってから、そこにコピーした方がよかったか…

作業をしていると、祖母から電話がかかってきました。
IP電話が止まっているので、変だと思ったようです。
こいつが、ルータになっているのをすっかり忘れてました。

最後の仕上げに、/etc/fstab のデバイス名を新しいRAID1とLVMのデバイス名に変更、/etc/mdadm.conf を追加、grubのrootパーティションのデバイス名を新しいものに変更して新しいHDDにgrubをインストールしました。
その後、全てのボリュームをumount、LVMとRAIDを停止して、リブートし、やっと稼働し始めました。
(ちなみに、カーネルはあらかじめLVMとRAIDを追加して再構築してありました)

結局、12時間くらいかかりました。
コピーに時間がかかったのと、コピーの間、別の用をしていたのが大きかったような。
そもそも、最初にケースを入れ替える作業があったわけで。

とりあえず、順調に動いている模様です。

記録の意味でも、後でやったことをちゃんとまとめたいですね。(後でというとやらない予感…)

余談:

その後、ついでなので、放置していたblogのメンテナンスをしていたら、なんと知り合いからのコメントまで、スパムフィルタが拒否していたことが発覚。
ブラックリストの zen.spamhaus.org に基づいて、拒否してしまったようで。
apacheで拒否するようになる前だったので、コメント自体は残っていたため復活させました。
このブラックリストは、どうやらまずいみたいです。
前のエントリでやったapacheの段階でスパムを拒否する設定から、このブラックリストは外しました。
そもそも、Movable Type側のスパムフィルタからも外しました。危険です。

投稿者 shingo : 02:00 | コメント (0) | トラックバック

2006年12月15日

linux-igdでIP電話

カテゴリー: [自宅サーバ]

このまえ,回線を光にしたわけですが,IP電話も先週開通しました.
ルータがLinuxなので,UPnP対応のIP電話アダプタをNTTから借りて使ってます.

というわけで,LinuxルータをUPnP対応にしないといけないわけです.
LinuxルータをUPnPのInternet Gateway Deviceにするには,IntelのUPnP SDKと,linux-igdが必要です.
これらのソフトの導入作業は,光が開通した後で動きませんでした,では困るので,光回線導入のかなり前に済ませていたわけです.MSN Messengerとかで動作確認しました.
あとは,IP電話の開通を待つだけだと思っていたわけですが...

IP電話の開通後,設定をして外部からの着信も確認できて一安心と思っていたら,次の日,家族から電話が着信しなかったという電話が.

うまく動かなかったら,かなりまずいなあと思いながら,原因を調査.
ログを見ると,SIPの通信をnetfilterがはじいている様子.
つまりDNATのルールがちゃんと追加されていないわけです.着信しないのは当たり前...

まあ,結論から言うと非常にばかばかしい原因だったわけですが.

/etc/upnpd.confに,ポートマッピングの有効期間が指定されなかった場合の,デフォルトの有効期間の設定があります.
そこに,こう書いてました.

duration = 3:00

単位が「時間」だと思っていたのが,実は,「秒」になっていたようで...
おかげで3秒でポートマッピングが消えてました...ログにもはっきりそう出てました...
というわけで,とりあえず,1時間=3600秒のつもりで,3600:00 としたら動きました.

でも,何かおかしい.どう見ても書き方が変です.
そのときは,時間がなかったので適当だったんですが,
やっぱり,秒なのに":"を付けるのはどう見ても不自然なので,調べなおしてみました.

設定ファイルの説明には,

# seconds | HH:MM - duration from the time of addition

と書いてありました.
つまり,3:00 ではなく,03:00 と書かないといけなかったようです.
":"があって,2桁以上だと単位が時間になるようで,3600:00は時間と解釈され,内部的には,3600×3600=12960000秒になってました...
長すぎたんで,うまく動いてたんですね.

このあたりは,linux-igd の config.c にデバッグ用と思われる main関数があったので,それを使っていろいろ試してみてわかりました.
というわけで,問題解決.
というか,説明を良く読めと言うことですか...

ちなみに,IP電話アダプタは,30分ごとにポートマッピングを再設定してきますので,それより長ければ問題ないようです.

さて,電話代はどのくらいやすくなるんだろうか.

投稿者 shingo : 23:44 | コメント (0) | トラックバック

2006年11月28日

光回線の導入

カテゴリー: [自宅サーバ]

ADSLから,光回線(Bフレッツ)にしました.ISP経由で申し込んでから開通まで,約3週間でした.

まあ,何を今更という気もするんですが.
別にADSLでもいいかと思っていたんですが,ADSLの伝送損失がけっこう大きかったのと,
やっぱり,たまに上りの帯域が必要になることがあったので.
そもそも,サーバ置いているわけでして.
非対称なのは,やっぱり不便なことも多いわけです.

あと,IP電話を入れたかったというのもあります.
地元の家族に電話する電話代が結構バカにならないので.
実は,こっちの方が大きな理由だったりして.

肝心の速度ですが,下りが60Mbps強,上りが50Mbps近く出ているみたいなんで,まあいい感じです.
今までの,下り3Mbps弱,上り700kbps前後からすれば,雲泥の差です.
ちなみに,これはISPも入れた速度で,工事のときの測定では80Mbps位出てました.
フレッツの地域IP網までは,これくらい出るということですね.

光ファイバーは電話線の配管を通して,2時間くらいで工事が終わりました.
壁から飛び出している光ファイバーに,ちょっと気を付けるようにしないといけないかも...

投稿者 shingo : 00:43 | コメント (4) | トラックバック

2006年11月14日

DoS攻撃?

カテゴリー: [自宅サーバ]

会社のサーバで動かしているWebアプリの応答が非常に鈍いというので調べてみたら,やらたと特定のホストからアクセスが...

どうも,HTTPのCONNECTメソッドで,プロキシに出来ないか試している模様.
いろんなホストの25ポートと通信したがっていたので,SPAMの送信をしたかったんでしょう.
アクセス元は中国でした.
解せないのが,失敗してるのにしつこいこと.何度も何度も,それこそ秒間に数回から10回,多いときだと30回程度という頻度でアクセスしてくる.
おかげでパンクしてしまったようだ.まるで,というかまさにDoS攻撃...

とりあえず,そのホストからのパケットを全部落としてやったらおさまったけど...
遮断した後もしばらく来てた.しつこい.

場合によっては,何か対策を考えないといけないかな...

投稿者 shingo : 01:49 | コメント (4) | トラックバック

2006年7月10日

ADSLが止まってました

カテゴリー: [自宅サーバ]

こんな夜遅くに更新するはめになった理由.
しばらく,ADSLがつながらなくなってました.

ふと,なんとなくADSLモデムの設定をのぞいてみようとか思ったのが,そもそも悪いんです.
一時的にADSLモデムからdhcpでアドレスもらって,Webブラウザで設定を見て,用が済んだので,
設定を戻してADSLに再接続しようとしたら,つながらなくなってました.

サーバを再起動したり,モデムをリセットしたり,単に放置してみたり,いろいろやってみましたが,なおりません.接続せずに,タイムアウトしてしまいます.

結局なんだったかというと,パスワードが /etc/ppp/pap-secretsや,/etc/ppp/chap-secretsから,消えてました.というか,初期状態になってました.認証してないなら,つながらなくて当たり前ですよねえ.
それにしても,誰が(何が)消したんだろう.おそらく,ネットワーク関係のスクリプトのどっかにそういうコードが入っているんでしょうけど.ほんと,しばらく気づきませんでした.

直接的な原因は分かりましたが,根本的な原因(何がパスワードをクリアしたか)が分からないので,どうにもすっきりしませんが,とりあえず,つながったから良しとします.

投稿者 shingo : 03:40 | コメント (0) | トラックバック

2005年4月27日

Bus error

カテゴリー: [自宅サーバ]

どうも,自宅のサーバが不調のようです.

今日は,大学からリモートで使おうとしたら,Bus error というメッセージが出て,HDDにいっさいアクセスできない状態になっていました.
Webは中途半端に見られるので,異常にしばらく気がつきませんでした.

先ほど急いで帰宅して再起動をかけたら,あっさり直ったのですが,原因がわかないのですっきりしません.
温度が高いわけでもないようなのですし,smartd のログをみても,S.M.A.R.T で得られる値に直前までこれといって変化はありませんでした.

おっと,IDEケーブルにふれていたら,またカーネルパニックしました.どうも,このあたりが怪しいみたいですね.ケーブルに問題でもあるんでしょうか.

確かに,非常に狭いところに押し込んでいるので,ケーブルに無理な力が掛かっている可能性は否定できないのですが.

投稿者 shingo : 20:37 | コメント (2) | トラックバック

2005年4月26日

カーネルパニック

カテゴリー: [自宅サーバ]

今日の昼頃,このサーバが kernel panic になって,1,2時間ほど落ちてました.

メッセージは,全部はメモってなかったのですが,

CPU 0 : Machine check Exception 0000000000000004

というメッセージがでてました.

調べてみると,どうも熱とかのハードウェア的な問題のようです.

ちょっとCPUが熱くなっているような感じだったので,複数あるケースファンのうち,止めてあったファンを動かしました.
それにしても,このセンサーの値なんか変なんだけど,本当に信用できるのか(^^;

まあ,確かにこのサーバの熱対策は,冬(1月)仕様なんですよね.

また panic しなければいいんだけどなぁ.

投稿者 shingo : 15:31 | コメント (0) | トラックバック

2005年3月22日

自宅サーバの消費電力

カテゴリー: [自宅サーバ]

この前見つけたエコワットが,近くで売っていたので,サーバの消費電力を計ってみました.
実際には,サーバ,ADSLモデム,スイッチングハブ,無線LANの合計の消費電力です.

これで計れるのは電力量(kWh)です.これに加えて,測定開始からの経過時間,電気料金の概算が表示されます.ただ,私が知りたかったのは消費電力(W)なので,1時間ちょっと計ってから,時間から計算しました.

結果,だいたい80Wでした.UPSの負荷からも,消費電力がだいたいわかるのですが,それも70W~80W位になりました.

両者がだいたい一致したので,ほぼ80Wであっているんでしょう.
ちなみに,ハブ自体が,仕様では平均11.5Wの消費電力,無線LANが最大3.6Wらしいので,サーバ本体は,65W位ということになります.
どうでもいいですが,スイッチングハブの方が,無線LANより電力を食っているんですね.

このあたりの電気料金は,電力会社のページで分かります.
消費電力量に応じて,1kWh あたりの料金は変わるのですが,一番高い料金で計算してみると,サーバとネットワーク関係の消費電力は,一月で,

0.08kW × (24h × 30)(h) × 21.4410(円/kWh) = 1235円

になりました.

サーバ本体だけの分は,消費電力が65Wであるとすると,一月約1000円です.

このくらいは食っているんですね.だいたい予想通りです.一応,低消費電力マシンとして組んだ成果はあったようです.

投稿者 shingo : 19:25 | コメント (0) | トラックバック

2005年3月15日

電気代

カテゴリー: [自宅サーバ]

PCの常時稼働が当たり前になって数年,今更気にする事じゃないのに,急に電気代が気になってきました.

というのも,エコワット という簡単な電力量計があることを知ったからです.

せっかく Pentium M でサーバを作って,省電力な構成にしたのですから,実際どのくらいの電力を使っているのか知りたくなったわけです.
つまり,単に測りたいだけかも.きっと,測ったら満足して終わるでしょう^^;

さて,どこに売っているかな.通販でもいいけど.

投稿者 shingo : 20:10 | コメント (0) | トラックバック

2005年3月11日

再びAWStatsにセキュリティホール

カテゴリー: [自宅サーバ]

ここを読むと,AWStats の 6.3, 6.4 にもセキュリティホールが見つかっているようです.6.2以前のものよりは,危険度は低いのですが...
すでに,開発版として6.5が公開されています.

アクセス解析を公開する予定もないことですし,AWStats を使うとしても,アクセス制限して使う方が良さそうです.

投稿者 shingo : 15:52 | コメント (4) | トラックバック

2005年3月10日

IEのダイジェスト認証のバグ

カテゴリー: [自宅サーバ]

いままで,Webのアクセス制御にBasic認証を使っていました.これはパスワードが平文で流れます.
いつかは変えようと思っていたので,今回,Digest認証にかえたのですが,一部のページがIE(Internet Explorer)だと見られません.URLがマッチしないというようなメッセージとともに,400 Bad Requestになってしまいます.

リクエストとレスポンスを覗いてみたところ,URLがCGIを指していて,hoge.cgi?foo=bar のようにパラメータを渡している場合,IEの送り出すAuthorizationヘッダの,uri に ?以降が含まれないことが分かりました.最初は設定ミスかと思ったのですが,調べたら,どうも,これはIEのバグらしいのです.(HTTP クライアントを作ってみよう(6) - Digest 認証編 -
Digest認証は,URLによってDigestが変わるわけで,これが間違っていたらお話になりません.
このバグ,いつまでたっても直らないそうで,Apache-2.0.51 から,これを強制的に回避するオプションが追加されたようです.

こんな風にして,UserAgent にMSIEが含まれている場合だけ,回避オプションをONにします.

BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On

ところが,私は何となくapache 1.3系を使っています.特に理由はないんですが.
mod_auth_digest にパッチでも当てようかと考えたりもしましたが,管理が面倒になるだけなので,すなおに apache 2.0 系に変えました.

しかし,Microsoft は何でこんな単純なバグを直さないのでしょうね.直すと互換性の問題が起きるというわけでもないだろうし.謎です.というか,どうやるとこういうバグを作れるのか^^;
MicrosoftのWebサーバであるIIS(Internet Information Services)は,どういう実装になっているんでしょう.こういうバグありのリクエストを処理できるんでしょうか.まあ,身内のソフトだから処理できるんだろうと思いますが...
せめて,このくらいは標準に従ってほしいです.

投稿者 shingo : 23:23 | トラックバック

2005年2月14日

logrotate が動かなくなる

カテゴリー: [自宅サーバ]

どうも,ログファイルが大きくなると思っていたら,しばらく前から,logrotate が動いていなかったようです

# /usr/sbin/logrotate /etc/logrotate.conf

として,直接実行してみたら,こんなエラーが出ました.

error: syslog-ng:7 duplicate log entry for /var/log/messages

エントリーが重複しているというのですが,そのファイルには重複が見あたりません.Google で調べたりしているうちに,バックアップしてある他のファイルの内容と重複していることがあり得ることがわかりました.

ひょっとして,と思い,/etc/logrotate.d/ 以下で,ls -la としてみると,やはり ._cfg0000_syslog-ng というファイルがありました.Gentoo Linux のパッケージ管理システムの emerge が,パッケージをアップデートする際に既存の設定ファイルを上書きしないように,ファイル名を変えてインストールした設定ファイルです.

この中に,/var/log/messages のエントリがあったため,エラーが出ていたわけです.この前syslog-ngを更新したときにできたんでしょう.._cfg0000_syslog-ng を削除したら,直りました.
しかし,このファイルが出来ている事に気づかないと,いつの間にか悪さをしている可能性もあるということですよね.ドットファイルも含むとは思わなかったので,ちょっとはまりました.

投稿者 shingo : 21:33 | コメント (0) | トラックバック

PATH_INFOを使ったPukiWiki

カテゴリー: [自宅サーバ]

Wikiだと,URLが長くていやだって言っていた人がいたので,静的なページっぽく見えるように改造してみました.それに,検索エンジンにも引っかかりにくいと言う話も聞きますので.

一応,作業をメモにしてみました.

PATH_INFOを使う

あちこちでURLを生成しているので,変更箇所が多くてそれなりに面倒でしたが.

最初は,Apacheの mod_rewrite を使って,*.html のようなリクエストを,CGIへのリクエストへ書き換える方法を試したのですが,URLエンコードされたページ名に %2F つまり '/' が含まれていると,mod_rewrite がききません.何とかするには, Apache 2.0 以降で,追加されたディレクティブを必要とするようでしたので,面倒なんでやめました.途中までやったんですが...

そこで,PATH_INFO を使って,????.html というURLで,Wikiのページへアクセスできるようにしてみました.結構あちこち書き換えましたね.とりあえず,それっぽくなったと思います.
もし変な挙動をしたら,それはきっと私の変更ミスです.

でも,Wikiのページ名に日本語を使えばURLエンコードされるので,どうしたって長くなるんですよね...

そういえば,PukiWikiをいじり倒していますが,私はこれまでPHPを書いたことがなかったりします.これもきっと勉強です(と自分をごまかす).

投稿者 shingo : 19:31 | コメント (0) | トラックバック

2005年2月12日

rm *

カテゴリー: [日常] [自宅サーバ]

最近大学のサーバで動かしている,いろいろなものを,自宅のサーバに移動させる作業をしていました.それで設定を変えたり,MySQLをインストールしたりしていました.
そのとき,MySQLのデータベースを一度全部消してやり直したいと思って rm * を実行したのが,間違いでした...その後で,mysqlを再起動しようと思ったら,起動スクリプトが見つかりません.
よく見たら,/etc/init.d/ 以下が空っぽに...
カレントディレクトリが違っていて,/var/lib/mysql 以下のかわりに,/etc/init.d/ 以下の起動スクリプトを全部消してしまったようです^^;
急いで,似た構成の違うマシンから,/etc/init.d/ 以下をすべてコピーし,足りないものは,パッケージを入れ直しました.

後で,alias rm "rm -i" となるように設定を変えておきました.いや,/etc とか,home の下とかでやらなくてよかったです.ほんと.

たまにやってしまうんですよねぇ.Windows の場合だと,SHIFT+DEL でファイルを消す癖がついてしまっていて,ごみ箱に入らず直行で消えてしまい,どうしようもなくなることがあります.
rm で聞く話は,"rm -rf /" ですね.これだと,ほとんどすべてのファイルが消えてしまいます.誰がやるのかと思うのですが,やってしまう人はいるようです. Google 検索: "rm -rf /"
直接入力しなても,スクリプトなどの結果が,"rm -rf /" になってしまうことがあり得ますので.
FreeBSDでは,"rm -rf /"が封印されたという話も見つけましたけど,Linux はどうなんでしょうね?
試すわけにはいかないですからねえ(^^;

投稿者 shingo : 00:12 | コメント (4) | トラックバック

2005年2月 7日

Googlebot

カテゴリー: [自宅サーバ]

1年ほど前にも,サイトを移転しようと思って,ドメインをとって途中まで作業したことがありました.
結局,たいして作業が進まないまま今まで放置していたのですが,検索エンジンには引っかかって,わずかながらアクセスがあることは知っていました.

そこで,アクセス誘導の意味で,こちらにリンクを張ったところ,Googleのbotが大量にやってくるようになりました.botの訪問間隔が急に短くなって,人間の訪問といい勝負をしています(笑

Googleのアルゴリズムは,リンクにかなり敏感に反応するようです.
もちろん知ってはいましたが,訪問回数がここまで違うとは思いませんでした.コメントスパムをやろうと考える連中が出てくるのにも納得です.
それで,a 要素のrel="nofollow" が提案されたわけですが,普及さえすれば,効果は出てくると思います.もっとも,それでスパムをやる連中があきらめるとも思えませんが...

Ask Jeeves は,rel="nofollow"を当面採用するつもりはないようです.というより,アルゴリズムが違うので,特に必要がないということですが.

Ask Jeeves、Googleが提案したコメントスパム対策機能に当面静観の構え

Google は,PageRank でシェアをのばしましたが,スパムへの耐性は,Ask Jeeves の方が先をいっているようです.イタチごっこのような気もしますが.

投稿者 shingo : 02:02 | コメント (0) | トラックバック

2005年1月14日

UPSの追加

カテゴリー: [日常] [自宅サーバ]

無停電電源装置(UPS)を2台追加購入しました.

買ったのは,APC ES500/725 です.
これで,ES500 が1台と,ES725 が2台になりました.しかし,散財してますなあ^^;

いままでは,ブレーカーが飛ぶのが怖かったんですが,これで,安心して暖房をばんばんかけられます^^;
この部屋は20Aしか無いので,簡単にブレーカーが飛びます.
大丈夫だと思っていると,突然前触れもなく飛ぶので,本当にこまります.
電気の契約を変更すればいいんでしょうが,1年くらいで引っ越す可能性があることを考えると,使い回しがきくUPSでも買っておこうと思いました.
あと,雷でこけたこともあるので,UPSがついていれば安心です.

しかし,このUPS,やたらうるさいんです^^;
うるさいとは聞いていましたが,ここまでとは.特に725がうるさいですね.ES500 のほうはそれほどでもないんですが.
ジーッジーッという音が,断続的に聞こえてきます.
まあ,部屋は,すでにPCの大量のファンでうるさいから,大して状況が変わったわけではないんですが,ファンとは音が異質なので,少々耳につきます.
できるだけ,物陰に移動させて,何とか気にならなくなりました.

まあ,突然落ちるのは困るので,我慢することにしましょう.

投稿者 shingo : 02:11 | コメント (0) | トラックバック

2004年12月27日

i855GMEm-LFS+Gentoo Linux で不規則にハングアップ

カテゴリー: [自宅サーバ]

サーバ構築中に一番はまった事は,不規則なタイミングで,システムが応答しなくなることです.
試行錯誤の末,HDDへのアクセスが多いときに問題が起きることがわかりました.
Gentoo Linux の LiveCD からブートしたときは何ともなかったので,私が設定した kernel の問題でしょう.
kernel は,2.6.9-gentoo-r12 を使いました.

その辺に見当をつけて,kernel の configuration をいじっていたところ,
[Device Drivers] → [ATA/ATAPI/MFM/RLL support] → [Use multi-mode by default] を no にしたら,うまく動きました.
理由はさっぱりわかりませんが.

当分は,サーバ構築時のメモ書きが続く...かな?

投稿者 shingo : 16:40 | トラックバック

サーバのこと

カテゴリー: [自宅サーバ]

この blog は自宅にサーバを置いて,動かしているわけですが,その話を少し.

この前のサーバは,これ http://prodb.matsushita.co.jp/product/info.do?pg=04&hb=CF-L1XR でした.
24時間365日,2年以上連続稼働させていました.ブレーカーとばしても,ノートPCだから止まらなかったし^^;
ただ,無茶をさせすぎたわけで,そろそろまずいかなと思い始め,更新することにしたわけです.

あと,低消費電力の Pentium M がそこそこの値段になっていたことや,Ether が2つついていて,ルータにしてくださいといわんばかりの構成のPentium M 用のマザーボードがあったのも要因です.
マザーボード→ http://aopen.jp/products/mb/i855gmemlfs.html

確かに,ちょっと割高なのですが,そこそこの値段で,そこそこのパフォーマンスで,低消費電力のサーバができました.常時稼働なので,消費電力が重要なところです.よけいな発熱もないのもいいところ.

ただ,ブレーカーをとばすしたりすると落ちてしまうので,結局UPSを買うことになりそうです.結局割高かな.

投稿者 shingo : 14:50 | トラックバック