Home

技術系のメモと日々の雑感

Apache の graceful で悩む

とある Web サイトを立てたときの話。
アクセス数は大したことないものの、コンスタントに見にくる人がいるサイトだったので、Apache の再起動のときは影響を少なくするために graceful を指定していた。
自分ではこれで問題なく運用しているつもりだったんだけど、ある人から、今の設定では logrotate が走るときに Apache の子プロセスが強制的に切られるよと言われて冷や汗。
logrotate の設定はバーチャルホスト用のログの指定を追加したぐらいでデフォルトのを使い回していた。
確認してみると、/etc/logrotate.d/httpd では httpd の rc スクリプトが reload 付きで呼ばれている。
ここまではなんとなく記憶にあった。
で、/etc/rc.d/init.d/httpd の reload の処理を見ると、確かに -HUP が送られるようになっていた。
なるほど、そういうことか。
でも、logrotate が走るときにも graceful で呼ばれるようにすると、リクエストを処理しているバーチャルホストのログだけローテーションされるタイミングが遅れるんじゃないかな?
結局、graceful だけで運用するのもちょっと不安ということで、logrotate の頻度を週イチに減らして逃げることになった。
ときには ”解決したように見せる” ことも必要だしね。
って、誰に言ってるんだろ・・・。

LVS(Linux Virtual Server)環境を作ってみる

ロードバランサと聞くとまず最初に箱モノが頭に浮かんで、とにかく難しいイメージがあったので今まで近寄ることすらしてなかったけど、あるところで LVS(Linux Virtual Server)が実際に動いているのを見てコロッと考えが変わってしまった。
で、自分でも設定方法ぐらいは知っておきたいと思ったので、暇を見つけてトライしてみた。

続きを読む

MySQL Connector/ODBC で再接続に失敗する

近頃、Access2000 から「テーブルのリンク」を使って ODBC 経由で MySQL に接続することがよくあるんだけど、Access を終了すると次に接続するときに必ず失敗するという現象が出ていた。
イメージのように、データソースに保存したはずの Server と Database の値が空になってしまうのだ。
しかも、ここで Server と Database を指定しても接続できない。
Test したら Connection Successful になるんだけどなぁ。
テーブルのリンクを設定するときに「パスワードの保存」にチェックしても駄目だった。
MySQL Connector/ODBC のバージョンは 5.1.4 で、オプション(Details)の中にある「Don't prompt when connecting」にチェックしてみてもやはり現象は変わらず。
テーブルのリンクのアイコンを削除して新たに作り直せば接続できるので、とりあえずこの方法で逃げてたけど、この前データソースの設定を「システム DSN」から「ユーザ DSN」に移したら回避できてしまった。
1ヶ月以上見て見ぬフリをしながら使ってきたので本当にスッキリ!
でも、過去に「ユーザ DSN」で試して駄目だった記憶があるんだよなぁ。
「システム DSN」のままで問題なく使えているという話も聞いたことがあるから、この現象には他の要因も絡んでそうだ。

Smolt

Linux の利用状況を集めている Smolt の Stats ページが面白い。
Runlevel のページを見たら 0 とか 7 なんてのがあるので、情報を送る前にユーザが色々といじってるみたいだけど。
まぁ、それを差し引いてもここに集まっている情報は色々と参考になるね。
まだ Smolt そのものについての情報は少ないみたいなので、Fedora 9 ではどんな構成になっているのかざっと見てみることにした。

続きを読む

Bad file or directory type

ここ最近 Fedora の Live CD ばかり触っていた。
これが思いのほか面白くて、それならばとディスクにインストールしてしまうことにした。
ところが、すでに CentOS が入っているマシンだったので、デュアルブートにするつもりで GRUB のインストールをスキップしたら、CentOS 側で Fedora の設定を追加しても
Error 2: Bad file or directory type
とエラーが出てブートできないという現象が。
GRUB のコマンドを手打ちして確認してみると、kernel の指定のところで /boot ディレクトリが見付けられないとのこと。
ひょっとして GRUB のバージョンが違ってるのかと思ったらどちらも 0.97 だった。
Fedora 側で GRUB をインストールしたら当然ながらブートできるので、しばし頭を抱えつつ Web で情報を探してみると
・・・あった。
Fedora 9 では inode を作成する割合が従来の 128 バイトから 256 バイトに変わっているそうだ。(mkfs.ext3 の -i オプション)
ただし、/boot が含まれるパーティションが小さければ(1GB未満?)今まで通り 128 バイトで作られるんだとか。
横着して / パーティション(8GB)だけ切っていたのが裏目に出たわけか。
で、あらためて /boot を別パーティション(100MB)で切り直してインストールしたら、今度はすんなりいってくれた。
どうやら今回はかなりレアな地雷を踏んでしまったようだね。