「RsyncベースのSysvolレプリケーションの回避策」の版間の差分
(→その他のドメインコントローラの設定) |
(→その他のドメインコントローラの設定) |
||
92行目: | 92行目: | ||
* 自動的に同期できるように、コマンドを<code>cron</code>で実行してください(例えば、5分毎に)。 | * 自動的に同期できるように、コマンドを<code>cron</code>で実行してください(例えば、5分毎に)。 | ||
− | <pre>*/5 * * * * rsync -XAavz --delete-after --password-file=/usr/local/samba/etc/rsync-sysvol.secret rsync://sysvol-replication@{IP-of- | + | <pre>*/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/</pre> |
* これらのステップを全てのDCで繰り返して下さい(PDCは除く)。 | * これらのステップを全てのDCで繰り返して下さい(PDCは除く)。 | ||
2019年3月12日 (火) 23:18時点における版
目次
はじめに
Samba ADは現在、SysVolレプリケーションのサポートを提供していません。 Multi-DC環境でこの重要な機能を実現するには、実装するまで、同 期を維持するための回避策が必要です。このHowToは、rsyncに基づいた基本的な回避策のソリューションを提供します。
rsyncベースのレプリケーションに関する情報
この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-you-PDC}/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
- どのようにすれば、複数方向のレプリケーションを実行できますか?
- これを実現するために、unisonとrsyncを使用しているテストがいくつかあります。
- ここを見て下さい:
- https://wiki.samba.org/index.php/Bidirectional_Rsync/Unison_based_SysVol_replication_workaround
- なぜ、SysvolのためにGlusterFS、Lustreなどの分散型ファイルシステムをシンプルに使えないのですか?
- Sambaを使用するクラスタファイルシステムでは、CTDBを安全に実行する必要があります。それに、CTDBとAD DCは互換性がありません。