Ретроклокинг: «Проект36» – обгоняя время или мультипроцессорная революция 20 лет назад
Оглавление
Вступление
В рамках данного проекта у вас будет уникальная возможность узнать о мини-мэйнфрейме по цене Ferrari, обладающим колоссальной мощью по меркам 1997 года, а также о тонкостях установки более современной операционной системы Windows и других интересных подробностях. Скорее всего, некоторым читателям что-то уже скажет громкое название суперсервера ALR Revolution 6×6, о нем и пойдет речь в новой статье.
Лаборатория продолжает цикл статей о «Ретроклокинге», но в этот раз вместо обычного материала стартует целый проект по сбору, настройке и запуску уникальной системы, состоящей из шести процессоров Intel Pentium Pro с частотой 200 МГц в исполнении Socket 8. Вас ждет и знакомство с теми трудностями, с которыми пришлось столкнуться при реализации всего задуманного.
Данный проект растянулся во времени более чем на полгода и для его реализации мне пришлось нехотя расстаться со многими уникальными и ключевыми экспонатами своей коллекции: процессорами, материнскими платами и видеокартами, которые успели побывать в прошлых выпусках «Ретроклокинга» и которые я, возможно, уже не увижу вновь, и все это ради одного многопроцессорного монстра, которому в этому году исполнился 21 год.
В одиночку воплотить все задуманное мне было бы попросту нереально, без помощи моих товарищей из России, США и Великобритании данный «Проект» остался бы проектом на бумаге, но их неоценимая помощь позволила сбыться задуманному…
И почти сорок килограммов чистого веса проделали путь длиною более чем 11 тысяч километров за три захода. Итого суммарное расстояние, в результате которого все части собрались воедино, составило 30 тысяч километров (для справки: окружность Земли составляет 40 тыс. км), так что данный труд отчасти и их заслуга, за что я им безмерно благодарен.
Перед тем, как приступить к начальной части проекта, расскажу, что пытаясь разобраться в теме «мэйнфреймов и суперкомпьютеров», понял одно — собрать пусть и «мини» мэйнфрейм дома, как это сделал Коннор Крукоски (Connor Krukosky) вполне реально, а вот еще и разогнать его было бы интереснее.
При изучении вычислительных супермашин такого рода было решено остановиться на системах, состоящих из процессоров Pentium Pro, так как установив Windows-совместимые приложения и бенчмарки, можно было бы посмотреть, насколько производительность ушла вперед за десятилетия.
В идеале, конечно, хорошо бы было обзавестись Intel ASCI Red, но я начал с его мини-версии.
Процессоры Intel Pentium Pro
Основу любых компьютеров составляют центральные процессоры. Процессоры Intel Pentium Pro были представлены публике в 1995 году. В это время существовали и обычные «Пентумы» без приставки Pro, но данный префикс в наименовании модели говорил о том, что данные процессоры позиционируются в первую очередь как решения для серверов и рабочих станций.
Главное отличие Pentium Pro от обычных десктопных собратьев заключалось в наличии кэш-памяти второго уровня (L2), которая работала на частоте ядра процессора, что позволяло значительно увеличить общую производительность.
У разных моделей процессоров объем L2 кэша был разным, от 256 Кб до 1 Мб. Кэш память первого уровня у обыкновенного Pentium и Pentium Pro на фоне таких больших цифр объема L2 кэша казалась миниатюрной и составляла всего каких-то 16 Кб, из которых 8 Кб предназначалось для данных и столько же 8 Кб для инструкций.
Напомню, что у последующих Intel Pentium-II кэш-память второго уровня работала на половине частоты ядра процессора.
Модели с частотой 150 МГц производилась с применением норм 500 нм техпроцесса (BiCMOS), от 166 и до 200 МГц уже c применением более тонкого 350 нм техпроцесса.
Количество транзисторов у Pentium Pro составляло 5.5 млн. шт. для самого процессорного ядра и целых 15.5 — 31 миллионов приходилось на кэш-память второго уровня, в зависимости от ее объема и модели процессора соответственно. Сама кэш-память второго уровня располагалась на отдельном кристалле рядом с ядром CPU.
Процессор имел свободный множитель и частоту системной шины в зависимости от модели 60 либо 66 МГц. Разгон процессора всецело упирался в разгон кэш-памяти второго уровня, именно она являлась сдерживающим фактором.
И в более увеличенном виде:
Разгон и тогда был лотерей, поэтому он зависел от удачности самого экземпляра CPU. Так как процессор имел свободный множитель, значит комфортный и классический разгон был возможен без каких-либо ухищрений, нужно было просто переставить джамперы на материнской плате в соответствии с «мануалом».
Частота FSB также задавалась комбинацией джамперов, и несмотря на ограничение (по спецификации потолок системной шины равнялся 66 МГц), отдельные материнские платы имели недокументированные возможности дальнейшего увеличения FSB вплоть до 75 МГц. Разгонять такого рода системы даже сейчас одно удовольствие.
Архитектура Pentium Pro была рассчитана на однопроцессорные и многопроцессорные системы, интерфейс системной шины обеспечивал объединение до четырех процессоров на одной шине с помощью внутренних схем арбитража в симметричную мультипроцессорную систему (SMP).
Но так как архитектура была достаточно гибкой, то отдельные крупные производители серверов выходили за рамки спецификаций чипмейкера и создавали настоящие технологические шедевры с шестью и более центральными процессорами.
Процессоры Pentium Pro были очень хорошо оптимизированы для параллелизации выполнения команд. Они имели несколько декодеров, позволяющих преобразовать входные команды в микрооперации и буферизовать их. Далее эти микрооперации анализировались и их последовательность изменялась для оптимизации параллельного выполнения команд. Иными словами внутри процессора инструкции могли исполняться не в том порядке, который предполагает программный код, а в динамическом, что давало солидный прирост производительности на уровне использования самой архитектуры CPU, а не только тактовой частоты ядра CPU.
Немаловажным аспектом являлась стоимость процессоров, лучше всего на этот вопрос ответит следующий скриншот из 1995 года:
Младшая модель в 1995 году стартовала с отметки $974, а за Pentium Pro c 512 Кб L2 и частотою 200 МГц пришлось бы заплатить почти две тысячи долларов. Но в прайс-листе конца 1995 года естественно не хватает самого быстрого представителя с одним мегабайтом кэш-памяти второго уровня с частотой 200 МГц, который имел полностью черный цвет и был представлен спустя два года после выпуска первых моделей.
Такой «черный» Pentium Pro был представлен 18 августа 1997 года и продавался по цене $2675. (Для справки, двумя месяцами ранее в июне 1997 года только что выпущенный топовый Pentium MMX 233 МГц стоил $594 в партиях от 1000 штук.)
TDP самого быстрого из Pentium Pro был равен 47 Вт, что было достаточно много для процессоров того времени. Обыкновенный Pentium (не MMX) с частотой 200 МГц потреблял лишь 15.5 Вт. Как можно понять практически вся мощность Pentium Pro приходилась на кэш-память второго уровня.
Для сравнения уровня цен на PC тех лет, фото двух различных платформ Dell:
Несколькими месяцами позже, в августе 1997 года в связи с выходом Pentium-II, Pentium MMX 233 подешевел до $386.
Основой Socket8 материнских плат на начальном этапе являлся чипсет Intel 450GX «Orion» и 450KX «Mars». Префикс «GX» говорил о принадлежности к линейке «старших» моделей материнских плат с количеством процессоров равным четырем и более, «KX» предназначался для рабочий станций с одним или двумя CPU.
Чипсет получился большим во всех смыслах этого слова, он состоял из четырех отдельных микросхем достаточно большого размера, по этой отличительной черте его можно отличить от последующего набора системной логики для Socket8.
Позднее появился следующий более прогрессивный набор системной логики — Intel 440FX «Natoma», поддерживающий более скоростной стандарт оперативной памяти — EDO, в отличие от Intel 450GX, который работал лишь с памятью стандарта FPM (Fast Page Mode). Intel 440FX был призван заменить собою чипсет Intel 450KX, а для Intel 450GX замены выпущено не было. Стоимость набора системной логики Intel 450GX для производителей материнских плат была установлена в размере $291, 450KX обходился дешевле — $209.
1997 год, можно сказать, был переломным в плане использования оперативной памяти различных видов и типов. В системы на базе чипсета Intel 450GX «Orion» устанавливалась память стандарта FPM как в форм-факторе simm 72 pin, так и в dimm 168 pin. Стоила в те годы память недешево, впрочем, и сейчас явно не лучшие для нее времена.
За 64 Мб оперативной памяти в отживающим свое исполнении simm 72 pin в середине 1997 году просили в среднем $350, в современном в то время dimm 168 pin исполнении те же 64 Мб стоили столько же или чуть дороже $350.
За 128 Мб одной планкой пришлось бы отдать уже $1000–1200. А вот только что появившаяся SDRAM стоила еще дороже, за 64 Мб просили уже $400. И это что касается обычной не серверной памяти.
Для рабочих станций и серверов память с коррекцией ошибок стола как почти новый ПК. Для примера 128 МБ модуль памяти стандарта EDO с ECC стоил $1500 и выше, приобретая 256 Мб модуль памяти с аналогичными характеристиками приходилось расстаться с суммой порядка $3500.
Но как гласит историческая наука — все возвращается на круги своя. В сегодняшних реалиях 128 Гб оперативной памяти стандарта DDR4 одной планкой стоит практически столько же: от 1500 до 2900 долларов в зависимости от скоростных характеристик.
За $600–700 можно купить 64 Гб, а за $300–350 32 Гб оперативной памяти одной планкой. Как видим, паритет сохранен, а ведь прошло чуть больше 20 лет.
Охватив основные характеристики мультипроцессорных платформ: процессоры, память, чипсеты, мы плавно подошли к самим супер-серверам того времени.
Advanced Logic Research и ALR Revolution 6×6
Производительности никогда не бывает много и Калифорнийская компания Advanced Logic Research Inc. (ALR), которая с 80-х годов прошлого века занималась разработкой высокопроизводительных систем решила нарушить устоявшийся порядок и выпустить систему на базе шести процессоров Intel Pentium Pro, тем самым обойти ограничения спецификаций самой Intel, которые позволяли выпускать только четырехпроцессорные конфигурации.
Основным заказчиком и соразработчиком выступила еще одна очень крупная американская компания Unisys Corp., которая имела огромный опыт разработки мэйнфреймов и соперничала на этом поле с IBM. В результате совместного труда в середине 1997 года и появился «революционный» высокопроизводительный сервер с получивший название ALR Revolution 6×6, который был быстрее четырех процессорных серверов, представленных тогда на рынке, в различных задачах вплоть до 43%.
Впоследствии Unisys используя разработанную аппаратную платформу ALR представила свой суперсервер Unisys Aquanta HS6, который был как две капли воды похож на ALR Revolution 6×6. Успех ALR Revolution 6×6 был очень большим, и так получилось, что спустя всего лишь пару месяцев еще один крупный игрок американского компьютерного рынка компания Gateway 2000 Inc. летом 1997 года приобретает Advanced Logic Research за 194 млн. долларов.
Естественно, третий клон ALR Revolution 6×6 появился в прайс листе Gateway под названием Gateway 2000 NS9000. Вот так одна уникальная разработка трижды покорила рынок.
Если обратиться к документу «Microsoft SQL Server Scalability: A White Paper from the Desktop and Business Systems Division Revised December 1997» то можно увидеть на 11-й странице интересные цифры:
Эти цифры касаются производительности в SMP-тесте Microsoft SQL Server в сравнении с сопоставимыми результатами других поставщиков баз данных и аппаратных платформ. Данный тест показывает, что Windows NT Server Enterprise Edition и Microsoft SQL Server 6.5 масштабируется до огромной пропускной способности, обеспечивая поддержку 12 000 пользователей, обращающихся к базе данных объемом 1.2 терабайта. Это показывает, что SQL Server и NT на 8-way SMP имеют производительность, сопоставимую с 8-way UNIX системами DB2 и Informix, но решение Microsoft в два-три раза дешевле. Oracle достигает впечатляющей производительности, но для этого требуется 24 процессора и затраты в 3.3 миллиона долларов.
Цифры немаленькие и говорят о том, что ALR Revolution 6×6 способен удовлетворить запросы 13 тысяч пользователей при стоимости всей клиент-серверной инфраструктуры почти в 460 тысяч долларов. Я не зря в начале статьи указал стоимость оперативной памяти и процессоров, а еще в сухом остатке остается дисковая подсистема, RAID контроллеры, система питания сервера, лицензионное программное обеспечение и остальные компоненты, которые, впрочем, на итоговую пятизначную сумму особо-то и не влияют.
Если покопаться в интернете, то можно найти прайс-листы тех лет. Вот, например, стоимость четырехпроцессорного сервера Compaq:
Итого 44 тысячи долларов за четырехпроцессорную конфигурацию. Но цены на HDD еще интереснее.
Наиболее емкий 9 Гб и самый дорогой SCSI HDD Seagate стоил в то время 2 тысячи долларов. Да вот такой «малыш» внутри имел целых 10 пластин, так что стоимость вполне оправдана.
Вопрос сколько их можно было поставить в ALR Revolution 6×6? Ответ много и даже очень много. Если учесть, что на плате имеется 8 PCI слотов, куда можно было установить столько же SCSI RAID контроллеров и еще один дискретный SCSI и один такой же IDE контроллер, то общее количество дисков могло быть от 56 до 120 шт. не беря в расчет встроенные контроллеры. Итого, получаются цифры от 504 Гб до сумасшедшего 1 Тбайта дискового пространства и это, напомню — 1997 год.
Конечно, обычной организации, не говоря уже о суперсостоятельном пользователе такая система не была по карману, проще было купить Ferrari и наслаждаться скоростью, пусть и другого формата. Спустя 21 год такая система с точки зрения производительности уже ничего не представляет, современный мобильный телефон в разы ее быстрее, но приобрести такую систему сейчас очень сложно, хотя бы из-за ее весовых и габаритных характеристик, но об этом ниже.
Возникает вопрос как столько HDD, которые физически не поместятся в просторный корпус ALR Revolution 6×6, будут работать? Ответ я нашел в одном документе Unisys Corporation «TPC Benchmark Full Disclosure Report Unisys Corporation Open Business Systems Aquanta HS/6 Server (4P) using Microsoft NT Server 4.0 Enterprise Edition and Microsoft SQL Server 6.5 Enterprise Edition Second Edition December 19th 1997», вот фото одной из 186 страниц, наглядно объясняющих суть.
На фото видно, что нагрузочные испытания базы данных Microsoft SQL Server 6.5 происходили на чудовищном объеме дисковой стойки тех лет — 760 Гб, куда обращались 9200 клиентов. Стоимость такой стойки отдельно была на уровне $200 000. В данном отчете фигурирует стоимость и самого сервера производителя, а также стоимость комплектующих сторонних компаний. Но вначале спецификация от производителя:
А теперь переходим непосредственно к стоимости сервера и его комплектующих.
В левом верхнем углу красуется сумасшедшая стоимость сервера и всех прилагаемой инфраструктуры — более 400 тысяч долларов. При этом сам сервер оснащен по максимуму: 6 процессоров Pentium Pro c частотой 200 МГц и кэш-памятью второго уровня 1 Мб, 4 Гб оперативной памяти, 7 рейд контроллеров и дисковый массив объемом 860 Гб. Не указана система питания, но, как правило, в такой конфигурации стояли четыре блока питания по 350 Вт каждый, пара из которых была резервными.
Ниже стоимость отдельных комплектующих:
Сам сервер в такой конфигурации стоил 275 тысяч долларов, из которых 24 тысячи приходилось на платы расширения для процессоров и сами 6 процессоров. 4 Гб оперативной памяти стандарта FPM, состоящей из 16 модулей объемом 256 Мб каждый стоили $32 000, 7 рэйд контроллеров стоили $12 000 и так далее.
И вот такой суперсервер мне посчастливилось протестировать. Наверное, если сложить стоимость всего протестированного overclockers.ru железа за год, то возможно и получится выйти на сумму, равную стоимости героя сегодняшней статьи. Но были также сервера с центральными процессорами Intel Pentium Pro, которые были еще мощнее упомянутых выше трех представителей платформы ALR Revolution 6×6. Я назову лишь несколько примеров.
Data General AViiON AV 8600 данный сервер содержал 8 процессоров Pentium Pro, общая стоимость всей системы составляла 897 290 долларов США, из которых 548 тысяч приходилось на сам сервер. Он также оснащался 4 Гб оперативной памяти и мог обслуживать одновременно 13 тысяч клиентов. Еще одним примером может стать NCR WorldMark 4300 OctaScale, который также обладал 8-ю процессорами Pentium Pro. Размер и вес этих двух 8-ми процессорных монстров был почти в 2 раза больше чем у ALR Revolution 6×6, который имел следующие габариты: высота — 68 см, ширина — 32 см, глубина — 58 см, масса — от 52 кг.
Еще одним другом можно зазвать Unisys Aqanta XR/6 который состоял из 12-ти процессоров Intel Pentium Pro, но тут уже совсем другие габариты и стоимость, измеряемая шестизначными числами. Характеристики и внешний вид Unisys Aqanta XR/6 можно увидеть ниже на фото:
Вес данного сервера начинался с отметки 297 кг, высота — 177.3 см, ширина — 54.6 см и глубина — 92.2 см. Такой сервер дома уже не поставишь, хотя нет ничего невозможно, может быть после прочтения этой статьи кто-то да и решится на подобный шаг =) Да, еще исследуя просторы интернета, я набрел на интересное фото 4-х процессорного сервера от IBM, на фоне его дети кажутся еще меньше, чем есть на самом деле, чтобы это увидеть можно перейти по ссылке.
Software или выбор операционной системы
ALR Revolution 6×6 и его братья близнецы могли работать под управлением следующих операционных систем: Microsoft Windows NT Server 4.0 Enterprise, Microsoft Windows 2000 Advanced/Datacenter Server, OS/2 Warp Server Advanced SMP от IBM, Unix от Santa Cruz Operation (SCO) и NetWare 6 от Novell. Из всего перечисленного под мои задачи, а это сравнение производительности в бенчмарках и тестовых программах, которые на 95% выпускались под операционные системы производства Microsoft, подходила только Windows 2000 Advanced Server. Windows NT Server 4.0 я даже не пытался устанавливать ввиду ее возраста и еще большей ограниченностью в плане совместимости используемого программного обеспечения в сравнении с Windows 2000 Advanced Server.
Если у кого-то возникнет вопрос, а почему не просто Windows 2000 Professional с последним сервиспаком либо обычный Microsoft Windows 2000 Server? Ответ кроется в поддержке SMP или ограничениями многопроцессорных конфигураций определенной версией ОС.
Как видите, Windows 2000 Server поддерживает всего два физических процессора, впрочем, как и Windows 2000 Professional. А вот версия Advanced Server поддерживает уже восемь физических процессоров (не путать с логическими), что как раз мне и подходит. Эту версию я первым делом и установил на свой сервер. Каких-либо трудностей с установкой не возникло.
Но счастье длилось недолго, да, я увидел все шесть ядер в диспетчере задач, но при первой попытке сделать скриншот простой программой, которая работала идеально в Windows XP SP3 я получил ошибку, не хватало некоторых библиотек Windows для ее нормальной работы. Дальше — больше, некоторые программы нормально работавшие в Windows XP отказались запускаться выдавав ошибку: «нe найдена точка входа в процедуру в библиотеке kernel32.dll», это касалось например WinRar версии 5.40, Java JDK7 и так далее.
Получается, что я получил работоспособную систему, но без софта, с которым постоянно привык иметь дело и в котором тестирую производительность таких ретро систем. А если учесть, что пара Intel Pentium Pro нормально работала под управлением Windows XP SP3 без каких либо проблем, то я начал искать пути решения этой проблемы.
Освежив информацию по семейству ОС Windows 2000 я понял одно, эта серия для полноценного тестирования мне ничем не поможет, слишком уж много ограничений по сравнению с Windows XP SP3. А еще почитав описание к версиям используемого мною ПО, я только укрепился в своем желании взять ОС с ядром не ниже чем Windows XP, так-как у того же WinRar«a последняя версия для семейства Windows 2000 — 4.11, а я привык использовать 5.40 и выше.
Windows XP SP3 для системы с шестью физическими CPU также не подходит, так как также имеет поддержу всего двух физических процессоров и выбор в результате пал на линейку Windows Server 2003.
У первых двух версий Windows Server 2003 также присутствуют ограничения по количеству используемых физических процессоров, поэтому приемлемым вариантом была версия — Enterprise Edition и я сразу решил ее установить с последним Service Pack 2. Установка заняла в два раза больше времени, чем Windows 2000 Advanced Server и я уже предвкушал использование более новой и «навороченной» ОС, даже в сравнении с Windows XP, которая имеет внутреннюю версию 5.1 против 5.2 у 2003 Server. Но и тут меня ждала очередная проблема. В диспетчере задач было видно всего одно ядро CPU.
Прочитав про данный феномен, я понял, что он заключался в отсутствии поддержки SMP во всем семействе ОС Windows Server 2003, вызванной из-за аппаратной ошибки в ядре CPU процессоров семейства Intel Pentium Pro и ранних Penitum-II и связанной с этим проблемой «утечки» памяти. Вот что гласят официальные документы на этот счет:
«There is also a known issue with Windows Server 2003 on some Pentium Pro or Pentium II dual-processor or multiple-processor servers where the server may fire up with only one processor.
This situation may occur if you upgrade from Windows NT 4.0 or Windows 2000 to Windows Server 2003. The error message of «Unsupported Multiprocessor Configuration» will be displayed according to Microsoft Knowledge Base Article — 319091. The Unsupported Multiprocessor Configuration issue affects the following Intel processors:
x86 Family 6 Model 1 Stepping X GenuineIntel (where X = 1, 2, 6, 7, or 9)
x86 Family 6 Model 3 Stepping X GenuineIntel (where X = 3 or 4)
When you perform the compatibility check after upgrading the operating system you may receive the following message if you are using these processors: «Microsoft Windows Server 2003 family of operating systems and the processors in this system do not operate together in a multiprocessor configuration.» The upgrade will continue, but on completion, Windows Server 2003 will operate with only a single processor».
Здорово! Приехали! Перерыв весь интернет я не нашел ни одного упоминания запуска системы на базе процессоров Pentium Pro на Windows Server 2003. Казалось бы, вот конец статьи, но как показывает практика, если проблема софтовая, то ее можно решить с успехом на 99%, будь то запуск в Sli режиме двух видеокарт на любой платформе, даже пусть это будет Pentium-III, где это в принципе было невозможно, либо запуск пары процессоров Pentium Pro на Slot-1 материнских платах. Вопрос только, сколько на это потребуется времени, выше названные проекты заняли не один месяц экспериментов и этот не стал исключением.
Ниже будет представлен своеобразный «ворклог», посвященный запуску шести процессоров Intel Pentium Pro на ОС семейства Windows Server 2003.
SoftWorkLog
Перед стартом установки ОС нужно выбрать правильное ядро операционной системы, для этого на начальном этапе установки необходимо нажать клавишу F5.
В данном случае мы выбираем MPS Multiprocessor PC, поскольку остальные опции попросту не подходят, ведь ACPI данный сервер, естественно, не поддерживает. Вообще советую всем, кто ставит такого рода эксперименты, при выборе более «современной» ОС, которая старше, чем само «железо», выключать в BIOS (при наличии) поддержку ACPI. Это простое действие прилично сохранит нервы.
Итак, Windows Server 2003 R2 Enterprise Edition установилась, и, как уже упоминалось выше, в системе красовалось одно рабочее ядро CPU.
Далее была предпринята попытка установки операционной системы из самой ОС методом обновления, но уже на первоначальном этапе инсталлятор Windows Server 2003 Enterprise Edition предупредил меня, что используется неподдерживаемая системой мультипроцессорная конфигурация.
Впрочем, существует много способов установки ОС old_biggrin.gif В качестве альтернативы я попробовал метод переноса ОС с заведомо работоспособной конфигурацией SMP.
Для этого использовалась материнская плата ASUS P2L97-DS на чипсете Intel 440LX с парой Intel Pentium-II с частотой 450 МГц, которые должны быть лишены аппаратной ошибки. Но после выбора ядра «MPS Multiprocessor PC» процесс установки закончился, не начавшись, на этапе копирования первоначальных файлов, дойдя до момента установки на жесткий диск. На этом месте система зависала, не доходя до выбора источника установки. Было перепробовано многое, в том числе шлейфы, разные накопители и оперативная память, но все без толку. На этом же моменте зависал и одиночный Pentium-3 на материнской плате ASUS P3B-F (чипсет Intel 440BX).
В итоге я взял еще одну системную плату с двумя разъемами SLOT1 — ASUS P2B-D (чипсет Intel 440BX), и пару Intel Pentium-III. ОС Windows Server 2003 R2 Enterprise Edition благополучно установилась, осталось перенести ее на шестипроцессорный сервер. Подсунув нужный жесткий диск, решил сделать первую загрузку в «безопасном режиме», чтобы исключить влияние различных устройств обеих систем друг на друга, но в результате получил BSOD.
Остановка заканчивалась на файле «acpitabl.dat», и множественные пути ее решения не привели к успеху, включая самый простой — удаление файла «update.sys» из папки «drivers». Но дело тут вовсе не в ACPI, как мне кажется, а скорее всего в различных южных мостах у обеих систем.
Что остается делать в таком случае? Ответ — уравнять шансы обеих систем, используя дискретный контроллер. Установка ОС на пару контроллеров PCI-SATA закончилась провалом, а вот со контроллером SCSI Adaptec AHA-2940 все отлично установилось и впоследствии загрузилось на сервере. Но после загрузки ОС и рабочего стола я снова увидел прежнюю картину — одно ядро!
Рабочих идей, как заставить работать то, что не должно работать, у меня не оставалось, кроме как заняться деассемблированием ОС, но на эту реализацию ушли бы годы old_biggrin.gif
Обратившись к общественности, особого понимания в реализации своей сумасшедшей идеи я не встретил, но товарищ ATauenis оказался единственным, кто откликнулся и заинтересовался проектом. Он предложил несколько свежих идей, в основе которых лежал принцип «software reverse engineering» и имплементация различных частей разных операционных систем в итоговую тестовую ОС. Этим мы и начали заниматься с ним вдвоем на протяжении следующего месяца.
Данный метод заключался в изучении beta версий операционной системы, из которой впоследствии произошла Windows Server 2003 и ее подвиды. Все началось с изучения материалов ресурса Betaarchive.com, где собраны все бета-билды интересующей нас ОС.
До появления в продаже проект разработки Windows Server 2003 начинался с ОС с кодовым именем «Whistler Server», в основе которой лежало ядро Windows XP. К слову, Windows XP c SP3 без всяческих проблем установилась на шесть Pentium Pro, но системе было доступно только два ядра. Это наводит на определенные размышления, касающиеся возможности работы системы с количеством процессоров больше одного. Получается, ограничения у Windows Server 2003 лежат где-то в исходных кодах ее библиотек; естественно, в каких именно — мы не знали.
Сам процесс появления Windows Server 2003 происходил в несколько этапов. В начале 2000 года началась разработка следующей после Windows 2000 операционной системы — Windows 5.1 под кодовым названием «Whistler 2002». Поначалу проект Whistler развивался по аналогии с Windows 2000 — планировались версии Professional, Personal (Home), Server (Standard Server) и Advanced Server. Но на определенном этапе разработки выяснилось, что процесс создания клиентских версий прошел успешно и к лету 2001 года Windows XP Pro и XP Home были готовы на 99%. Серверные же компоненты были еще далеки от совершенства. Кроме того, архитектура ядра Windows XP обладала некоторыми недочетами, делавшими ее не лучшим вариантом для сильно загруженной серверной среды. Поэтому Microsoft отказалась от выпуска серверных версий XP (5.1.2600) и выделила серверную систему в новую ветку — Windows .NET Server 2002/2003. Из Windows .NET Server и появился привычная всем Windows Server 2003.
Я решил начать эксперимент с последнего билда Whistler Server — 2493, так как в последующих билдах, начиная с 3501, были внесены существенные изменения. В результате Whistler Server 2493 была успешно установлена, и на мониторе появилась вот такая занятная картинка.
Авторизовавшись и увидев рабочий стол ОС, я сразу же запустил «Диспетчер задач» Windows. Передо мною были шесть рабочих процессоров. Это была первая маленькая победа.
Программа, которая делает скриншоты в PNG, сделала свой первый скриншот, это событие меня обрадовало, но некоторые другие бенчмарки опять не могли найти точку входа в процедуру в библиотеке «kernel32.dll». Зато установщик Java уже не ругался, а просто требовал для продолжения установки Windows Installer версии 2.0, а 3DMark 2006 попросил набор библиотек DX9.1 и так далее.
Чтобы не искать решения этой проблемы, я перешел к установке следующего билда 3505. Но после двух попыток установить ОС получал фатальную ошибку на этапе установки:
Значит, при переходе от версии 2493 к 3505 в дистрибутив ОС были внесены существенные изменения. Если посмотреть на фото, можно увидеть, что схема оформления установщика в точности повторяет интерфейс Windows XP. Установщик пока не обзавелся темно-серой темой оформления, как у Windows Server 2003.
Несмотря на неудачу, я решил продолжить и взял билд 3718, который относился уже к ранней сборке Windows .NET Server.
В процессе установки фатальных ошибок не возникало, ОС установилась в штатном режиме. Графическая оболочка претерпела изменения, гамма сменилась на привычный для серверных ОС темно-серый фон.
Наименование ОС также изменилось на Windows .NET Server 2003, а бегунок прогресса загрузки ОС поменял свой цвет с зеленого на серый.
Но при каждой попытке загрузить ОС в нормальном режиме я получал черный экран и никаких признаков активности системы. В «сэйв моде» операционная система показала мне рабочий стол, но запустив, наверное в сотый раз, «Диспетчер задач», я увидел одно ядро.
Следовательно, на этой стадии уже были внесены ограничения на уровне ОС по количеству работающих CPU из-за аппаратной ошибки. И последующие версии смысла проверять уже не было.
Что ж, у вас ушло на прочтение вышенаписанного всего несколько минут, у меня же прошла неделя. Обсудив план дальнейших действий с ATauenis, мы приняли решение возвратиться к работающему билду 2493, поскольку иного варианта у нас не было.
Дальнейший план был таков — попробовать установить на билд 2493 Service Pack 1 от обычной Windows XP, тем самый «проапгрейдив» нашу beta версию серверной ОС. Исхода событий могло быть два: первый — файлы из первого сервиспака заменят собою файлы, отвечающие за SMP, и на выходе мы получим опять один CPU; второй — файлы не затронут эту фишку ОС. Но вы же понимаете, уже по традиции, получилось не один и не два, а целых три с половиной варианта old_biggrin.gif
До запуска инсталлятора Service Pack 1 совсем выпало из памяти, что установщик сервиспака проверяет номер билда ОС и если он ниже, чем финальный 2600, то установка прекращается. Решить проблему с первым сервиспаком я начал с самого простого, разархивировал его содержимое, нашел файл «update.ini», который отвечает за условия установки и изменил в нем одну переменную, в результате чего установка SP1 пошла, но спустя 20 секунд закончилась ролбэком.
Сработал защитный механизм цифровой подписи службы криптографии, отвечающий за целостность файлов в сервиспаке, а так-как один файл (update.ini) был изменен, то инсталлятор откатил все назад. Можно конечно было попробовать повозиться с переподписанием дистрибутива, но временные затраты перечеркнули бы вс
Полный текст статьи читайте на overclockers.ru