メイン

2011年10月06日

Scientific LinuxとCentOSの違い

Software Designの2011年10月号に「もう1つのRHELクローンOS Scientific Linux(以降、SL)の実力やいかに!?」という記事がありました。
SLとCentOSの違いについて記載があったのでそれを元に少し補足して紹介します。

・パッケージの自動アップデートが有効となっている
yum-autoupdateによる自動アップデートが有効となっています。
無効とする場合は、/etc/sysconfig/yum-autoupdate を編集します。

-- /etc/sysconfig/yum-autoupdate
ENABLED="false"
--

・デフォルトではマイナーバージョンのアップデートはしない
SLでは、安定稼働しているバージョンからアップデートしないよう、マイナーバージョンのアップデートはされずに元のバージョンのままとどまりつつセキュリティアップデートは適用する、というポリシーとなっているようです。

これを回避してマイナーバージョンアップするには、yum-conf-sl6xをインストールし、リポジトリキャッシュをクリアしてからアップデートを実施します。

 # yum install yum-conf-sl6x
 # yum clean all
 # yum update

 # cat /etc/redhat-release // RHEL系のOSバージョンを表示
Scientific Linux release 6.1 (Carbon)

マイナーバージョンアップを無効にしたい場合は、リポジトリの設定ファイル /etc/yum.repos.d/sl6x.repo の enabled の値を1から0に変更すればよいです。

・サードパーティリポジトリの追加が簡単
EPELやRPMforgeなどのサードパーティのリポジトリが、yum installで簡単に追加できるようになっています。

- EPELリポジトリの追加。

 # yum install epel-release yum-conf-epel

- RPMforgeリポジトリの追加。

 # yum install rpmforge-release yum-conf-rpmforge

- ELRepoリポジトリの追加。

 # yum install elrepo-release yum-conf-elrepo

- ATrpmsリポジトリの追加。

 # yum install atrpms-release yum-conf-atrpms

2011年05月16日

CentOS 5ホストのXenゲストOSとしてScientific Linux 6をインストール

そろそろRHEL 6/CentOS 6の調査をしておきたい、と思っていたのですが、CentOS 6はなかなかリリースされないので、同じくRedHatクローンのScientific Linux 6(以下、SL6)を使用することにしました。

適当なサーバが手元になかったので、XenのゲストOSとして、virt-installコマンドを使用してインストールします。
ホストOSはCentOS 5です。
その際にハマったことがあったので、ここに記載しておきます。

・ホストOSのxenのバージョン
ホストOSのバージョンはCentOS 5.2、xenは3.0.3-41だったのですが、virt-installコマンドを実行すると、下記のようなエラーとなりました。

...
[2011-05-11 17:22:43 xend 3190] ERROR (SrvBase:88)
Request create failed.
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/xen/web/SrvBase.py",
line 85, in perform return op_method(op, req)
File "/usr/lib/python2.4/site-packages/xen/xend/server
/SrvDomainDir.py", line82, in op_create
raise XendError("Error creating domain: " + str(ex))
XendError: Error creating domain: (2, 'Invalid kernel',
'xc_dom_find_loader: no loader found\n')

調べたところ、比較的新しいOSのLinuxカーネルイメージ(2.6.30以降?vmlinux - Wikipediaより)は、gzip圧縮ではなくbzip2による圧縮を使用したbzImageという新しい形式になったそうです。
それで、xenがbzImage形式に対応していないので、カーネルイメージをロードできなくてエラーとなったようです。

(参考)
http://old.nabble.com/rawhide-domU-on-RHEL5.2-dom0--td19828250.html
https://bugzilla.redhat.com/show_bug.cgi?id=457199

xenのみアップデートすれば解決したのかもしれませんが、せっかくなので、ホストOSのカーネルを含めた全アップデートを実施し、CentOS 5.6、xen-3.0.3-120としたところ、'no loader found'のエラーは出なくなりました。

・インストール時のゲストOSへのメモリ割り当て
ゲストOSのメモリ割り当ては最小限にしたかったので、virt-install時の引数で --ram=128 のように128MBを指定しました。
すると、SL6のCUIインストーラが起動したのち、
'You do not have enough RAM to install Scientific Linux on this machine.'
というメッセージが出て終了してしまいます。
256MBにしても同様のエラーとなり、結局、384MB割り当てると、無事インストールを完了できました。

virt-installコマンドの引数は下記のような感じです。

# virt-install \
--paravirt \
--uuid=0e20a1b5-f72b-4dbd-a7b6-3886b713ff24 \
--name=sl6server \
--vcpus=1 \
--ram=384 \
--mac=00:16:3e:59:1f:01 \
--file=/var/lib/xen/images/sl6server.img \
--file-size=10 \
--location=http://ftp.riken.jp/Linux/scientific/6.0/i386/os/ \
--nographics

インストールが終了すれば、その後SL6へのメモリ割り当てを128MBに減らしても、OSは問題なく起動します。
ホストOS側で、XenゲストOSのconfigファイル
/etc/xen/sl6server を編集し、memory = 128 を指定します。

なお、SL6はCUIインストールだと、こちらではほとんど指定できず、下記のようになります。


  • パーティションは /boot が485MB、/ はLVMで残り全部、SWAPもLVMで768MBとなる。(指定したディスクサイズによるのかもしれませんが。)
  • パッケージは最小構成。
  • SELinuxは有効。

これが気に入らなければ、virt-managerを使うなりしてGUIインストールするとよいでしょう。

ファイルシステム、cronなど、RHEL 5からRHEL 6への変更点がいくつかあるようです。
これからいろいろ触ってみます。