&color(red){Cent OS5 移行に伴う変更部分のみ記載 (共通部分は 2006 の設定に必要項目を追記している)};
#contents();
*** インストール計画 [#u80c396c]
- Cent OS4 の環境は /boot /swap を含め全ての環境を RAID5 ディスクアレイ上の LVM に構築していた
- /home 以下、/var/www 以下、/opt 以下などアプリケーション依存データの継承性を考慮すると、これらを OSバージョン依存データとは分けて管理することが望ましい
- Cent OS5 では OS kernel 依存部専用の 単純ディスク(≠RAID、≠lvm) を /dev/hdc に増設した
- 従来の raid5 ディスクは /raid にマウントし、Cent OS5 環境からアクセスできるようにした (当然 /etc は参照しない)
- /home、 /var/www など一部のファイルは /raid 以下の構造に symbolic link を張ってあるが、スクリプトの記述などは出来るだけ明示的に /raid/home/munakata などと フルパスを指定するようにしている
- ディスクジオメトリとマウントポイント
|物理デバイス名|論理デバイス名|Cent 4|Cent 5|h
|/dev/sdb1|||/boot|
|/dev/sdb2|||/|
|/dev/hdb2|||/opt_ftp|
|/dev/sda2|||/dtv_rec|
|dev/mapper/VolGroup00-LogVol00||/|/raid|
|dev/mapper/VolGroup00-LogVol00|/dev/sdc1|/boot|/mnt/cent_boot|
*** ブートメソッド [#zb1c85a0]
- Cent OS5 インストール時の設定で /boot を /dev/hdc1 に設定した
- Cent OS5 環境で kernel update が実行されると kernel binary image、init RAM disk image は /boot に追加展開される
- 同時に /etc/grib.conf が自動編集されて 新しい kernel image を初期起動環境に再設定する
- &color(red){しかし、システム起動時のブートローダーは Cent OS4 の /boot 設定を参照して起動イメージを決定している};
- &color(red){従って yum によって更新された /etc/gub.conf は参照されない = 起動イメージが更新されない};
- この問題を解決するために kernel 更新時には以下の設定をマニュアルで行う必要がある
-- yum で kernel が更新された事を確認する
-- &color(red){Cent4 用の grub.conf にこの更新内容マニュアルで追加するが、このファイルは /raid/etc/grub.conf ではアクセスできない};
-- それは /raid/etc/grub.conf が /boot/grub/gub.conf へのリンクになっていて、Cent4 の /boot にアクセスできないから
-- &color(red){この問題を解決するために、シンボリックリンク先のファイル (=/mnt/cent_boot/grub.conf ) を直接編集する};
-- grub.conf の中では (Cent OS5 環境の)/boot 以下のイメージを直接指定することができる
[root@spirit ~]# cat /mnt/cent_boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
#default=0 force to use old kernel, auto-updated kernel not includes AACRAID
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title CentOS 5 (2.6.18-8.1.3.el5)
root (hd3,0)
kernel /vmlinuz-2.6.18-8.1.3.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-8.1.3.el5.img
title CentOS 5 (2.6.18-8.1.1.el5)
root (hd3,0)
kernel /vmlinuz-2.6.18-8.1.1.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-8.1.1.el5.img
title CentOS 5 (2.6.18-8.el5)
root (hd3,0)
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-8.el5.img
title CentOS (2.6.9-42.0.10.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.0.10.EL ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.9-42.0.10.EL.img
title CentOS (2.6.9-42.0.8.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.0.8.EL ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.9-42.0.8.EL.img
*** グラフィックスボード [#a60600d0]
- Spirit には ATI Radion X1300 ・・・・ ファンレス、低価格ボードを組み込み
- &ref(ati_spirit.JPG);
- [[CentOS への ATI glx ドライバーのインストール手順:http://www.centos.org/modules/newbb/viewtopic.php?topic_id=5327]]
- しかし、Mesa の OpenGL が動作しているな... なぜ ?
[root@spirit ~]# fglrxinfo
Xlib: extension "XFree86-DRI" missing on display ":0.0".
display: :0.0 screen: 0
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.5 Mesa 6.5.1)
*** 3D Desktop ( Compiz , AIGLX ) [#c9ea5a85]
- 結果的には Radion X1300 (低価格、ファンレスボード)ではハードウエアが OpenGL に対応していないため動かせなかった
- AIGLX(Accelerated Indirect GL X)は,Fedora Projectが開発しており,デスクトップでOpenGLの機能を利用して様々な表示効果を実現する。
- AIGLX を動かすには グラフィックスボードが OpenGL の &color(red){DRI (=Direct Rendering Infrastructure)}; をサポートしていなければならないが、下記の X起動ログで DRI compatible でないといわれた
[root@spirit ~]# tail /var/log/Xorg.setup.log
Build ID: xorg-x11-server 1.1.1-48.13.0.1.el5
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Module Loader present
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/dev/null", Time: Fri May 11 00:14:04 2007
(++) Using config file: "/tmp/tmpjqbOytxorg.config"
(EE) AIGLX: Screen 0 is not DRI capable
- 参考 URL
-- [[IT pro 【Linuxウォッチ】第29回 Momonga Linuxで3Dデスクトップ「AIGLX」を試す:http://pc.nikkeibp.co.jp/article/COLUMN/20060919/248376/]]
-- [[AIGLX project wiki:http://fedoraproject.org/wiki/RenderingProject/aiglx]]
* メール [#y0673fed]
** fetchmail [#lcdf3de1]
- rc ファイル (/raid/home の各ユーザーディレクトリに個別に設定)
- 自動起動スクリプト[/etc/rc.d/init.d/fetchmail] (/home のロケーションを書き換え) ---- &ref(fetchmail);
-- /etc/rc.d/init.d の下に下記のファイルを作成し実行権を付与
-- chkconfig fetchmail on で自動起動を設定
-- 各ユーザーの rc ファイルを読み込んで実行できるか検証
[root@spirit ~]# cat /etc/rc.d/init.d/fetchmail
#!/bin/bash
#
# Fetchmail
#
# chkconfig: - 99 20
# description: Fetchmail auto start script
# Source function library.
. /etc/rc.d/init.d/functions
start() {
# Start daemons.
for user in `ls /raid/home/`
do
if [ -f /raid/home/$user/.fetchmailrc ]; then
if [ ! -f /raid/home/$user/.fetchmail.pid ]; then
echo "fetchmail for $user starting..."
su $user -s "/bin/bash" -c "/usr/bin/fetchmail"
else
PID=`cat /raid/home/$user/.fetchmail.pid|cut -d " " -f 1`
ps $PID>/dev/null
if [ $? = 0 ]; then
echo "fetchmail for $user is already started..."
else
echo "fetchmail for $user is restartng..."
su $user -s "/bin/bash" -c "/usr/bin/fetchmail"
fi
fi
fi
done
if [ -f /root/.fetchmailrc ]; then
if [ ! -f /var/run/fetchmail.pid ]; then
echo "fetchmail for root starting..."
/usr/bin/fetchmail
else
PID=`cat /var/run/fetchmail.pid|cut -d " " -f 1`
ps $PID>/dev/null
if [ $? = 0 ]; then
echo "fetchmail for root is already started..."
else
echo "fetchmail for root is restartng..."
/usr/bin/fetchmail
fi
fi
fi
}
stop() {
# Stop daemons.
if [ -f /var/run/fetchmail.pid ]; then
echo "fetchmail for root stoping..."
/usr/bin/fetchmail --quit
fi
for user in `ls /raid/home/`
do
if [ -f /raid/home/$user/.fetchmail.pid ]; then
echo "fetchmail for $user stoping..."
su $user -s "/bin/bash" -c "/usr/bin/fetchmail --quit"
fi
done
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
run="0"
if [ -f /var/run/fetchmail.pid ]; then
PID=`cat /var/run/fetchmail.pid|cut -d " " -f 1`
ps $PID>/dev/null
if [ $? = 0 ]; then
run="1"
echo "fetchmail for root is running..."
fi
fi
for user in `ls /raid/home/`
do
if [ -f /raid/home/$user/.fetchmail.pid ]; then
PID=`cat /raid/home/$user/.fetchmail.pid|cut -d " " -f 1`
ps $PID>/dev/null
if [ $? = 0 ]; then
run="1"
echo "fetchmail for $user is running..."
fi
fi
done
if [ $run == "0" ]; then
echo "fetchmail is not running"
exit 1
fi
;;
*)
echo "Usage: fetchmail {start|stop|restart|status}"
exit 1
esac
exit $?
[root@spirit ~]#
- マニュアルページ
-- http://www.big.or.jp/~mio/it-old/fm/ref/fm_ref_fetchmailrc_5.html
-- http://jo1upk.blogdns.net/linux/index.php?%E3%82%BD%E3%83%95%E3%83%88%2Ffetchmail
* バックアップサーバー上のスクリプト (rsync で差分更新) [#p6dc63bb]
- rsync で差分を更新する (cp コマンドよりずっと高速)
- ssh の rsa 鍵交換によりパスワードの入力がいらなくなっている(cron での自動実行が可能)
-- &ref(archives_sync.sh);
-- &ref(image_sync.sh);
-- &ref(mail_sync.sh);
-- &ref(peewee_sync.sh);
-- &ref(wiki_sync.sh);
-- &ref(webdav_sync.sh);
[root@backup script]# cat archives_sync.sh
#!/bin/sh
# sync spirit.hmuna.com master archived data to "backup.hmuna.com" remote copy
while [ -n "$(echo $1 | grep '^-')" ]; do
optins="$options $1"
shift
done
# spirit のバックアップアーカイブの更新分をコピー (メール以外)
# webdv と svn は以前のバックアップを消して最新のアーカイブだけを保存
#rm -fR /backup/archives/webdav/*
rm -fR /backup/archives/svn/*
eval `ssh-agent`
cd /root
ssh-add id_rsa
rsync -avx -e ssh spirit.hmuna.com:/opt/backup/web/*.tgz /backup/archives/apache
rsync -avx -e ssh spirit.hmuna.com:/opt/backup/etc/*.tgz /backup/archives/etc
rsync -avx -e ssh spirit.hmuna.com:/opt/backup/dav/*.tgz /backup/archives/webdav
rsync -avx -e ssh spirit.hmuna.com:/opt/backup/svn/*.tgz /backup/archives/svn
# spirit の各ユーザ、プロセス毎の主要スクリプトをバックアップ(更新)
rsync -avx -e ssh spirit.hmuna.com:/opt/backup/script/ /backup/archives/script
eval `ssh-agent -k`