目次

2024.10.04 lsyncd

lsyncd(Live Syncing Daemon)は、ファイルの変更をリアルタイムで同期するためのツール

総じて、lsyncdはNFSの代替として優れた選択肢である一方、運用においては同期の遅延や競合のリスクを考慮する必要があります。
lsyncdの設定を適切に調整すれば、NFSのパフォーマンス問題を軽減できる可能性があるでしょう。

相互同期設定

下記のサーバで、/var/www/htmlを相互同期する方法

Aサーバ: 192.168.10.11
Bサーバ: 192.168.10.12

1. インストール

sudo apt update
sudo apt install lsyncd

2.両サーバへ鍵でSSH可能に

Aサーバ

ssh-copy-id root@192.168.10.12

Bサーバ

ssh-copy-id root@192.168.10.11

3.lsyncd.conf.lua

Aサーバ /etc/lsyncd/lsyncd.conf.lua

settings {
    logfile    = "/var/log/lsyncd.log",
    statusFile = "/var/log/lsyncd-status.log",
    statusInterval = 1,      -- ステータスログの更新間隔を1秒に設定
    inotifyMode = "CloseWrite" -- ファイルが閉じられた時点で変更を検出
}

sync {
    default.rsyncssh,
    source = "/var/www/html/",
    host = "root@192.168.10.12",
    targetdir = "/var/www/html/",
    delay = 1,                    -- 変更後1秒で同期
    rsync = {
        archive = true,
        compress = true,
    }
}

Bサーバ /etc/lsyncd/lsyncd.conf.lua

settings {
    logfile    = "/var/log/lsyncd.log",
    statusFile = "/var/log/lsyncd-status.log",
    statusInterval = 1,      -- ステータスログの更新間隔を1秒に設定
    inotifyMode = "CloseWrite" -- ファイルが閉じられた時点で変更を検出
}

sync {
    default.rsyncssh,
    source = "/var/www/html/",
    host = "root@192.168.10.11",
    targetdir = "/var/www/html/",
    delay = 1,                    -- 変更後1秒で同期
    rsync = {
        archive = true,
        compress = true,
    }
}

4.起動と自動起動設定

sudo systemctl start lsyncd
sudo systemctl enable lsyncd