|
Прежде всего, нужно четко понимать, чем сервер отличается от обычного персонального компьютера. Ответ прост: с точки зрения обывателя – ничем. Однако согласно принципу перехода количества в качество, количество нюансов в серверах настолько велико, что позволяет выделить сервер в самостоятельную категорию – одну из самых важных на ІТ-рынке.
Для начала, хочется отметить, что предназначение сервера - «вычислительные» функции и функции хранения, то есть для быстрой обработки, передачи и хранения данных. Для ускорения обработки данных необходим больший объем памяти; чтобы передача данных производилась быстрее и занимала меньше времени, требуются быстрые каналы передачи и интеллектуальные контроллеры, которые возьмут на работу над процессом ввода-вывода. Для хранения данных нужны большие объемы дисковой памяти, причем тоже желательно быстрой. Поскольку все самое быстрое в один сервер установить невозможно да и в принципе не нужно, надо уделить серьезное внимание сбалансированности конфигурации. Также немаловажным требованием к серверу является надежность. Теперь по порядку о том, что есть в серверах и чего нет, и скорее всего никогда не будет в обычных персональных компьютерах. Ниже приведена примерная функциональная схема обобщенного SMP-сервера. Начнем с шины PCI. Казалось бы, шина – она и есть шина, никаких отличий от обычных ПК здесь быть не может, но это только на первый взгляд. В обычном персональном компьютере PCI-шина одна. Так проще, а главное, дешевле (цена – еще один критерий, обуславливающий различия между сервером и персональным компьютером). В сервере таких шин несколько, причем их скорость и разрядность больше. Если у вас несколько независимых шин, то пересылка данных может идти параллельно. Еще один нюанс: архитектура обычного ПК не позволяет иметь больше 16 прерываний. На практике их значительно меньше, а порой и того нет. Вот и начинаются проблемы с различными устройствами: неустойчивая работа, конфликты или невозможность функционирования данного устройства вообще в такой конфигурации. А в сервере все устроено иначе: прерывания виртуализированы, и ими управляет отдельный интеллектуальный контроллер. Результат его применения поначалу просто обескураживает: каждое устройство в системе может иметь свое собственное прерывание! Их количество 255, что в 14 раз больше, чем у обычного ПК. Следующее глобальное отличие заключается в интеллектуальных контроллерах ввода-вывода. С одной стороны, они повышают скорость работы, но с другой — могут быть установлены и в обычный персональный компьютер, где будут работать так же быстро, как и в сервере. Одно из самых значительных отличий представляет подсистема памяти. Надежность памяти едва ли не самое главное требование предъявляемое к серверам, поскольку сбои здесь могут привести как к полной неработоспособности сервера, так и к совершенно незаметные невооруженным глазом ошибкам. Для борьбы с ошибками памяти последовательно придумали и внедрили несколько технологий. Сначала просто контролировали один бит, называемый паритетным, затем, когда интеграция памяти возросла, этого оказалось недостаточно. Ошибки паритета можно лишь диагностировать, но не исправлять. Для исправления же требуется другая технология — ECC (Error Correction Code). С возрастанием интеграции микросхем памяти все больше увеличивается и угроза возникновения ошибок. Если раньше время между двумя последовательно возникшими ошибками измерялось сотнями лет, то теперь – годами. И тогда компания IBM внедрила технологию «Chipkill». Ее суть предельно проста. По аналогии с пятым RAID-разделом производится вычисление контрольных сумм, но только не для дисков, а для памяти. Есть, конечно, небольшие потери объема памяти, но благодаря избыточности отказ одной микросхемы и даже целого модуля не может вывести систему из строя. Отказавший модуль можно заменить прямо во время работы сервера. В обычных персональный компьютерах такое вряд ли появится – не тот уровень цен. Поскольку одним из главных требований к серверу является надежность, то мало просто собрать сервер из работоспособных совместимых комплектующих. Невидимой на первый взгляд формой надежности является способность оперативно и предсказуемо реагировать на неожиданные факторы, такие как: отказ или небольшая неисправность жестких дисков, сбои в памяти, авария в системе питания. Подобных факторов есть много. Для их правильной обработки на «правильном» сервере существует отдельный контроллер – BMC (Baseboard Management Controller), который должен постоянно следить за датчиками и сообщать куда следует обращаться в случае отклонений. Отличительной особенностью BMC является его работоспособность при выключенном питании. Единственное чего в серверах нет и никогда не будет это шины AGP. Она там просто не нужна, поскольку от сервера не требуется большой графической мощности. |