2010年11月13日土曜日

ZFSのチューニング

まれにZFSが落ちることがあるようなので設定してみた。
#元はすべて未記入でした(FreeBSD8.1-RELEASE)

# vi /boot/loader.conf
vm.kmem_size_max="6144M"
vm.kmem_size="6144M"
vfs.zfs.arc_max="1024M"
# reboot

パフォーマンスは変化ありませんでした。
しばらく様子を見ます。

mail01へのDNS集約

こないだDNSサーバを立てたばっかりですが、
メモリが無駄なのでmail01に集約してdns01は廃止しました。

#これは個人用メモです。

2010年11月6日土曜日

DomU dns01の導入(再)

DomU dns01の導入

以前も同じ事やりましたが、調子がよくないので中止してました。
このたびリアルサーバが壊れたので完全移行することにしました。

■立ち上げ
sed -i 's/IPADDR=192.168.0.3/IPADDR=192.168.0.21/g' /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/HWADDR=00:16:3E:63:00:03/HWADDR=00:16:3E:63:00:15/g' /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/HOSTNAME=standard.hoge.com/HOSTNAME=dns01.hoge.com/g' /etc/sysconfig/network
rm -rf /etc/ssh/ssh_host*
rm -rf /root/.bash_history
reboot

ここらでyum updateする

■BIND導入
# yum install bind
# chkconfig named on

■BIND スレーブ設定
webminでBINDを開くと設定をジェネってくれる。
インターネット用の設定で作成する。
設定内容は元のDNSをコピってしまおう。


■全サーバにセカンダリDNS設定を配布する
対象ファイル:
/etc/resolv.conf

内容:
search hoge.com
nameserver 192.168.0.21

※以前はプロバイダのDNSサーバも指定していたが、DNSダウン中に変な経路で通信が発生するのはよくないのでカット。


配布先:
rsync -av /etc/resolv.conf ad01.hoge.com:/etc/resolv.conf
rsync -av /etc/resolv.conf dbm01.hoge.com:/etc/resolv.conf
rsync -av /etc/resolv.conf dbm11.hoge.com:/etc/resolv.conf
rsync -av /etc/resolv.conf casper.hoge.com:/etc/resolv.conf
rsync -av /etc/resolv.conf gatekeeper01.hoge.com:/etc/resolv.conf
rsync -av /etc/resolv.conf iwata01.hoge.com:/etc/resolv.conf
rsync -av /etc/resolv.conf mail01.hoge.com:/etc/resolv.conf
rsync -av /etc/resolv.conf rock01.hoge.com:/etc/resolv.conf
rsync -av /etc/resolv.conf www01.hoge.com:/etc/resolv.conf

※standardイメージには未反映

2010年6月19日土曜日

bootの空き容量を増やす

最近CentOS4がよく落ちる。
ディスク容量を調べたら/bootがフルだった。これかな。
長年yumでアップデートしてきた結果がこれかよ。みたいな。
というわけで/bootに空き容量を作ってみた。

今のバージョンを調べてみる。
[root@backyard boot]# uname -a
Linux backyard.hoge.com 2.6.9-78.0.5.plus.c4 #1 Wed Oct 8 13:39:48 EDT 2008 i686 i686 i386 GNU/Linux

とりあえず古い 2.6.9-42 と 2.6.9-55 の関連ファイルを削除することにします。
[root@backyard boot]# ls *2.6.9-42*
System.map-2.6.9-42.0.10.plus.c4 config-2.6.9-42.0.10.plus.c4 initrd-2.6.9-42.0.10.plus.c4.img vmlinuz-2.6.9-42.0.10.plus.c4
System.map-2.6.9-42.0.3.EL config-2.6.9-42.0.3.EL initrd-2.6.9-42.0.3.EL.img vmlinuz-2.6.9-42.0.3.EL
System.map-2.6.9-42.0.3.plus.c4 config-2.6.9-42.0.3.plus.c4 initrd-2.6.9-42.0.3.plus.c4.img vmlinuz-2.6.9-42.0.3.plus.c4
System.map-2.6.9-42.0.8.EL config-2.6.9-42.0.8.EL initrd-2.6.9-42.0.8.EL.img vmlinuz-2.6.9-42.0.8.EL
System.map-2.6.9-42.0.8.plus.c4 config-2.6.9-42.0.8.plus.c4 initrd-2.6.9-42.0.8.plus.c4.img vmlinuz-2.6.9-42.0.8.plus.c4
System.map-2.6.9-42.EL config-2.6.9-42.EL initrd-2.6.9-42.EL.img vmlinuz-2.6.9-42.EL

[root@backyard boot]# ls *2.6.9-55*
System.map-2.6.9-42.0.10.plus.c4 config-2.6.9-42.0.10.plus.c4 initrd-2.6.9-42.0.10.plus.c4.img vmlinuz-2.6.9-42.0.10.plus.c4
System.map-2.6.9-42.0.3.EL config-2.6.9-42.0.3.EL initrd-2.6.9-42.0.3.EL.img vmlinuz-2.6.9-42.0.3.EL
System.map-2.6.9-42.0.3.plus.c4 config-2.6.9-42.0.3.plus.c4 initrd-2.6.9-42.0.3.plus.c4.img vmlinuz-2.6.9-42.0.3.plus.c4
System.map-2.6.9-42.0.8.EL config-2.6.9-42.0.8.EL initrd-2.6.9-42.0.8.EL.img vmlinuz-2.6.9-42.0.8.EL
System.map-2.6.9-42.0.8.plus.c4 config-2.6.9-42.0.8.plus.c4 initrd-2.6.9-42.0.8.plus.c4.img vmlinuz-2.6.9-42.0.8.plus.c4
System.map-2.6.9-42.EL config-2.6.9-42.EL initrd-2.6.9-42.EL.img vmlinuz-2.6.9-42.EL


[root@backyard boot]# mkdir ~/boot.bak
[root@backyard boot]# mv *2.6.9-42* ~/boot.bak/
[root@backyard boot]# mv *2.6.9-55* ~/boot.bak/

削除したバージョンはgrubからも抹消する
[root@backyard boot]# mkdir ~/boot.bak/grub/
[root@backyard boot]# cp /boot/grub/menu.lst ~/boot.bak/grub/
[root@backyard boot]# vi /boot/grub/menu.lst

これで使用率50%くらいまで削減成功。
[root@backyard boot]# df -hT
Filesystem Type サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
ext3 37G 22G 13G 64% /
/dev/hda1 ext3 99M 49M 46M 52% /boot
none tmpfs 117M 0 117M 0% /dev/shm

2010年1月18日月曜日

mod_dosdetector-forkを導入する

なんかDos攻撃を食らっているようなので、mod_dosdetector-forkを導入します。
http://wp.serpere.info/archives/tag/mod_dosdetector

導入先はgatekeeper01にします。

■初回のみRPMパッケージ作成 ※作ったrpmファイルは保存しておく。
# yum install rpm-build
# wget http://cloud.github.com/downloads/tkyk/mod_dosdetector-fork/mod_dosdetector-fork-1.0.0.tar.gz
# wget http://cloud.github.com/downloads/tkyk/mod_dosdetector-fork/mod_dosdetector-fork.spec
# cp mod_dosdetector-fork-1.0.0.tar.gz /usr/src/redhat/SOURCES/
# rpmbuild -bb mod_dosdetector-fork.spec
# cp /usr/src/redhat/RPMS/x86_64/mod_dosdetector-fork-1.0.0-1.x86_64.rpm ~

■インストール
# rpm --install mod_dosdetector-fork-1.0.0-1.x86_64.rpm

■設定
# vi /etc/httpd/conf.d/dosdetector.conf

↓以下のコメントを外す

DoSIgnoreContentType image|javascript|css


LogFormat "%{SuspectHardDoS}e %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" dosdetector
CustomLog logs/dos_suspect_log dosdetector env=SuspectDoS

ちなみに代表的な設定部分は以下の通り(デフォルト)
DoSDetection on
DoSPeriod 5
DoSThreshold 20
DoSHardThreshold 35
DoSBanPeriod 30
DoSTableSize 100
DoSShmemName mod_dosdetector

○オプションの主な意味
http://labo.opengroove.com/blog/2009/11/18/mod_dosdetector-%E3%81%A7dos%E5%AF%BE%E7%AD%96/

○備考
CustomLogはバーチャルドメインごとに定義すること

■監視
# tail -f /var/log/httpd/dos_suspect_log

■テスト
# ab -n100 -c100 http://192.168.0.34/

■ちなみにアンインストール
rpm --erase mod_dosdetector-fork

2010年1月14日木曜日

CPUがディスクアクセスに及ぼす影響を調べる

CPUをアップグレードするので、折角なのでベンチ取ってみます。

あ、netperfが入ってないので導入し、テストしたら消します。
# rpm -ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# yum --enablerepo=rpmforge install netperf
受信側 # netserver
送信側 # netperf -H hoge -fM
# yum remove netperf

bonnie++も
CentOS
# yum --enablerepo=rpmforge install bonnie++

FreeBSD
# cd /usr/ports/benchmarks/bonnie++
# make && make install


■CentOS5.4+ext3
・マシン:NEC Express5800/110Gd
・メモリ:DDR2-800(8GB)
・CPU(変更前):Celeron D 341(L2-256KB/2.93GHz/533MHz)
・CPU(変更後):Core 2 Quad Q6600(L2-8MB/2.40GHz/1066MHz)
・HDD:WDC WD5000AAKS-00V1A0(2台RAID1)

○HDD(5回実行の平均値)
・変更前
【Dom0 local】
# hdparm -Tt /dev/sda
Timing cached reads: 3457 MB in 2.00 seconds = 1731.81/sec
Timing buffered disk reads: 332 MB in 3.01 seconds = 110.32 MB/sec

【Dom0 local】
# bonnie++ -d /tmp -u root
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
melchior.hoge 8G 130 99 82894 60 43819 31 315 99 112855 24 332.2 5
Latency 68278us 1664ms 867ms 45624us 111ms 779ms
Version 1.96 ------Sequential Create------ --------Random Create--------
melchior.hoge -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 19533 77 +++++ +++ 22990 77 21066 82 +++++ +++ 22184 76
Latency 236us 1053us 1303us 1852us 52us 681us

【Dom0 NFS】
# bonnie++ -d /kfs_xen -u root
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
melchior.hoge 8G 232 99 20005 25 17808 16 312 99 44304 14 142.7 1
Latency 37150us 2730ms 24937ms 33436us 961ms 27126ms
Version 1.96 ------Sequential Create------ --------Random Create--------
melchior.hoge -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 808 2 1724 4 553 3 821 3 1994 5 928 2
Latency 330ms 69730us 1347ms 169ms 1243us 240ms

【DomU local】
# hdparm -Tt /dev/xvda
Timing cached reads: 3560 MB in 2.00 seconds = 1782.13 MB/sec
Timing buffered disk reads: 136 MB in 3.05 seconds = 44.54 MB/sec


・変更後
【Dom0 local】
# hdparm -Tt /dev/sda
Timing cached reads: 11026 MB in 2.00 seconds = 5524.94 MB/sec
Timing buffered disk reads: 370 MB in 3.01 seconds = 122.84 MB/sec

【Dom0 local】
# bonnie++ -d /tmp -u root
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
melchior.hoge 15G 309 99 56267 71 41546 5 670 98 113249 3 351.5 5
Latency 28697us 3914ms 4908ms 62964us 116ms 864ms
Version 1.96 ------Sequential Create------ --------Random Create--------
melchior.hoge -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 +++++ +++ +++++ +++ 21574 31 +++++ +++ +++++ +++ +++++ +++
Latency 690us 601us 657us 1343us 66us 190us

【Dom0 NFS】
# bonnie++ -d /kfs_xen -u root
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
melchior.hoge 15G 471 99 18778 35 16744 0 683 99 45269 0 111.8 1
Latency 17593us 49930ms 29724ms 34619us 368ms 70848ms
Version 1.96 ------Sequential Create------ --------Random Create--------
melchior.hoge -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 942 0 1972 0 646 0 974 0 2613 0 1104 0
Latency 58110us 833ms 902ms 23108us 946us 277ms

【DomU】
# hdparm -Tt /dev/xvda
Timing cached reads: 11803 MB in 2.00 seconds = 5911.98 MB/sec
Timing buffered disk reads: 242 MB in 3.05 seconds = 79.67 MB/sec

○LAN(5回実行の中央値)
・変更前
# netperf -H casper -fM
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. MBytes/sec
87380 16384 16384 10.03 108.06

・変更後
# netperf -H casper -fM
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. MBytes/sec
87380 16384 16384 10.04 110.98


■FreeBSD8-RELEASE+ZFS(RAID-Z2 8本)
・マシン(変更前):NEC Express5800/110Gc
・マシン(変更後):NEC Express5800/110Gd
・メモリ:DDR2-800(8GB) なんだけど変更前は3GB強しか認識されておらず
・CPU(変更前):Celeron D 331(L2-256KB/2.66GHz/533MHz)
・CPU(変更後):Core 2 Quad Q6600(L2-8MB/2.40GHz/1066MHz)

○HDD
・変更前
# /usr/local/sbin/bonnie++ -d /mnt/kfs01/kfs -u root
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
kfs01.hoge 6G 40 85 56292 41 34684 26 126 94 71811 25 43.9 3
Latency 3661ms 5189ms 3520ms 163ms 874ms 186s
Version 1.96 ------Sequential Create------ --------Random Create--------
kfs01.hoge -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 6658 92 25612 90 7102 91 7376 96 29278 99 7216 91
Latency 29754us 12866us 16489us 60286us 149us 8955us

・変更後
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
kfs01.hoge 16G 81 98 22966 50 15804 30 228 98 45929 25 45.9 2
Latency 685ms 23522ms 7649ms 121ms 1149ms 2990ms
Version 1.96 ------Sequential Create------ --------Random Create--------
kfs01.hoge -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 7763 39 7990 19 8531 82 14359 97 22230 99 6737 98
Latency 563ms 1671ms 792us 47669us 142us 328us




■総括
○CentOS5.4+ext3
DomUでのlocalディスクアクセスは2倍に高速化した。これは有意義。

しかしDom0はマルチコア化しても正直あんまり意味がない模様。
1割くらい高速化したかな。CPU負荷は大幅に減ってるものの。

ソフトウェアRAIDなんで、その処理が軽くなってるんだろうが、HDD自体が足を引っ張っているらしい。
っつってもウエデジ500GB1プラッタなんで、特に遅いHDDというわけではない。限界ということのようだ。

NFSはむしろ逆に遅くなってる。とはいえNFS先は本番マシンなんで、この程度なら誤差の範囲かしら。

○FreeBSD8-RELEASE+ZFS(RAID-Z2 8本)
マルチコア化により大幅に低速化した… なんじゃこりゃw
念のためもう一回やってみたけど、あまり変わらなかった。

TOPで見てるとbonnie++自体が1スレッドで、CPU的には50%くらいしか食ってない。
HDD8台も積んでる割にはアクセスランプは高速にチラチラしているので、まだ余裕がありそう。

原因は、何だろう。
Pen4ベースのCeleron Dに比べてCore系は64bitに弱いと聞く。これかな。。
あるいは、なんちゃってQuad=もっさり、ということかしら。。
いずれにせよZFSにはCore 2 Quadは向いていないらしい。
えー、散々苦労して手に入れた石なんだぞ、なんということか。予備機で眠らせろってか。


■で、どうする
メモリ3GBの環境でZFSは不安定なので、やだ。ひとまずこのままにする。
後日サーバを増設して、CPUセロリンのままメモリ8GBを突っ込んで運用することにする。
中古なら5000円くらいだろうし。。しかし総額では高くつくわー…。。

mail01 ProFTPdの導入

pb01でProFTPdをMySQLベースで運用していましたが、pb01を潰すのでmail01に引っ越す。

mail01にて

# yum --enablerepo=rpmforge install proftpd-mysql
# chkconfig proftpd on

rpmforgeのyumではユーザが作られないみたい。
UID500でproftpdユーザを作っておくこと。

/etc/proftpd.confはこんな感じ
編集後 # service proftpd start

ServerIdent on ""
ServerName "PB FTP"
ServerType standalone
DefaultServer on
Port 21
Umask 022
RootLogin off
ListOptions "-la"
MaxInstances 30
User proftpd
Group proftpd

CreateHome on skel /kfs/pb/ftp/skel
DeleteAbortedStores on

DefaultRoot ~ !wheel
RequireValidShell off
UseReverseDNS off
IdentLookups off

TimesGMT off
SetEnv TZ JST-9

TimeoutIdle 600
TimeoutLogin 300
TimeoutNoTransfer 600
TimeoutStalled 600
ShowSymlinks on
MaxClientsPerHost 3
MaxHostsPerUser 10

#AllowStoreRestart on
#AllowRetrieveRestart on
#MaxStoreFileSize 100 Mb

LogFormat allinfo "%t : %u (%a [%h]) : [%s], %T, %m (%f)"
LogFormat write "%t : %u : %F (%a)"
LogFormat read "%t : %u : %F (%a)"
LogFormat auth "%t : %u (%a [%h])"
ExtendedLog /var/log/proftpd/all.log ALL allinfo
ExtendedLog /var/log/proftpd/write.log WRITE write
ExtendedLog /var/log/proftpd/read.log READ read
ExtendedLog /var/log/proftpd/auth.log AUTH auth


AllowOverwrite on
AllowStoreRestart on
AllowRetrieveRestart on


#
# Order allow,deny
# Allow from 192.168.1.0/24
# Deny from all
#


LoadModule mod_sql.c
LoadModule mod_sql_mysql.c

SQLAuthenticate users
SQLConnectInfo pb_proftpd@dbm01.hoge.com:3306 proftpd proftpd
SQLAuthTypes Crypt
SQLUserInfo users userid password uid gid homedir shell
SQLGroupInfo groups groupname gid members
AuthOrder mod_sql.c


LoadModule mod_quotatab.c
LoadModule mod_quotatab_sql.c

QuotaEngine on
QuotaLog /var/log/proftpd/quota-log
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

SQLNamedQuery get-quota-limit SELECT "userid, quota_type, per_session, \
limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, \
files_out_avail, files_xfer_avail FROM quotalimits WHERE userid = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery get-quota-tally SELECT "userid, quota_type, bytes_in_used, \
bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used \
FROM quotatallies WHERE userid = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, \
bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, \
files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, \
files_xfer_used = files_xfer_used + %{5} WHERE userid = '%{6}' AND quota_type = '%{7}'" quotatallies

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies

QuotaLock /usr/local/proftpd/var/proftpd/tally.lock
QuotaShowQuotas on
QuotaDisplayUnits Mb
QuotaDirectoryTally on

2010年1月7日木曜日

kfs01 S.M.A.R.T.

FreeBSDでS.M.A.R.T.を使いたい。

# cd /usr/ports/sysutils/smartmontools
# make config-recursive install clean

これだけ。あとはsmartctlコマンドで情報取得する。

○情報取得
/usr/local/sbin/smartctl -a /dev/ad4
/usr/local/sbin/smartctl -a /dev/ad6
/usr/local/sbin/smartctl -a /dev/ad8
/usr/local/sbin/smartctl -a /dev/ad10
/usr/local/sbin/smartctl -a /dev/ad12
/usr/local/sbin/smartctl -a /dev/ad13
/usr/local/sbin/smartctl -a /dev/ad14
/usr/local/sbin/smartctl -a /dev/ad15

○テスト(short,long,conveyance)
/usr/local/sbin/smartctl -t short /dev/ad4
/usr/local/sbin/smartctl -t short /dev/ad6
/usr/local/sbin/smartctl -t short /dev/ad8
/usr/local/sbin/smartctl -t short /dev/ad10
/usr/local/sbin/smartctl -t short /dev/ad12
/usr/local/sbin/smartctl -t short /dev/ad13
/usr/local/sbin/smartctl -t short /dev/ad14
/usr/local/sbin/smartctl -t short /dev/ad15

mail01 Nagiosの導入

cactiに代わってNagiosを入れます。

○さんこう
http://d.hatena.ne.jp/kaorumori/20080607/1212863599
http://www.crimson-snow.net/hmsvr/fedora/memo/nagios_2.10.html
http://centossrv.com/nagios.shtml

○Nagiosの導入
# yum install
# yum --enablerepo=rpmforge install nagios perl-Net-SNMP fping nagios-plugins
# htpasswd -c /etc/nagios/htpasswd.users nagios ←BASIC認証のユーザー名ね
New password:
Re-type new password:
Adding password for user nagios

# service nagios start
# chkconfig nagios on
# service httpd restart

http://mail01.hoge.com/nagios/


[root@Fedora ~]# vi /etc/nagios/cgi.cfg <= 設定ファイルの編集
以下のように権限を変更
authorized_for_system_information=nagios <= システム・プロセス情報を閲覧できる認証ユーザ
authorized_for_configuration_information=nagios <= 設定を閲覧できる認証ユーザ
authorized_for_system_commands=nagios <= システム・プロセスコマンドを発行できる認証ユーザ
authorized_for_all_services=nagios <= 全サービスの状態と設定情報を閲覧できる権限のある認証ユーザ
authorized_for_all_hosts=nagios <= 全ホストの状態と設定情報を閲覧できる権限のある認証ユーザ
authorized_for_all_service_commands=nagios <= 全サービスに対してコマンドを発行できる認証ユーザ
authorized_for_all_host_commands=nagios <= 全ホストに対してコマンドを発行できる認証ユーザ
ここまで

# vi /etc/nagios/nagios.cfg
cfg_dir=/etc/nagios/servers

あと/etc/nagios/serversを掘って、適当にcfgを置いておく。

2010年1月5日火曜日

Dom0 casperの導入

alphaのディスクが壊れたのでcasperを立ち上げる。
ちょうど三台あるので、これを機にMAGIシリーズということにするw

1:ソフトウェアRAIDの構築 に基づいてCentOS5.4をインストールする。

2:firstboot
 Firewall:Disable
 SELinux:Disable

3:共有ディレクトリを作成&エクスポートする
4:共有ディレクトリをインポートする
# mkdir /kfs_casper
# chown -R nfsnobody:nfsnobody /kfs_casper
あと NFSサーバを建てるぞ に基づいてセットアップ
ちなみに現在はkfsがあるので、他のDom0やDomUから/kfs_casperはインポートしなくてよい。
既存のものは放置するけど、今後の導入時はインポートしないようにする。
・・・あ、ということは鯖間で命名統一したほうが便利じゃんw
ま、いいか。。

5:webminのインストール
webminのインストール に基づいてセットアップ

6:ディスクイメージのコピー
rsyncで大量コピー。マルチコアCPUなので一気にやっちゃう。

DomU dbm01の設定

糞galleryが糞重いのでDBを分離して切り離す。
新standardイメージからdbm11を生産する。

sed -i 's/IPADDR=192.168.0.3/IPADDR=192.168.0.61/g' /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/HWADDR=00:16:3E:63:00:03/HWADDR=00:16:3E:63:00:3d/g' /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/HOSTNAME=standard.hoge.com/HOSTNAME=dbm11.hoge.com/g' /etc/sysconfig/network
sed -i 's/myhostname = standard.hoge.com/myhostname = dbm11.hoge.com/g' /etc/postfix/main.cf
rm -rf /etc/ssh/ssh_host*
rm -rf /root/.bash_history
reboot

# yum install mysql-server
# vi /etc/my.cnf
dbm01と同じだけど、server-idはIPとそろえて11にします。

mysqldumpでSQLをdumpして流し込む。
InnoDBなのでmysqlsnapshotは使用不可。

ZFSのcompressionを有効化する

イメージ置き場はZFSだが、容量が馬鹿にならないのでZFS compressionをonにする。
圧縮アルゴリズムは無難にonにしておく。
# zfs set compression=on kfs01/xen

比較は以下コマンドにて。
# ls -la
# du -h *
192GBのディスクイメージが22GBになった。ほとんどヌルデータだしね。
使用領域が多いイメージは6GB超え。あんまりおいしくない。
ちなみにZFSのduは他のFileSystemとは基準が違うらしいが、まぁ、いいさ。

追加分だけでなく既存のファイルも圧縮しておく。
# cp -Rp bak20090901 bak20090901.new ; rm -rf bak20090901 ; mv bak20090901.new bak20090901 &
# cp -Rp bak20090902 bak20090902.new ; rm -rf bak20090902 ; mv bak20090902.new bak20090902 &
# cp -Rp bak20090905 bak20090905.new ; rm -rf bak20090905 ; mv bak20090905.new bak20090905 &
# cp -Rp bak20091004 bak20091004.new ; rm -rf bak20091004 ; mv bak20091004.new bak20091004 &
# cp -Rp bak20091228 bak20091228.new ; rm -rf bak20091228 ; mv bak20091228.new bak20091228 &
# cp -Rp bak20100101 bak20100101.new ; rm -rf bak20100101 ; mv bak20100101.new bak20100101 &
# cp -Rp baseimg baseimg.new ; rm -rf baseimg ; mv baseimg.new baseimg &

mail01へのDomU集約

雑多な動作を1ドメインにまとめてメモリを節約する。

ドメインを増やしたいが、メモリが足りない。他の仮想化にも言えますが、メモリの利用効率の悪さがXen最大の欠点だと思いますね。ディスクはsparseファイルやZFS close、他の資源は大体ベストエフォート割り当てでどうにでもなるが、メモリはそうは行かない。

FreeBSD+jailのほうが無駄がないが、今更切り替えるのは面倒なので、mail01にpb01、stats01、ssh01を1ドメインに集約してお茶を濁す。1.5GBの節約。

■共通
○各ドメインに散らばってるユーザをmail01にも作成する
省略。mail01に未登録のアカウントはなかった

■ssh01
もっぱら内部接続用なんで、あんまり意味がないが。。

○ssh01からmail01に公開鍵をコピー
rsyncしちゃう

○mail01 鍵なしログイン禁止
# vi /etc/ssh/sshd_config
#PasswordAuthentication yes
→PasswordAuthentication no
# /etc/rc.d/init.d/sshd restart

これでおしまい。
外部接続はネームサーバに繋がるんで、内部からつなぐときはmail01につなぐこと。

■pb01
PHPでImageMagickを使う のエントリーに従ってImageMagickを使えるようにする。

あとPEARを追加導入。
# pear install -f Mail_MIME
# pear install -f Mail_mimeDecode

pb01でkillpbdaemon、mail01でpbdaemon.shで動作テストしておしまい。
あ、FTP忘れてた。あとでconfコピっておこ。

■stats01
これを機にcactiとWebalizerは廃止する。後日Nagiosに切り替える。
4時40分にログ集計cronだけは動かしておく。よって作業は以下のみ。

■最後に
# xm shutdown pb01
# xm shutdown ssh01
# xm shutdown stats01
イメージファイルをバックアップ&削除、DNS登録解除、あれこれ動作確認して終了。

■備考
ちなみにmail01ではAffinityGenもcronで動かしている。

2010年1月1日金曜日

DomU standardをアップデート

コピー量産用のイメージに久々に手を入れる。
ついでに運用を改める。

#繰り返しになりますが、本ブログは個人用メモです

■変更点
・yum updateしておく。
・/kfs_betaもマウントするようにする。
・DNSサーバを追加する。
・Postfix導入&MTAの経路を現行仕様に改める。
・普段から普通に起動できるようにする。

■yum update
ふつうに
# yum update

■/kfs_betaもマウントするようにする
# vi /etc/fstab
alpha.hoge.com:/kfs_alpha /kfs_alpha nfs rw 0 0
beta.hoge.com:/kfs_beta /kfs_beta nfs rw 0 0 ←追記
kfs01.hoge.com:/mnt/kfs01/kfs /kfs nfs rw 0 0

■DNSサーバを追加する
#vi /etc/resolv.conf
search hoge.com
nameserver 192.168.0.6
nameserver 192.168.0.21 ←追加
nameserver 202.224.32.1

■Postfix導入&MTAの経路を現行仕様に改める
# yum -y install postfix
# vi /etc/postfix/main.cf
以下最終行に追記

myhostname = standard.hoge.com
mydomain = hoge.com
myorigin = $mydomain
inet_interfaces = all
#proxy_interfaces =
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/

smtpd_banner = $myhostname ESMTP unknown
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

#MailSizeLimitter 100MB
message_size_limit = 104857600

#MailBoxSizeLimitter 500MB
mailbox_size_limit = 512000000

mynetworks = 192.168.0.0/24, 127.0.0.0/8
relay_domains = $mydestination

relayhost = mail01.hoge.com

allow_mail_to_commands = alias,forward,include
allow_mail_to_files = alias,forward,include
disable_vrfy_command = yes
allow_percent_hack = yes
swap_bangpath = yes
forward_path = $home/.forward$recipient_delimiter$extension,$home/.forward
sendmail_path = /usr/sbin/sendmail

# /etc/rc.d/init.d/saslauthd start
# chkconfig saslauthd on
# chkconfig --list saslauthd
# mkdir -p /etc/skel/Maildir/new
# mkdir -p /etc/skel/Maildir/cur
# mkdir -p /etc/skel/Maildir/tmp
# chmod -R 700 /etc/skel/Maildir/
# /etc/rc.d/init.d/sendmail stop
# chkconfig sendmail off
# chkconfig --list sendmail
# alternatives --set mta /usr/sbin/sendmail.postfix
# /etc/rc.d/init.d/postfix start
# chkconfig postfix on
# chkconfig --list postfix

■普段から普通に起動できるようにする
アップデートのたびに設定変更まんどいから。
IPは192.168.0.3を割り当てる。
すると量産時に流し込むコマンドは以下の要領になる。(www01)

○起動後コマンド
sed -i 's/IPADDR=192.168.0.3/IPADDR=192.168.0.31/g' /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/HWADDR=00:16:3E:63:00:03/HWADDR=00:16:3E:63:00:1F/g' /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/HOSTNAME=standard.hoge.com/HOSTNAME=www01.hoge.com/g' /etc/sysconfig/network
sed -i 's/myhostname = standard.hoge.com/myhostname = www01.hoge.com/g' /etc/postfix/main.cf
rm -rf /etc/ssh/ssh_host*
rm -rf /root/.bash_history
reboot