2009年5月26日火曜日

久しぶりにディスクをミラー化

メインのマシンのハードディスクが壊れた。

ちょうどいい機会なので、43a3-gwでテストしてみる

http://www.s-me.co.jp/ipnuts/ipnuts41/server/ch02s02.html
 を 参照

ディスクまるごとミラーする。
fdisk で /dev/hdaと/dev/hdcの新規HDを確認

IPnuts.mydomain# fdisk -l

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/hda doesn't contain a valid partition table

Disk /dev/hdc: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/hdc doesn't contain a valid partition table

Disk /dev/sda: 128 MB, 128974848 bytes
16 heads, 32 sectors/track, 492 cylinders
Units = cylinders of 512 * 512 = 262144 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sda1 * 1 492 125936 6 FAT16


作業でこのメモを書くためscreenをいれる
#lrp_load -b screen

screen起動
#screen

sshで作業するのでパスワードを設定
#passwd

ここからがmdの作業

mdadmをいれる
# lrp_load -b mdadm


RAIDの作成 注意:/dev/md0ではなく/dev/md/0にすること
# mdadm --create --auto=yes /dev/md/0 --level=1 --raid-devices=2 /dev/hda /dev/hdc
# mdadm -E --scan >> /etc/mdadm/mdadm.conf

/etc/mdadm/mdadm.confにDEVICEの行を追加し、
--scan で 追加された ARRAY=の行のUUIDを使って編集する

DEVICE= hda hdc
ARRAY= /dev/md/0 auto=yes UUID=39e476bc:5be27d92:c8fac465:06756b0d

mdadm-raidを実行してからraidの状況を確認

# /etc/init.d/mdadm-raid start
# mdadm --detail /dev/md0

Version : 00.90
Creation Time : Wed May 27 03:52:35 2009
Raid Level : raid1
Array Size : 78150656 (74.53 GiB 80.03 GB)
Used Dev Size : 78150656 (74.53 GiB 80.03 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue May 26 19:37:03 2009
State : active, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Rebuild Status : 8% complete

UUID : 39e476bc:5be27d92:c8fac465:06756b0d
Events : 0.5

Number Major Minor RaidDevice State
0 3 0 0 active sync /dev/hda
1 22 0 1 active sync /dev/hdc

mdadmを起動時のパッケージに追加して、設定保存

# lrp_list -a mdadm
# save_conf

2009年5月24日日曜日

43a2-gw復旧と43a3-gw

先日からカーネルを2.6.29.4に変更してパッケージは43a3-gwに変更して作業している。

さきほど、コマンドをうち間違えて43a2-gwを壊してしまい、先ほどバックアップから復旧した。

43a3では、カーネルに組み込まれたsquashfsが、前のsquashfsと互換性がなくなり、圧縮ファイルを使っているpythonなどパッケージで作り直しになる。

また、IPsecのopenswanの作っているKLIPSでは新しいカーネルでNAT-Tが使えなくなって、どうもそのまま対応しそうにもないので、NETKEYに変更しようとしている。これを変更するとipsec0とかのデバイスはできなくなるので、ルーティングやフィルタリングが設定のやり直しが必要で難しくなると思う。

ついでに、仮想サーバでLXCがカーネルに組み込まれ、vserverは組み込まれそうもない。なので、LXCにも対応してみたい。

仮想イーサネットペアデバイス(Virtual ethernet pair device)を使うので、これはvserverよりルーティングやフィルタリングがわかりやすくなるのかもしれない。

2009年5月14日木曜日

テスト版のテスト

#1週間も更新していなかった。orz

IPnutsテスト版の公開をするため、テスト版のテストを IPnutsとはあまり関係の無い CMS Nightの会場の隅のほうでやりました。
パッケージを外部からとったことがなかったので心配でしたが、あまり問題なく動作できました。

Simpleの山本さんが自分の自作アクリルPCでも確認してみてくれたのですがフレームバッファが不具合で動作せず、今日確認したところ、/etc/modprobe.confがあると/etc/modprobe.dの中を見てくれてなくて、display_classが効いていなかったことがわかり修正。
あと、要望のあったユーザー名とパスワードの入力部分を改善して本日公開にいたりました。

CMS Nightの長尾さん、それから 山本さんそれからお話させていただきました皆さん、ありがとうございました。

2009年5月5日火曜日

AmazonのEC2を使ってみる

ここを、参考にさせてもらってできました。
http://www.studio-fix.com/blog/kaoru/
非常にわかりやすくて、何もいうことはありません。
今日は"Amazon EC2のイメージファイルをS3に保存する "までやりました。
ありがとうございます。

2009年5月2日土曜日

仮想サーバ(vserver)とIPnutsの運用(1)

運用上、早速 問題が起きているのでメモ。

今回はcronでのバックアップまわりの修正
/etc/crontab

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

/etc/cron.dailyでバックアップをしてしているが、仮想サーバーも同じタイミングでcronが動作する。
このとき、バックアップするために仮想サーバが同時にシャットダウンしてしまうので、タイミングをずらすためにcrontabを変更した。

また、バックアップ時のcronの標準出力をメールで受けとるように/etc/cron.daily/backupを変更

#!/bin/sh
/root/bin/backup.sh 2>&1 | /usr/sbin/sysmail -s "vserver backup"

sysmailはipnutsのユーティリティで、webadminで管理者のメールアドレスと、メールサーバを指定しておくと、標準入力をメールで送る。

cronでMAILTO=でメールが送られるようにssmtpをロードして/etc/ssmtp/ssmtp.confを設定
# lrp_load -b ssmtp
/etc/ssmtp/ssmtp.conf

Mailhub=メールサーバ
Hostname=自ホストのFQDNのホスト名

ssmtpの送信テスト

# echo テキスト | sendmail -v 送信先メールアドレス

大丈夫だと思う。

最後にssmtpの起動時のパッケージ追加と設定保存

# lrp_list -a ssmtp
# save_conf

2009年5月1日金曜日

MySQLサーバ移行のメモ

etchで動いていたMySQLをlenny上で動作するMySQLに移行しようとしている。

データベースはファイルをscpでコピーしてきた。
まず、ユーザーIDが違っていたのでオーナーをセット。
# chown -R mysql mysql

debianなので /etc/mysql/debian.cnf 内のパスワードを元のものに合わせる

起動しようとすると

Checking for corrupt, not cleanly closed and upgrade needing tables..
になる。
/var/log/syslogをみると errorになっていたので
Table upgrade required. Please do "REPAIR TABLE ...

mysql_upgrade -pを実行

かなり時間がかかったが、無事に終了。

相変わらずこのメッセージがでるが、これ自体は問題ないらしい
Checking for corrupt, not cleanly closed and upgrade needing tables..

仮想サーバのバックアップ(その3)

---バックアップの自動化
バックアップのスクリプトを/root/binに作った。/usr/local/binに作って# lrp_save localでパッケージを作成してもよいが、今回は/rootに作った。/root内のファイルは設定ファイルとしてconfig.lrpに保存される。

/root/bin/backup.sh

#!/bin/sh
VSERVER=仮想サーバ名

vserver $VSERVER stop
rsync -av --delete /var/lib/vservers/$VSERVER /var2/lib/vservers/
vserver $VSERVER start


/etc/cron.daily/backup

#!/bin/sh
/root/bin/backup.sh


/etc/cron.daily/backupはcronによって/etc/crontabから実行される。

テストしてOKであれば、save_confで保存する。

保存された設定ファイルの一覧は#lrp_conf -lで確認できる。