اهمیت FSMO ها در ساختار اکتیودایرکتوری

ساختار اکتیودایرکتوری شامل یک جنگل یا forest است که با درخت ها یا Domain Tree پر میشوند و با نگاه کردن به نام هر یک از این دامین ها میتوان محل آن را در ساختار اکتیودایرکتوی مشخص کرد . قطعا برای شما دوستان هم این موضوع واضح هست که دامین هایی که در بالای این ساختار سلسله مراتبی یا بهتر بگیم موروثی قرار میگیرن از درجه اهمیت بیشتری نسبت به پایینتری ها برخوردار هستند و متقابلا دامین کنترلر ها هم مهم هستند. اما همه چیز اینطوری نیست که تصور میشه . در این مقاله به شما نقش هایی که بصورت مجزا هر کنترا کننده دامین یا Domain Controller در ساختار جنگل یا Forest در اکتیودایرکتوری ایفا میکنه رو مشاهده خواهید کرد .

قبلا در همین سری از مقالات در مورد چگونگی کارکرد دامین در ویندوز NT صحبت کردیم . همانند ساختار اکتیودایرکتوری ، دامین های تحت ویندوز NT نیز از وجود چندین کنترل کننده دامنه یا domain controller پشتیبانی میکردند . به یاد داشته باشیم که وظیفه Domain Controller احزار هویت کاربران شبکه و اجازه ورود به سیستم ها است . بنابراین اگر دامین کنترلر از مدار خارج شده و قادر به ارائه سرویس نباشد هیچکس نمی تواند به کامپیوترهای شبکه وارد شود . مایکروسافت در طراحی های خود این موضوع را مد نظر داشت و به همین دلیل این امکان را به ویندوز سرور داد تا بتواند یک دامین کنترلر اضافی بر سازمان ایجاد کند تا هنگامی که دامین کنترلر اصلی از کار افتاد بتوانند از آن برای ورود به سیستم ها استفاده کنند که به این دامین کنترلر به اصطلاح Additional Domain Controller هم می گویند . دارا بودن چندین دامین کنترلر در شبکه این امکان را به سیستم های تحت شبکه و مدیر آن میدهد که فرآیند های شبکه را در میان این چند سرور تقسیم کرده و باعث شوند که بار کاری بین اینها تقسیم شده و سرعت و کارایی سیستم ها بیشتر شود و تنها یک سرور زیر بار کاری قرار نگیرد .

همچنین ویندوز NT میتوانست از وجود چند دامین کنترلر در یک دامین استفاده کند ، در این حالت یکی از دامین کنترلر ها به عنوان دامین کنترلر اصلی یا Primary Domain Controller که به اختصار PDC گفته میشود . همانطوری که قبلا هم اشاره شد یک دامین کنترلر شامل تمامی اشاء موجود در دامین از قبیل حساب های کاربری و کامپیوتری و گروه ها و .. میباشد ، به این پایگاه داده به اصطلاح SAM هم گفته میشود که مخفف کلمه Security Account Manager است . ( البته ما SAM را در ساختار اکتیودایرکتوری امروزی به عنوان پایگاه داده محلی بر روی سیستم ها داریم و دیگر مفهومی به نام SAM در روی دامین های تحت اکتیودایرکتوری وجود ندارد .

در ویندوز NT سرور اصلی یا همان PDC کپی اصلی از اطلاعات دامین را در خود نگهداری میکند و سایر دامین کنترلر های موجود در دامین به عنوان دامین کنترلرهای پشتیبان یا Backup Domain Controller که به اختصار BDC نامگذاری میشود در دامین فعالیت میکنند . اگر بخواهیم هر تغییری را در ساختار دامین ایجاد کنیم آنرا میبایست در قالب اعمال تغییرات در PDC انجام بدهیم . پس از اعمال این تغییرات PDC اطلاعات خود را با سایر BDC های موجود در دامین یکسان سازی یا به اصطلاح Replicate میکند . در یک وضعیت عادی و نرمال PDC تنها دامین کنترلر در ویندوز NT است که بروز رسانی های میتواند بر روی آن اعمال شود . اگر PDC ما در ساختار دامین از بین برود یا دچار مشکل شود راه هایی وجود دارد که از آن طریق بتوان دامین کنترلر های BDC را تبدیل به PDC کرد تا در شبکه بتوانند فعالیت کنند .

دامین در ساختار اکتیودایرکتوری تا حدودی با این شکل متفاوت است . اکتیودایرکتوری از یک ساختار Multi Master Replication یا ساده تر بگوییم ساختاری که در آن چندین دامین کنترلر که همگی آنها به عنوان PDC هستند و در شبکه بصورت همزمان فعالیت میکنند و اطلاعات خود را یکسان سازی می کنند ، استفاده میکند . این ساختار یعنی اینکه هر دامین کنترلر یک کپی قابل نوشتن از اطلاعات دامین را در اختیار داشته و به محض اینکه در یکی از این دامین کنترلرها تغییراتی اعمال شده و یا بروزرسانی شود ، همه آنها اطلاعات خود را با یکدیگر یکسان سازی میکنند.
استفاده از ساختار Multi Master Replication به نظر ایده ای بسیار خوب می آید ، اما در اینجاست که یک سری مشکلات از قبیل بوجود آمدن مقایرت در انجام تنظیمات بوجود می آید . تصور کنید که شما به عنوام مدیر دامین تنظیماتی را در ساختار دامین ایجاد میکنید و در همان لحظه یکی دیگر از مدیران شبکه نیز متضاد این تغییرات را در همان ساختار دامین اعمال میکند !!!

در بیشتر موارد اکتیودایرکتوری بروزترین تغییرات را به عنوان آخرین تغییرات مد نظر قرار داده و آنها را ملاک تغییر و اعمال در پایگاه داده خود قرار میدهد . اما در برخی اوقات تنظیمات به اندازه ای حساس و حیاتی هستند که صرفا نمیتوان به چنین نوع ملاک های تغییری اکتفا کرد و تضاد ها بسیار خطرناک خواهند شد . در چنین مواقعی مایکروسافت راهکارهای پیشگیرانه را به جای راهکارهای ترمیم کننده در نظر میگیرد و آنها را ملاک قرار می دهد .یعنی به جای اینکه پس از بوجود آمدن تداخل و تضاد بین تنظیمات آنرا رفع کند ، قبلا از بوجود آمدن تداخل و تناقض در تنظیمات پیشگیری میکند .

برای مدیریت چنین مسائلی ، مایکروسافت برای هر دامین کنترلر نقش مدیریتی را در ساختار اکتیودایرکتوری در نظر گرفته و در هر دامین صرفا یک دامین کنترلر است که مسئول انجام نقش محول شده به آن می باشد و سایرین وظیفه ای در خصوص آن مسئله نخواهند داشت . این نقش ها و وظایف را در اصطلاح Flexible Single Master Operation یا به اختصار FSMO و در برخی تلفظ ها FIZMO می نامند . این کار به این معنی است که تمامی دامین کنترلر ها در شبکه دامین اطلاعات خود را با یکدیگر یکسان سازی میکنند اما به محض اینکه رویدادی قرار است بوجود بیاید که تناقض در آن باعث اختلال در کار دامین خواهد شد از دامین کنترلری سئوال میشود که مسئول نگهداری آن وظیقه یا Role در دامین محسوب میشود و سایر دامین کنترلرها ملاک اعمال تغییرات نخواهند بود . به یاد داشته باشید که ما در ساختار اکتیودایرکتوری ۳ نقش یا Role در سطح دامین و ۲ نقش در سطح Forest داریم که هر یک وظیفه مشخص و معینی برای خود دارند.