Требования к серверным подсистемам информационных систем предприятий (начало)

Информационная система (ИС) современного предприятия обслуживает потоки коллективно используемых данных: описание и анализ технологических процессов, документооборот, движение товарных и материальных ценностей, статистику и анализ управленческой деятельности, бухгалтерскую отчетность, распределение человеческих, материальных, товарных, финансовых и других ресурсов и т. д. На серверную подсистему предприятий возлагается организация доступа к корпоративной электронной почте и Интернет, распределенная обработка данных, управление локальными и региональными сетями, обмен данными с удаленными подразделениями, распространение и защита информации, реализация хостинга, IP-телефония, системы обмена сообщениями, охранные системы и системы видеонаблюдения, организация видеоконференций и множество других задач.

Классификацию серверов по назначению, производительности и программно-аппаратной платформе можно выполнять, в частности, в зависимости от размера обслуживаемого подразделения (сервер предприятия, здания или корпуса, цеха, этажа, отдела, подразделения, рабочей группы) с учетом числа пользователей. В качестве основных характеристик выделим показатели производительности; емкостные, скоростные (тип интерфейса) и надежностные (среднее время наработки на отказ, измеряемое в сотнях тысяч часов, и наличие дублирования жестких дисков) характеристики подсистем хранения данных, пропускной способности внутренних и внешних шин. К серверам необходимо предъявлять существенно более высокие требования по отказоустойчивости и времени восстановления работоспособности после сбоя по сравнению с настольными компьютерами, поскольку зачастую они работают без выключения годами, в режиме 7/24/365.

Аппаратная база серверов варьируется от многопроцессорных RISC-систем с возможностью установки сотен процессоров и “горячей заменой” (во время работы, без выключения) практически любого компонента (процессоров, дисков, блоков питания, вентиляторов, контроллеров и модулей памяти) до одно-, двух-, четырехпроцессорных на платформе х86 без возможности замены компонентов без выключения питания.

Однако в случае использования классификации серверов по масштабу обслуживаемых подразделений невозможно четко определить, могут ли задачи, возлагаемые на ИС предприятия, быть эффективно решены с помощью сервера соответствующей производительности. Так, для сотен или даже тысяч пассивных пользователей сервер с несколькими процессорами может быть избыточен, а небольшая, но активная рабочая группа, решающая сложные задачи, может полностью загрузить гораздо более производительный сервер и высокоскоростную компьютерную сеть. Поэтому гораздо более важна для принятия решения при создании ИС предприятия классификация серверов по функциональности с учетом масштабности и сложности решаемых прикладных задач. Проведем анализ функционального назначения наиболее распространенных типов серверов, которые задействуются при построении ИС предприятий.

1. Файловый сервер (File Server) широко распространен, применяется для построения компьютерных сетей и информационных систем уже более 15 лет и обеспечивает совместное использование дискового пространства и размещенных на нем данных. Файловые серверы используются в вычислительной сети для совместного доступа к общей информации (базе данных, БД), экономии места на жестких дисках компьютеров пользователей за счет отказа от дублирования неиндивидуальной информации (например, дистрибутивы программных продуктов, обновления для программных продуктов, общедоступная документация и т. п.), повышение надежности хранения критически важных для бизнеса предприятия данных. Данный тип сервера является базовым, и большинство остальных типов серверов целесообразно строить на базе файл-сервера или с учетом предъявляемых к нему требований. Именно по этой причине проанализируем требования к файл-серверу в первую очередь.

Выделим основные факторы, определяющие возможности файлового сервера: производительность дисковой подсистемы и сетевых интерфейсов; объем оперативной памяти для кэширования данных; быстродействие используемой в установленной операционной системе (ОС) файловой системы; производительность процессора (она особенно важна при реализации на сервере антивирусной защиты — проверки в реальном времени (“на лету”) файлов, поступающих по скоростным сетевым интерфейсам, или при включенном программном сжатии данных (в файловых системах NTFS, HPFS, Novell FS и др.).

При эксплуатации файлового сервера чрезвычайно важно наличие отказоустойчивого дискового RAID-массива (Redundant Array of Independent Disks, избыточный массив независимых дисков) и использование протоколов кэширования данных операционной системой и контроллером дискового массива. Сквозное кэширование (Write Through) имеет высокую надежность, но существенно уступает отложенному кэшированию (Write Back), поскольку процессор контроллера RAID-массива может оказаться сдерживающим фактором в связи с недостаточной производительностью.

Один из главных аспектов, определяющих производительность и надежность файлового сервера, — файловая система. Для достижения максимальной эффективности она должна полностью размещаться в оперативной памяти, допускать регистрацию событий, поддерживать транзакции на уровне файлов, оптимизацию размещения данных и развитую систему назначения прав и мало загружать центральный процессор. ОС должна самостоятельно поддерживать перегруппировку запросов для оптимизации перемещения головок дисковых накопителей и иметь возможности настройки параметров чтения/записи в дополнение к реализованной в современных жестких дисках технологии NCQ (Native Command Queueing, естественный порядок команд). Несоблюдение этих требований может привести к тому, что производительность файлового сервера при выполнении потока операций ввода/вывода существенно упадет.

Скоростные параметры сетевых интерфейсов практически не ограничивают производительность файлового сервера. В большинстве случаев единственной сетевой платы Gigabit Ethernet (1000 Мбит/с) достаточно для любых объемов файлового ввода/вывода, однако предпочтительнее использовать внутренний интерфейс PCI-Х (64 бит, 33 или 66 МГц с пропускной способностью 264 или 528 Мбайт/с соответственно) вместо стандартного PCI (пропускная способность 132 Мбайт/с), а для достижения максимального быстродействия желательно применять технологию Jumbo Frames (в этом случае вместо стандартных пакетов Ethernet размером 64—1500 байт по сети пересылаются пакеты размером 8 кбайт, что снижает общее число пакетов и нагрузку на процессоры сетевого адаптера и маршрутизатора). Средний выигрыш в производительности составляет 10-15%, в отдельных случаях — до 30%. Однако в некоторых случаях (например, в терминальной системе) возможно и снижение быстродействия.

Разновидностями файлового сервера можно назвать кэширующие proxy-, FTP- (File Transfer Protocol, протокол передачи файлов) и Web-серверы, отображающие преимущественно статические страницы.

2. SQL-сервер (Structured Query Language, язык структурированных запросов) — сервер, используемый для обработки общедоступных реляционных БД. В настоящее время является обязательным при построении любой ИС предприятия. Требования к нему рассмотрим в качестве дополнительных по отношению к файловому серверу. Причиной создания системы обработки структурированных запросов послужила задача адаптации файл-серверных решений для работы с БД. В этом случае возникает ряд проблем: компьютерная корпоративная сеть не в состоянии обеспечить скорость доступа к данным, сравнимую со скоростью передачи по внутренним шинам компьютера; блокировка данных для сохранения их целостности и связности возможна только на уровне целого файла; аварийные разрывы соединений, весьма опасные для данных, но неизбежные при неидеальных клиентских рабочих местах, на которых часто используются морально и физически устаревшие компьютеры.

Работа SQL-сервера основана на отправке клиентским компьютером запроса, который обрабатывается сервером, и возвращении пользователю результатов обработки запроса по компьютерной сети. При этом все операции по управлению данными, контролю целостности и связности, а иногда и по выполнению логики приложения возлагаются на программное обеспечение сервера. Такой подход решает описанные выше проблемы, но и порождает новые, поскольку на сервере сосредоточивается вся нагрузка по обработке данных. Если при файл-серверной архитектуре обработкой занимаются рабочие станции, то в клиент-серверной практически вся нагрузка ложится на сервер. Поэтому при проектировании и анализе требований к SQL-серверу основное внимание необходимо уделять рассмотренным ниже характеристикам.

2.1. Пропускная способность оперативной памяти при произвольной выборке — один из важнейших показателей, так как современные процессоры с большими коэффициентами умножения практически всегда испытывают недостаток в пропускной способности памяти при любых объемах кэш-памяти.

2.2. Размер оперативной памяти теоретически должен быть таким, чтобы помещались все рабочие таблицы, индексы, временные таблицы, хранимые процедуры и т. д. Однако даже для нескольких гигабайт данных желаемый объем может составить десятки гигабайт. Поэтому приемлема ситуация, соответствующая принципу Парето (правилу 80-20), где 80% запросов приходится на 20% данных, и лишь 20% запросов обращается к 80% данных. Поэтому желательно разместить в оперативной памяти эти приблизительно-условные 20% данных (индексы данных, хранимые процедуры и наиболее часто используемые данные). В общем случае для достижения приемлемой производительности целесообразно использовать объем оперативной памяти в диапазоне 256-512 Мбайт на каждый гигабайт данных.

2.3. Требования к производительности центрального процессора связаны с особенностями нагрузки на процессорную часть — высокой степенью ветвления кода с малой степенью предсказуемости, поблочная обработка данных, большой нагрузкой на оперативную память. Поэтому желательно, чтобы центральный процессор сервера БД (SQL-сервера) имел конвейер с минимально возможным числом ступеней, максимальный объем иерархии кэшпамяти (желательно трех уровней) и не слишком большой коэффициент умножения.

Все вышеперечисленные ограничения и требования связаны между собой. Так, при непродуманном построении SMP-систем (Symmetric Multiprocessing, симметричная многопроцессорность) даже самая современная архитектура подсистемы памяти не сумеет предоставить каждому процессору требуемую пропускную способность при приемлемом уровне временных задержек. Коммутируемые архитектуры многопроцессорных систем, обладающие большим быстродействием, также не могут обеспечить необходимого времени отклика оперативной памяти, поэтому во избежание простоев процессоры серверов БД желательно оснащать большим объемом кэш-памяти со сложной иерархией. Для серверов крупных подразделений или целых предприятий, работающих с тысячами запросов и многогигабайтовы-ми базами данных, типичны 8, 16 и более Мбайт кэш-памяти, а в многоядерных процессорах свою кэш-память может иметь каждое ядро.

Подсистема резервного копирования также является узким местом в архитектуре SQL-серверов, поскольку быстрое (максимум десятки минут) резервное копирование огромных БД представляет немалую сложность. Поэтому при проектировании высокопроизводительных и высокозагруженных серверов БД особое внимание необходимо уделять устройствам резервного копирования и тщательной разработке сценария их работы.

Важный аспект конфигурирования серверов БД связан с контроллерами дисковых массивов RAID. Необходимо тщательно подбирать размер аппаратно адресуемого блока массива, число и тип дисков в массиве, число каналов и контроллеров. Например, если типичный запрос со стороны ОС намного больше размера адресуемого блока, это приводит к существенному росту нагрузки на процессор контроллера и, соответственно, нехватке его производительности в нужный момент. Если же типичный запрос со стороны ОС намного меньше размера адресуемого блока, контроллер будет иметь невысокую загрузку, в результате чего возникают накопительные задержки или кэш-память контроллера будет использоваться слишком часто. Анализ возникающих на практике сбоев показывает, что около 80% проблем с быстродействием SQL-серверов связаны с настройками контроллера RAID-массивов.

SQL-сервер задействуется в чрезвычайно широком спектре программно-аппаратных комплексов, позволяющих автоматизировать различные задачи: построение CRM-, MRP-, ERP-систем (Client Relationships Management — управление взаимоотношениями с клиентами; Manufacturing Re-

sources Planning — планирование производственных ресурсов; Enterprise Resources Planning — планирование всех ресурсов предприятия) в рамках единой ИС предприятия, терминальных систем (продажа железнодорожных билетов, обслуживание касс в супермаркетах и др.), построение систем дистанционного обучения (например, система Moodle применяет связку из Web-сервера (рассмотрен ниже) Apache, языка программирования PHP и SQL-сервера MySQL) и т.д.

* * *

А вы знаете, что от того, на сколько удобная и качественная мебель в вашей спальне зависит и качество вашего сна? Если же вы хотите помимо удобства еще и придать спальне индивидуальности, то вам нужна угловая мебель для спальни. Такая мебель отличается своей компактностью и уютом, создаваемым в помещении.

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.