آشنایی با مایکروسافت Search Server

چندی قبل اخبار انتشار محصول از مایکروسافت با یک نسخه رایگان در وب سایت خبری مختلف بسیار به چشم خورد. این محصول که Microsoft Search Server یا MSS نام دارد یک راهکار Enterprise Search است که بدون شک در ایران هم به آرامی مورد توجه قرار خواهد گرفت. از این پس مقالاتی در خصوص Search Server آغاز خواهم کرد که به آرامی این محصول جالب را مورد بررسی قرار خواهم داد. با توجه به آنکه این نرم افزار سرویس دهنده بیشتر در شبکه های بزرگ کاربرد دارد شاید مدیران شبکه ی ایرانی کمتر به این خصوص توجه کنند اما آشنایی و یادگیری MSS خالی از لطف نیست!

 

Enterprise Search به عمل جستجو کردن در سراسر یک محیط برای یافتن یک محتوای معین که Index شده است (فهرست گذاری شده است) می باشد. این جستجو باید فقط توسط کاربران مجاز صورت گیرد. واژه Enterprise Search همچنین برای توصیف نرم افزاری که می تواند در سراسر یک محیط با استفاده از تکنولوژی های مخصوصی به جستجو بپردازد گفته می شود. این نرم افزار با نرم افزاری های Web Search و Desktop Search بسیار متفاوت اند. Microsoft Search Server یک نرم افزار Enterprise Search است که بر اساس قابلیت های جستجو در Microsoft Sharepoint Server کار می کند.  MSS در ابتدا نام Sharepoint Server for Search را داشت و سپس با نام Microsoft Search Server ارائه شد. این نرم افزار یک نسخه رایگان دارد که به نام نسخه Express می باشد و قابل دانلود از وب سایت مایکروسافت اینجا است. همچنین می توانید برای آشنایی با محصولات دیگر سرور جستجو اینجا را کلیک کنید.

 

پیش نیاز ها:

این نرم افزار روی نسخ مختلف ویندوز سرور ۲۰۰۳  سرویس پک ۱ و ویندوز سرور ۲۰۰۸ قابل اجرا است و به مورد وابسته است:

– IIS و ASP.NET Web service extensions

– Microsoft .NET Framework 3.0 (توصیه می شود) یا  Windows Workflow Foundation Runtime Componentsو Microsoft .NET Framework 2.0

– همچنین Web Browser باید شرایط خاصی داشته باشد مثلا از Opera پشتیبانی نمی شود

* برای اطلاعات بیشتر و پیش نیاز های سخت افزاری اینجا را بخوانید.

** در خصوص طراحی های مربوط به Search Server در آینده بحث می شود.

 

انواع رول های سرور:

۱٫ Application Server : این رول محتوا را Index می کند و جواب Query ها را می دهد.

۲٫ Web Front End Server : کامپیوتری که WFE تنظیم شده باشد، هاست برای صفحات وب است هر چند که خود این سرور قابلیت های جستجو ندارد. یم WFE می تواند Application Server نیز باشد، Stand-Alone یک مثال برای این امر است.

۳٫  Database Server : سروری است که محل نگه داری پایگاه داده محتوا های Index شده است. در Basic Installation به صورت خودکار  MS SQL 2005 روی همان کامپیوتر نصب می شود و این رول به آن اختصاص می یابد اما در Advanced Installation می توان مشخص کنید کدام کامپیوتر (ها) این رول را برعهده می گیرد.

 

 

نصب:

توصیه می کنم پیش از نصب Preparation Tool را اجرا کنید. در اینجا قصد داریم برای اولین بار در یک شبکه روی یک ویندوز سرور ۲۰۰۸ نسخه Enterprise یک Search Server ایجاد کنیم. مراحل زیر Advanced Installation را توضیح می دهند. همچنین پیش نیاز ها را رعایت کردیم و سپس نصب را شروع می کنیم:

 

۱٫ در معین کردن نوع نصب Advanced را انتخاب می کنیم.

۲٫ در Server Type به صورت آنچه در رول های سرور توضیح داده شد عمل کنید.

۳٫ در خصوص محل فایل ها ذخیره سازی توصیه می شود که روی هارد دیسکی به غیر از هارد دیسکی که ویندوز روی آن نصب است، فایل ها قرار گیرند. همچنین توصیه می شود از RAID یا Dynamic Disks برای افزایش Performance و Redandency استفاده شود که در آینده در این خصوص بیشتر بحث می شود.

۴٫ Feedback را برحسب نظرات و امکانات دسترسی به اینترنت خود معین کنید هر چند مایکروسافت انتخاب Yes را توصیه می کند.

۵٫ با زدن Install Now مراحل نصب آغاز می شود. در پایان نصب چک باکس گزینه Run the SharePoint Products and Technologies Configuration Wizard now  را چک بزنید و به موارد زیر را در انجام ویزارد توجه کنید.

۶٫ توجه کنید که سرویس های IIS ، Share Point Administration و Sharepoint Timer و شاید برخی سرویس های دیگر در زمان انجام این ویزارد ممکن است Stop شوند و دوباره Start شوند. در محیط های عملیاتی به این مسئله توجه کنید.

۷٫ در Server Farm از آنجایی که برای اولین بار در حال نصب MSS هستیم، گزینه No, I want to create a new server farm را انتخاب می کنیم و در Specify Configuration Database Settings به صورت زیر عمل می کنیم:

 

– Database Server : نام یک SQL Server موجود است که می تواند SQL Server 2000 SP3 یا SQL Server 2005 SP1 و بعد از آن باشد. حداقل SQL Server SP2 توصیه می شود چرا که برخی قابلیت های آنالیز فقط در این نسخه و نسخ بعدی قابل دسترسی اند.

-  Database Name : توصیه می شود نام پیش فرض را بپذیرید اما اگر محدودیتی وجود دارد می تواند آن را به سادگی ویرایش کنید. توجه کنید باید database خالی و موجود را اختصاص دهید هرچند که اگر Database موجود نباشد ساخته خواهد شد.

– Database Access Acount : یک اشتراک کاربری که مجوز مدیریتی در SQL Server دارد.

 

برنامه ریزی برای Availability (میزان در دسترس بودن) :

 

هرچند مباحث طراحی Search Server چندان با سایر سرور ها تفاوت ندارد اما خوب است قدری مسائل مربوطه را بررسی کنیم. در اینجا منظور از Availablility میزان در دسترس بودن Search Server برای کاربران است که برای اندازه گیری در دسترس بودن، توانایی سیستم در پاسخ گویی به Query های ارسال شده توسط کاربران در زمان مشخص را اندازه گیری می کنند. یکی از رایج ترین نحوه بیان میزان در دسترس بودن بیان درصد در اعداد شامل ۹ است. جدول زیر توضیح این میزان است.

 

میزان UPTime قابل قبول DownTime در هر روز DownTime در هر ماه DownTime در هر سال
۹۹ ۱۴٫۴۰ دقیقه ۷ ساعت ۳٫۶۵ روز
۹۹٫۹ ۸۶٫۴۰ ثانیه ۴۳ دقیقه ۸٫۷۷ ساعت
۹۹٫۹۹ ۸٫۶۴ ثانیه ۴ دقیقه ۵۲٫۶۰ دقیقه
۹۹٫۹۹۹ ۰٫۸۶ ثانیه ۲۲۶ ثانیه ۵٫۳۶ دقیقه

برای محاسبه در دسترس بودن هر علت و عاملی همانند اشتباهات کاربران، مشکلات سخت افزاری و یا نقل مکان محاسبه می شود و ۹۹٫۹۹ معمولا حداقل رقم قابل قبول در دسترس بودن در نظر گرفته می شود شاید دسترسی به این رقم ساده نباشد. دسترسی به رقم بالاتر در Availability هزینه های قابل توجهی برای شرکت ها دارد که در مرحله طراحی باید فاکتور در دسترس بودن، حتما لحاظ شود. این هزینه ها شامل هزینه های نرم افزار های اضافی و سخت افزار های اضافی است. همچنین در مرحله پیاده سازی اقدامات مدیریتی بیشتری را می طلبد که سبب می شود دستمزد مدیران بیشتر شود بنابراین طراحان شبکه باید به حد قابل قبولی در دسترس بودن اکتفا کنند. در تمامی راهکار های Sharepoint از جمله Search Server از آنجایی که تاثیر مستقیم در فعالیت های کاربران دارد حتما باید فاکتور Availability در نظر گرفته شود. چرا که معمولا پاسخ این دو سوال برای راهکارهای Sharepoint آری می باشد اما اگر در محیط عملیاتی شما چنین نیست می توانید فاکتور Availability را برای MSS در نظر نگیرد:

 

۱٫ آیا با اختلال در سرویس ، کارمندان نخواهند توانست کارهای اداری خود را انجام دهند؟

۲٫ آیا با اختلال در سرویس، مشتریان نخواهند توانست تراکنش های خود را انجام دهند؟

 

استراتژی های Availability :

با استراتژی های متعددی می توان به رقم در دسترس بودن بالاتری رسید از جمله :

– ایجاد مقاومت در برابر خطا برای اجزا

– ایجاد redundancy بین سرور های موجود در یک مزرعه (farm)

– ایجاد redundancy بین مزرعه ها (farm)

 

در ادامه می خواهم به یک سناریو در خصوص چگونگی مقاومت در برابر خطا و redundancy در یک مزرعه تکی بپردازم و برای اطلاعات بیشتر می توانید به مرجع این مطلب Microsoft Technet، اینجا مراجعه کنید. در یک farm ابتدا باید حداقل ها را برای Performance بالاتر ایجاد کنیم و سپس به افزایش Availability توجه خواهیم کرد. این افزایش می تواند سبب افزایش عملکرد (Performance) سرویس نیز شود. در شکل زیر به صورت کلی نمایی از سرویس های مختلف به کار رفته در MSS را می بینید:

 

MSSava1

 

جدول زیر استراتژی های مختلف را برای هریک از این سرویس ها معین می کند.

سرویس ها استراتژی
SQL Server با Clustering یا synchronous mirroring.
هر چند کلاسترینگ راحت تر و بهتر است اما هزینه بر تر است.  برای اطلاعات بیشتر در خصوص synchronous mirroring به اینجا مراجعه کنید
Web Server راه اندازی چند وب سرور مختلف و استفاده از Load Balacing نرم افزاری یا سخت افزاری
Search Indexing نمی تواند برای ایجاد redundancy روی چند سرور اجرا شود اما راه کارهایی در دسترس وجود دارد.
Excel Calculation و Project Application گسترش دادن به چندین سرور مختلف
 
 
درباره Redundancy :
 
Availability با Redundancy کاملا دو فاکتور مجزا هستند هر چند گاها به جای همدیگر گفته می شوند. در واقع مفهوم این دو به یکدیگر وابسته و مربوط است اما با یکسان نیستند. Redundancy به استفاده از چند سرویس دهنده که داری Load Balaning هستند گفته می شود حال به هر منظوری همانند افزایش performance یا بهبود رقم در دسترس بودن. در وافع در دسترس بودن مفهومی جزئی تر از افزونگی (Redundancy) است. در اینجا بهینه ترین Redundancy را در خصوص MSS بررسی می کنیم که شامل حداقل ۵ سرور مختلف است.
 
 
 
MSSred1
 
با استفاده از این ۵ سرور مجزا می توان به بهترین نحوه رسید اما همواره چنین چیزی امکان پذیر نیست که برای این منظور از گزینه های ۳ و ۴ سروری را نیز بررسی می کنیم. در صورتی که چهار سرور در اختیار داشته باشیم دو راه جداگانه داریم. باید بسیار با دقت در انتخاب آنکه کدام سرور رول Index Server را بر عهده می گیرد بود. Index Server یکی از رول هایی است که در زیر مجموعه Application Server قرار دارد. می توانید Index Sever را روی Database Server قرار دهید، هرچند که در این صورت عملکرد Database Server تحت تاثیر قرار می گیرد و باید از سخت افزار های قدرتمند تری استفاده کنید. می توانید Index Server را روی یکی از Web Server ها قرار دهید. در صورتی که سرور در اختیار باشد باید تصمیم گرفت که کدام یک از رول ها redundant شوند چرا که با ۳ سرور نمی توان تمام رول ها redundant کرد. حداقل تعداد سرور ها برای redundant شدن تمام رول ها ۴ سرور است که با محدودیتی که در تصویر می بینید رو به رو است. همچنین با ۳ سرور می توان به صورت زیر به بهترین نحو رول ها تنظیم کرد. برای اطلاعات بیشتر اینجا را بخوانید.
 
2 1
 
حالت دیگری حالتی است که از Redundancey استفاده نمی کنیم اما از چند سرور استفاده می کنیم. در این حالت هر رول را انحصارا فقط یک کامپیوتر اجرا می کند. هر چند که توصیه نمی شود اما در سناریو هایی که از لحاظ سخت افزاری دچار مشکل هستیم در وضعیت موقت می توان از آن استفاده کرد.
 
3
در آینده بیشتر بحث خواهد شد.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *