タグ: lsync

サーバ3台構成によるlsyncのバックアップ。

サーバ3台構成になっていることで、データの更なる冗長化を図ります。

バックアップ概要

redmineのデータをnextcloudにリアルタイム同期、nextcloudからgrowiに更に同期させます。

設定

基本的にこの設定通り。以前のサーバ設定をコピペする形なので、バックアップ先と元が逆にならないように細心の注意を払いました。

設定中のエラー

動作確認中のlsyncログを見たら以下を発見。

Sun Dec  4 04:20:39 2022 Error: Terminating since out of inotify watches.
Consider increasing /proc/sys/fs/inotify/max_user_watches

幸い、解決策がネットにありました。

http://blog.livedoor.jp/kmiwa_project/archives/1072412621.html

解決

vi /etc/sysctl.conf
設定内容
fs.inotify.max_user_watches = 819200
# 上記の内容を追記します
設定反映
sysctl -p
systemctl restart lsync

これによって、同期が無事に始まりました。

rsyncdとlsyncdによるリアルタイム同期。

自宅サーバのredmineの耐障害性を高めるため、

flowchart LR Redmine -- rsyncによる転送--> Backup

を仕込みました。

環境

  • バックアップ元(Linux Mint 20.03)
  • バックアップ先(Kubuntu 20.04)

共にrsyncdはインストールされています。

参考:
https://www.server-world.info/query?os=Ubuntu_18.04&p=rsync
https://www.server-world.info/query?os=Ubuntu_18.04&p=lsync

バックアップ先の設定:

vi /etc/rsyncd.conf
ファイル内容
[backup]
path = /home/backup/redmine
hosts allow = [バックアップ元のIPアドレス]
hosts deny = *
list = true
uid = www-data
gid = www-data
read only = false

バックアップディレクトリ作成

mkdir /home/backup/redmine
chown -R www-data:www-data /home/backup/redmine

systemctl restart rsync.service

バックアップ元の設定:

rsyncのテストを行う。

rsync -avz --delete /home/hoge/test.txt バックアップ先::backup

バックアップ先にtest.txtが格納されることを確認しました。

lsyncdのインストール

aptitude install lsyncd
mkdir /etc/lsyncd
vi /etc/lsyncd/lsyncd.conf.lua

ファイル内容

settings{
    logfile="/var/log/lsyncd/lsyncd.log",
    statusFile = "/tmp/lsyncd.stat",
    statusInterval = 1,
}
sync{
    default.rsync,
    source="/var/lib/redmine/",
    # redmine配下をまるごとバックアップします。
    target="[バックアップ先]::backup",
}

lsyncdのログ設定

mkdir /var/log/lsyncd
vi /etc/logrotate.d/lsyncd
ローテーションファイルの内容
/var/log/lsyncd/*.log {
        missingok
        notifempty
        copytruncate
        compress
}

サービス反映

systemctl restart lsyncd
systemctl status lsyncd
systemctl enable lsyncd

リアルタイムの設定確認

tail -f /var/log/lsyncd/lsyncdlog
#別ウィンドウで開きます
cd /var/lib/redmine
touch test.txt

ファイル追加後、ログに以下を確認。

Fri Apr 15 20:38:41 2022 Normal: Calling rsync with filter-list of new/modified files/dirskup/ finished.
/test.txt
/
Fri Apr 15 20:38:41 2022 Normal: Finished a list after exitcode: 0
rm test.txt

ファイル削除後、ログに以下を確認しました。

Fri Apr 15 20:39:51 2022 Normal: Calling rsync with filter-list of new/modified files/dirs
/test.txt
/
Fri Apr 15 20:39:52 2022 Normal: Finished a list after exitcode: 0

まとめ

により、要のDBのバックアップとリストアができたことは確認済み。

後は復旧できるかどうかを試してみます。

Powered by WordPress & Theme by Anders Norén