سرور چیست؟ — آنچه باید بدانید به زبان ساده
سرور چیست ؟ سرور به یک قطعه سختافزاری یا برنامه نرمافزاری گفته میشود که به برنامه دیگر و کاربرش که کلاینت نامیده میشود، سرویس میدهد. در یک «مرکز داده» (data center) رایانه فیزیکی که برنامه سرور روی آن اجرا میشود نیز غالباً به نام سرور خوانده میشود. این دستگاه ممکن است یک «سرور اختصاصی» (dedicated server) باشد و یا برای مقاصد دیگر مورد استفاده قرار گیرد.
در مدل برنامهنویسی کلاینت/سرور، برنامه سرور منتظر دریافت درخواستها از سوی برنامههای کلاینت میماند و به آنها پاسخ میدهد. این برنامههای کلاینت ممکن است روی همان رایانه و یا رایانههای دیگر اجرا شوند. یک اپلیکیشن مفروض در یک رایانه میتواند به عنوان یک کلاینت عمل کند و از برنامههای دیگر به عنوان سرور، درخواستهایی داشته باشد.
سرور چیست ؟
واژه سرور میتواند هم به یک دستگاه فیزیکی و هم یک دستگاه مجازی و یا نرمافزاری اشاره کند که سرویسهای سرور را اجرا میکند. طرز کار یک سرور بسته به این که چه کاربردی دارد متفاوت است.
سرورهای فیزیکی و مجازی
سرور فیزیکی در واقع رایانهای است که برای اجرای نرمافزار سرور مورد استفاده قرار میگیرد. تفاوت بین یک سرور و یک رایانه دسکتاپ را در بخشهای بعدی این راهنما توضیح خواهیم داد.
سرور مجازی یک بازنمایی مجازی از یک سرور فیزیکی است. سرور مجازی نیز دقیقاً همانند سرور فیزیکی شامل یک سیستم عامل و اپلیکیشنهای خاص برای خود است. سرورهای مجازی مختلف و متعددی میتواند روی یک سرور فیزیکی منفرد اجرا شوند و به کمک فناوری مجازیسازی از هم متمایز باشند.
فرایند ایجاد دستگاههای مجازی شامل نصب یک کامپوننت نرمافزاری سبک به نام hypervisor روی سرور فیزیکی است. وظیفه hypervisor این است که به سرور فیزیکی امکان دهد به عنوان یک میزبان مجازیسازی عمل کند. میزبان مجازیسازی موجب میشود که منابع سختافزاری سرور فیزیکی مانند زمان پردازنده، حافظه، فضای ذخیرهسازی و پهنای باند شبکه در اختیار یک یا چند سرور مجازی قرار گیرد. یک کنسول مدیریتی به مدیران سستم امکان میدهد که منابع سختافزاری مشخصی را به هر سرور مجازی اختصاص دهند. این کار به کاهش چشمگیر هزینههای سختافزار سرور کمک میکند، چون یک سرور منفرد میتواند چندین سرور مجازی را اجرا کند، در حالی که در غیر این حالت، هر یک به یک سرور فیزیکی نیاز داشتند.
نرمافزار سرور
هر سرور دست کم به دو جزء نرمافزاری نیاز دارد: یک سیستم عامل و یک اپلیکیشن. سیستم عامل به عنوان یک پلتفرم برای اجرای اپلیکیشنهای سرور عمل میکند. این مؤلفه نرمافزاری امکان دسترسی به منابع سختافزاری سیستم را فراهم ساخته و سرویسهای وابستهای که برای کارکرد صحیح اپلیکیشنها لازم هستند را تأمین میکند.
سیستم عامل همچنین ابزاری برای کلاینتها جهت برقراری ارتباط با اپلیکیشن سرور محسوب میشود. برای نمونه نشانی IP سرور و نام دامنه fully qualified در سطح سیستم عامل انتساب مییابند.
کامپیوترهای دسکتاپ با سرور چه تفاوتی دارند؟
رایانههای دسکتاپ هم تفاوتها و هم شباهتهایی دارند. اغلب سرورها بر مبنای معماری پردازنده X86/X64 کار میکنند و از این رو میتوانند همان کدی که برای رایانه دسکتاپ با این معماری نوشته شده است را اجرا کنند. اما سرورهای فیزیکی برخلاف رایانههای دسکتاپ غالباً چندین سوکت پردازنده و حافظه با قابلیت اصطلاح خطا دارند. سرورها همچنین عموماً از حجم بسیار بالاتری از حافظه نسبت به کامپیوترهای دسکتاپ پشتیبانی میکنند.
از آنجا که سختافزار سرور معمولاً کارهای سنگین و بسیار حساسی را اجرا میکند، سازندگان سختافزار سرور آنها را طوری طراحی میکنند تا از اجزای تکراری و متعددی پشتیبانی کنند. برای نمونه یک سرور ممکن است مجهز به چندین منبع تغذیه و چندین اینترفیس شبکه باشد. این اجزای تکراری به سرور امکان میدهند که حتی در صورت خراب شدن یک جزء به کار خود ادامه دهد.
سختافزار سرور از نظر فاکتور فرم نیز با رایانههای دسکتاپ متفاوت است. رایانههای مدرن دسکتاپ میتوانند به صورت مینیتاور موجود باشند که برای قرار گرفتن زیر یک میز طراحی شدهاند. با این که همچنان ارائهدهندگانی وجود دارند که سرورهای تاور را میسازند، اما اغلب سرورها امروزه طوری طراحی میشوند که روی رک (rack) نصب شوند. این سیستمهای نصب رک به طور معمول با اصطلاحهای فاکتور فرم 1U، 2U، یا 4U توصیف میشوند. فاکتور فرم رک به فضایی که سرور میتواند اشغال کند اشاره دارد. برای نمونه یک سرور 2U دو برابر یک سرور 1U فضا اشغال میکند.
تفاوت کلیدی دیگر بین یک رایانه دسکتاپ و یک سرور در سیستم عامل است. یک سیستم عمل دسکتاپ ممکن است بتواند برخی کارکردهای یک سیستم عامل سرور را اجرا کند، اما به منظور کاربری سرور طراحی نشده و یا چنین لایسنسی ندارد. برای نمونه ویندوز 10 یک سیستم عامل دسکتاپ است. برخی نسخهای ویندوز 10 شامل Hyper-V هستند که نسخه مایکروسافت از پلتفرم ماشین مجازی است. با این که هم ویندوز 10 و هم ویندوز سرور میتوانند Hyper-V را اجرا کنند، اما hypervisor ویندوز 10 عمدتاً به منظور اهداف توسعه کد طراحی شده است، در حالی که hypervisor موجود در نسخه ویندوز سرور برای اجرای سرورهای مجازی پروداکشن عرضه شده است.
با این که یک سازمان میتواند یک سرور مجازی را بر مبنای Hyper-V ویندوز 10 اجرا کند، اما باید مشکلات مربوط به لایسنس را در نظر داشته باشد. به علاوه Hyper-V در ویندوز سرور برخی قابلیتهای خاص دارد که در نسخه ویندوز 10 نمییابید. برای نمونه ویندوز سرور از کلاسترینگ failover و کپیسازی ماشین مجازی پشتیبانی میکند.
به طور مشابه سیستم عامل ویندوز 10 میتواند فایلها را در اختیار دستگاهی روی شبکه لوکال قرار دهد. با این حال ویندوز 10 هرگز برای این که یک فایل-سرور در مقیاس بزرگ باشد، طراحی نشده است. در سازمانهای بزرگ، یک سیستم فایل توسعهیافته میتواند روی یک سرور فارم به منظور عملکرد بهتر، و مقیاسپذیری و پایداری ایجاد شود که وظایف یک سرور فیزیکی را ایفا میکند.
انواع سرورها
سرورها عموماً بر حسب اهدافشان دستهبندی میشوند. برخی نمونههای سرورها به شرح زیر هستند:
وبسرور
وبسرور به یک برنامه رایانهای گفته میشود که صفحههای HTML یا فایلهای مورد تقاضا را عرضه میکند. در این مورد مرورگر وب به عنوان یک کلاینت عمل میکند. نمونهای از وبسرورهای مشهور شامل Apache (+)، Nginx (+)، Lighttpd (+)، مایکروسافت وب سرور (+) و تامکت (+) هستند.
سرور اپلیکیشن
یک سرور اپلیکیشن برنامهای روی یک رایانه در یک شبکه توزیعیافته است که منطق بیزینس را برای یک برنامه اپلیکیشن تأمین میکند. اپلیکیشن سرور میتواند به منظور توسعه یا اجرای وباپلیکیشنها مورد استفاده قرار گیرد. انواع بسیار متفاوتی از سروهای اپلیکیشن مانند جاوا، PHP و فریمورک .NET وجود دارند. سرور اپلیکیشن مزیتهای مختلف ارائه میکند. با بهرهگیری از اپلیکیشن سرور میتوانید یکپارچگی داده و کد بیشتری را با رویکردی متمرکزتر ارائه کنید و اپلیکیشنها را به این ترتیب بهروزرسانی کرده و ارتقا دهید. همچنین با توجه به متمرکز شدن رویهها، امنیت دسترسی به آنها نیز ارتقا مییابد.
سرور پراکسی
سرور پراکسی به نرمافزاری گفته میشود که به عنوان یک واسط بین یک دستگاه انتهایی مانند یک رایانه و سرور دیگر که کاربر یا کلاینت از آن تقاضای سرویس دارد عمل میکند.
سرور ایمیل
سرور ایمیل به اپلیکیشنی گفته میشود که ایمیلهای ورودی را از کاربران لوکال یعنی افرادی در همان دامنه و از فرستندگان ریموت دریافت کرده و همچنین ایمیلهای خروجی را به مقاصدشان ارسال میکند.
سرور مجازی
سرور مجازی به برنامهای گفته میشود که روی یک سرور اشتراکی اجرا میشود و طوری پیکربندی شده که هر کاربر میتواند کنترل کاملی روی سرور خود داشته باشد.
سرور Blade
به یک شاسی سرور گفته میشود که میزبان چندین بورد الکتریکی الکترونیکی ماژولار نازک است که به نام تیغه سرور شناخته میشوند. هر بلِید یک سرور برای خود محسوب میشود و معمولاً برای یک اپلیکیشن منفرد اختصاص مییابد.
فایل سرور
سرور فایل یک رایانه است که مسئولیت ذخیرهسازی متمرکز و مدیریت فایلهای دادهای را دارد تا رایانههای دیگر روی آن شبکه بتوانند به آنها دسترسی داشته باشند.
سرور Policy
پالیسی سرور به یک مؤلفه امنیتی شبکه مبتنی بر پالیسی گفته میشود که سرویسهای احراز هویت را عرضه کرده و ردگیری و کنترل فایلها را تسهیل میکند.
سرور پایگاه داده
سرور دیتابیس مسئول میزبانی یک یا چند پایگاه داده است. اپلیکیشنهای کلاینت کوئریهای پایگاه داده را برای بازیابی دادهها از یک دیتابیس یا نوشتن دران که روی یک سرور میزبانی شده اجرا میکنند.
سرور پرینت
سرور پرینت امکان دسترسی به یک یا چند پرینتر متصل به شبکه را به کاربران میدهد. سرور پرینت به عنوان یک صف برای کارهای پرینت که کاربران تحویلش میدهند عمل میکند. برخی سرورهای پرینت میتوانند کارهای موجود در صف پرینت را بر اساس نوع کار یا کسی که آن را ارسال کرده، اولویتبندی کنند.
اجزای سرور
در این بخش با اجزای مختلف سرور آشنا میشویم.
سختافزار
سرورها از چند مؤلفه و زیرمولفه مختلف ساخته شدهاند. سرورها در سطح سختافزاری معمولاً از یک رک که روی یک شاسی سوار شده تشکیل یافتهاند که شامل منبع تغذیه، یک بورد سیستم و یک یا چند پردازنده، حافظه، فضای ذخیرهسازی واسط شبکه است.
اغلب سختافزارهای سرور از طریق یک پورت شبکه اختصاصی از مدیریت خارج از باند پشتیبانی میکنند. قابلیت مدیریت خارج از باند، امکان مدیریت سطح پایین و نظارت بر سرور را به صورت مستقل از سیستم عامل فراهم میسازد. سیستمهای مدیریت خارج از باند میتوانند برای روشن و خاموش کردن سرور از راه دور، نصب سیستم عامل و یا نظارت بر سلامت سیستم مورد استفاده قرار گیرند.
سیستم عامل سرور
مؤلفه دیگر سرور، سیستم عامل آن است. سیستم عامل سرور از قبیل ویندوز سرور یا لینوکس به عنوان یک پلتفرم عمل میکند که امکان اجرای اپلیکیشنهای سرور را فراهم میسازد. سیستم عامل اپلیکیشنهایی را ارائه میکند که امکان دسترسی به منابع سختافزاری مورد نیاز برای برقراری اتصال شبکه را فراهم میسازد.
اپلیکیشن چیزی است که به سرور امکان میدهد، وظیفهاش را اجرا کند. برای نمونه یک سرور دیتابیس میتواند یک اپلیکیشن پایگاه داده را اجرا کند. به طور مشابه سرور ایمیل میتواند یک اپلیکیشن ایمیل را اجرا کند.
انتخاب سرور مناسب
زمانی که نوبت به انتخاب سرور از جمله سرور مجازی و مجزاسازی کانتینری میرسد، عوامل مختلفی وجود دارند که باید در نظر داشت. زمانی که میخواهیم یک سرور را انتخاب کنیم، اهمیت قابلیتهای خاص را بر مبنای کاربردهایشان میسنجیم. قابلیتهای امنیتی نیز مهم هستند و همچنین برخی حفاظتها، قابلیت تشخیص و بازیابی از جمله رمزنگاری دادهها برای حفاظت از دادهها و همچنین وجود گزارشگیری از دادهها برای ثبت همه فعالیتها جزو مواردی هستند که باید در نظر داشت. اگر سرور از یک ذخیرهسازی درونی بهره میگیرد، انتخاب نوع دیسک و ظرفیت آن نیز مهم است، زیرا میتواند تأثیر مهمی روی ورودی/خروجی و پایداری سرور داشته باشد.
سازمانهای زیادی اقدام به کاهش تعداد سرورهای فیزیکی در دیتاسنترهای خود کردهاند، چون مجازیسازی امکان میدهد که تعداد کمتری سرور مورد استفاده قرار گیرند. ظهور پدیده «محاسبات ابری» (Cloud Computing) نیز موجب شده تعداد سرورهایی که یک سازمان نیاز دارید کاهش چشمگیری بیابد.
سرور خانگی
در بخشهای پیشین این مقاله به تفاوتهای یک رایانه دسکتاپ و سرور اشاره کردیم، اما گاهی اوقات این دو به یک نقطه مشترک میرسند و آن مفهومی به نام «سرور خانگی» (Home Server) است. سرور خانگی به رایانه یا سرور محاسباتی گفته میشود که در محل زندگی فرد قرار میگیرد تا به دستگاههای دیگر درون یا بیرون منزل از طریق شبکه خانگی یا اینترنت سرویس بدهد. چنین سرویسهایی شامل عرضه خدمات فایل و پرینتر، مدیا سنتر، وب سرویس، کش کردن وب، اشتراک و همگامسازی فایل و سرویس پشتیبانگیری میشود.
از آنجا که معمولاً دریک خانه، دستگاههای زیادی وجود ندارند، لزومی ندارد که سرور خانگی قدرت زیادی داشته باشد. سرورهای خانگی معمولاً به روشهای ابتکاری از سوی علاقهمندان رایانه و اغلب با بازیابی رایانههای قدیمی یا تنظیم رایانههای کوچک ساخته میشوند. به طور معمول از یک منبع تغذیه بیوقفه استفاده میشود تا در صورت قطعی برق، سرور بتواند همچنان به سرویس خود ادامه بدهد و از خراب شدن دادهها جلوگیری شود.
کاربردهای سرور خانگی
در این بخش برخی کاربردهایی که با بهکارگیری یک سرور خانگی میتوانید به دست آورید، مورد بررسی قرار میدهیم.
پشتیبانگیری خودکار دادهها
پشتیبانگیری از دادهها یک موضوع بسیار مهم است. شما میتوانید از یک NAS یا هارد اکسترنال برای پشتیبانگیری از دادههایتان استفاده کنید، اما بسیاری از سرورها دارای چندین فضای ذخیرهسازی هستند که وقتی سرور به روتر وصل میشود میتوانند به طور مستقیم و بیسیم برای انتقال داده بین دستگاههای مختلف و سرور مورد استفاده قرار گیرد.
دسترسی به دادهها از هر نقطه از منزل
یکی دیگر از کاربردهای رایج سرور خانگی، فراهم ساختن امکان دسترسی به دادهها از مکانهای مختلف منزل است. تا زمانی که سرور یا NAS آنلاین هستند، میتوانید به هر چیزی که روی آن ذخیره شده از برنامه و موسیقی تا هر چیز دیگر روی هر دستگاهی که به شبکه وصل است، دسترسی داشته باشید. حتی امکان استریم کردن دادههای گیم از یک NAS و روی WiFi وجود دارد.
هزینه میزبانی یک وبسایت روی سرور خانگی
فرض کنیم میخواهد یک بلاگ آنلاین بنویسید و قصد ندارید هزینهای برای سرویس میزبانی آن بپردازید و یا این که میخواهد کنترل کاملی روی سایت خود داشته باشید. سرور خانگی به شما امکان میدهد که وبسایتتان را از حجم مشخصی از ترافیک در داخل منزلتان میزبانی کنید. باید توجه داشته باشید که در اغلب موارد میزبانی یک وبسایت روی یک سرور خانگی هزینهای بالاتر از یک سرویس میزبانی وبسایت خواهد داشت.
میزبانی سرور آنلاین بازی
افرادی که ماینکرفت بازی میکنند بسیار به راهاندازی سرورهای شخصی علاقهمند هستند. دلیل این امر آن است که وقتی سرور خاص خود را میزبانی میکنند، مالکان بازی نمیتوانند در مورد آنچه رخ میدهد تصمیمگیری کنند. همچنین بازی World of Warcraft بیشمار سرور شخصی دارد که از سوی افرادی طراحی شدهاند که قصد دارند سریعتر لول خود را بالاتر ببرند. در هر صورت، هر انگیزهای که داشته باشید، راهاندازی یک سرور بازی یکی از مهمترین کاربردهای داشتن یک سرور خانگی محسوب میشود.
سخن پایانی
سرورها رایانههای اختصاصی برای مقاصد خاص هستند و برخلاف رایانههای دسکتاپ به منظور کارکرد پایدار، طولانی مدت و با بار کاری بیشتر طراحی شدهاند. سرورها انواع و کارکردهای مختلفی دارند که در این نوشته با برخی از مهمترین موارد آن آشنا شدیم.
عالی بود