‘web’ カテゴリーのアーカイブ

swapの活用

2009 年 3 月 1 日

mdadmを使ってRAID1でswapをマウントしたけど、冗長である意味がまりない。
速度的、容量的にも不利である。
Linuxのswapは、pri オプションを使って複数のスワップ・パーティションの優先度を同じに設定すれば、並列的に使用するようになりそうだ。
RAIDの解除を行って、2つのディスク領域のswapをマウントさせる。

まずは現在のswapを使用停止にする。

# swapoff /dev/md1

次にRAIDの停止

# mdadm --misc --stop /dev/md1

ここでmdadmからメールが届いた

RAIDの確認

# cat /proc/mdstat

スーパーブロックを変更する。これをしないと再起動でRAIDとして認識される。

# mdadm --misc --zero--superblock /dev/sdb2 /dev/sdc2

fstabの編集


/dev/sdb2      none            swap    sw,pri=3       0       0
/dev/sdc2      none            swap    sw,pri=3        0       0

http://www.ibm.com/developerworks/jp/linux/library/l-swaptip2.html

smartdの設定 /etc/smartd.conf

2009 年 2 月 15 日

smartdを走らせる

/etc/smartd.conf を設定

/dev/sda -d ata -a -o on -S on -s S/../.././15 -m hoge@foo.com
/dev/sdb -d ata -a -o on -S on -s (S/../.././14 | L/../../7/02) -m hoge@foo.com

問題はMTAサーバは別にあり、smartdを走らせるのはローカルネットワーク上の別なパソコンである。
ドメインサーバで逆引きできる準備をしていないので、MTAサーバが拒否してしまうのか配信されない。
設定が複雑になるので、何とかならないものか。
調べると、リレーを使っての接続ならうまくいきそうだ。

デフォルトのMTAのexim4で試してみる。
dpkg-reconfigure exim4-config を実行して、/etc/exim4/update-exim4.conf.conf を設定してみた。
「スマートなホストでメール送信」を選択、あとは適当に、「送出スマートホストの IP アドレスまたはホスト名:」で
サーバのホスト名を設定した。

dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces=''
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='foo.com'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

ローカルなMTAがexim4ではなくpostfixの時は /etc/postfix/main.cf

relayhost = [foo.com]

とすることで、サーバ上のMTAに送信することができた。


smartmontoolsはsmartdとsmartctlからなり、smartdは以下の2つの設定ファイルの編集を行うことにより起動させる。
/etc/default/smartmontoolsと/etc/smartd.conf
http://journal.mycom.co.jp/column/system/011/index.html

smartctl テストエラーの修復

2009 年 2 月 8 日

smartctl のテストでエラーがでるディスクデバイスがあった。

修復を試みる


$ sudo smartctl --test=short /dev/sdd

ログを見ると
# 6 Short offline Completed: read failure 90% 13296 296382039
LBA_of_first_error が296382039にて発生している

ブロックサイズの確認

$ sudo mkfs.ext3 -n /dev/sdd1

ブロックサイズは4096である。

番地をofficeにて計算

=INT(C5*512/4096)
セルC5にはLABの数値296382039を代入

計算された番地を後記の方法で0で埋める

再度smartctrlにてテスト
# 5 Short offline Completed: read failure 90% 13296 296382041

今度はLBA296382041でエラー
再度計算し番地を0で埋めるhttp://
テスト

# 1 Short offline Completed without error 00% 13296 -

テストでエラーはでなくなった。

以下の記事を参考にddコマンドにて該当番地を0にて埋めた。感謝

http://orz.miroq.info/archives/24

$ sudo dd if=/dev/zero of=/dev/sdd bs=4096 count=1 seek=37047754
$ sudo dd if=/dev/zero of=/dev/sdd bs=4096 count=1 seek=37047755

しかしlongテストだと、エラーが出る。

$ sudo smartctl --test=long /dev/sdd

一カ所毎に潰していくと、数十ヶ所行ってもまだまだ、不良ブロックがありそうだ。
これではやっていけないので。

まとめてディスク全体を消去

$ sudo dd if=/dev/zero of=/dev/sdd

参考URL

http://d.hatena.ne.jp/taizooo/20060901/1157071268

実行中にあるところで、フリーズ状態になる現象が発生。
SystemRescueCdで立ち上げて、ディスク全体をzeroで埋める、2度実行した。
longテストでもエラーがでなくなった。

http://www.sysresccd.org/Main_Page

この処置はデーターを消去する

必ず大事なデーターを別なディスクにコピーを取った後に実行する