سرور چیست و چه کاربرد و وظایفی دارد ؟
در مباحث کامپیوتری، یک سرور عبارتست از یک برنامه کامپیوتری یا یک دستگاه که موجب فعالیت دیگر برنامه ها یا دستگاه ها تحت عنوان “کاربران” می شود.
در این ساختار که مدل سرور – کاربر نامیده می شود یک محاسبات سراسری واحد در چندین فرایند یا سیستم، توزیع می شود. سرورها می توانند عملیات متعددی را انجام دهند که اغلب “سرویس” نامیده می شود، عملیاتی همانند به اشتراک گذاری داده یا منابع بین چندین کاربر، یا انجام محاسبات برای یک کاربر. یک سرور می تواند به تنهایی در خدمت کاربران متعددی باشد و همینطور یک کاربر می تواند به تنهایی از چندین سرور استفاده نماید.
سرورهای مؤسسهWikimedia
یک فرایند برای کاربر می تواند بر روی یک سیستم اجرا شود یا ممکن است به یک سرور بر روی یک دستگاه دیگر در شبکه متصل باشد. سرورهای معمول عبارتند از سرورهای پایگاه داده، سرورهای فایل، سرورهای ایمیل، سرورهای چاپ، سرورهای وب، سرورهای بازی و سروهای کاربردی. امروزه اغلب سیستم های کاربر- سروری با مدل درخواست- پاسخ، پیاده سازی شده و غالباً با همین نام نیز شناخته می شوند: یک کاربر درخواستی را به سرور می فرستند تا آن سرور عملیاتی را انجام داده و پاسخی را به کاربر ارسال کند که معمولاً بصورت یک نتیجه یا تأیید است.
اولین سرور WWW واقع در CERN با برچسب اصلی آن که رویش نوشته شده: “این دستگاه یک سرور است. برق آن را قطع نکنید!!”
تعیین یک کامپیوتر با عنوان “سخت افزار کلاس سروری” بیانگر آن است که آن کامپیوتر برای اجرای سرور اختصاص یافته است. این مسأله نشان می دهد که آن کامپیوتر بسیار قدرتندتر و قابل اعتمادتر از کامپیوترهای شخصی استاندارد می باشد، البته خوشه های محاسباتی بزرگ ممکن است ترکیبی از چندین سرور نسبتاً ساده و قابل تعویض باشند.
تاریخچه استفاده از سرور
استفاده از واژه “سرور” در مباحث کامپیوتری از تئوری صف بندی نشات گرفته شده است، که به اواسط قرن ۲۰ باز می گردد و در مقاله ای که نمادگذاری Kendall را معرفی کرده، مورد استفاده قرار گرفته است. در مقالات قدیمی تر، نظیر Erlang (1909) ، واژه های محسوس تری همانند “اپراتورهای تلفن” استفاده شده اند.
در محاسبات کامپیوتری، تاریخ استفاده از لغت “سرور” حداقل به RFC 5 (1969) (یکی از اولین مستنداتی که ARPANET (اینترنت قدیمی) را تعریف کرد) باز می گردد و در مقابل واژه “کاربر” قرار داد و دو نوع میزبان را از هم متمایز می سازد: “سرور- میزبان” و “کاربر- میزبان”. استفاده از لغت “خدمت رسانی” در مقابل “سرور- میزبان” و “کاربر- میزبان” نیز به مستندات قدیمی از جمله RFC 4 باز می گردد.
در فرهنگ اصطلاحات کامپیوتری “جارگون”، سرور را به صورت حس مشترکی از یک فرایند که سرویس یا خدماتی را معمولاً از راه دور برای درخواست ها ارائه می دهد، تعریف شده است که در نسخه (۱.۱.۰) سال 1981 آمده است:
سرور . نوعی DAEMON است که خدمتی را برای درخواست دهنده ارائه می دهد، که غالباً این خدمت به کامپیوتری به غیر از کامپیوتری که سرور روی آن اجرا می شود ارسال می گردد.
عملکرد یک سرور چگونه است ؟
اکیداً می توان گفت که واژه سرور اشاره به یک برنامه کامپیوتری یا یک فرایند (برنامه در حال اجرا) دارد. به بیان دیگر، این لغت اشاره به دستگاهی ( یا سیستم تخصیص یافته) دارد که برای اجرای یک یا چند برنامه سروری مورد استفاده قرار می گیرد. بر روی یک شبکه، چنین دستگاهی، میزبان نامیده می شود. علاوه بر سرور، واژگان خدمت گذاری و سرویس (خدمت) نیز به کرات استفاده می شوند، البته از لغاتخدمت رسان و خدمتکار استفاده نمی شود. واژه سرویس همچنین می تواند بیانگر خلاصه عملیاتی همانند خدمات تحت وب باشد. همچنین این لغت می تواند اشاره به یک برنامه کامپیوتری داشته باشد که یک کامپیوتر را به یک سرور تبدیل می کند، همانند سرویس ویندوز. سرور از دیدگاه “اطاعت کردن” به عنوان “سرورهای خدمت رسان به کاربران” (و “کاربران استفاده کننده از سرورها”) شناخته می شود، و از دیدگاه “دادن اطلاعات” غالباً می توان گفت “سرورها اطلاعات را ارائه می دهند”. بعنوان مثال، سرورهای تحت وب “صفحات وب را برای کاربران نمایش می دهند” یا “درخواست های آن ها را برآورده می سازند”.
یک شبکه مبتنی بر مدل کاربر – سرور که در آن، کاربران انفرادی متعددی درخواست خدمات و منابع را از سرورهای مرکزی دارند
سرور، بخشی از مدل سرور- کاربر است؛ در این مدل، یک سرور اطلاعات را در اختیار کاربران قرار می دهد. ماهیت ارتباط بین یک کاربر و سرور، درخواست و پاسخ است. این با مدل نظیر- به- نظیر که در آن، روابط مبتنی بر تقاضای متقابل است، تفاوت دارد. در اصل، هرگونه فرایند کامپیوتری که می تواند توسط دیگر فرایندها فراخوانی شده و یا مورد استفاده قرار گیرد (به ویژه از راه دور، مخصوصاً برای به اشتراک گذاری یک منبع اطلاعاتی) یک سرور محسوب می شود و فرایند یا فرایندهای صدا زننده، کاربر می باشند. بدین ترتیب هر کامپیوتر معمولی متصل به یک شبکه می تواند سرور میزبان باشد. برای مثال، چنانچه فایل ها بر روی یک سیستم توسط برخی فرایندها به اشتراک گذاشته شوند، آن فرایند یک سرور فایل خواهد بود. بطور مشابه، نرم افزار سرور وب می تواند بر روی هر کامپیوتری اجرا شود، بنابراین یک لپ تاپ یا یک کامپیوتر شخصی می تواند میزبان یک سرور وب باشد.
با اینکه درخواست- پاسخ، رایج ترین مدل از طراحی کاربر- سرور است اما طراحی های دیگری همانند الگوی انتشار- عضویت نیز وجود دارند. در این الگو کاربران از طریق یک سرور pub-sub ثبت نام می کنند و بدین ترتیب انواع مشخصی از پیغام ها را دریافت می نمایند؛ این ثبت نام اولیه می تواند از طریق مدل درخواست- پاسخ نیز صورت پذیرد. پس از آن، سرور pub-sub پیغام های منطبق با کاربران را بدون هیچگونه درخواست اضافه ای، به کاربران ارجاع می دهد: سرور پیغام ها را به کاربران می رساند، به جای آنکه کاربران پیغام ها را از طریق درخواست- پاسخ از سرور دریافت کنند.
زمانی که به سخت افزار اشاره می شود، لغت سرور عموماً بیانگر مدل های کامپیوتری تخصیص یافته برای ایفای این نقش است. بطور کلی، یک سرور نقش خود را بهتر از یک کامپیوتر شخصی معمولی ایفا می نماید.
وظیفه یک سرور چیست ؟
وظیفه یک سرور، به اشتراک گذاری منابع اطلاعاتی و توزیع کار می باشد. یک کامپیوتر سرور می تواند برنامه های کامپیوتری خود را نیز به خوبی مدیریت کند؛ بسته به سناریو، این وظیفه می تواند بخشی از یک عمل متقابل یا یک قابلیت فنی ساده باشد. جدول زیر سناریوهای مختلفی که از سرور استفاده می کنند را نمایش می دهد.
نوع سرور |
هدف |
کاربران |
سرور کاربردی |
برنامه های میزبان وب (برنامه های کامپیوتری که در یک مرورگر وب اجرا می شوند) بدون آنکه نیازی به نصب یک نسخه از آن بر روی کامپیوترهای کاربران باشد، به کاربران در شبکه امکان اجرا و استفاده از آن ها را می دهد. بر خلاف نام این سرورها نیازی نیست که آنها بخشی از وب گسترده جهانی باشند و هر شبکه محلی می تواند این عمل را انجام دهد. |
کامپیوترها با یک مرورگر وب |
سرور کاتالوگ |
یک اندیس یا جدول از اطلاعات را نگهداری می کند تا بتوان آن اطلاعات را در یک شبکه گسترده بزرگ پیدا نمود. مواردی همچون کامپیوترها، کاربران، فایل های به اشتراک گذاشته شده بر روی سرورهای فایل و برنامه های وب. سرورهای دایرکتوری (راهنما) و سرورهای اسامی نمونه هایی از سرورهای کاتالوگ هستند. |
هر برنامه کامپیوتری که نیاز به یافتن چیزی بر روی شبکه داشته باشد، مثلاً عضوی از دامنه تلاش می کند تا وارد شبکه شود، یک کاربر ایمیل به دنبال یک آدرس ایمیل است یا یک کاربر در جستجوی یک فایل می باشد. |
سرور ارتباطاتی |
حفظ محیط لازم در یک انتهای خط ارتباطی (کاربر یا دستگاه ها) به منظور یافتن دیگر نقاط ارتباطی و برقراری ارتباط با آنها. بسته به باز بودن و پارامترهای امنیتی شبکه، این سرور می تواند شامل یک مجموعه از نقاط ارتباطی و یک سرویس تشخیص وجود ارتباط باشد. |
نقاط انتهایی یک ارتباط
(کاربران یا دستگاه ها) |
سرور محاسباتی |
حجم بالایی از منابع محاسباتی بویژه CPU و RAM را در شبکه به اشتراک می گذارد. |
هر برنامه کامپیوتری که به توان CPU و RAM بیشتری نسبت به آنچه یک کامپیوتر شخصی قادر به ارائه آن است، نیاز دارد. |
سرور پایگاه داده |
نگهداری و به اشتراک گذاری هر شکل از پایگاه داده (سازماندهی مجموعه های داده با مشخصه های از پیش تعریف شده که می تواند در یک جدول نمایش داده شود) بر روی یک شبکه |
صفحات گسترده، نرم افزار حسابداری، نرم افزار مدیریت مالی یا بطور مجازی هر برنامه کامپیوتری که از داده های سازمان یافته به ویژه در حجم های بالا استفاده می کند. |
سرور فکس |
یک یا چند دستگاه فکس را بر روی یک شبکه به اشتراک می گذارد، بدین ترتیب محدودیت های دسترسی فیزیکی از بین می رود. |
هر شخصی که فکس را ارسال یا دریافت می کند |
سرور فایل |
فایل ها، پوشه ها و فضای ذخیره سازی آن ها را بر روی یک شبکه به اشتراک می گذارد. |
کامپیوترهای موجود در شبکه، همان کاربران هستند اگرچه برنامه های محلی نیز می توانند حکم کاربر را داشته باشند. |
سرور بازی |
کامپیوترهای متعدد یا دستگاه های بازی مختلف را برای انجام بازی های چند نفره فعال می سازد. |
کامپیوترهای شخصی یا کنسول های بازی |
سرور ایمیل |
به همان روشی که اداره پست، ارتباط بین افراد را از طریق نامه ممکن می سازد این سرور امکان برقراری ارتباط ایمیلی را میسر می کند. |
ارسال کنندگان و دریافت کنندگان ایمیل |
سرور رسانه |
تصاویر یا اصوات دیجیتالی را بر روی یک شبکه از طریق جریان رسانه ای به اشتراک می گذارد (انتقال محتوای فایل صوتی یا تصویری با امکان شنیدن یا مشاهده درجا به جای دانلود کردن یک فایل حجیم). |
کامپیوترهای شخصی مجهز به یک صفحه نمایش و یک بلندگو |
سرور چاپ |
یک یا چند دستگاه چاپ را بر روی شبکه به اشتراک می گذارد، بنابراین محدودیت های دسترسی فیزیکی از بین می رود. |
کامپیوترهایی که نیاز به چاپ چیزی دارند |
سرور صوتی |
برنامه های کامپیوتری یک کامپیوتر را فعال می سازد تا اصوات را بطور انفرادی یا به صورت اشتراکی، ضبط و پخش کند. |
برنامه های کامپیوتری کامپیوتر مشابه |
سرور پروکسی |
بعنوان یک واسطه بین کاربر و سرور عمل کرده و ترافیک ورودی از جانب کاربر را تأیید و به سرور ارسال می نماید. دلایل انجام چنین کاری عبارتند از کنترل محتوا و فیلتر کردن، بهبود عملکرد ترافیک، جلوگیری از دسترسی غیرمجاز به شبکه یا مسیریابی ساده ترافیک بر روی شبکه های بزرگ و پیچیده |
هر کامپیوتر شبکه شده |
سرور وب |
صفحات میزبان وب. یک سرور وب، سروری است که وب گسترده جهانی را ممکن می سازد. هر وب سایت دارای یک یا چند سرور وب است. |
کامپیوترهای دارای یک مرورگر وب |
تقریباً کل ساختار اینترنت، مبتنی بر یک مدل کاربر- سرور می باشد. سرورهای نام ریشه سطح بالا، DNS و روترها، ترافیک را در اینترنت هدایت می کنند. میلیون ها سرور متصل به اینترنت وجود دارد که بطور مداوم در سرتاسر جهان در حال کارکردن هستند و بطور مجازی هر کاری که توسط یک کاربر اینترنت عادی انجام شود نیازمند یک یا چند تعامل با یک یا چند سرور می باشد. البته استثناهایی هم وجود دارد که از سرورهای اختصاصی استفاده نمی کنند؛ بعنوان مثال اشتراک فایل نظیر- به- نظیر و برخی برنامه های تلفنی (همانند Skype).
ملزومات سخت افزاری سرور
ملزومات سخت افزاری برای سرورها دارای تنوع گسترده بوده و به هدف بکارگیری سرور و نرم افزارهای آن وابسته می باشد.
یک سرور قرار گرفته در قفسه با درپوش آن که به منظور نشان دادن اجزاء درونی برداشته شده است
از آنجا که سرورها معمولاً در یک شبکه در دسترس قرار می گیرند، بسیاری از اجراهای خودکار بدون وجود یک نمایشگر یا ابزار ورودی، سخت افزار صوتی و واسط های USB انجام می شود. بسیاری از سرورها واسط گرافیکی کاربر (GUI) نیز ندارند. آن ها از راه دور، پیکربندی و مدیریت می شوند. مدیریت از راه دور می تواند از طریق روش های متعددی از جمله کنسول مدیریت مایکروسافت (MMC)، PowerShell، SSH و سیستم های مدیریت خارج از باند مبتنی بر مرورگر همانند iDRAC محصول شرکت Dell یا iLO محصول شرکت HP عملیات رهبری را انجام دهند.
سرورهای بزرگ
سرورهای بزرگ قدیمی باید به مدت طولانی بدون توقف کار میکردند. لزوم دسترس پذیری بسیار بالا موجب شده تا قابلیت اطمینان و دوام بالای سخت افزار از اهمیت بسیار بالایی برخوردار باشند. سرورهای تجاری با مأموریت های بحرانی باید در برابر خطا بسیار پایدار بوده و از سخت افزار مخصوص با کمترین احتمال خطا استفاده کنند تا میزان روشن ماندن آنها به حداکثر برسد. منابع تأمین برق بی وقفه نیز می توانند برای اطمینان از کارکرد سرور در هنگام قطع برق به کار گرفته شوند. ، قبل از راه اندازی و بررسی، سرورها عموماً شامل سخت افزارهای اضافی نظیر منابع تغذیه دوگانه، سیستم های دیسک RAID و حافظه ECC به همراه تست و تأیید حافظه پیش راه انداز می شوند. قطعات بحرانی سرور می توانند قابلیت تعویض در حین عملکرد داشته باشند، این به تعمیرکاران امکان تعویض قطعات را بر روی سروری که در حال کار کردن است بدون نیاز به خاموش کردن آن می دهد. بعلاوه جهت جلوگیری از افزایش دمای سیستم نیز می توان سرور را به فن های بسیار قوی مجهز کرد یا از خنک کننده آبی استفاده نمود. سرورها غالباً می توانند از راه دور با استفاده از مدیریت خارج از باند که عموماً بر اساس IPMI است، پیکربندی، روشن، خاموش یا راه اندازی مجدد شوند. محفظه سرورها معمولاً صاف و پهن بوده و جهت اتصال بر روی قفسه طراحی می شوند.
نمای پشتی یک قفسه سرور
نمای پشتی سرورهای مؤسسهWikimedia
نمای مقابل سرورهای مؤسسهWikimedia
نمای پشتی سرورهای مؤسسهWikimedia
این نوع از سرورها معمولاً در مراکز داده مخصوص قرار می گیرند. این مراکز عموماً برق و اینترنت بسیار پایدار و امنیت بالایی دارند. نویز هم ناچیز است، اما مصرف توان و تولید حرارت می تواند یک مساله جدی باشد. اتاق های سرور به دستگاه های تهویه مطبوع مجهز شده اند.
خوشه ها یا کلاسترها
یک مزرعه سرور یا خوشه سرور و به اصطلاح کلاستر سرور عبارتست از مجموعه ای از سرورهای کامپیوتری که توسط یک سازمان برای تأمین عملکرد سرور در حد فراتر از توانایی یک دستگاه منفرد نگهداری می شوند. امروزه اغلب مراکز داده مدرن، از خوشه های بسیار بزرگتر متشکل از سرورهای ساده تر ساخته شده اند و یک تلاش تعامل محور توسط سازمان پروژه محاسباتی باز، در این رابطه وجود دارد.
یک دسته از سرورهای تخصصی کوچک با عنوان تجهیزات شبکه هستند که عموماً در مقیاس کوچک و در اندازه های کوچکتر از کامپیوترهای رایج تولید می شوند.
سیستم های عامل
در محیط اینترنت، عمده سیستم های عامل در بین سرورها، توزیع های منبع باز شبیه به UNIX هستند، مانند سیستم عامل های مبتنی بر Linux و FreeBSD، به همراه سرور ویندوز که دارای حجم اشتراک قابل توجهی است. سیستم های عامل اختصاصی همانند z/OS و سرور macOS نیز به تعداد بسیار کمتر استفاده شده اند.
Cobalt Qube 3محصول شرکت Sun : یک دستگاه سرور کامپیوتر (2002) که سیستم عامل Cobalt Linux ( یک نسخه تغییر یافته از Red Hat Linux بر پایه هسته Linux نسخه 2.2) بر روی آن اجرا می شود و با سرور وب Apache تکمیل شده است.
مشخصه های معمول سیستم های عامل مبتنی بر سرورهای تخصصی شامل موارد زیر است:
- GUI در دسترس نیست یا انتخابی است
- قابلیت پیکربندی مجدد و به روز رسانی نرم افزار و سخت افزار بدون راه اندازی مجدد وجود ندارد
- تسهیلات پشتیبانی پیشرفته برای ایجاد امکان پشتیبانی آنلاین منظم و مداوم از داده های بحرانی
- انتقال نامرئی داده با حجم های مختلف بین دستگاه های مختلف
- قابلیت های شبکه ای انعطاف پذیر و پیشرفته
- قابلیت های اتوماسیون همانند daemons در UNIX و سرویس های ویندوز
- امنیت شدید سیستم به همراه محافظت پیشرفته از کاربران، منابع، اطلاعات و حافظه
- شناسایی پیشرفته و اعلان خطر در شرایطی همچون گرم شدن بیش از حد سیستم، یا خطای پردازنده و دیسک
در عمل، امروزه بسیاری از سیستم های عامل شخصی و سیستم های عامل مبتنی بر سرور دارای منبع کد مشابه بوده و اغلب در پیکربندی تفاوت دارند.
مصرف انرژی
در سال 2010 مراکز داده ای (سرورها، خنک کننده ها و دیگر زیرساخت های الکتریکی) مسئول 1/1 تا 5/1 درصد از مصرف برق تمام دنیا بوده و 7/1 تا 2/2 درصد از آن در ایالات متحده مصرف شده است. تخمین زده می شود که کل انرژی مصرف شده توسط تکنولوژی اطلاعات و ارتباطات به دلیل ایجاد بهره وری اقتصادی، کاهش تولید گازهای گلخانه ای به ارزش بیش از 5 برابر خود را در سایر بخش های صنعت به دنبال شده است.