21 October 2009

Amazon EC2:glibcとtty2〜tty6の不具合。CentOS編

CentOS 5.3をAmazon EC2上に構築した場合、何点かのエラーが発生し対処する必要がある。

・loopデバイスが無い → Xen用のカーネルモジュールに入れ替え
・iptablesが使えない → Xen用のカーネルモジュールに入れ替え
・glibc互換モードの警告 → glibcの再構築
・tty2〜tty6が無い警告 → 仮想端末を作らない暫定対処

上の2つは過去の記事で解決済みなので、この記事では下の2つの対処をする。

■ glibcが互換モードで動作している警告への対処

CentOS起動後、/var/log/messagesに次のようなエラーが記録されているはず。

kernel: *************************************************************** kernel: ** WARNING: Currently emulating unsupported memory accesses ** kernel: ** in /lib/tls glibc libraries. The emulation is ** kernel: ** slow. To ensure full performance you should ** kernel: ** install a 'xen-friendly' (nosegneg) version of ** kernel: ** the library, or disable tls support by executing ** kernel: ** the following as root: ** kernel: ** mv /lib/tls /lib/tls.disabled ** kernel: ** Offending process: init (pid=1) ** kernel: ***************************************************************

丁寧に、解決方法もメッセージに含まれていて、glibcの再構築か、TLSを切るかのどちらかということらしい。

Googleで同様の事例を検索すると… 『 EC2上にCentOS5.3をインストールする 』に同じ事例が書かれている。 この事例に習い、glibcを再構築する。

この手順は全て『 MathWiki : Xen Specific Glibc 』に書かれている通り行えばよい。

[root@domU ~]# useradd mockbuild [root@domU ~]# cd /mnt [root@domU mnt]# wget http://mirror.centos.org/centos/5.3/os/SRPMS/glibc-2.5-34.src.rpm [root@domU mnt]# mkdir /usr/src/redhat [root@domU mnt]# mkdir /usr/src/redhat/SOURCES [root@domU mnt]# rpm -ivh glibc-2.5-34.src.rpm [root@domU mnt]# vi /usr/src/redhat/SPECS/glibc.spec ※ 書き換え前 %ifarch %{ix86} BuildFlags="-march=%{_target_cpu} -mtune=generic"    ↓ ※ 書き換え後 %ifarch %{ix86} BuildFlags="-mno-tls-direct-seg-refs -march=%{_target_cpu}" [root@domU mnt]# yum install gcc gcc-c++ rpm-build [root@domU mnt]# yum install gd-devel libpng-devel zlib-devel texinfo libselinux-devel audit-libs-devel libcap-devel [root@domU mnt]# rpmbuild -ba /usr/src/redhat/SPECS/glibc.spec ※ ビルドが終了するまで90分程度 [root@domU mnt]# rpm -Uvh --force /usr/src/redhat/SRPMS/* [root@domU mnt]# rpm -Uvh --force /usr/src/redhat/RPMS/i386/* [root@domU mnt]# userdel mockbuild

■ tty2〜tty6が無い警告への対処

また今度書きます…

■ 参考にしたホームページ
MathWiki : Xen Specific Glibc
glibcのリビルド 4 Xen
EC2上にCentOS5.3をインストールする