Комплектование и тестирование отказоустойчивого компьютера на платформе AMD K8

14 мая 2006, воскресенье 17:07
для раздела Блоги
Комплектование и тестирование отказоустойчивого компьютера на платформе AMD K8
Статья заняла 2-е место на конкурсе AMD

Содержание:
1. Процессор и оперативная память с коррекцией ошибок
2. Дисковая подсистема RAID
3. Системная плата
4. Пример комплектации отказоустойчивого компьютера
5. Тестирование отказоустойчивого компьютера

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

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

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

1. Процессор и оперативная память с коррекцией ошибок

Как известно, популярные «серверные» и «десктоповые» процессоры имеют одно и то же вычислительное ядро, которое обладает встроенными средствами коррекции ошибок — в частности, защитой встроенных кэшей контролем четности и кодами коррекции ошибок (ECC). Контроль четности обнаруживает единичные ошибки, а ECC позволяют исправить одиночные ошибки и обнаружить двойные ошибки в пакете из 64 бит.

Основная разница между «серверными» и «десктоповыми» процессорами заключается в интерфейсах передачи данных. Классические «серверные» процессоры AMD Opteron 2xx и 8xx 1) могут работать в составе многопроцессорной системы и 2) рассчитаны на применение регистровой (registered) памяти c ECC. Объем регистровой памяти может составлять до 16-64 и более ГБайт, в зависимости от числа процессоров.


Модуль регистровой памяти с ECC


В отличие от этого «десктоповые» процессоры AMD Athlon 64 и подобные им по архитектуре процессоры Opteron 1xx новых выпусков рассчитаны на работу с более дешевой небуферизованной (unbuffered) памятью, максимальным объемом до 4 ГБайт. Небуферизованная память может иметь или не иметь ECC.

Модули небуферизованной памяти c ECC имеют на борту 9 или 18 чипов, т.е. на 1 или 2 чипа больше, чем модули без контроля четности. В дополнительных чипах хранится избыточная информация для коррекции ошибок. Для наших целей подходит только память c ECC, поскольку в противном случае компьютер не будет устойчивым по отношению к сбоям в памяти.


Модуль небуферизованной памяти с ECC


Модуль небуферизованной памяти без ECC


Собственно коррекция ошибок выполняется не в модуле памяти, а в контроллере памяти. Контроллер памяти может находиться в отдельной микросхеме чипсета или быть встроенным в сам процессор. Первое характерно для процессоров Intel (поэтому установка модулей памяти с ECC возможна только при условии их поддержки чипсетом), а второе — для процессоров AMD с ядром K8. Судя по технической документации, коррекцию ошибок памяти могут выполнять все процессоры AMD K8, в их числе Opteron, Athlon 64 и даже бюджетные процессоры Sempron — начиная с самого первого Sempron 3100+ на ядре Paris с топологией 0.13m.

2. Дисковая подсистема RAID

В системах потребительского класса до сих пор применяются винчестеры с интерфейсом IDE, которые имеют паспортные ограничения на время непрерывной работы (11 часов) и интенсивность рабочей нагрузки. Примерно такие же ограничения имеют и потребительские винчестеры Serial ATA, хотя здесь встречаются исключения в лучшую сторону. К примеру, диски Western Digital RAID Edition (RE) рассчитаны на непрерывную работу в режиме 24*7. В новом стандарте Serial ATA II декларировано применение очереди команд (NCQ) для оптимизации перемещения головок чтения-записи под интенсивной нагрузкой. Благодаря этим нововведениям, некоторые винчестеры Serial ATA приближаются по надежности и производительности к дорогим «серверным» винчестерам, которые традиционно имеют интерфейс SCSI.

Но как бы не был надежен винчестер, его отказ все равно возможен. Поэтому в отказоустойчивых системах применяются дисковые массивы RAID. Теория гласит (и практика подтверждает), что для отказоустойчивости к массиву из n одинаковых по объему дисков достаточно добавить всего 1 диск. В частном случае, когда n=1 — мы имеем зеркальный массив из двух дисков, называемый RAID 1-го уровня. В общем случае при n>1 применяется RAID 5-го уровня с чередованием информации и контрольных сумм.


(кликните по картинке для увеличения)




(кликните по картинке для увеличения)



ПРИМЕЧАНИЕ: ПРИМЕЧАНИЕ: В дисковом массиве с избыточностью скорость чтения растет пропорционально числу дисков — при условии чередования обращений к дискам (уточним, что пропорциональный рост наблюдается при последовательном чтении с RAID 5 до тех пор, пока хватает пропускной способности интерфейса). А вот скорость записи обратно пропорциональна числу дисков, т.к. в каждой записи участвуют все диски массива — на 2 диска проводится запись и c n-1 дисков проводится чтение данных для вычисления контрольных сумм RAID 5. Поэтому при увеличении числа дисков в массиве нарушается баланс скорости чтения и записи, что может привести к общему снижению производительности системы. Для борьбы в этим явлением применяются дорогие аппаратные контроллеры с кэш-памятью и микропроцессорами. К счастью, эти проблемы не особенно актуальны для массивов из небольшого числа дисков (до 4) — поэтому для создания таких массивов ставить дополнительное контроллеры не обязательно. Достаточно возможностей, встроенных в чипсет материнской платы.

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

Объем массива RAID 1 не может быть больше объема диска. Для преодоления этого ограничения существуют чипсеты, поддерживающие 4-x дисковые зеркальные массивы с чередованием (RAID уровня 0+1 или 10) или даже дисковые массивы RAID 5. Массив RAID 0+1 обеспечивает удвоение объема и производительности при 100% избыточности, а массив RAID 5 из четырех дисков — утроение объема при избыточности всего 33%.

Обсуждаемый «чипсетный» RAID на самом деле является не аппаратным, а преимущественно программным, т.к. он реализован через драйверы. Судя по тому, что загрузка процессора бывает невысокой — по разным тестам от 0.5% до 25%, такой подход можно считать оправданным. Программный характер «чипсетного» RAID наталкивает на мысль о том, что вместо него можно воспользоваться поддержкой RAID, встроенной в операционную систему. Это возможно для большинства популярных операционных систем, в их числе Windows 2000/XP и Linux. Исключением является Windows XP Home Edition, которая допускает только RAID 0.

RAID под операционной системой обладает одним существенным ограничением и одним важным преимуществом. Ограничение состоит в том, что загрузка операционной системы возможна только с обычного раздела или зеркального массива, но не с массива с чередованием RAID 0+1 или 5. А преимущество состоит в том, что массивы RAID строится не из физических дисков, а из логических разделов на физических дисках. Это значит, что всего на двух физических дисках можно сочетать массивы RAID 0, RAID 1 и обычные разделы без RAID, при этом сами физические диски могут иметь разный размер. Надо только следить за тем, чтобы зеркальные разделы имели одинаковые порядковые номера — иначе при отказе одного из дисков система может перестать загружаться.

В отличие от этого, «чипсетный» RAID захватывает каждый диск целиком, поэтому в него объединяют одинаковые диски от одного производителя. Заменить вышедший из строя диск можно только диском не меньшего размера. А если заменяющий диск будет меньше хотя бы на один мегабайт (что частенько случается даже с дисками одной серии), то репликация массива не состоится.

Вот статьи с дополнительной информацией по теме:
"Создаем программный массив RAID 5 под Windows XP"
"Администрирование дисков в Windows 2000"
"Программный RAID-массив в Linux"

3. Системная плата

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

Среди известных производителей поддержку памяти с ECC декларирует ASUS. Другой пример дает Gigabyte — поддержка ECC на сайте не упоминается, но по факту присутствует и подтверждается технической службой — по крайней мере, для некоторых плат. А вот платы Epox мне встречались только без поддержки ECC — этого режима не было в BIOS и его нельзя было включить программой A64Tweaker. Для предварительного выяснения вопроса о совместимости плат и модулей ECC можно воспользоваться службой на сайте Kingston.

Гораздо лучше обстоят дела с поддержкой Serial ATA RAID. Платформа AMD K8 появилась сравнительно недавно и ее распространение как раз совпало с массовым внедрением этой полезной технологии. Поэтому Serial ATA RAID нет только в самых первых чипсетах — это NVidia nForce3 150, SIS 755(963) и ULi M1687. Все остальные чипсеты поддерживают, как минимум Serial ATA RAID 0 и 1, более современные — RAID 0+1, иногда RAID 5. Чипсеты NVidia поддерживают еще и Parallel ATA RAID (хотя мне приходилось видеть сообщения о том, что в самых новых чипсетах это уже не так). Подробности про чипсеты есть в справочнике matrix "Обзор чипсетов для архитектуры AMD K8". Навороченные системные платы могут иметь дополнительные контроллеры RAID — но многие из них обладают тем недостатком, что сидят на медленной 133-мегабитной шине PCI.

4. Пример комплектации отказоустойчивого компьютера

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

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


 КомплектующиеСтоимость
КорпусAOpen H360, FSP 250W2300 р
Материнская платаGigabyte GA-K8VM800M (Rev 2.x)1400 р
ПроцессорAMD Sempron 2500+ (Socket 754) BOX1700 р
Память1*512M DDR400 ECC Kingston KVR400X72C3A/5121700 р
Винчестеры2*40G IDE Samsung SP0411N, RAID 12*1300 р
DVD RWLG GSA-4163B1300 р
Итого 11000 р




Применяемая плата Gigabyte GA-K8VM800M имеет формат micro-ATX и построена на чипсете VIA K8M800 с южным мостом VIA VT8237R. Указанный южный мост не позволяет объединить применяемые диски IDE в массив RAID, т.к. он поддерживает только Serial ATA RAID. Но это нам и не нужно, т.к. по условиями применения компьютера в роли медиа-центра зеркалированию подлежит на весь диск, а только один раздел с критическими данными. Поэтому массив RAID 1 создается средствами операционной системы, в роли которой применяется Windows Server 2003 x64 Edition. Отказавшись от «чипсетного» RAID, мы дополнительно экономим на флоппи-приводе, которым придется комплектовать компьютер для подгрузки «чипсетного» драйвера при установке операционной системы на массив RAID.

Несмотря на то, что сайт Gigabyte и документация на системную плату ничего не говорит о поддержке ECC, соответствующие опции в BIOS имеются. Они, как это принято в платах Gigabyte, «спрятаны» под клавишей Ctrl-F1, которая делает видимым пункт «Advanced Chipset Features».




За коррекцию ошибок отвечают параметры в двух верхних строчках. Первый параметр управляет поддержкой ECC, которая про умолчанию выключена, т.е. выставлена в «Disabled». Второй параметр (Scrub — в буквальном переводе «чистка») управляет сканированием памяти для выявления случайных одиночных ошибок. Сканирование позволяет предотвратить накопление ошибок в тех ячейках памяти, к которым процессор обращается редко. Логика назначения Scrub Rate такова — там, где возникла одиночная ошибка, с определенной вероятностью может возникнуть двойная, которую скорректировать уже не удастся. Поэтому одиночную ошибку надо обнаружить и исправить как можно быстрее.

Накладные расходы на сканирование памяти тем выше, чем меньше выставленное значение Scrub Rate. При минимальном Scrub Rate, равном 40 ns, пропускная способность памяти падает вдвое. Но при увеличении Scrub Rate пропускная способность памяти быстро приближается к номиналу, так что уже при Scrub Rate 5.12 ms разница теряется в погрешности измерения. При необходимости, Scrub Rate можно увеличить до 84 ms или вообще отключить.

Еще один вопрос, на котором стоит остановить внимание — это встроенная графика. Все известно, что она предназначена не для современных компьютерных игр, но мы ждем от нее приличного качества в 2D. К сожалению, и это не всегда так. На платах со встроенной графикой NVidia мне приходилось наблюдать рябь в виде мелких горизонтальных полосок на экране, которая особенно заметна при работе системы под нагрузкой — например, при загрузке операционной системы или перетаскивании окна на экране. Этот дефект встроенной графики не устраняется настройками и лечится только установкой внешней видеокарты. Я не буду перечислять конкретные марки плат с рябью, т.к. у меня не было случая выяснить — идет ли речь о конструктивной недоработке или о неисправности конкретного экземпляра платы. Плата Gigabyte GA-K8VM800M была выбрана мной именно за хорошее качество графики в 2D — несмотря на то, что применяемый в ней чипсет VIA считается устаревшим.

Приведенная конструкция создавалась для домашнего использования, поэтому в ней использован стильный и малогабаритный, но тесный корпус. Вентиляция в корпусе осуществляется одним вытяжным 9mm вентилятором на блоке питания, что определяет очень жесткие требования к тепловыделению комплектующих. Ранее я уже собирал в этом корпусе систему на процессоре AMD Athlon 2500+, но результат был не сильно удачным, потому что процессор перегревался, ему приходилось занижать напряжение и частоту. На это тему написана моя первая статья "Маленький, тихий и дешевый компьютер с возможностью разгона". Теперь данный процессор трудится в другом корпусе, а его место занял новый Sempron 2500+. Хвала инженерам AMD, на этот раз процессор вписывается в тепловой режим и под полной нагрузкой прогревается не выше 50 градусов, при том что для понижения шума боксовый кулер приторможен до 2000 RPM. Что касается винчестеров Samsung, то они имеют половинную высоту и низкое энергопотребление — поэтому даже при слабой вентиляции греются всего до 35-37 градусов.

В ходе обсуждения мне предложили три усовершенствования, которые вполне достойны упоминания:

1. Конструкция корпуса допускает применение 80-гигабайтных винчестеров, которые имеют почти ту же стоимость, а также некоторых винчестеров большего объема. Надо только обратить внимание на тепловыделение, которые у отдельных моделей может быть слишком высоким — cм. сводную таблицу «Винчестеры с пониженным шумом и тепловыделением» в "FAQ по бюджетной модернизации". При замене одного или двух винчестеров на Serial ATA можно разгрузить каналы IDE, но при этом на применяемой материнской плате Gigabyte GA-K8VM800M ограничиваются возможности разгона. Отметим также, что для подключения винчестеров Serial ATA II к южному мосту VT8237R их потребуется переключить в режим Serial ATA 150, что возможно не для всех моделей.

2. Для увеличения производительности можно собрать систему на Sempron 3000+ для Socket 939 с двухканальной памятью. Процессор Sempron 3000+ стоит ненамного дороже Sempron 2500+, но для двухканального режима потребуются двa модуля памяти. Приобрести модули DDR с ECC на 256 мегабайт проблематично, а иначе надо ставить модули по 512 мегабайт — что заметно увеличит стоимость системы. Но эта проблема в принципе поправима, потому что на подходе платы для Socket AM2, а к ним уже есть недорогие модули DDR2/533 ECC на 256 мегабайт от Samsung.

3. Платы на чипсетах NVidia GeForce 6100 и Radeon Xpress 200 обладают более производительной встроенной графикой с аппаратной поддержкой DirectX 9, в то время как на плату VIA для этого надо ставить внешнюю видеокарту. Впрочем, последнее решение может оказаться более экономичным — т.к. для производительной встроенной графики желательно иметь систему на базе Socket 939 или AM2.

Для установки более мощных процессоров и дисковых массивов потребуется корпус с лучшей вентиляцией. Используя системные платы для Socket 939, можно собирать высокопроизводительные отказоустойчивые компьютеры на двуядерных процессорах, с полноценным «чипсетным» дисковым массивом Serial ATA RAID — но это уже тема для другой статьи и другого бюджета. Вопросы выбора платформы обсуждаются в моей статье "Здравый смысл против закона Мура (энергопотребление и охлаждение современных компьютеров)".

5. Тестирование отказоустойчивого компьютера

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

Для начала ставим Optimized Defaults в BIOS, при этом режим ECC отключается, т.е. контроллер работает без коррекции и обнаружения ошибок. Память работает при таймингах 8-3-3-3.0-2T, другие подробности на скриншоте A64Tweaker:

(кликните по картинке для увеличения)



Загружаем компьютер и разгоняем его по шине из-под Windows. Плата не позволяет частоте PCI подниматься выше 40 MHz, для чего при превышении FSB 240 делитель FSB/PCI автоматически увеличивается до 8. Отметим, что существуют «неправильные» значения FSB, на которых плата в принципе не работает — это 245-248, 257 и 262.

В результате разгона без ECC получаем стабильную работу Prime95 In-place large FFT при FSB 251, далее появляются ошибки округления. Система работает более или менее стабильно вплоть до FSB 258, а выше начинается область сплошных отказов и резетов. Отметим, что если увеличить делитель памяти, то мою систему можно разогнать и дальше (до FSB 290). Но это не суть дела, сейчас мы проверяем на разгон память.

Перезагружаемся, включаем в BIOS режим Memory ECC Control Auto. На этот раз в системном трее периодически появляются сообщения WMIxWDM 106 о корректируемой аппаратной ошибке. Это НЕ обязательно ошибка на интерфейсе памяти, т.к. в разогнанной системе многие шины могут работать со сбоями.




Для нас более информативным будет то, что после включения ECC тест Prime95 работает ПРАВИЛЬНО, вплоть до FSB 259. Дополнительно, компьютер проходит тесты S&M 1.7.6, Hot CPU Tester Pro(Lite Edition) 4.2.2 и Sandra 2007.




В качестве примера приведем результаты теста пропускной способности памяти в режимах с ECC и без ECC:


(кликните по картинке для увеличения)

Sandra 2007 (пропускная способность памяти)


При больших значениях FSB тест Prime95 также проходит без диагностики, но компьютер временами уходит на перезагрузку. Поскольку Prime95 загружает память, а не шины ввода-вывода — то можно утверждать, что при FSB 252-259 происходят корректируемые однобитовые ошибки памяти. Результат — применение коррекции ошибок памяти подняло границу стабильного разгона на 8 единиц FSB.

Отметим, что наличие контроля четности никак не влияет на пропускную способность памяти. Аналогичная картина наблюдается в тесте латентности, а также во всех тестах RMMA 3.72. Это говорит о том, что вычисление и сравнение контрольных сумм не приводит к появлению дополнительных задержек. Исключением является только тот случай, когда в память записывается неполное слово, например, 32-битное. Контрольные суммы вычисляются для полного 64-битного слова, поэтому контроллер считывает из памяти 64-битное слово, изменяет в нем 32 бита и пишет все 64 бита обратно. Для процессора это неважно, потому что он пишет данные в память через кэш L2, т.е. 64-битными словами. Но вот интегрированная графика и в самом деле подтормаживает — примерно на 10%, и эти тормоза не удается компенсировать за счет дополнительного прироста FSB. Поэтому разгон интегрированной графики лучше проводить с отключенной коррекцией ошибок.

Заключение

Уникальные особенности платформы AMD K8 позволяют создать недорогой и компактный отказоустойчивый компьютер с коррекцией одиночных ошибок памяти и дисковым массивом RAID. Стоимость такого компьютера укладывается в рамки бюджета начального уровня. Применение памяти с коррекцией ошибок позволяет улучшить стабильность при разгоне.

В завершение — краткая характеристика комплектующих.

Корпус AOpen H360 micro-ATX slim:

Достоинства:
— Малые габариты.
— Экранирование от электромагнитного излучения (EMI shields).
— Блок питания FSP 250W.
— 9mm вентилятор с регулировкой оборотов по термодатчику.
— Два варианта конфигурации слотов: 3*3.5", 1*5.25, либо 1*3.5, 2*5.25.

Недостатки:
— Слабая вентиляция, можно использовать только компоненты с минимальным тепловыделением.
— Слоты расширения под карты половинной высоты (low profile).
— Характерная для малогабаритных корпусов слабая шумовая изоляция (но малошумную систему все равно можно сделать).

Материнская плата Gigabyte GA-K8VM800M Socket 754 (Rev 2.x):

Достоинства:
— Формат micro-ATX.
— Хорошее качество встроенной графики в 2D, наличие слота AGP.
— Неплохие для чипсета VIA возможности разгона c настройкой напряжения CPU, AGP и таймингов памяти.

Недостатки:
— Устаревший графический ускоритель.
— Встроенный контроллер Serial ATA RAID сидит на медленной шине PCI.
— Не поддерживается «чипсетный» RAID для винчестеров Parallel ATA.
— Диски Serial ATA II надо переключать в режим Serial ATA, что не всегда возможно.
— Применение дисков Serial ATA ограничивает разгон.

AMD Sempron 2500+ (Socket 754/1.4/256): Просто очень хороший процессор .

Kingston KVR400X72C3A: Надежная и недорогая небуферизованная память с контролем четности, которую я применяю во многих своих системах. Не является оверклокерской — но тем не менее может разгоняться до DDR500 и выше.

Samsung SP0411N: Самый экономичный и тихий из известных мне винчестеров.

DVD RW LG GSA-4163B: Пишет все, читает лучше, чем NEC.

Сведения об изменениях
14 мая 2006 года — публикация на конкурс AMD.
16 мая 2006 года — обсуждение предложенных на форуме вариантов комплектации, ссылка на справочник matrix "Обзор чипсетов для архитектуры AMD K8".
29 мая 2006 года — добавлен тест пропускной способности памяти.
20 ноября 2006 года — влияние коррекции ошибок на производительность (настройки Scrub Rate, тесты RMMA, интегрированная графика).

Обсудить статью, оставить свои комментарии и высказать пожелания можно в этой ветке конференции.
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают