mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

玄箱HG・Fedora10にミラーリングツール!

[ サーバ構築, 玄箱 ] [ Fedora ]

こんばんは。

前回は実サーバの完全バックアップ(クローン化)のために VMwarePlayer に Fedora10 をインストールして、ミラーリングするようにしました。

でも、今のところ VMware は常時稼働させているわけでもありません。やっぱり、常時稼働の別マシンへのミラーリングを試みてみようと考えました。

うちの稼動中のサーバとは別に、ほぼ録画&バックアップ専用の玄箱HG(Fedora10導入済み&24時間稼動中)があるんで、そいつをミラー先としてやってみることにしました。

導入手順

※またまた Fedoraで自宅サーバー構築リアルタイムミラーリングツール導入(lsyncd+rsyncd) を参考にさせてもらってます。

【前提条件】 ・実サーバはFedora10でWebサーバ、メールサーバ、FTPサーバ等が稼動中。 ・バックアップ側もFedora10で、NTPサーバ、Sambaサーバが稼動中。 ・実サーバのIPアドレスは 192.168.11.3 、バックアップ側(玄箱HG)のIPアドレスは 192.168.11.2 。 ・実サーバ、バックアップ側(玄箱)どちらも「 Poderosa 」によるリモート接続による操作。 (実サーバはSSH2接続・鍵認証、バックアップ側(玄箱HG)はSSH2接続・パスワード認証)

1.ミラー先(玄箱HG)の起動

ミラー先となる 玄箱HG・Fedora10 が起動していることを確認。

2.ミラー先にrsyncサーバー設定

「 Poderosa 」により 玄箱HG・Fedora10 にリモート接続し、rootユーザになっておく。 そして以下のように設定。

1
2
3
4
5
6
7
8
9
[root@KURO-BOX ~]# mkdir /tmp/mirror ← ミラー先ディレクトリの作成

[root@KURO-BOX ~]# chown nobody:nobody /tmp/mirror ← ミラー先ディレクトリ所有者をnobodyに変更

[root@KURO-BOX ~]# vi /etc/rsyncd.conf ← rsyncサーバ設定ファイルの作成
[mirror] ← 任意のモジュール名(ミラー元から接続時の名前)
    path = /tmp/mirror ← ミラー先ディレクトリ
    hosts allow = 192.168.11.0/24 ← 接続許可ホスト
    read only = false ← 更新許可

3.ミラー先のrsyncサーバー起動

1
2
3
4
5
6
[root@KURO-BOX ~]# yum -y install xinetd ← xinetdインストール

[root@KURO-BOX ~]# /etc/rc.d/init.d/xinetd start ← xinetd起動
xinetd を起動中:                                           [  OK  ]

[root@KURO-BOX ~]# chkconfig rsync on ← rsyncサーバ自動起動設定

4.ミラー元(実サーバ)へlsyncdインストール

「 Poderosa 」により 実サーバ・Fedora10 にリモート接続し、rootユーザになっておく。 そして、以下のようにして lsyncd をインストール。 実際には以下の作業は前回終了しているので、今回は省略。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@noah ~]# yum -y install libxml2-devel ← lsyncdインストールに必要なパッケージをインストール

[root@noah ~]# wget http://lsyncd.googlecode.com/files/lsyncd-1.26.tar.gz ← lsyncdダウンロード

[root@noah ~]# tar zxvf lsyncd-1.26.tar.gz ← lsyncd展開

[root@noah ~]# cd lsyncd-1.26 ← lsyncd展開先ディレクトリへ移動

[root@noah lsyncd-1.26]# ./configure && make && make install ← lsyncdインストール

[root@noah lsyncd-1.26]# cd ← lsyncd展開先ディレクトリを抜ける

[root@noah ~]# rm -rf lsyncd-1.26 ← lsyncd展開先ディレクトリを削除

[root@noah ~]# rm -rf lsyncd-1.26.tar.gz ← ダウンロードしたファイルを削除

5.ミラー元のlsyncd設定

1
2
3
4
5
6
7
8
9
10
11
12
[root@noah ~]# vi /etc/lsyncd.conf ← lsyncd設定ファイルの作成
/ 192.168.11.2 mirror ← 「 ミラー元ディレクトリ  ミラー先(rsyncサーバ)IPアドレス  ミラー先モジュール名 」の順に指定

[root@noah ~]# vi /etc/logrotate.d/lsyncd ← lsyncdログローテーション設定ファイルの作成
/var/log/lsyncd {
    missingok
    notifempty
    sharedscripts
    postrotate
        /etc/rc.d/init.d/lsyncd restart 2>&1 > /dev/null || true
    endscript
}

6.ミラー元のlsyncd起動

実際には既に起動しているので、再起動した。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
[root@noah ~]# vi /etc/rc.d/init.d/lsyncd ← lsyncd起動スクリプト作成
#!/bin/bash
#
# lsyncd
#
# chkconfig: - 99 20
# description: lsyncd auto start script

start() {
    IFS=
    for i in `cat /etc/lsyncd.conf`
    do
        src=`echo $i|awk '{print $1}'`
        dest=`echo $i|awk '{print $3}'`
        remort=`echo $i|awk '{print $2}'`
        /usr/local/bin/lsyncd $src $remort::$dest/
    done
}

stop() {
    /bin/kill -9 `/sbin/pidof lsyncd`
    until [ -z $(/sbin/pidof lsyncd) ]; do :; done
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
        pid=`pidof lsyncd`
        if [ $? -eq 0 ]; then
            echo "lsyncd (pid $pid) is running..."
        else
            echo "lsyncd is not running"
        fi
        ;;
    *)
        echo "Usage: lsyncd {start|stop|restart|status}"
        exit 1
esac

exit $?

[root@noah ~]# chmod +x /etc/rc.d/init.d/lsyncd ← lsyncd起動スクリプトへ実行権限付加

[root@noah ~]# /etc/rc.d/init.d/lsyncd start ← lsyncd起動

[root@noah ~]# chkconfig --add lsyncd ← lsyncd起動スクリプトをchkconfigへ登録

[root@noah ~]# chkconfig lsyncd on ← lsyncd自動起動設定

7.動作確認

上記の「 lsyncd起動 」で処理が開始されているはずなので、しばらくしてからミラー先(VMware側Fedora)の指定したディレクトリにコピーされているか確認する。 ■ミラー元

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@noah ~]# ls -ll /
合計 122
drwxr-xr-x   8 root root  4096 2009-04-05 05:07 backup
drwxr-xr-x   2 root root  4096 2009-03-29 05:11 bin
drwxr-xr-x   5 root root  1024 2009-04-04 07:15 boot
drwxr-xr-x  16 root root  4480 2009-04-05 11:04 dev
drwxr-xr-x 103 root root 12288 2009-04-05 10:55 etc
drwxr-xr-x   5 root root  4096 2009-01-06 09:46 home
drwxr-xr-x  16 root root 12288 2009-04-02 05:08 lib
drwx------   2 root root 16384 2008-12-09 08:55 lost+found
drwxr-xr-x   2 root root  4096 2008-09-06 19:13 media
drwxr-xr-x   2 root root  4096 2008-09-06 19:13 mnt
-rw-r--r--   1 root root   538 2009-03-02 11:20 mrtg-l.png
-rw-r--r--   1 root root   414 2009-03-02 11:20 mrtg-m.png
-rw-r--r--   1 root root  1759 2009-03-02 11:20 mrtg-r.png
drwxr-xr-x   2 root root  4096 2008-09-06 19:13 opt
dr-xr-xr-x 151 root root     0 2009-03-23 07:01 proc
-rw-r--r--   1 root root   181 2008-12-09 23:03 razor-agent.log
drwxr-x---   9 root root  4096 2009-03-30 19:38 root
drwxr-xr-x   2 root root 12288 2009-04-02 05:08 sbin
drwxr-xr-x   2 root root  4096 2008-12-09 08:57 selinux
drwxr-xr-x   2 root root  4096 2008-09-06 19:13 srv
drwxr-xr-x  12 root root     0 2009-03-23 07:01 sys
drwxrwxrwt  10 root root  4096 2009-04-05 11:03 tmp
drwxr-xr-x  13 root root  4096 2008-12-09 09:02 usr
drwxr-xr-x  23 root root  4096 2008-12-10 17:52 var
[root@noah ~]#

■ミラー先

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@KURO-BOX ~]# ls -ll /tmp/mirror
合計 108
drwxr-xr-x   8 nobody nobody 4096 2009-04-05 05:07 backup
drwxr-xr-x   2 nobody nobody 4096 2009-03-29 05:11 bin
drwxr-xr-x   5 nobody nobody 4096 2009-04-04 07:15 boot
drwxr-xr-x  16 nobody nobody 4096 2009-04-05 10:56 dev
drwxr-xr-x 103 nobody nobody 8192 2009-04-05 10:55 etc
drwxr-xr-x   5 nobody nobody 4096 2009-01-06 09:46 home
drwxr-xr-x  16 nobody nobody 8192 2009-04-02 05:08 lib
drwx------   2 nobody nobody 4096 2008-12-09 08:55 lost+found
drwxr-xr-x   2 nobody nobody 4096 2008-09-06 19:13 media
drwxr-xr-x   2 nobody nobody 4096 2008-09-06 19:13 mnt
-rw-r--r--   1 nobody nobody  538 2009-03-02 11:20 mrtg-l.png
-rw-r--r--   1 nobody nobody  414 2009-03-02 11:20 mrtg-m.png
-rw-r--r--   1 nobody nobody 1759 2009-03-02 11:20 mrtg-r.png
drwxr-xr-x   2 nobody nobody 4096 2008-09-06 19:13 opt
dr-xr-xr-x 163 nobody nobody 4096 2009-03-23 07:01 proc
-rw-r--r--   1 nobody nobody  181 2008-12-09 23:03 razor-agent.log
drwxr-x---   9 nobody nobody 4096 2009-03-30 19:38 root
drwxr-xr-x   2 nobody nobody 8192 2009-04-02 05:08 sbin
drwxr-xr-x   2 nobody nobody 4096 2008-12-09 08:57 selinux
drwxr-xr-x   2 nobody nobody 4096 2008-09-06 19:13 srv
drwxr-xr-x  12 nobody nobody 4096 2009-03-23 07:01 sys
drwxrwxr-x  10 nobody nobody 4096 2009-04-05 10:50 tmp
drwxr-xr-x  13 nobody nobody 4096 2008-12-09 09:02 usr
drwxr-xr-x  23 nobody nobody 4096 2008-12-10 17:52 var
[root@KURO-BOX ~]#

ファイル類も大体(?)コピーされている模様。


設定は以上です。

仮にミラー先が起動していない場合は、ミラー先が起動した後の最初のファイル更新時にミラーリングがされるみたいです。 それはスゲー!

今回は実際にミラー先を元にクローンを復元するところまではしません。

ただ、気になるのは 実サーバはi386カーネル ミラー先(玄箱HG)はppcカーネル という違いがあること。

ま、だめなら、VM側でやることにします。

とりあえず、ここまでできていれば、何とかなるでしょう!?

それじゃ。

Comments