oldi

Мы выбираем новое поколение

Сергей Самохин

 

Очень долгое время (с начала 80-х годов) производительность персональных компьютеров, в том числе и серверов, оценивалась по тактовой частоте процессора. Программные продукты, предназначенные для оценки производительности, ориентировались в основном на подсчет количества коротких программных циклов, выполненных за единицу времени. Появление кэш-памяти на кристалле процессора 486 резко, непропорционально росту тактовой частоты, подняло его измеряемую производительность. Основное внимание производители ПК уделяли голой производительности процессора, мало заботясь о создании сбалансированных систем. В особенности это касается серверов, где производительность подсистемы ввода/вывода не менее (а часто и более) важна, чем скорость работы собственно процессора. Файл, затребованный пользователем, проходит в сервере длинный путь от диска через дисковый контроллер, основную память и сетевую карту, причем шина ввода/вывода в этой операции задействована дважды. Современные утилиты позволяют оценивать производительность дисковой и видеоподсистемы, но не измерять ее в комплексе, что в особенности касается серверов. Усложнение сетей, интенсивность трафика и увеличивающийся размер читаемых и записываемых файлов выдвигают повышенные требования к системе ввода/вывода, не снижая, впрочем, и требований к вычислительной подсистеме, то есть процессору и памяти. Для достижения наилучших результатов обе подсистемы должны быть сбалансированы таким образом, чтобы скорость обработки информации соответствовала скорости обмена. Кроме того, обе подсистемы должны обладать свойством масштабируемости, то есть при увеличении вычислительной мощности (например, вследствие установки дополнительного процессора) должна существовать возможность повышения производительности подсистемы ввода/вывода.

Рост производительности подсистемы ввода/вывода, к сожалению, заметно отстает от роста производительности процессора. Шина ISA при тактовой частоте 8 МГц и ширине 16 бит имела теоретическую пропускную способность 5,3 Мбайт/с. Шина PCI при ширине 64 бит и тактовой частоте 66 МГц имеет пиковую пропускную способность 66х4= 264 Мбайт/с: рост примерно в 50 раз. Процессор 8086, на котором была построена IBM PC, имел тактовую частоту 4,77 МГц, а не так давно Intel объявил о прототипах, работающих с тактовой частотой 1 ГГц (то есть рост производительности подсистем явно не сбалансирован).

По мере увеличения производительности процессоров в современных серверах ввод/вывод, а конкретно шина PCI становится наиболее узким местом. Ее скорость лимитирована стандартом и равна 33 или 66 МГц при ширине 32 или 64 бита. Если тактовые частоты материнских плат серверов растут по мере увеличения тактовых частот процессоров (хотя и с отставанием), то тактовая частота PCI фиксирована, так что производительность этой шины остается постоянной.

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

Масштабируемость в принципе не присуща интерфейсу PCI. Обычно серверы приобретаются с расчетом на расширение в будущем. Однако после того, как занят последний слот PCI, возможностей для расширения остается мало (фактически остается только одна — замена карт на более функциональные).

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

Современная архитектура системы ввода/вывода, основанная на совместном использовании шины и памяти, несложна для понимания, проверена временем, однако имеет ряд недостатков и ограничений.

  • Для доступа к шине используется механизм арбитража. Это означает, что захват ее каким-нибудь устройством приведет к снижению производительности (вплоть до нуля) всех остальных.
  • «Горячая» (то есть без останова и отключения) замена затруднена. Редкие серверы и карты ее поддерживают.
  • Несмотря на plug-and-play, установка карт остается скорее искусством, чем наукой. Найти тот слот, в котором карта будет работать с максимальной производительностью, помогает только опыт.
  • Усложняется разработка системных плат. Требования к разводке платы, предъявляемые высокой тактовой частотой, заставляют размещать слоты на небольшом расстоянии от памяти. По мере роста производительности процессоров разместить на системной плате то количество слотов, которое обеспечило бы необходимый баланс между подсистемами ввода/вывода и обработки данных, становится непросто.
  • По мере роста количества устройств ввода/вывода повышаются требования, предъявляемые к системам электропитания и охлаждения. Поскольку изначально эти системы должны быть рассчитаны на полную потребляемую мощность, нарушается принцип «плати по мере роста».

Перечисленные ограничения архитектуры PCI сказываются прежде всего на участке рынка, относящемся к серверам.

Для решения этих проблем имеется несколько путей. Первый — повысить производительность шины PCI путем увеличения тактовой частоты до 133 МГц; на это направлена совместная инициатива компаний 3Com, Adaptec, Compaq, Hewlett-Packard и IBM под названием Future I/O. По существу, это эволюционный подход, предусматривающий совместимость снизу вверх. Однако, как упоминалось выше, конструкция системных плат еще более усложняется.

Другой революционный подход, названный Next Generation I/O (NGIO), предложен в совместной инициативе компаний Intel, Sun Microsystems, Dell Computer Corporation, Hitachi Limited, NEC Corporation и Siemens Information Communication Network, Inc. Направленная на исправление недостатков, присущих архитектуре современных серверов, она коренным образом меняет всю концепцию подсистемы ввода/вывода.

Концепция NGIO предусматривает отдельный механизм ввода/вывода, основанный на каналах, подключенный к основной памяти сервера и взаимодействующий с периферией при помощи передачи сообщений, что полностью развязывает процессор и периферию. Как и более ранняя серверная технология от Intel, I2O, она восходит к принципам, использовавшимся в больших ЭВМ (mainframes). Помимо прочих достоинств такой подход является весьма привлекательным для многопроцессорных систем.

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

Собственно система состоит из нескольких совместно работающих устройств. Главным является основной канальный контроллер (Host Channel Adapter, HCA), который осуществляет интерфейс с памятью сервера и содержит один или более контроллер прямого доступа и контроллер(ы) высокоскоростного последовательного интерфейса.

Периферийный канальный контроллер (Target Channel Adapter, TCA) является интерфейсом между высокоскоростным последовательным каналом и интерфейсом периферийного устройства, в качестве которого может выступать FC-AL, SCSI, Ethernet и т.д. Детектирование и определение подключенных внешних устройств производится автоматически. Периферийные канальные контроллеры подключаются к основному при помощи коммутатора (или нескольких коммутаторов, образующих коммутирующую среду — fabric). В принципе, эти коммутаторы подобны тем, которые уже применяются в локальных вычислительных сетях.

Для обмена с периферийными устройствами могут использоваться два метода:

  • Послать/Принять (Send/Receive), требующий совместной работы обоих участников обмена. Инициатор обмена посылает запрос с описанием данных, подлежащих пересылке, на что запрашиваемое устройство отвечает квитанцией, в которой указывается, где следует поместить или получить требуемые данные.
  • Прямой Доступ (RDMA Read/Write), при котором не требуется программной обработки со стороны второго участника обмена. Для запуска механизма RDMA на запись инициатор обмена посылает получателю запрос с описанием данных и адресом, куда их следует поместить. Аналогично при чтении посылается запрос, содержащий адрес и размер пересылаемого блока, а также адрес, где данные следует разместить.

Обычно первый способ используется для передачи контрольной информации, а второй — для обмена большими объемами данных, такими как потоки из локальной сети или блоки данных с диска.

Канальная архитектура в сочетании с подключением внешних устройств при помощи высокоскоростных последовательных интерфейсов, объединенных через коммутатор, имеет целый ряд преимуществ перед традиционной схемой:

  • полностью устраняется арбитраж на шине между контроллерами внешних устройств, так как каждое из них имеет прямой выделенный канал доступа к памяти через канальный контроллер;
  • возможность «горячей» замены заложена в самой архитектуре;
  • устраняется необходимость конфигурирования контроллеров, так как все каналы одинаковы;
  • упрощается построение системы, так как расстояние от контроллеров внешних устройств может быть произвольным в диапазоне 0,75...30 м.

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

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

Как известно, большинство технологий, являющихся ныне промышленными стандартами, становились таковыми в более длительные сроки, чем прогнозировалось разработчиками. Скорее всего, несмотря на поддержку со стороны серьезных игроков на поле компьютерного бизнеса, та же участь ожидает и NGIO. С другой стороны, эта технология касается в основном внутренней структуры серверов, не затрагивая существующих стандартов, таких как FC-AL и SCSI, а наоборот, демонстрируя полную готовность к интеграции с ними. Вероятнее всего, в течение некоторого времени NGIO и PCI будут мирно сосуществовать, как сосуществуют сейчас шины ISA и PCI.

Архитектура NGIO поддерживает переход от PCI к NGIO путем интеграции традиционных адаптеров PCI в коммутирующую среду NGIO. Следует отметить, что разработчики новой технологии прекрасно понимают, что PCI будет вытеснен с серверного сегмента рынка далеко не сразу, а скорее, как показывает история предыдущих нововведений, в течение пяти или даже более лет.

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

В течение последних лет у всех на слуху упорно держится термин System Area Network (сеть системной области), подразумевающий использование сетевых устройств хранения данных и кластерной структуры для организации служебной сети, охватывающей серверы и присоединенные к ним устройства (не путать с локальной сетью).

NGIO идеально вписывается в эту концепцию, внедрение которой при существующих технологиях затруднено. Можно предположить, что использование кластеров для увеличения надежности и производительности вызовет быстрое внедрение NGIO. В течение ближайших лет, по мере того, как пользователи будут воспринимать простоту и изящество концепций сетевых устройств хранения данных и сетей системной области, эти технологии будут внедряться со все возрастающей скоростью.

Поэтому тем, кто заботится о надежности, производительности и доступности данных, уже сейчас следует подумать об организации информационной системы на основе новых технологий. Более подробную информацию можно найти на сайтах Intel www.intel.com и NGIO Forum www.ngioforum.org

 

КомпьютерПресс 2'2000