سرور، برنامه کامپیوتری یا دستگاهی است که خدماتی را به برنامههای دیگر و کاربران آن (Clients) ارائه میدهد. در مراکز داده (Data center)، سرور معمولا به دستگاه کامپیوتری گفته میشود که برنامه سرور بر روی آن اجرا میشود. این کامپیوتر میتواند یک سرور اختصاصی (Dedicated Server) باشد یا برای اهداف دیگر مورد استفاده قرار بگیرد. در مدل کلاینت-سرور (Client/Server)، یک سرور به درخواستهایی که از طرف نرمافزارهای کلاینتها ارسال میشوند، پاسخ میدهد. این نرمافزارها ممکن است بر روی یک یا چندین کامپیوتر مختلف اجرا شوند. این نرمافزار یا اپلیکیشن حتی ممکن است خود کلاینت یا سروری باشد که به درخواستهای سایر برنامهها رسیدگی کرده و آنها را اجرا میکند. یک سرور در کل اشاره به یک دستگاه فیزیکی، پلتفرم مجازی یا نرمافزاری دارد که خدماتی را در اختیار دیگران قرار میدهد. اصطلاح سرور دارای معانی متنوعی بوده و بنابراین شکل کارکرد یک سرور تا حد زیادی بستگی به برداشت ما از معنای سرور دارد.
فهرست محتوا
سرورهای فیزیکی و مجازی
سرور فیزیکی همان رایانهای است که برای اجرای نرمافزار سرور مورد استفاده قرار میگیرد. در بخش بعدی، به تفضیل راجع به تفاوت میان سرور فیزیکی و کامپیوتر شخصی صحبت خواهیم کرد. سرور مجازی در واقع همان شکل مجازی یک سرور فیزیکی است. سرور مجازی دارای سیستم عامل و برنامههای مخصوص به خود بوده و به صورت جداگانه (Isolated) در یک سرور فیزیکی نگهداری میشوند. برای راهاندازی ماشینهای مجازی باید نرمافزاری کم حجمی به نام هاپیروایزر (Hypervisor) را بر روی ماشین سرور فیزیکی خود نصب کنید.
هاپیروایزر در واقع امکان اجرای عملیات مجازیسازی را به سرور فیزیکی میدهد. با استفاده از فناوری مجازیسازی، منابع سختافزاری سرور فیزیکی مانند سیپییو (CPU)، رم (RAM)، فضای ذخیرهسازی و پهنایباند شبکه در اختیار ماشینهای مجازی قرار (Virtual Machine) میگیرد. مدیران شرکتهای ارائهدهنده خدمات هاستینگ میتوانند با استفاده از کنسول مدیریتی خود منابع سختافزاری را در اختیار سرورهای مجازی قرار دهند. انجام این کار باعث کاهش چشمگیر هزینههای سختافزاری میشوند زیرا میتوان چندین سرور مجازی یا VPS را تنها بر روی یک سرور فیزیکی راهاندازی کرد. در مقاله «سرور مجازی چیست» به صورت کامل با عملکرد و کاربرد VPS آشنا میشوید.
نرمافزار سرور (Server Software) چیست؟
هر سرور برای اجرا دست کم به دو مولفه نرمافزاری نیاز دارد: سیستم عامل و نرمافزار سرور. سیستم عامل (Operating System) به عنوان بستری برای اجرای برنامه سرور و دسترسی به منابع سختافزاری سرور عمل میکند و نرمافزار سرور نیز برای اجرا وابسته به سیستم عامل است. علاوه بر این، کلاینتها با استفاده از امکانات سیستم عامل میتوانند با سرور ارتباط برقرار کنند. به عنوان مثال، برای اختصاص آدرس IP و نام دامنه به یک سرور، نیاز به سیستم عامل داریم.
مقایسه کامپیوترهای رومیزی با سرورها
شباهتها و تفاوتهایی میان کامپیوترهای رومیزی (یا شخصی) و سرورها وجود دارد. بیشتر سرورها و کامپیوترهای رومیزی مبتنی بر پردازندههای ۳۲و ۶۴ بیتی هستند. با این حال، اکثر سرورهای فیزیکی برخلاف کامپیوترهای رومیزی، دارای چندین سوکت پردازنده و حافظه ECC هستند. سرورها همچنین نسبت به کامپیوترهای دسکتاپی، از ظرفیت حافظه بسیار بیشتری برخوردار میباشند. بخش سختافزاری سرورها معمولا درخواستهای بسیار مهمی را اجرا میکنند و سازندگان سرور نیز طوری آنها را طراحی میکنند که بتوانند از قابلیت افزونگی (Redundancy) نیز پشتیبانی کنند. بنابراین یک سرور میتواند به عنوان مثال دارای باتری و رابطهای شبکه اضافی باشد. اجزای اضافی یا پشتیبان، این امکان را به سرور میدهند تا در صورت خرابی قطعات کلیدی همچنان به کار خود ادامه دهد.
سختافزارهای سرورها و کامپیوترهای شخصی حتی از نظر شکل ظاهری نیز با هم تفاوت دارند. رایانههای شخصی امروزی اغلب به صورت ایستاده و کوچک طراحی میشوند و میتوانید آنها را به آسانی در زیر میز کامپیوتر خود قرار دهید. با وجود اینکه برخی از سازندگان همچنان سرورهای ایستاده به بازار عرضه میکنند، اما بخش عمده سرورها به گونهای طراحی میشوند که میتوان آنها را بر روی یک پایه نصب کرد. سیستمهای رکمونت (تجهیزات قابل نصب در رکهای یک شبکه) بسته به میزان فضایی که در رک شبکه اشغال میکنند، با نامهایی مانند U1، U2 و U4 شناخته میشوند. به عنوان مثال سرور U2 دو برابر سرور U1فضا اشغال میکند. رک سرور طوری طراحی میشود که بتواند داخل یک قاب فلزی استاندارد جای بگیرد.
سیستم عامل، تفاوت مهم دیگر بین کامپیوتر رومیزی و سرور است. سیستم عاملهای کامپیوترهای شخصی شاید بتوانند برخی از کارهای سیستم عاملهای سرورها را انجام دهند اما از نظر طراحی، امکانات و یکسری مجوزهای (License) خاص نمیتوانند جایگزین سیستم عاملهای سرور شوند. به عنوان مثال ویندوز ۱۰ سیستم عاملی است که برای کامیپوترهای شخصی طراحی شده است. برخی از نسخههای ویندوز ۱۰ دارای نرمافزار مجازیسازی به نام Hyper-V هستند. ویندوز ۱۰ و ویندوز سرور، هر دو قادر به اجرای Hyper-V هستند اما نرمافزار Hyper-V ویندوز ۱۰ بیشتر به اهداف توسعهای سیستم عامل مربوط میشود و این درحالی است که نرمافزار مجازیساز Hyper-V ویندوز سرور به منظور مدیریت سرورهای مجازی (Private Servers) طراحی شده است.
سازمانها میتوانند به جای ویندوز ۱۰ مجهز به Hyper-V از سرور مجازی استفاده کنند اما گاهی اوقات مشکلات مربوط به مجوزها مانع از انجام این کار میشود. البته این نکته را هم باید اضافه کنیم که میزان انعطافپذیری نرمافزار هایپروایزر در ویندوز سرور بسیار بیشتر از ویندوز ۱۰ است. بطور مثال، ویندوز سرور از سیستم محافظتی Failover Clustering و همانندسازی ماشین مجازی (Virtual Machine Replication) پشتیبانی میکند. با اینکه دستگاههای یک شبکه محلی میتوانند با استفاده از سیستم عامل ویندوز ۱۰ به فایلهای موجود در آن دسترسی داشته باشند اما ویندوز ۱۰ به هیچعنوان برای به اشتراکگذاری فایلها در حجم زیاد طراحی نشده است. شما میتوانید ویندوز سرور خود را با انجام یکسری تنظیمات، تبدیل به یک فایل سرور (File Server) حرفهای کنید. سازمانهای بزرگ همچنین میتوانند در مزرعه سرور (Farm Server) خود یک سیستم فایل توزیعشده ایجاد کنند زیرا میزان عملکرد، مقیاسپذیری و انعطافپذیری سیستم فایل توزیع شده بهتر از یک سرور فیزیکی واحد است.
انواع سرورها کدامند؟
سرورها اغلب بر اساس اهدافی که دنبال میکنند، دستهبندی میشوند. نمونههایی از انواع سرورهای موجود عبارتند از:
- وبسرور (Web Server): سروری است که درخواستهای HTML را بررسی کرده و به آنها پاسخ میدهد. در چنین حالتی، مرورگر وب به عنوان کلاینت عمل میکند.
- اپلیکیشن سرور (Application Server): برنامهای در یک شبکه توزیعشدهای میباشد که سرویس لایه منطق (Business Logic) کسبوکار را در اختیار یک اپلیکیشن قرار میدهد.
- پروکسی سرور (Proxy Server): نرمافزاری است که به عنوان واسطهای میان دستگاهی مانند کامپیوتر و یک سرور عمل میکند، سروری که کاربر یا همان کلاینت از خدمات آن استفاده میکند.
- میل سرور (Mail Server): برنامهای است که با استفاده از آن میتوان ایمیلهایی را از کاربران محلی (کاربران یک دامنه خاص) ، افراد و شرکتهای شخص ثالث دریافت و به آنها ارسال کرد.
- سرور مجازی (Private Server): برنامهای است که بر روی سرور اشتراکی اجرا میشود. سرور مجازی به گونهای پیکربندی میشود که هر کاربر تصور میکند کنترل کاملی بر سرور خود دارد.
- سرور تیغهای (Blade Server): شاسی این نوع سرور دارای چند برد الکترونیکی نازک و ماژولار به نام تیغه (Blade) است. هر تیغه نیز خود به نوعی یک سرور به شمار میآید و معمولا به هر برنامه یک تیغه اختصاص مییابد.
- فایل سرور (File Server): کامپیوتری در یک شبکه است که وظیفه آن ذخیرهسازی و مدیریت فایلهای دیتا (Data Files) میباشد و سایر کامپیوترهای موجود در شبکه نیز میتوانند به آن دادهها دسترسی داشته باشند.
- پالیسی سرور (Policy Server): مولفهای در شبکههای امنیتمحور میباشد که به کاربران خدمات تایید مجوز ارائه میدهد و ردیابی و کنترل فایلها را نیز آسانتر میکند.
- سرور پایگاهداده (Database Server): وظیفه این سرور، میزبانی از پایگاههای داده است. در این نوع سرور، کلاینتها برای دریافت نتیجه مورد نظر خود، کوئریهایی (Queries) را به پایگاههای داده ارسال میکنند. با استفاده از این نوع سرور میتوان دادههایی را روی بر روی پایگاهداده ایجاد کرد.
- پرینت سرور (Print Server): این سرور به کاربران اجازه دسترسی به چاپگرهای متصل به شبکه را میدهد. پرینت سرور، صفی را برای درخواستهای پرینت ارسالی توسط کاربران تشکیل میدهد. برخی پرینت سرورها میتوانند درخواستهای پرینت موجود در صف انتظار را براساس نوع درخواست یا شخص درخواستدهنده اولویتبندی کنند.
اجزای سرور کدامند؟
سختافزار (Hardware)
سرورها از اجزای اصلی و فرعی مختلفی تشکیل شدهاند. سرورها معمولا دارای یک شاسی رکمونت هستند که منبع تغذیه، برد سیستم، پردازنده، حافظه، فضای ذخیرهسازی، رابط شبکه بر روی آن نصب میشوند. بیشتر این سختافزارها با کمک پورت اختصاصی شبکه میتوانند از قابلیت out-of-band management پشتیبانی کنند. این قابلیت، مدیریت و نظارت بر سرورها را در سطوح پایین مدیریتی (مستقل از سیستم عامل) امکانپذیر میکند. با استفاده از این قابلیت میتوان از راه دور کارهایی مانند نصب سیستم عامل، روشن/خاموش کردن و نظارت بر سالمبودن سرور را انجام داد.
سیستم عامل (Operating System)
سیستمعامل مولفه مهم دیگر سرور است. سیستم عامل سرور، مانند ویندوز سرور یا لینوکس، به عنوان بستری برای اجرای برنامهها عمل میکند. سیستم عامل، امکان اتصال به شبکه و دسترسی برنامهها به منابع سختافزاری لازم را نیز فراهم میکند. سرورها عملیاتهای خود را با استفاده از یک یا چند برنامه انجام میدهند. به عنوان مثال، دیتابیس سرور و سرور ایمیل به ترتیب برای اجرا، نیاز به برنامه پایگاهداده و برنامه ایمیل دارند.
انتخاب سرور مناسب
در هنگام انتخاب سرور باید به عوامل متعددی مانند ماشین مجازی و یکپارچگی اجزای سرور توجه کنید و بسته به کاربرد مدنظرتان برخی ویژگیهای خاص سرور را مورد امتحان قرار دهید. وجود امکانات امنیتی نیز از اهمیت زیادی برخوردار بوده و بنابراین باید به قابلیتهای حفاظتی، شناسایی و بازیابی دادهها مانند رمزنگاری دادههای اصلی (برای حفاظت از دادههای در حال انتقال و دادههای در حالت استراحت) و ایجاد گزارش از فعالیتهای سرور توجه داشته باشید (برای ایجاد رکوردهایی که قابل پاک شدن نیستند). نوع و ظرفیت دیسک در سرورهایی که متکی بر حافظه داخلی هستند، بسیار مهم است. زیرا این عوامل میتوانند بر ورودیها/خروجیها (I/O) و انعطافپذیری سرور تاثیر به سزایی داشته باشند.
بسیاری از سازمانها بواسطه فناوری مجازیسازی در حال کاهش تعداد سرورهای فیزیکی خود هستند. این فناوری این امکان را به سازمانها و شرکتها میدهد که با تعداد سرورهای کمتر حجم کار بیشتری را انجام دهند. ظهور رایانش ابری (Cloud Computing) نیز به کاهش تعداد سرورهای محلی نیز کمک بسیاری کرده است. بنابراین سازمانها با وجود سرورهای کمتر، میتوانند هزینههای سرمایهگذاری، فضای موردنیاز برای دیتاسنتر و هزینه برق و سرمایش خود را کاهش دهند و به قابلیتهای بیشتری دسترسی داشته باشند. با این حال، انجام این کار دارای معایبی نیز میباشد و خرابی یا نیاز به آفلاین بودن سرور (جهت تعمیر و نگهداری دورهای) میتواند درخواستهای بسیاری را تحت تاثیر خود قرار بدهد. چک لیست تعمیر و نگهداری سرور باید اجزای فیزیکی و همچنین پیکربندی اصلی سیستم را پوشش دهد. ادمین سرور به منظور اطمینان از صحت و سلامت سرور باید بازرسیهای پیشگیرانه سختافزاری و نرمافزاری را انجام دهد.
چک لیست نگهداری از سرور
به منظور اطمینان از صحت و سلامت سرور خود، این ۱۴ کار را حتما از روی چک لیست انجام دهید:
- زمانبندی پنجره نگهداری را تعیین کنید.
- به منظور اطلاع از رویدادها، هشدارها یا موضوعات مهم ، گزارشها را مرور کنید.
- درخواستهای کاری سرور خود را به سرور دیگری منتقل کنید.
- از تجهیزات سرور بازرسی فیزیکی انجام دهید.
- جریان هوا را کنترل کنید.
- درصورت لزوم قطعات سختافزاری را تعویض یا اضافه کنید.
- هارد دیسکها را اسکن کنید.
- در صورت لزوم سیستم عامل سرور را بهروز یا تست کنید.
- ثابتافزار (Firmware) را درصورت لزوم بهروز کنید.
- در صورت لزوم نرمافزارهای مانیتورینگ/مدیریت شبکه را آپدیت کنید.
- سیستم را پیش از به جریان انداختن دوباره درخواستها امتحان کنید.
- وضعیت مدیریت پیکربندی، پشتیبانگیری و روتر اختصاصی را بررسی کنید.
- تاریخ بازرسی بعدی را مشخص کنید.