RsyncベースのSysvolレプリケーションの回避策

提供: 雑廉堂Wiki

はじめに

Samba ADは現在、SysVolレプリケーションのサポートを提供していません。 Multi-DC環境でこの重要な機能を実現するには、実装するまで、同 期を維持するための回避策が必要です。このHowToは、rsyncに基づいた基本的な回避策のソリューションを提供します。

rsyncベースのレプリケーションに関する情報

PDCのためのグループポリシー管理コンソールのオプション

このHowToでは、rsyncに基づいたSysVolレプリケーションのソリューションについて説明します。このツールは一方向です。つまり、ファイルは一方向にしか転送できません。そのため、rsyncベースのSysVolレプリケーションでは、すべての変更(GPO編集、ログオンスクリプトの変更など)を行うDCを1つ選択する必要があります。他のすべてのDCはこのホストからの変更を取得します。これは、同期時に変更が上書きされるためで す。

「マスター」ホストの良い選択は、FSMOの「PDCエミュレータ」を含む一台です。なぜなら、他のDCのいずれかを選択するのではなく、このコン ピュータのみに接続するようににグループポリシー管理コンソールを構成できるからです(既定)。GPMCが接続するコンピュータの「アクション」/「ドメインコントローラの変更」で定義できます。そこでは「PDCエミュレータ用の操作マスタートークンをもつドメインコントローラ」( デフォルト)を選択する必要があります。

rsyncの単一方向のレプリケーションは制限がありますが、多くの利点もあります。

  • ほとんどのディストリビューションで既に利用可能であり、パッケージマネージャを使用してインストールすることもできます(まだインストールされていない場合)
  • 非常に迅速にセットアップできます
  • 非常に簡単に設定できます
  • 等々

rsyncをSSHトンネル経由で使用する場合は、必要に応じてコマンドを適用できますが、通常はSysVol共有に機密コンテンツはありません。ほとんどの場合、暗号化されていない転送を使用するだけで十分です。 PDCエミュレータ上のrsyncモジュールもソースとしてのみ使用されるため、読み取り専用と して定義されているため、コンテンツをプッシュすることはできません。

Sysvolレプリケーションを設定する

PCDエミュレータFSMOロールをもつドメインコントローラでの設定

  • パッケージマネージャを用いるか、あるいはソースからコンパイルしてrsyncをインストールします。使用しているバージョンが、拡張ACLをサポートしているかどうか確認してください。
  • もし、xinetdを通してrsyncサーバを開始するのであれば、以下の設定ファイルを使用できます(/etc/xinetd.d/rsync)。
service rsync
{
   disable         = no
   only_from       = 10.99.0.0/28     # Restrict to your DC address(es) or ranges, to prevent other hosts retrieving the content, too.
   socket_type     = stream
   wait            = no
   user            = root
   server          = /usr/bin/rsync
   server_args     = --daemon
   log_on_failure += USERID
}
  • /etc/rsyncd.confを作成(path変数はPDCエミュレータのSysvolのパスに適合させてください)
[SysVol]
path = /usr/local/samba/var/locks/sysvol/
comment = Samba Sysvol Share
uid = root
gid = root
read only = yes
auth users = sysvol-replication
secrets file = /usr/local/samba/etc/rsyncd.secret
  • 以下の内容(パスワードはそちらに合わせて改変してください)で/usr/local/samba/etc/rsyncd.secretファイルを作成してく ださい(ファイルのパーミッションは誰でも読み取れるようにしてはいけません):
sysvol-replication:pa$$w0rd
  • xinetdを再スタートしてください。

その他のドメインコントローラの設定

  • 全てのDCでビルトイングループが同一のIDを持っていることを確認してください。
  • パッケージマネージャを用いるか、あるいはソースからコンパイルしてrsyncをインストールします。使用しているバージョンが、拡張ACLをサポートしているかどうか確認してください。
  • パスワードファイル/usr/local/samba/etc/rsync-sysvol.secretを作成し、あなたがsysvolレプリケーションのrsyncアカウント用のPDCエミュレータでセットしたパスワードで埋めて下さい。(ファイルのパーミッションは誰でも読み取れるようにしてはいけません):
pa$$w0rd
  • Sysvolフォルダーを複製するために、以下のコマンドを実行して下さい(--dry-runは実際に変更が加えられないことを意味します)
# rsync --dry-run -XAavz --delete-after --password-file=/usr/local/samba/etc/rsync-sysvol.secret rsync://sysvol-replication@{IP-of-your-PDC-Emurator}/SysVol/ /path/to/your/sysvol/folder/

receiving file list ... done                                                                                                      
created directory /usr/local/samba/var/locks/sysvol                                                                               
./                                                                                                                                
samdom.example.com/                                                                                                               
samdom.example.com/Policies/                                                                                                      
samdom.example.com/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/                                                               
samdom.example.com/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/GPT.INI                                                        
samdom.example.com/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/                                                       
samdom.example.com/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Registry.pol                                           
samdom.example.com/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/USER/                                                          
samdom.example.com/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/USER/Documents & Settings/                                 
samdom.example.com/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/USER/Scripts/                                                  
samdom.example.com/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/USER/Scripts/Logoff/
samdom.example.com/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/USER/Scripts/Logon/
samdom.example.com/Policies/{6AC1786C-016F-11D2-945F-00C04FB984F9}/
samdom.example.com/Policies/{6AC1786C-016F-11D2-945F-00C04FB984F9}/GPT.INI
samdom.example.com/Policies/{6AC1786C-016F-11D2-945F-00C04FB984F9}/MACHINE/
samdom.example.com/Policies/{6AC1786C-016F-11D2-945F-00C04FB984F9}/USER/
samdom.example.com/scripts/
samdom.example.com/scripts/logonscript.bat

sent 124 bytes  received 1064 bytes  2376.00 bytes/sec
total size is 1207  speedup is 1.02 (DRY RUN)

警告:宛先のフォルダが本当にSysvolフォルダーであるか確認してください。コマンドは指定されたディレクトリに複製し、なおかつソース にないものは全て削除されます。システムにダメージを与える可能性があります。ですので、レプリケーションが期待通りに動作しているか確認するために、出力を注意深くチェックして下さい。

  • すべて正常に動作しているのであれば、--dry-runオプションなしでコマンドを実行し、rsyncにレプリケーション実行させます。
  • 自動的に同期できるように、コマンドをcronで実行してください(例えば、5分毎に)。
*/5 * * * *          rsync -XAavz --delete-after --password-file=/usr/local/samba/etc/rsync-sysvol.secret rsync://sysvol-replication@{IP-of-your-PDC-Emulator}/SysVol/ /path/to/your/sysvol/folder/
  • これらのステップを全てのDCで繰り返して下さい(PDCは除く)。

FAQ

  • どのようにすれば、複数方向のレプリケーションを実行できますか?
  • なぜ、SysvolのためにGlusterFS、Lustreなどの分散型ファイルシステムをシンプルに使えないのですか?
  • Sambaを使用するクラスタファイルシステムでは、CTDBを安全に実行する必要があります。それに、CTDBとAD DCは互換性がありません。