lxc関係でテストしてみたくなり、busyboxを最新にしてselinuxのアプレットを有効にしたところ
/sbin/restorecon が /etc/init.d/udevにあってなぜかバッチを殺してくれる。
なのでやっぱり、busyboxのselinuxは使わない
2009年5月31日日曜日
2009年5月27日水曜日
壊れたマシンと入れ替える(その1)
ディスクの下準備はできたので、バックアップディスクで動作しているマシンを入れ替えます。
バックアップで稼働中の仮想サーバーのアーカイブをとって新しいサーバーにリストアします。
# find 仮想サーバのルート/ -depth -print | cpio -o -H newc > アーカイブファイル
ファイルが3GBぐらいになるので、scpやsshのシェルを使ったファイル転送を避けるため、新規側でrsyncサーバを動作させました。
新規側
# lrp_load -b rsync
/etc/rsyncd.conf を編集して /homeに受け入れるように作成
(一時的なので適当)
[home]
path=/home
read only = false
uid=root
サーバ起動
# rsync --daemon
アーカイブを作成した側から
# rsync -v アーカイブファイル rsync://サーバIP/home/
8.7M/sec(約70Mbit/sec)で転送。100BASE-T なので限界でしょう。
バックアップで稼働中の仮想サーバーのアーカイブをとって新しいサーバーにリストアします。
# find 仮想サーバのルート/ -depth -print | cpio -o -H newc > アーカイブファイル
ファイルが3GBぐらいになるので、scpやsshのシェルを使ったファイル転送を避けるため、新規側でrsyncサーバを動作させました。
新規側
# lrp_load -b rsync
/etc/rsyncd.conf を編集して /homeに受け入れるように作成
(一時的なので適当)
[home]
path=/home
read only = false
uid=root
サーバ起動
# rsync --daemon
アーカイブを作成した側から
# rsync -v アーカイブファイル rsync://サーバIP/home/
8.7M/sec(約70Mbit/sec)で転送。100BASE-T なので限界でしょう。
ミラー上にLVMを作る
前回の続き
再起動してraidを確認。/dev/md0もできているはず。
#mdadm --detail /dev/md0
lvm2をロード
# lrp_load -b lvm2
以前作っておいたユーティリティ(41ベータ版にもある) /usr/sbin/make_lvm.sh を使ってみる。
make_lvm.shは /system/make_lvm.conf からLVMを作成する。
/system/samplesにサンプルがあるのでこれをコピーしてから編集する
#cp /system/samples/make_lvm.conf /system/make_lvm.conf
#e3 /system/make_lvm.conf
LV_SWAP=1g
LV_HOME=20g
LV_VAR=20g
LV_TMP=1g
LV_OTHER=
VG_NAME=vg
LV_SWAP_NAME=lvswap
LV_HOME_NAME=lvhome
LV_VAR_NAME=lvvar
LV_TMP_NAME=lvtmp
LV_OTHER_NAME=lvother
LABEL_SWAP=SWAP
LABEL_VAR=VAR
LABEL_HOME=HOME
LABEL_TMP=TMP
LABEL_OTHER=OTHER
LV_SWAP,LV_HOME,LV_VAR,LV_TMP,LV_OTHERに容量が指定していればそのLVMをデバイス上に作成する。
swap以外のファイルシステムはext3
上の例だと
ラベル 容量 ファイルシステム
SWAP 1GB swap
VAR 20GB ext3
HOME 20GB ext3
TMP 20GB ext3
が作られる。
デバイスは/dev/md0を指定すること
# make_lvm.sh /dev/md0
/etc/fstabを編集
# /etc/fstab: static file system information.
#
#
proc /proc proc noauto 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
shm /dev/shm tmpfs defaults 0 0
/dev/cdrom /cdrom iso9660 noauto,ro
#/dev/hda2 none swap sw 0 0
LABEL=VAR /var ext3 defaults 0 2
LABEL=HOME /home ext3 defaults 0 2
LABEL=TMP /tmp ext3 defaults 0 2
LABEL=SWAP none swap sw 0 0
# You may edit only under line when you know that you do
tmpfs / tmpfs rw,size=160M
#tmpfs /tmp tmpfs rw,size=12M
#tmpfs /var tmpfs rw,size=24M
lvm2を起動時に読み込むようにして、設定を保存
# lrp_list -a lvm2
# save_conf
起動時に読み込むファイルは /system/lrp.lstにかかれている。起動していないときに変更する場合は
設定を保存しているUSBの/sysetem/lrp.lstを編集する
再起動後マウントを確認
# mount
tmpfs on / type tmpfs (rw,size=160M)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
shm on /dev/shm type tmpfs (rw)
/dev/mapper/vg-lvvar on /var type ext3 (rw)
/dev/mapper/vg-lvhome on /home type ext3 (rw)
/dev/mapper/vg-lvtmp on /tmp type ext3 (rw)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
/dev/loop0 on /lib/modules/mnt_loop type squashfs (ro)
/var/cropkg/4suite-xml.squ on /var/cropkg/mnt/4suite-xml type squashfs (ro,loop=/dev/loop1)
/var/cropkg/python2_5.squ on /var/cropkg/mnt/python2_5 type squashfs (ro,loop=/dev/loop2)
# swapon -s
Filename Type Size Used Priority
/dev/mapper/vg-lvswap partition 1048568 0 -1
再起動してraidを確認。/dev/md0もできているはず。
#mdadm --detail /dev/md0
lvm2をロード
# lrp_load -b lvm2
以前作っておいたユーティリティ(41ベータ版にもある) /usr/sbin/make_lvm.sh を使ってみる。
make_lvm.shは /system/make_lvm.conf からLVMを作成する。
/system/samplesにサンプルがあるのでこれをコピーしてから編集する
#cp /system/samples/make_lvm.conf /system/make_lvm.conf
#e3 /system/make_lvm.conf
LV_SWAP=1g
LV_HOME=20g
LV_VAR=20g
LV_TMP=1g
LV_OTHER=
VG_NAME=vg
LV_SWAP_NAME=lvswap
LV_HOME_NAME=lvhome
LV_VAR_NAME=lvvar
LV_TMP_NAME=lvtmp
LV_OTHER_NAME=lvother
LABEL_SWAP=SWAP
LABEL_VAR=VAR
LABEL_HOME=HOME
LABEL_TMP=TMP
LABEL_OTHER=OTHER
LV_SWAP,LV_HOME,LV_VAR,LV_TMP,LV_OTHERに容量が指定していればそのLVMをデバイス上に作成する。
swap以外のファイルシステムはext3
上の例だと
ラベル 容量 ファイルシステム
SWAP 1GB swap
VAR 20GB ext3
HOME 20GB ext3
TMP 20GB ext3
が作られる。
デバイスは/dev/md0を指定すること
# make_lvm.sh /dev/md0
/etc/fstabを編集
# /etc/fstab: static file system information.
#
#
proc /proc proc noauto 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
shm /dev/shm tmpfs defaults 0 0
/dev/cdrom /cdrom iso9660 noauto,ro
#/dev/hda2 none swap sw 0 0
LABEL=VAR /var ext3 defaults 0 2
LABEL=HOME /home ext3 defaults 0 2
LABEL=TMP /tmp ext3 defaults 0 2
LABEL=SWAP none swap sw 0 0
# You may edit only under line when you know that you do
tmpfs / tmpfs rw,size=160M
#tmpfs /tmp tmpfs rw,size=12M
#tmpfs /var tmpfs rw,size=24M
lvm2を起動時に読み込むようにして、設定を保存
# lrp_list -a lvm2
# save_conf
起動時に読み込むファイルは /system/lrp.lstにかかれている。起動していないときに変更する場合は
設定を保存しているUSBの/sysetem/lrp.lstを編集する
再起動後マウントを確認
# mount
tmpfs on / type tmpfs (rw,size=160M)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
shm on /dev/shm type tmpfs (rw)
/dev/mapper/vg-lvvar on /var type ext3 (rw)
/dev/mapper/vg-lvhome on /home type ext3 (rw)
/dev/mapper/vg-lvtmp on /tmp type ext3 (rw)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
/dev/loop0 on /lib/modules/mnt_loop type squashfs (ro)
/var/cropkg/4suite-xml.squ on /var/cropkg/mnt/4suite-xml type squashfs (ro,loop=/dev/loop1)
/var/cropkg/python2_5.squ on /var/cropkg/mnt/python2_5 type squashfs (ro,loop=/dev/loop2)
# swapon -s
Filename Type Size Used Priority
/dev/mapper/vg-lvswap partition 1048568 0 -1
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
ちょうどいい機会なので、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よりルーティングやフィルタリングがわかりやすくなるのかもしれない。
さきほど、コマンドをうち間違えて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の長尾さん、それから 山本さんそれからお話させていただきました皆さん、ありがとうございました。
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に保存する "までやりました。
ありがとうございます。
http://www.studio-fix.com/blog/kaoru/
非常にわかりやすくて、何もいうことはありません。
今日は"Amazon EC2のイメージファイルをS3に保存する "までやりました。
ありがとうございます。
2009年5月2日土曜日
仮想サーバ(vserver)とIPnutsの運用(1)
運用上、早速 問題が起きているのでメモ。
今回はcronでのバックアップまわりの修正
/etc/crontab
/etc/cron.dailyでバックアップをしてしているが、仮想サーバーも同じタイミングでcronが動作する。
このとき、バックアップするために仮想サーバが同時にシャットダウンしてしまうので、タイミングをずらすためにcrontabを変更した。
また、バックアップ時のcronの標準出力をメールで受けとるように/etc/cron.daily/backupを変更
sysmailはipnutsのユーティリティで、webadminで管理者のメールアドレスと、メールサーバを指定しておくと、標準入力をメールで送る。
cronでMAILTO=でメールが送られるようにssmtpをロードして/etc/ssmtp/ssmtp.confを設定
/etc/ssmtp/ssmtp.conf
ssmtpの送信テスト
大丈夫だと思う。
最後にssmtpの起動時のパッケージ追加と設定保存
今回は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が違っていたのでオーナーをセット。
debianなので /etc/mysql/debian.cnf 内のパスワードを元のものに合わせる
起動しようとすると
になる。
/var/log/syslogをみると errorになっていたので
かなり時間がかかったが、無事に終了。
相変わらずこのメッセージがでるが、これ自体は問題ないらしい
データベースはファイルを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に作って
/root/bin/backup.sh
/etc/cron.daily/backup
/etc/cron.daily/backupはcronによって/etc/crontabから実行される。
テストしてOKであれば、save_confで保存する。
保存された設定ファイルの一覧は
バックアップのスクリプトを/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
で確認できる。
登録:
投稿 (Atom)