Linux

Linuxマシンの状態監視にsysstat&ksarがすごい便利

Linuxマシンで何かプロセスを動作させていて、プログラムのログを確認すると「昨日の晩はやたら重かったけどなんかあったかな」とその瞬間の状態を確認したかったりする。

そんなときはシステムの状態をログに残すsysstatが便利。
何ができるかというと、CPU使用率やメモリ使用率、ネットワークのトラフィック、IOなどをログに残してくれる。

sysstatについてはいますぐ実践! Linux システム管理を参照する。

sysstatを使うとバイナリファイルにログが吐かれ、sarコマンドでテキスト形式で状態を確認する事ができる。
が、テキストファイルなのでいまいち把握しづらい。
そこで、sarをグラフで表示してくれるksarを使用する。
これが結構便利だ。
SSHで接続して、相手サーバでsarコマンドを実行して自動でデータを取得しグラフを表示してくれる。よって、ログファイルをコピーしてきて・・・なんて事は必要ない。

sysstatのインストールは適当にapt-get install sysstatとか、yum install sysstatとか。

/etc/default/sysstatを開き、enable=”true”になっている事を確認する。

後はksarでログを見たいマシンに接続するだけ。
お手軽でとても便利。

abort: couldn’t find mercurial libraries

CentOS4.7にMercurial1.6.4を入れようとしたらPythonが古すぎると怒られた。
よってPython2.7を入れてからMercurialをインストール。
インストールは正しく成功したけどMercurial実行時に次のエラーが出た。

$ hg
abort: couldn't find mercurial libraries in [/home/kkitamu/bin /home/kkitamu/lib/python27.zip /home/kkitamu/lib/python2.7 /home/kkitamu/lib/python2.7/plat-linux2 /home/kkitamu/lib/python2.7/lib-tk /home/kkitamu/lib/python2.7/lib-old /home/kkitamu/lib/python2.7/lib-dynload /home/kkitamu/lib/python2.7/site-packages]
(check your install and PYTHONPATH)

どうやらMercurialのライブラリが見つからないようだ。
HOME以下にバージョンが異なるPythonがインストールされており、Mercurialはlib/python2.7を見に行ったが見つからないようだ。
調べてみるとMercurial用のライブラリがlib/python以下にインストールされているようだった。
よって $ export PYTHONPATH=/home/kkitamu/lib/python を実行しライブラリの場所を教えてあげる。
ホントはMercurialインストール時にlib/python2.7以下にインストールしてくれるのが正しそうだが・・・。
とりあえず様子を見てみよう。

ファイルシステムをext4にしてみる

2TのHDDを買ったので、さっそく新しいサーバ機に接続してみる。
ファイルシステムはext4だ。

$ sudo mkfs.ext4 -c /dev/sdc1

-c オプションを付けるとbad blocksのチェックを行う。
2TのHDDでチェックするとチェックに5時間ぐらいかかりそうだ・・・。

Ubuntu9.10+RAID1+KVM+ブリッジ接続

以前のサーバを導入してからぴったり5年たったので、新サーバを導入してみた。

Core i7の2.6G、メモリ6G、HDD1TのRAID1。
5年前に買ったCeleron 2.4G メモリ256G、HDD80GのRAID1とは大違いのスペックだ。

早速Ubuntu9.10を入れて、その上にRAID1を構築してKVMで仮想化し、その上でサーバを動かしてみた。
RAID1の構築はUbuntuのRAID1構成によるインストールをみてサクッと完了。
KVMは結構良い感じ。VMwareよりはやっぱりめんどくさいけど、VMwareはVMwareでいろいろ最新のLinuxだと入れるのめんどくさかったりするからKVMで十分だ。
問題はまだKVMが新しい技術だから情報が少ないことぐらいか。

KVM上のネットワークをブリッジ接続するのがちょっと手間取った。
kvmのブリッジ設定を参考に設定したらちょっと解決。
でもゲストOSから外の世界が見えない・・・。どっか設定ミスってるんだろうか。
VMwareはなれてるから設定の仕方わかるけどKVMはまだよくわからないな。

とりあえず旧サーバの情報は仮想化したサーバの上に引っ越ししよう。
仮想化するとオーバーヘッドは出てしまうけど管理は楽なのでランニングコストは下がるはずだ。

それにしても5年前と比べてスペックあがったなぁ。
あと5年たったらコアが20個ぐらいあってメモリが50GほどあってHDDが100Tぐらいあるんだろうか。
Linuxもメジャーバージョンアップして3が出てるかもしれないな。
とりあえずこのサーバを使い倒すぞ!

RainbowdevilサーバRAID1片肺稼働中

いつものように、家でプログラミングする際にSubversionでのソースコードの同期を実行した。
すると家のメインサーバにつながらない。

あれ?
外部には繋がるのに・・・。
ハブを見るとLINKは繋がっている。

あらら、メインサーバが固まったかな?と強制リブート。
しかし繋がらない。

もしやハードウエア障害か?と思ってモニタをメインサーバに繋いで見ると・・・。
なんとRAID1でミラーリングしている片方のHDDが死んでしまっているじゃないか!
起動中のHDDチェックでIOエラーが出まくっている。
とりあえず死んだHDDを切り離す事で起動はしたが、現在メインサーバは片肺稼働中。いつ死んでもおかしくはない。

もう5年近くになるサーバなのでそろそろ買い換えたいが、業務用サーバなのでかなり高い。
買い換えたいスペックだと50万近くに・・・。ぼったくりかよ!!

現状はHDDが80Gなので、どうせなら1TのHDDを2台買って1TのRAID1にするか。
それをするならOSも最新のでクリーンインストールしたいな。
Ubuntuを入れたいけどRAIDのドライバ提供されてるのかな。
CentOSはドライバ提供されてるけどあんまり好きじゃないんだよな。

あー、どっちにしろ出費がかさむ。

どうでも良いけど片肺って差別用語なんだってね。
じゃあRAID1で片方のHDDが死んだ状態はどういえばわかりやすく適切なんだろうか。
Degraded状態と言ってもわかる人はRAID管理してる人ぐらいだろうし。

LinuxでWorld of Warcraft

最近Blizzard EntertainmentのMMORPG、World of Warcraftを遊んでいる。
全世界で1000万アカウントという化け物オンラインゲームだ。

Warcraft3でNightElf使いだった自分はWoWでもNightElfを選択。
外を歩いていると、道をHuntressが警備していたり、Ancient Protectorがドシンドシンと歩いていたりとおなじみのキャラがいて懐かしい。

で、WoWは海外で人気があり、LinuxでWindowsアプリケーションを動かすWineでもしっかりメンテされているという記述を見たことがあるのでLinuxにインストールしてみた。
ちゃんとドキュメントがあるのもすばらしい。
Ubuntu – WorldofWarcraft
結果こんな感じ。Window表示だけどフルスクリーンも可。
wow1.jpg

World of WarcraftのLinux版だよと言われてもわからないぐらい完璧に動作。
さすが海外で人気があるとメンテナンスの充実度が違うなぁ。
外人の本気を見た気がする。
何もかもが完璧に動作し、日本語入力も可能だった。

インストールや動作は上記ドキュメントの通りにすればOKだったけど、一つだけ問題が。
インストールディスクの中には3Gのファイルが入っているんだけどこれがなぜか2Gちょいまでしか読み出すことができなかった。この問題は、DVDをWindowsで読み込み、ファイルをLinuxにコピーしてインストールすればいけた。

ちなみにUbuntu 8.04、wine-1.1.3で動作確認。

Firefox上でサウンド同時再生

いつの間にかFirefox上でのサウンド再生と、その他のアプリのサウンド再生を同時にできなくなった。
どうやらどちらかを再生するとサウンドデバイスがビジーになるようだ。
Firefox以外だと同時再生できるのでFlashが怪しいと判断。Mixerじゃなくデバイス自体を使いに行くようになってるのか??
ググってみると以下の方法が見つかり、実行すると問題が解決した。

Ctrl+Sで画面への出力が止まるのをやめる

Linuxの端末で作業中にCtrl+Sを押すと画面への出力が止まってしまう。
Ctrl+Qで復帰できるが、めんどくさい上Ctrl+SやCtrl+Qのショートカットが使えなくなるので、これらを無効にする。

端末上で以下のコマンドを実行すればOK。適当に.bashrcや.zshrcに追加しておけば自動で無効になる。

Ubuntu上でFlashのフォントが変わった

8.04にしたらなんかFlashでのフォントが以下のように変わった。バージョンアップ時にGUIに設定しているフォントがFlashに反映されたようだ。
niconicoSS2.jpg

フォントはLinux、Windowsともに常用しているM+ と IPAフォントの合成フォント、フリーな癖してめっちゃきれいなフォント。GUIにもプログラミングにも最適だ。

こっちのほうが好きなので別のマシンでも変更したいけどどうすればいいんだろう。
と思ったら設定している人がいた。

[Linux][Ubuntu][Firefox]ニコニコ動画のフォントを変えてみる
http://d.hatena.ne.jp/CoolDriver/20080228/1204199628

情報の通りに修正すればフォントを変更することができた。例にあるのは同じフォントだけどゼロに斜線を入れているほうなのでフォント名は以下の通り。
<string>M+2VM+IPAG circle</string>

ちなみにニコ動の画像は「ドラクエ5 マイナーモンスターズ
ドラクエ5で普通は使われないマイナーなモンスターだけ(人間キャラも使わない)でクリアするという制限プレイの動画。ダンスニードルのダニーが非常にかっこよく、また愛すべき馬鹿の子ですばらしい。ボス戦の数々の死闘は必見。

Ubuntu 8.04でVMware Server

家のUbuntuをUbuntu 8.04にアップグレードしてみた。
Firefox3bateになったぐらいで特に目新しい変化はない。
ATOK X3もそのまま順調に使用可能だ。

もう一台Ubuntu 7.10がインスコされてるマシンがあるけどそっちはアップグレードせずそのまま使おうかな。これといって8.04でうれしいこともないし。

ところで8.04にすると例によってVMwareが動作しなくなる。
以下のページと同じ現象になったので同じように対応。
http://myn.meganecco.org/2007122300

それではまだ足りず、./vmware-config.plすると以下のようなエラーメッセージ。

これはvmware-any-any-update116を使うことでいけた。
入手先はhttp://groups.google.com/group/vmkernelnewbies/files

VMware serverもaptでお気軽インスコできるといいんだけどな。