Ellinikonblue.com Weblog

夢は夢のまま終わらせない…

Posted on Feb 07, 2011 at 23:31

最近の DNS サーバー設定( CentOS 5.5 の場合)

 先般、Ubuntu 10.04 LTS に KVM を インストールして構築した仮想マシンに、 CentOS をインストールして 玄箱 Pro の担っていたサーバー機能を再構築したとき、 その一つとして DNS( bind ) を 設定しました。
 その時、ちょっとこれまでとは余りに勝手が違ったのでこれをメモしておこうと思った次第。

 まず何より Yum で パッケージインストールした後、 設定ファイルをいじろうと /etc ディレクトリ以下をみても、それらしき設定ファイルがないと言うこと。
 まさかパッケージインストールでミスることもないだろうし、不思議に思ってしらべたところ、 最近の CentOS では bind を直で動かすのではなく chroot でコンテナ化した環境で動作させるようになっているですね。
 DNS に対するセキュリティーが取り立たされることが多くなった影響でしょう。

 ちなみに chroot して実行する bind の設定ファイルは 以下にあります。

/var/named/chroot/etc/named.conf

 chroot して実行されるコンテナ環境は /var/named/chroot ディレクトリ以下にあるので、 設定ファイル上に /var/named と記載しても、 実際は /var/named/chroot/var/named ディレクトリ以下を示すことになります。 このため、DNS の正引き、逆引きファイルもここに置く必要があります。

 設定ファイルや正引き/逆引きファイルの書き方が違うわけではないですが、 今後他のディストリビューションでも、セキュリティーを考慮して このようなパッケージングになっていくこともあろうかと思います。

Posted on Feb 06, 2011 at 18:10

GConf エラーで X(GNOME) が起動しないときの対処法

 今回、Inspiron Zino HD に Ubuntu 10.04 LTS を 導入して KVM 環境を導入し、 そのゲスト OS として CentOS 5.5 を インストールしました。
 その CentOS に限らず、 昨今のディストリビューションでは インストール時に最低一つの一般ユーザーを作成することが必須になっていて、 しかもそのユーザーのユーザー ID 、及びグループ ID を任意に設定できません。
 そこでインストール時に作成したユーザーの ID および グループ ID を変更したところ、X が立ち上っても何も表示されず、 挙げ句の果て表示されたのは

「設定サーバ (gconfd) との接続に失敗しました~」

と言うご無体なメッセージでした orz

 普段、コンソールで使いますので、特には困らないのですが、 気持ち悪いので本腰入れて調べたところ、 X 起動時に作成されるファイルがユーザー ID や グループ ID を変更したことによって、 書き換え不能になっていたことが原因でした。

対処としては以下のようなファイルが作成されていたら削除してみてください。
  /tmp/.ICE-unix/*
  /tmp/.X11-unix/*
  /tmp/orbit-`echo $LOGNAME`/*
  /tmp/=.mapping-`echo $LOGNAME`
  ~/.gconf/
  ~/.gconfd/save_state
  ~/.gnome2/.gnome-smproxy*
  ~/.gnome2/session
  ~/.metacity/sessions/*.ms
うちではこれで解消しました。
Posted on Jan 29, 2011 at 15:50

結論: KVM は使える!

 先般、 購入した デル Inspiron Zino HD への Ubuntu 10.04 LTS のインストール、 ストレージの繋ぎ換え、 KVM の導入、仮想マシンの構築と CentOS 5.5 インストールが ほぼ完了しました。

 Debian 化した 玄箱 Pro が担っていた役割は、 ほぼこの Inspiron Zino HD 一台で賄いきり、 もう一台ある Atom 搭載の X27DDebian を インストールしたサーバーと併せて 機能配置をどう再構成するかという段階になって、 それさえ決定すればひとまず 玄箱 Pro を 一線から引退させることができるというところまでできました。

 この移行を始める前は 2 コアとはいえ AMD Athlon II X2 P340 に 2GB のメモリーなどという 昨今では貧相と言えるリソースで、 果たして KVM を導入して、 個人宅用とはいえサーバーファームを構築できるのかちょっと不安視していましたが、 現状、ホスト OS が Ubuntu 10.04 LTS で、 ゲスト OS としてメモリーを 512MB 与えた仮想環境で CentOS 5.5 を一台動作させていますが、 CPU リソースが振り切ることはなく、二つあるコアのうち一方のコアは遊んでいる状態に見えます。 さほど使用頻度が高くない用途であれば、もう一、二台、仮想マシンを構築しても大丈夫そうです。

 またゲスト OS となっている CentOS の動作も 非常に安定していて、未だ原因不明でシャットダウンしたり、フリーズしたりということは皆無です。
 しかも、明らかに Debian を 動かしている 玄箱 Pro より動作はきびきびしていますし、 X Window 環境を含めてフルスペックの x86 バイナリが動作しています。
 ただ気になる点がないかというとそうでもなく、速度的に大容量のローカルファイルを読み書きすると、 ネイティブで動作している OS にはやはりかなわないようです。 感覚的には CoLinux で 動かしている Linux 環境のような体感ですが、 実測したわけではありませんが、それでも 玄箱 Pro よりは早く感じます。
 加えて環境的に頻繁に読み書きを行うホームディレクトリーや、 samba を 通して共有している領域などはホスト OS 側にマウントしたストレージに NFS を通して 読み書きをさせているので、この弱点を隠蔽できているのかほとんど気にもなりません。

 結論として KVM は 貧弱なマシンリソースでも十分に使えるというのが今現状の評価です。 先般、発表された AMD の Fusion APU を採用したプラットフォームとかでも AMD-V を実装しているらしいので、 無茶をしなければそこそこ動いてしまうのではないでしょうか?
# そう思うとまた用もないのに買ってしまいそうな自分が怖い… (^^;;;;;

 自宅の環境変更が完全完了したら、もうちょっと別の用途で使うことも検討して、 Inspiron Zino HD を KVM で 使い倒したいと思っています (^^)

「 AMD 、Fusion APU こと初の GPU 統合型プロセッサを発表」PC Watch より)
Posted on Jan 10, 2011 at 11:24

Ubuntu 10.04 LTS で VNC

 さてこれから デル Inspiron Zino HD に KVM を インストールする前に、サーバーとして運用するので、まずは VNC を 仕込んでみることにしました。
 で、いろいろ調査の結果、以下の方法でできました。

 まずはパッケージのインストール
> sudo aptitude update
> sudo aptitude install xinetd vnc4server
 次に /etc/services を編集しして以下の一行を追加します。
xvnc       5900/tcp        # VNC Server
 次に /etc/xinet.d/xvnc として以下の内容のファイルを追加します。
service xvnc
{
        disable         = no
        socket_type     = stream
        wait            = no
        user            = nobody
        server          = /usr/bin/Xvnc
        server_args     = -inetd -geometry 1024x768 -depth 16 -once -query localhost -securitytypes=none
}
 最後に /etc/gdm/custom.conf として以下の内容のファイルを追加します。
[xdmcp]
Enable=true
DisplaysPerHost=2
 以上の追加、修正が終わった時点で再起動すれば、 無事、VNC クライアントから 接続できました。
# 使ったクライアントは UltraVNC
## xinetd と gdm を再起動すれば OK というように記述してあるところもありましたが、 うちでは再起動しないとだめでした。。。

 前に他のディストリビューションでやった時はもっと苦労した記憶があるけどなぁ…
 まぁできたのだからこれでよし! 次こそは KVM 行ってみようか!!
Posted on Jan 04, 2011 at 00:12

デル Inspiron Zino HD に Linux をインストールした

 いきなり困りました。
 デル Inspiron Zino HD への Linux インストールを試みたわけです。 選んだディストリビューションは Ubuntu 10.04 LTS (Lucid Lynx) 。
 CentOS も考えたのですが、 1TB HDD を四発装填した CG-HDC4EU3500 を USB で繋いだときに容量を正確に 認識しない と言う問題もあり、また 6 も登場前ということもあって見送りました。
 まぁ正直、AMD Athlon II X2 P340 + 880G の組み合わせなら どれを選んでもそんなに手こずることもないだろうと高をくくっていました。  ところがどっこいしょ。
 Ubuntu 10.04 LTS の インストールが終わったところで、ネットワークインターフェイスを 一つも認識していないことに気がつきましました。
 これでは KVM (Kernel-based Virtual Machine) のインストールどころか、 パッケージのアップデートすらできません。
 おまけにそこらかしこのメニューも英語になってるし… orz

 おそらくネットワーク I/F を認識していないことが原因だろうと、 その後、CentOS 5.5 Live CD や Debian 5.0.7 ネットワークインストールなども試してみましたが全滅。

 調査の結果、ネットワーク I/F が Atheros Communications AR8151 とわかったので、 こちら からドライバーをダウンロードして、 コンパイル(インストールが終わった段階でコンパイルはできました)します。
 適当なディレクトリに展開して make → sudo make install してから再起動すると、 ネットワーク I/F を認識するようになりました。
 この後、(大量の)パッケージアップデートをかけると再びネットワーク I/F を認識しなくなりましたが、 もう一度、ドライバーをインストールして再起動してやると問題なく動作するようになりました。

 これも後になって調べてわかったのですが、以下のように dkms というパッケージを導入してから make してやると、カーネルが更新されたときに ドライバーの再インストールはいらなくなるようです。(未確認)
> sudo apt-get install dkms
> sudo make dkms
 これで何とか Linux の導入クリアー (^^)/
 次は KVM の導入。。。 また今回も先は長そうです… orz
Posted on Jul 23, 2010 at 23:26

X27D + CG-HDC4EU3500 でめざせ最強ファイルサーバ #8

 先般の autofs の 導入・設定・調整 で安定したと思っていた我が家のファイルサーバーですが、 大容量のファイルを転送に失敗する根本原因は autofs ではなく ネットワーク I/F のドライバーであったようです。

 気がついたのはサーバー側からクライアント側へ大容量ファイルの転送に失敗した際に、 /var/log/syslog に残っていた「 NETDEV WATCHDOG: eth0: transmit timed out 」というログ。
 これをそのまま、Google さんに聞いてみると、当たったのが NINXIT-BLOG さんちの以下の記事。

NINXIT-BLOG 「 NETDEV WATCHDOG: eth0: transmit timed out 」

 X27D にも採用されているオンボードの LAN インターフェイスである RealTek の RTL8168B は Debian GNU/Linux (lenny) インストール時に同じ RealTek の RTL8169 と誤認識され、 正常なドライバーがインストールされません。
 このために通信が非常に不安定になるようで、特に大容量のファイルなどを転送すると、 パケットロスが続発し、再送要求を繰り返し、最後にはタイムアウトしてインターフェイスごとダウン、 インターフェイスの再起動が行われていたようです。
 うちの場合、クライアントからサーバへの通信は問題ないのですが、 その逆、サーバーからクライアントへのファイル転送で頻繁にこける現象が続発しました。

 この現象を解消するには、正常な RTL8168B のドライバをインストールしてやる必要があります。  しかし、まずその前に、RealTek のサイトで公開されている Linux 用のドライバーはコンパイルして使用しなければならないため、コンパイル環境を整えなければなりません。 このとき、Linux のカーネルヘッダーも必要なため、以下のようにパッケージをインストールしてやる必要があります。
apt-get install gcc make linux-headers
 そのあとのコンパイルからドライバーのインストールまでは NINXIT-BLOG さんちの記事にあるとおりです。

 ただし、NINXIT-BLOG さんちは CentOS へのインストールですので、 Debian GNU/Linux の場合、 /etc/modprobe.conf が存在しないので、このまま OS を再起動したら元の木阿弥です。

 そこで 禁煙できない SE の独り言 さんちの 以下の記事を参考にしました。 こちらの記事では導入するドライバーは異なりますが OS 再起動後でも 正しいドライバーが導入する手法はそのまま使えます。

禁煙できない SE の独り言 「 D945GCLF:lenny に r8101 ドライバをインストール」

 正しいドライバーのコンパイル、インストール後、以下のようにコマンドを実行します。
# modprobe -r r8169
# modprobe r8168
# cat "blacklist r8169" >> /etc/modprobe.d/blacklist
# update-initramfs -u
 これでサーバーを再起動しても、間違いなく RTL8168B のドライバーを読んでくれるようになります。

 長くなりましたが、以上です。
 この作業終了後、我が家のサーバーからクライアントへ 20GB クラスのファイル転送を試みましたがビクともしませんでした。 今度こそ、今度こそほんとに解決 (^^)b
Posted on Jun 05, 2010 at 00:30

Ubuntu 10.04 LTS が VirtualBox v3.2.0 でいい感じ

 最近、また UNIX 環境が必要になって、 「 Oracle 」のロゴがでてくるようになった VirtualBox v3.2.0 を 使っています。 その VirtualBox の 仮想 PC で使っているのが最近リリースされた Ubuntu 10.04 LTS 。
 ここ数年、 Debian 系の ディストリビューションを使うことが多いのですが、 いまいちパーソナルユースに特化したようなつくりの Ubuntu は 好きではありませんでした。 しかし、今回は個人的な実験環境を作ることが目的だったこと、 リリースされたばかりで興味本位が先に立ったこともあり、Lucid Lynx (Ubuntu 10.04) を インストールしてみたのですが、これがこれまで使った Ubuntu で やっぱり一番よくできています。
# いや、最新バージョンなんだからあたりまえっちゅう話は置いといて。。。

 なにがって、多少設定を間違っても元に戻せるというところ。
 なにを言ってるんだだとお思いでしょうが、 個人的な経験上、GUI を作り込んだ Linux ディストリビューションって、 あれができるこれはできるはいいですが、何か間違えた設定をしてしまったとき、 元に戻すのが設定を変えるときより難しい。。。 下手すると元に戻らなかったりということがあります。
 ところがこの Lucid Lynx 、元に戻るんです。ちゃんと。 というか、そもそもそんなに設定の袋小路に入り込まない。
 感覚的なものなので、具体的にどこ?といわれると困るのですが、 たとえば以前のバージョンだと画面の解像度を変えるとメニューバーなどの配列がぐちゃぐちゃになって 元に戻せなかったり。。。

 今回の Lucid Lynx では Netbook Edition の出来がすばらしい。
 個人的な実験環境だと X でバンバン、ウィンドウを開くより、 VirtualBox で こじんまり開いたウィンドウの中でもそれなりに GUI な画面が動いてほしいという 個人的な要望にぴったり。
Image:20100602LucidLynxNBRemix.jpg
 うまく表現できているかはなはだ疑問ですが、百聞は一見にしかず、 今回の Ubuntu は 一度使ってみる価値あり。いや是非。
Posted on May 10, 2010 at 23:21

X27D + CG-HDC4EU3500 でめざせ最強ファイルサーバ #7

 Shuttle X27D に Debian をつっこみ、 コレガ CG-HDC4EU3500 を繋ぎ込んで、 自宅の主にファイルサーバーとして運用しているわけですが、 この CG-HDC4EU3500 が USB 接続で、 Debian 起動時に 固定的にマウントできない問題も autofs を導入することで解決しました。

( )
 しかし、この autofs 導入後、X27D からクライアントに 容量の大きいファイルをコピーする (逆方向は問題なく、コピー時間の短いサイズの小さいファイルは問題なし)際、 カーネルがコアをはくという現象に何度もみまわれました。
 何度か後に、autofs の timeout の設定近辺で起こることが多いことに気がついて、 この設定を長めにとると頻度が下がりました。 今は /etc/auto.master を以下のように 1800 秒( 30 分)に設定しています。
/mnt    /etc/auto.mnt --timeout=1800
 これで起動時でも外付け USB 接続の CG-HDC4EU3500 を 安定して定位置にマウントできるようになったので、 めでたく /home ディレクトリも CG-HDC4EU3500 側に 置けるようになりました。
 /etc/fstab で設定してしまうと起動時にマウントに失敗するので、 /home ディレクトリを丸ごと、CG-HDC4EU3500 に移動して、 /home 自身は移動先へのリンクを設定。
 これで X27D に内蔵した SSD への無駄な書き込みを減らせます。

 いよいよ使い勝手がよくなってきました。>我が家のファイルサーバ
 Good です。 (^^)b
Posted on Mar 22, 2010 at 00:18

X27D + CG-HDC4EU3500 でめざせ最強ファイルサーバ #6

Colspan 「 Linux で USB 外付けディスクを快適にマウントする」

 ある程度安定してくると、問題が起こらないとなにもしないもので、 だいぶ間があきました。。。。すみません。言い訳です m(_ _;)m

 CG-HDC4EU3500X27D に USB で接続していて、 /dev/sdb1 ~ /dev/sdb3 として OS 側からは認識しています。 ただ、CG-HDC4EU3500 は電源投入時、 HDD/RAID のチェックが終わって初めて OS 側から認識できる状態になるので、 たとえば他にストレージデバイスと認識されるものを一緒につないで X27D を起動した場合、 CG-HDC4EU3500 を /dev/sdb として認識してくれるとは限りません。
 他に Linux から HDD と認識されるデバイスをつなぐ予定はないので、いいと言えばいいのですが、 そう高をくくって設定してしまうと何かトラブったときにパニックになることは目に見えています。 可能な限り汎用的で、柔軟設定にしておきたいなと思うのが人情。  そこで上記の設定を施してみました。
 autofs をインストールして、/etc/auto.master に以下のように編集。
# autofs を初期インストールした状態では /etc/auto.master には実質、設定は何も記載されていません。
/mnt /etc/auto.mnt --timeout=60
CG-HDC4EU3500 は /dev/sdb としてつながっていましたので /dev/disk/by-uuid/ 以下から /dev/sdb にリンクしているものを見つけてから 以下のような内容の /etc/auto.mnt ファイルを作成します。
mnt_xfs1  -fstype=xfs  :/dev/disk/by-uuid/01234567-abcd-0123-abcd-a1b2c3d4e5f
 こうした上で autofs を再起動して、 /mnt/mnt_xfs1 にアクセスすると、自動的にディレクトリが作られ、 狙った CG-HDC4EU3500 上のパーティションにマウントされました。
 autofs を導入したら、auto.mnt に書いたディレクトリは /mnt からは消えてしまうことが注意点。そして消えたディレクトリは、 autofs がマウントするときに自動で作成されるため、自分で作る必要なしと言うところでしょうか。

 これで気兼ねなく再起動、USB 機器の接続ができるようになりました。快適快適 (^^)b
 もうちょっと CG-HDC4EU3500 を 活用したいので、時間ができたらもうちょっといじくってみる > 我が家のファイルサーバ

( )
Posted on Dec 11, 2009 at 20:00

sl を走らせてみた

futuremix 「 CentOS に“ sl ”コマンドを仕込む」

 おもしろそうなんで、うちでも走らせてみました。
Image:20091210slCommand.jpg
 Debian では 普通にパッケージインストールできました。

 いやただそれだけなんすが… (^^;
 Linux をインストールしたらついでについインストールしてしまいそう。 いたずら心、いたずら心。。。 (^O^)