AmazonでCentOSのサーバーを構築する際に、今まではRightScaleさんが作ったイメージを利用していたのですが、やっぱりちょっと気持ちが悪いので、以下のサイトを参考にして自力で構築した。
基本的には上記の手順を踏めば問題なくインストールできたが、ec2-get-console-outputコマンドでコンソールを確認すると以下のようなエラーが出ているのを発見した。
これらのエラーはEC2だけでなくXen上にCentOSを構築する際にも発生するらしい。
エラーその1
***************************************************************
***************************************************************
** WARNING: Currently emulating unsupported memory accesses **
** in /lib/tls glibc libraries. The emulation is **
** slow. To ensure full performance you should **
** install a 'xen-friendly' (nosegneg) version of **
** the library, or disable tls support by executing **
** the following as root: **
** mv /lib/tls /lib/tls.disabled **
** Offending process: init (pid=1) **
***************************************************************
***************************************************************
エラーその2
INIT: Id "2" respawning too fast: disabled for 5 minutes
INIT: Id "3" respawning too fast: disabled for 5 minutes
INIT: Id "4" respawning too fast: disabled for 5 minutes
INIT: Id "5" respawning too fast: disabled for 5 minutes
INIT: Id "6" respawning too fast: disabled for 5 minutes
エラーその1への対策
このエラーを要約するとインストールされたglibcがXenに対応していないので対応したものに変えてということらしい。(今回はEC2ですが。。。)
あいにく日本語での対処方法はほとんど見つからなかったが、以下のサイトを参考にしてglibcのソースパッケージを再構築することで、メッセージが出なくなった。
administration:xen:howto:glibc [MathWiki]
作業内容は以下の通り。
- CentOSのリポジトリから同じバージョンのglibcのソースパッケージを入手。
(今回は、glibc-2.5-34.src.rpm)
- ダウンロードしたパッケージをインストールする。
(依存関係があればそれらもインストール)
- 上記のサイトに記載されている「CentOS Xen glibc RPM HOWTO」通りにglibc.specを修正
- rpmbuild -ba glibc.specを実行してRPMパッケージを再構築
- できあがったRPMパッケージを全てインストール
以上でエラーが出なくなった。
エラーその2への対策
このエラーについては正直言って意味が分からないのですが、そういものらしいというレベルの理解でよさそうなので。。。(笑)
対策内容は以下の通り。
/etc/inittabの46行目から50行目をコメントアウトする。
変更後(44行目〜50行目を抜粋)
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
他にも。。。
Ec2上でCentOSを構築してもそのままでは停止したときに消えてしまうのでS3にバックアップする必要がある。
S3にバックアップするには、ec2-ami-toolsのインストール及びカーネルモジュールの修正が必要だった。
詳細は割愛しますが、以下のURLを参考にして対処した。
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=798
あーめんどくさかった。。。