Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
みなさん、こんにちは、Windows プラットフォームサポートの高田です。
今回は、Active Directory における制限事項についてまとめさせていただきます。その他に存在する制限事項については、文末の参考文献もご覧いただければと思います。
オブジェクトが保持できるサイズの最大値
Active Directory には、内部的にオブジェクトが保持できるサイズの最大値として 8KB の上限値があります。通常、この上限値にの影響を受けることはございませんが、non-linked multi-value 属性を利用している場合、制限に抵触する場合があります。
まず、Active Directory のオブジェクトにどのように情報が入るかを簡単に説明しますと、各属性にはデータが直接入るわけではなく、各属性の実データに関連づけるデータ (ポインター) が入ります。オブジェクトにデータが格納されるたびに、各属性の実データに関連づくデータがレコードの中に格納されサイズを消費するイメージです。non-linked multi-value 属性をご利用の場合、実データが 1 ライン増える度に実データに関連づけるデータがレコードの中に格納されサイズを消費することになります。
しかし、これらの情報が合計して 8KB を超過するとそれ以上情報を追加できなくなります。この結果として、non-linked multi-value 属性に値を追加した際にエラーが生じます。また、仮に non-linked multi-value 属性でなくても、今までデータが未設定だった属性にデータを入れるような処理も失敗します。
non-linked multi-value 属性の場合、おおむね 8KB は 1200 件程度に相当します。このため、他の属性に割り当てる情報量も考慮すると、現実的な上限として、1200 件を超えないよう運用ください。
なお、Active Directory レコードには複製によって更新される属性の他に、内部的に保持・管理するデータが含まれるため、同一オブジェクトであっても各ドメインコントローラで保持されるレコードサイズは全ドメインコントローラで異なります。ただし、一般的には最大 1200 行程度までは追加する事ができるとご理解ください。
この動作については、以下の技術情報が参考になりますので、こちらをご参照いただければと思います。
How the Data Store Works
<https://technet.microsoft.com/en-us/library/cc772829(v=ws.10).aspx>
The practical limit of 800 nonlinked values per object is increased in Windows Server 2003 and later. When the forest has a functional level of Windows Server 2003 or higher, for a theoretical record that has only one attribute with the minimum of overhead, the maximum number of multivalues possible in one record is computed at 3937. Using similar estimates for overhead, a practical limit for nonlinked multivalues in one record is approximately 1200.
LDAP の DirSync コントロール指定時に取得できる multi-value 属性の最大数
Active Directory ディレクトリ同期 (DirSync) コントロール検索を実行することで、Active Directory の変更をポーリングすることが可能です。これにより、ある時点の Active Directory の状態を取得しておき、その後の任意の時点で、以降に実施された変更内容との差分を取得することができます。差分情報としては、例えば、オブジェクトの追加や属性の変更などが挙げられます。
このように、ディレクトリ同期 (DirSync) コントロールを使用することで、差分が取得できますが、multi-value 属性については 5000 件が最大数となります。つまり、5000 以上のメンバーを持つグループに対して、ディレクトリ同期 (DirSync) コントロール検索を実施した場合でも、5000 件の結果が得られます (グループに追加されているオブジェクトの作成順に 5000 件目までが返されます)。これは、ディレクトリ同期 (DirSync) コントロールの動作によるものです。
なお、Active Directory のグループに 5000 件以上のメンバーを含めること自体は、Link Value Replication (LVR) と呼ばれる仕組みにより実現可能となっています。ただし、ディレクトリ同期 (DirSync) コントロールとの組み合わせにおいては、5000 件で一旦の制約があるものとご理解ください。
Active Directory に関わる最大値という観点でまとめられた情報としましては、次の情報 (英語) があります。今回の情報はそれを補足するものですが、それぞれ今後の運用において参考にしていただければと思います。
Active Directory Maximum Limits - Scalability
<https://technet.microsoft.com/en-us/library/cc756101(WS.10).aspx>