İçerikleri sosyal medya üzerinden paylaşarak daha fazla kişiye ulaşmasına yardımcı olabilirsiniz.




Fırat Boyan 08.01.2018 0

The directory service has exhausted the pool of relative identifiers hatası ve çözümü

Active Directory içerisindeki her objenin benzersiz bir kimlik numarasına sahip olmasını sağlayan sistem, RID (Relative Identifier) ve SID (Security Identifier) üzerine kuruludur. Her yeni Active Directory nesnesi oluşturulduğunda, bu nesnelere otomatik olarak RID atanır. RID'ler, ilgili Domain'in SID'ine bağlı olarak sıralı bir şekilde verilir. Domain Controller, RID Master FSMO rolünü üstlenen sunucu tarafından yönetilen bir RID havuzundan bu tanımlayıcıları alır. Bu sunucu, her seferinde 500'lük paketler halinde RID'leri diğer Domain Controller'lara dağıtarak, nesne oluşturma işlemlerinin devam etmesini sağlar.

Ancak, The directory service has exhausted the pool of relative identifiers hatası, Active Directory'nin atayabileceği RID'lerin tükendiğini gösterir. Bu durum genellikle, RID Master FSMO rolünü tutan sunucudan yeni bir 500'lük RID paketi alınamadığında meydana gelir. RID havuzunun tükenmesi, çeşitli teknik sebeplerden ötürü olabilir. En yaygın sebeplerden biri, RID Master rolünü barındıran sunucunun Network bağlantı sorunları yaşaması veya sistemsel bir arıza nedeniyle çevrimdışı kalmasıdır. Ayrıca, aşırı sayıda obje oluşturma işlemi de RID havuzunun hızla tükenmesine sebep olabilir.

Bu tür bir sorunla karşılaşıldığında, ilk adım genellikle RID Master FSMO rolünü tutan sunucunun durumunu kontrol etmek olmalıdır. Eğer sunucu çevrimdışı ise, onu yeniden çevrim içi hale getirmek veya gerekirse FSMO rollerini başka bir Domain Controller'a aktarmak gerekebilir. Eğer sunucu çalışır durumda ise ve yine de RID paketleri sağlanamıyorsa, bu durumda yapılandırma veya Network iletişiminde derinlemesine bir sorun olup olmadığını araştırmak önemlidir.

Active Directory içerisinde RID Master FSMO rolünü üstlenen sunucunun varsayılan olarak yönettiği RID havuzu, 1,073,741,823 (1 milyar 73 milyon 741 bin 823) adet RID içerir. Bu rakam, Microsoft tarafından belirlenmiş ve yönetilen bir sınırı temsil eder. Her yeni Active Directory nesnesi için bir RID kullanıldığından, bu havuzun kapasitesi, kuruluşların büyüklüğü ve obje yaratma sıklığına bağlı olarak zamanla tükenmeye başlar.

RID havuzunun bu kapasitesi, genellikle büyük çoğunlukla yeterli olsa da, büyük kuruluşlar veya yoğun Active Directory değişiklikleri gerçekleştiren ortamlar için bu sayı yetersiz kalabilir. RID havuzu tükendiğinde, yeni kullanıcılar, gruplar veya diğer nesneler oluşturulamaz ve bu, "The directory service has exhausted the pool of relative identifiers" hatası ile sonuçlanır. Bu sınırın aşılması durumunda, genellikle RID Master rolünü tutan sunucunun başka bir sunucuya geçirilmesi veya Microsoft'un önerdiği üst sınır olan 2,147,483,647'ye (2 milyar 147 milyon 483 bin 647) kadar RID havuzunun genişletilmesi gibi adımlar gerekebilir. Ancak, Microsoft bu sınırın çok gerekli olmadıkça artırılmamasını önermektedir, çünkü bu, Active Directory'nin performansını ve yönetimini daha karmaşık hale getirebilir.

Aşağıdaki komut yardımıyla RID Pool değerlerinizi kontrol edebilirsiniz. Çıkan sonuç, RID Master FSMO rolünün sahip olduğu toplam RID Pool değeridir. 

Dcdiag.exe /TEST:RidManager /v | find /i "Available RID Pool for the Domain"

Rid Master Block Size

Domain ya da Forest ortamındaki RID Master FSMO rolünü tutmayan diğer Domain Controller'lar üzerlerinde 500 adet RID numarası bulunurlar (Windows Server 2016 ile birlikte bu sayı 500'e çıkartılmıştır) ve bu RID Master FSMO rolünü tutmayan diğer Domain Controller'lar, bu sayının %50'si tükendiğinde RID master FSMO rolünü üzerinde tutan Domain Controller ile iletişime geçerek, tekrar bir 500'lük RID talebinde bulunurlar. Tüm bu işlemleri yerine getiren RID Master FSMO rolüdür. RID Matser'ı barındıran Domain Controller'ın herhangi bir sebeple işlevsiz kalması ve yapınızdaki herhangi bir diğer Domain Controller'ın da barındırdığı bu sınırlı RID numarasının tükenmesi durumunda, RID numarasının tükendiği Domain Controller üzerinde yeni Active Directory nesneleri oluşturulamayacaktır ve the directory service has exhausted the pool of relative identifiers hatası oluşacaktır.

Bu bilgileri, aşağıdaki küçük bir uygulama ile size göstermek istiyorum. Örneğimde 3 Site'lı bir Forest yapım bulunuyor. ANTALYA-SITE içinde 1 adet Domain Controller'ım var. Bu Site'ımın RID Master FSMO rolünü tutan ISTANBUL-SITE ile VPN bağlantıısı kesildiği için iletişim kuramıyorlar.

Domain Controller

VPN bağlantısının kesildiği ANTALYA-SITE içindeki Active Directory üzerindeki bir OU (Organization Unit) içinde DS (Directory Service) komut setinin FOR döngüsel biçimi ile CMD üzerinde 500 tane kulanıcı oluşturuyorum.

FOR /L %i in (1,1,500) do dsadd user "CN=Kullanici%i,OU=Kullanicilar,OU=IT,OU=Istanbul,OU=Turkiye,DC=firatboyan,DC=com" -pwd Aa11223344 -mustchpwd yes -fn User%i -email User%i@firatboyan.com -upn User%i@firatboyan.com -webpg "www.firatboyan.com" -dept "IT" -title "Sistem Uzmani"

relative identifiers pool exhausted

Kullanıcı nesnelerini oluşturduğum, RID Master FSMO rolünü üzerinde tutmayan bu Domain Controller, kendi üzerinde tuttuğu 500'lük RID paketini kullanırken, bu paketin %50'sini tükettiğinde, RID Master FSMO rolünü tutan Domain Controller ile VPN bağlantısının mevcut olmaması sebebiyle, 500'ncü kullanıcıda "The directory service has exhausted the pool of relative identifiers." hatası ile karşılaştım.

directory service has exhausted the fool of relative identifiers

Hemen ardından Active Directory Users and Computers içinde FIRAT BOYAN kullanıcısını eklemeye çalıştığımda da "Windows cannot create FIRAT BOYAN because: The directory service has exhausted the pool of relative identifiers." hatasını alıyorum.

relative identifiers pool exhausted

relative identifiers pool exhausted

Bu hatanın çözümü için yapılması gereken, RID Master FSMO rolünü tutmayan Domain Controller'ın, RID Master FSMO rolünü tutan Domain Controller ile haberleşmesi ve yeni bir 500'lük RID Pool talebinde bulunması gereklidir. Bunu sağladıktan sonra, yeniden Active Directory kullanıcı nesneleri oluşturabildiğinizi göreceksiniz.

Faydalı olması dileğiyle....


Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.



Yazar Hakkında

firatboyan.com


1985 yılında Alanya'da doğdum. İlk, orta ve lise öğrenimimi Alanya'da tamamladım. Liseden mezun olduktan sonra Akdeniz Üniversitesi Bilgisayar Teknolojisi Ön Lisans programına yerleştim ve bu programdan mezun oldum. Ön Lisans programından mezun olduktan bir süre sonra Dikey Geçiş Sınavı (DGS) ile İstanbul Teknik Üniversitesi (İTÜ) Bilgisayar Mühendisliği Lisans programına yerleştim.

2003 yılından beri Bilgi Teknolojileri sektöründe Sistem ve Network alanlarında çalışıyorum. Bir çok firma bünyesinde onlarca farklı projelerde yer alarak bu alanda yıllar içinde ciddi bir bilgi birikimi ve deneyimler kazandım. Bilgi Teknolojileri sektöründeki profesyonel çalışma hayatımın uzunca bir dönemini entegratör firma bazında, ağılıklı olarak Microsoft ürünleri üzerine danışman olarak sürdürüyor ve yüksek seviyeli projeler geliştiriyorum. Uzunca bir süredir de Türkiye'nin önde gelen entegratör firmalarından olan Data Market bünyesinde Senior Cloud Engineer olarak çalışıyorum.

Ek olarak, 2015 yılında Network Akademi bünyesinde Microsoft Certified Trainer (MCT) ünvanı ile Sistem ve Network Uzmanlık eğitimleri vermeye başladım. Sistem ve Network Uzmanlığı alanındaki eğitmenlik serüvenime Network Akademi bünyesinde devam etmekteyim.

YORUMLAR
Bu makaleye henüz yorum yapılmadı! İlk yorum yapan sen ol.
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.


750 karakter yazabilirsiniz.
Captcha
Güvenlik kodunu BÜYÜK harflerle giriniz.
* Yorumlar, onaylandıktan sonra yayınlanmaktadır.
* E-posta, yorum onay bildirimi için gereklidir. Yayınlanmaz.