2011年4月30日土曜日

AMI(Linux)のカーネルを"2.6.18-xenU-ec2-v1.5"にしてみた

スズキです。

今まで、ずっとデフォルトカーネル(2.6.16-xenU)を利用していたのですが、
近頃、"s3fs"や"cryptsetup"、そして"openswan"などカーネルモジュールに依存する
ソフトウェアをEC2で扱っていて、どうにもこうにも、デフォルトカーネルじゃ厳しくなってきたので、
他のカーネル(2.6.18-xenU-ec2-v1.5)を試してみました。

"2.6.18-xenU-ec2-v1.5"を選択した理由は、
こちらに、カーネルモジュールアーカイブが置かれていたからです。
つまり、カーネルモジュールアーカイブがあり、その中の最新のものを選んだことになります。

カーネルを変更するってことは、AMIからインスタンス起動時に指定する
AKIとARIを変更するってことですが、上記のものは東京リージョンだと下記となります。

▼ AKI
Name: aki-e809a2e9
Description:
ec2-public-images-ap-northeast-1/vmlinuz-2.6.18-xenU-ec2-v1.5-i686.aki.manifest.xml

▼ ARI
Name: ari-ba09a2bb
Description:
ec2-public-images-ap-northeast-1/initrd-2.6.18-xenU-ec2-v1.5-i686.ari.manifest.xml

"AWS Management Console"などでインスタンス起動時に、
下記のように指定するだけでOKです。


インスタンスが起動したら、ログインして下記コマンドで、
該当カーネルが適用されていることを確認することができます。

# uname -a
Linux ip-10-150-181-26 2.6.18-xenU-ec2-v1.5 #1 SMP
Fri Sep 24 01:03:38 EDT 2010 i686 i686 i386 GNU/Linux

カーネルモジュールは、下記のようにダウンロードして展開しておきます。

# cd /
# curl -OL http://s3.amazonaws.com/ec2-downloads/ec2-modules-2.6.18-xenU-ec2-v1.5-i686.tgz
# tar xvzf ec2-modules-2.6.18-xenU-ec2-v1.5-i686.tgz
# rm ec2-modules-2.6.18-xenU-ec2-v1.5-i686.tgz
※ "64 bit"の場合は"ec2-modules-2.6.18-xenU-ec2-v1.5-x86_64.tgz"です。

展開したファイル群にシンボリックリンク切れがあったので、削除しておきます。

# cd /lib/modules/2.6.18-xenU-ec2-v1.5
# rm -f source
# rm -f build

この状態でリブートして"/var/log/messages"を確認すると、
下記のようなエラーが出力されていました。

...
Apr 30 00:48:02 ip-10-150-181-26 modprobe: FATAL:
Could not load /lib/modules/2.6.18-xenU-ec2-v1.5/modules.dep:
No such file or directory
...

"modules.dep"がないってことなので、下記のように"depmod"を実行することで解決しておきます。

# depmod

この状態でリブートすると、"/var/log/messages"にも特に気持ち悪いメッセージは出なくなりました。

ちなみに、"SUZ-LAB謹製AMI"では、最後に"2.6.16-xenU"の残骸を
下記のように削除しておきました。

# rm -f /boot/vmlinux-syms-2.6.16-xenU
# rm -f /boot/System.map-2.6.16-xenU
# rm -f /boot/message
# rm -f /lib/modules/2.6.16-xenU

これ以上ってなると、カスタムカーネルか...
--------
http://www.suz-lab.com

0 コメント: