# lsyncd によるホスト間同期の設定
lsyncd によるホストA からホストB への片方向リアルタイム同期の設定をご紹介いたします。これによって ホストB をホストA のリードレプリカ、コールドバックアップにすることができます
graph LR
A[ホストA] --> |lsync|B[ホストB]
lsyncd は通信に rsync を利用する(しない方法もあります)ので、まずホスト間で rsync の通信ができるように設定し、次に lsyncd で同期するフォルダの設定をおこないます
# rsync の設定
両ホスト共、rsync がインストールされていなければ、まずインストールします
sudo apt-get install rsync
# ホストA の公開鍵を ホストB で共有
# 公開鍵ペアの作成
ホームディレクトリに .ssh フォルダがない、もしくは .ssh フォルダ配下に鍵ペア(id_rsa, id_rsa.pub) がない場合、まず公開鍵ペアを作成します
ssh-keygen -t rsa
# ホストA の公開鍵を ホストB に登録
ホストA から ホストB に rsync できるように、ホストA の公開鍵を ホストB に登録します
ホストA で下記の ssh-copy-id コマンドを実行します
ssh-copy-id -i ~/.ssh/id_rsa.pub ホストBのアドレス
ssh-copy-id がない場合は openssh-clients をインストールします
sudo apt-get install openssh-client
# rsync のテスト
ホストA のフォルダA を、ホストB のフォルダB に同期する場合、下記のコマンドをホストAで実行します
sudo rsync -avog --delete フォルダA ホストB:フォルダB
--delete オプションは、ホストAで削除されたファイルをホストB でも削除します
# lsyncd の設定
# インストール
sudo apt-get install lsyncd
# 設定
/etc/lsyncd.conf ファイルに sync 追加します。sync は複数書くことができます
settings {
-- logfile = "/val/log/lsyncd.log",
statusFile = "/tmp/lsyncd.status",
-- nodaemon = true,
}
sync {
default.rsync,
source = "フォルダAのフルパス",
target = "ホストB:フォルダBのフルパス",
rsync = {
archive = true,
compress = true,
group = true,
owner = true
}
}
sync {
# lsyncd の起動
lsyncd /etc/lsyncd.conf
# references
本稿は以下を参考にさせていただきました
← Misc