Подозреваю, что довольно значимая часть читателей поста младше, чем эти операционные системы. Но на них в закромах Родины ещё бегает наш российский (и не только) софт. Да и вы наверняка нет-нет, да видели DOS-приклад на рабочих местах Сбербанка или в больницах.
Есть такие Power-машины, которые предназначены для расчётов больших и тяжёлых штук. На них работает приклад, который не может быть запущен в обычном кластере, как правило — банковские системы и всякие биржевые штуки. Проблема в том, что современные гипервизоры создают виртуальную машину не больше, чем физический сервер, где они стоят. А один физический x86-сервер для таких задач мелковат. Поэтому и используется архитектура x64 (RISC).
Одинаковые по суммарной производительности системы на x86 и x64 отличаются по цене в десятки и сотни раз. Казалось бы, никаких проблем: надо переписать софт так, чтобы он мог работать в сотни потоков и встать в кластер или облако, да?
Ага, сейчас! Программистов, кто это писал, уже нет. Исходники обычно утеряны или же написаны на языках времён мезозоя. Даже документации обычно нет. Поэтому знаете, что мы делаем? Мы заворачиваем гипервизор в гипервизор. О, это отдельная песня. Сейчас расскажу.
Куски мамонта
Да, чёрт побери, заворачиваем гипервизор в гипервизор. Типичная задача — нужно отмигрировать что-то на тот же Huawei х86. Вообще, коммерческих архитектур, которые позволяют получать реально очень большие кластеры, хорошо подходящие для таких задач, всего три — это Супердом, кластер Фуджитсу и кластер Huawei. Отдельно есть ещё решения, но у этих трёх архитектуры похожи и близки к оптимальным по масштабированию. В нашем случае Huawei оказался выбран под проект по двум причинам:
— Цена при заданной стабильности.
— Совместимость со старыми ОС на уровне драйверов и т. п., то есть возможность миграции.
Со старыми — это значит прошлого года выпуска. Но команда разработки железа сейчас продолжает гонять тесты и добавляет совместимость со всё более и более старыми ОС, которые ещё используются в банках и промышленности по всему миру.
На очереди на тестовые внедрения Huawei стоят два крупных заказчика, поэтому тема очень горячая.
Теперь диспозиция. У заказчиков инфраструктура устоялась, баги пойманы, совместимость достигнута, поэтому действует главное правило разработчика: «работает — не трогай». В банках оно ох как важно. Взять и проапдейтиться на новую версию — это квест длиной в миллион страданий.
При этом обратите внимание это не значит, что они не переносят ничего. Те же базы с AIX’а P-серии на Linux x86 они очень быстро переделывают и накатывают — это уже отработанная процедура во многих банках.
Боль в прикладе и СУБД. Не всегда внешние NIX’ы могут работать с СУБД из-за отличия хранимых процедур и кучи других проблем совместимости. Как следствие, начинается допиливание до консистентного состояния. Если RISC-машины уже давно в этом плане устоялись, то разработчики кластеров х86 в сфере новички, и наступили ещё не на все грабли. Главное — не поддерживают фичи глубоко старого NIX, а в банках или промышленности иногда стоят совсем старые версии.
И именно в этот момент мы начинаем заворачивать гипервизор в гипервизор, Джонни! Не всегда, конечно, а только тогда, когда принимается решение, что конкретно этот приклад лучше не трогать, а то все помрут. Выглядит это так:
- Находим последнюю стабильную версию ОС, где работает приклад. Чтобы вы понимали всю боль — иногда это Novell Netware 4.x. Это где основной сетевой протокол — IPX/SPX, а TCP/IP рассматривается как фантазия из будущего, но на всякий случай поддерживается. В одном банке это чудо до сих пор работает с данными архивов. И иногда она реально нужна для глубокого поиска по финансовым данным.
- Находим гипервизор, который поддерживает эту стабильную версию ОС и приклад. Запускаем в нём. Получается, например, некий старый Linux.
- Находим гипервизор (скорее всего, уже свежую Вмвару), который поддерживает этот старый Linux. Запускаем ВМ с ВМ на нём.
Получается дом, который построил Джек.
Понятное дело, приклад от этого страдает по производительности, но деваться особо некуда. Знаю одну историю о попытке ухода с Нетвары. Лет 10 как разработчиков просто нет. Все хваленые виртуализаторы не поддерживают никак и никогда. В итоге кое-как умудрились подняться с 4 на 6,5 потом её уже в гипервизоре.
Кстати, если вы думаете, что это всё очень редкие случаи, присмотритесь к принтерам в отделениях банков, где вы бываете. Есть шанс встретить матричные принтеры на подключении к LPT-портам. Это даже не универсальные COM-порты, нет, которые можно встретить сегодня в мутированном виде клавиатурных гнёзд. Старый добрый LPT! В этих же банках отчёты сдают на 3,5-дюймовых дискетах. Даже у нас есть пара дисководов на случай горячей замены на складе. Там же ещё лежат суперсовременные ZIP-дисководы. Хорошо хоть 5,25 и 8 дюймов не встречали пока в практике. Хотя саму «грампластинку» — гибкий магнитный диск формата 8 дюймов в конверте — я ещё встречал в хранилищах ЗИП. Дисководы — нет.
Из современной истории в регионах можно часто повсеместно встретить старые компаковские сервера. Которые лет 10 назад поставлялись. Это ещё 2004-й, до слияния с HP.
А что Huawei?
А их разработка допиливает драйвера и прочее. Производитель железа должен поддерживать целевую ось аппаратно. Старые х86 были на интеловых чипсетах — это небольшие машины. У хьюллета — 16 ядер и выше. И железо у них для разруливания нестандартное. Поэтому не всё так просто, как может показаться. Те же менеджеры памяти очень нетривиальны для старых систем.
В итоге на выпуске нового сервера в начале список совместимости из одной ОС. Позже допиливают. Сейчас хотят больше глубоких NIX. Выбор-то простой: либо ПО системное переделывать, либо работать с операционной. Поэтому второе проще, потому что в банках распространён тот же Центос бесплатный (и даже не Редхат), и если дать совместимость — клиентов на х86 сразу станет больше.
Естественно, миграция может привести к переписыванию всей системы. И этого никто не хочет особо. Чаще всего разрабы потерялись, потому что системе 11 лет, нет актуальной документации или она не ведется. Найти хотя бы точки интеграции — стандартная проблема. Хранимые процедуры тоже добавляют радости. Ну и напоследок, 90% диалогов:
— У вас процедура принятия в эксплуатацию есть?
— Конечно!
— А документация по ней нужна?
— Абсолютно.
— Так, а эта процедура соблюдается?
— Нет, конечно, вы чего, с ума сошли?
Итог — документально процедура очень сложна, и никто не соблюдает, оставляют системы в тестовой эксплуатации.
Так что только переход на суперкластеры с совместимостью со старыми ОС.
Тесты
За 2 месяца мы протестировали для заказчиков 5 платформ. Обследовать по сути нечего, вопросы только по стабильности и возможности миграции. Никаких синтетических тестов, потому что результаты каждый раз разительно отличаются от реальных. Причём в обе стороны.
Будущее
В далёком будущем, возможно, таких танцев с бубном не будет. Самая главная беда, когда нам нужна вертикальная масштабируемость (увеличение количества процессоров и памяти в рамках одной машины), так как единую базу Оракл просто так нельзя разбить на несколько частей, она должна быть единой. А это хотят сделать все, чтобы перейти в облака и просто втыкать блейды в своё удовольствие. Сейчас большие СУБД на AIX единые и очень жирные. Поэтому вертикальный масштаб — для х86 сейчас это 32 процессора, по 16 ядер.
Сейчас все идут в сторону in-memory-вычислений, поэтому параллелить в любом случае будут. Вопрос в том, когда.
Комментарии (61)
hungry_ewok
03.08.2017 10:52+9>Подозреваю, что довольно значимая часть читателей поста младше, чем эти операционные системы. Но на них в закромах Родины ещё бегает наш российский (и не только) софт.
/усмехаясь/
В закромах не-родины, внезапно, сплошь и рядом всё еще археологичней.
PartisanBLR
03.08.2017 11:17+2LTP это несколько не то, что Line Print Terminal более известный как Centronix (о боже, я еще помню это без всяких там гуглов)…
Caelwyn
03.08.2017 11:17+3У нас на ЖД вокзалах, в кассах стоят компы в АТ корпусах, с новыми мониторами (их периодически меняют), и на них работает софт с текстовым интерфейсом, таким, ортодоксально текстовым — чёрный фон, серые символы, никакой псевдографики. Не знаю что это, дос или юникс, или ещё что-то, но выглядит очень круто.
При чём у них есть вполне себе современная система продажи билетов через сайт, электронные билеты, сканеры QR-кодов у проводников. Вот такое вот совмещение технологий прошлого и настоящего.Fox_exe
03.08.2017 12:13+1У нас тож есть парачка таких черно-серых (Иногда с синим) терминалов.
Тут фокус был в том, что работают они на FreeDOS, которая и бесплатна и работает даже на «Калькуляторе».
Словом — экономия денег получается весьма некислая.
ValdikSS
03.08.2017 14:53+2Видел такой в Киеве. Там настолько текстовый интерфейс, что курсор перемещается по всему экрану, а не только по полям ввода, и чтобы ввести что-либо, оператору нужно «доехать» до нужного поля ввода.
Caelwyn
03.08.2017 15:32+1Только что посмотрел билет который выдают в кассе, если верить надписи на нём, то это АСУ «Экспресс»
ArcticFox777
03.08.2017 17:27+1Там данные передаются в виде текста. Так что перейти на новое не составило труда.
Сейчас там стоит на ПАК РМК Windows 7 Emded (там где рабочие места обновили).
И даже в новой оболочке — эмуляция старой стилизованная.varnav
04.08.2017 09:00то есть там, где можно было бы не платить за лицензии на винду, за них всё же заплатили?
Idot
03.08.2017 11:21Помнится у Вернора Винджа археологи — это не те кто копают руины как Индиана Джонс, а те кто копаются в старом софте написанном века назад. :)
PS на ГикТаймс даже есть про это статья https://geektimes.ru/post/262836/
easty
03.08.2017 19:56Что-то совсем нет от Вернона новинок. Случайно наткнулся на его произведения. Все прочитал залпом. "Глубина в небе" просто класс.
click0
03.08.2017 13:49+2Есть переходники USB-LPT и аппаратные принт-сервера с портами LPT.
HiMem-74
03.08.2017 17:26+3Физически они есть, а по факту legasy код работает с ними криво, либо от слова «совсем», что легче отлавливается, либо глючит в рандомные периоды времени, что гораздо печальнее.
Недавно сталкивались с промышленным резаком, требовалось купить к нему новый управляющий комп. Программа работает только на WinXP и да, только через аппаратный LPT порт. Пробежались по граблям, когда на матери LPT порт задекларирован, но представляет собой не D-sub 25, а гребенку на плате, причем шлейфа на D-sub в комплекте нет. Ну и вишенка на торт — ни у кого из современных матерей нет дров под WinXP.
ValdikSS
03.08.2017 14:54+4Приклад это программа? Первый раз вижу, чтобы настолько коверкали слово.
easyman
03.08.2017 19:34+2<irony mode on>
Редко читаете <a href=«https://www.google.com/search?q=»приклад"+site:https://habrahabr.ru">хабр
Это старинное слово, его используют, когда говорят обочень-оченьсерьезном, старом,
дорогом ПО!
kosmos89
03.08.2017 16:04+3Поэтому и используется архитектура x64 (RISC).
Что тут имелось в виду? x64 — это CISC.Shvydchenko Автор
03.08.2017 17:25-1Так как сейчас в чистом виде нет CISC и RISC имелись в виду не интел системы преимущественно на процессорах Power, а они ближе к RISC
kosmos89
03.08.2017 17:30+4x64 aka AMD64 — это система команд, программистская архитектура. Это CISC, независимо от деталей реализации. А Power — это не x64, очевидно. Может имелся в виду просто 64-битный RISC?
Shvydchenko Автор
03.08.2017 17:58-1имеется в виду 64-битный RISC
Atakua
04.08.2017 10:41Я четыре года назад как-то попытался разъяснить путаницу с именами архитектур. Если кратко:
- x86 — Intel архитектура для 32-битных ПК, который сама Intel называет IA-32.
- x64, x86_64, x86-64 — расширение AMD64 для x86, сейчас идущее в большинстве процессоров для ПК.
Всё остальное надо называть своими правильными именами (POWER(3,4,5,…), IA-64, ARMv(7,8)), иначе очень сильно сбивает. Я вот, например, эту статью до конца прочитать не смог, потому что постоянно сбивался, куда и на что мигрируют, так и плюнул.
0xd34df00d
04.08.2017 03:12Я как-то думал, что x64 скорее про итаниумы, а то, что вы сказали — x86_64.
Triffids
03.08.2017 16:24ничего не понял. а чем отличается железячка x86 от x64? вроде 10 лет назад x64 именовали x86-64, подчеркивая что там и то и другое одновременно. и не понятно, что за проблема оракл в кластере масштабировать. oracle rac неплохо масштабируется.
Shvydchenko Автор
03.08.2017 16:24Это разные платформы. Чистый Оракл в Кластере масштабировать большой проблемы не составляет. Но в реальности СУБД Оракл часть ИТ-систем и на уровне приложений возможны вопросы, хотя Оракл и заявляет, что использование RAC прозрачно для приложения. Кроме того RAC не бесплатен и достаточно дорог.
Triffids
03.08.2017 21:40это одна платформа. Huawei x86 это обычный xeon, как у всех.
если код писали не совсем индусы, оно нормально будет бегать и на oracle rac, там есть нюансы у высоконагруженных систем с мульоном транзакций но это явно про то что товарищи меняют на виртуалки. что бы там ни было на rac оно будет много надежней и быстрее, чем на китайская дребедень в виртуалке на виртуалке.
lorc
03.08.2017 17:07+1Автор наверное имеет в виду IA64. Которая разработана Интелом, но не имеет ничего общего с x86-64 (которую разработали в AMD).
Triffids
03.08.2017 21:48+2Типичная задача — нужно отмигрировать что-то на тот же Huawei х86. Вообще, коммерческих архитектур, которые позволяют получать реально очень большие кластеры, хорошо подходящие для таких задач, всего три — это Супердом, кластер Фуджитсу и кластер Huawei.
сложно сказать что именно путает автор, потому что huawei вроде не делал никогда на платформе ia-64, а супердом всегда был ia-64 и только в последнее время стал обычным x86-64 (x64)
Reineke
03.08.2017 16:24А действительно ли имеет смысл усугублять костыли таким образом? При прочтении вспомнилась статья о том как сейчас американские айтишники в банковской системе страдают, перетаскивая всё с программ написанных на COBOL'е и работающих на старых мейнфреймах.
Shvydchenko Автор
03.08.2017 16:24+1В данной ситуации нет другого варианта. Всегда есть наследуемые системы и функционал, которые на данный момент не развиваются, но отказаться от которого невозможно
Reineke
03.08.2017 16:29Ну те же американцы, насколько я слышал, последние годы как раз таки возятся над тем, чтобы с этого всего слезть, чтобы в итоге наконец отказаться. Разве нет?
Возможно, есть какие-то варианты, предположим, параллельной разработки аналогов на современных платформах? Ну и само собой, их документирования, чтобы в будущем не возникло таких же вот ситуаций…vadimr
04.08.2017 02:09+2Эти последние годы длятся уже лет 50, и быстрее умрут те американцы, которые возятся, чем сами программы.
200sx_Pilot
03.08.2017 17:25+2Другой вариант есть.
Но люди, от которых зависит принятие решений и выделение средств — не смотрят вперед, а руководствуются видением краткосрочной перспективы.
Там, где процедуры тщательно документированы, процессы описаны, нет экономии на спичках — миграция — это лишь вопрос компетентности приглашенных специалистов.
А в грамотно и полно составленной документации специалист разберется.
Если он — специалист.mickvav
04.08.2017 09:37Конторы, в которых системы сделаны, документированы и поддерживаются разумно, имеют на 2 порядка меньше проблем с апгрейдом и если и станут клиентами крока, то на уровне либо предзакупочного выбора/сравнения вендоров, либо в качестве наемного склада комплектухи и аутсорсинга команды быстрого реагирования на внешние риски.
Oll123
03.08.2017 17:25-1Про новелл — интересно конечно, с х86 проблем обычно нет, емнип с 5й версии он канонично виртуализируется вмварью, вводите новую виртуалку в имеющийся кластер нетвари, потихонечку перетаскиваете сервисы, которые развернуты на железных машинах на виртуальные и так в спокойном режиме без авралов спокойно все переезжает в облако.
А вообще конечно археология увлекательная штука =) Попалась мне как-то давно ось пополам 3й версии с древнейшим рейдом и hpfs на нем, с какой-то апликухой + websphere, вполне себе развернулась на вмваре (не смотря на отсутствие офф поддержки 3.х версий) а потом и апгрейднулась до 4-й уже в гипервизоре, что б комфортнее жилось. И нормально, крутится там себе, что-то считает…
whitedruid
03.08.2017 21:28Написано задорно, однако, как быть с pSeries железками старыми под AIX (специально про pSeries)? Или «чудо-железо» и это может?
P.S. В 2014 вывели из эксплуатации RS/6000 последний — конец эпохи!iPrime
04.08.2017 08:46+1Если на нем еще oracle9, который просто так не перенесешь, кстате да, как можно корректно на x86 перенести?
Triffids
04.08.2017 09:49оракл это не ibm, у него одна субд на всех платформах. база данных со всем pl/sql кодом переноситься банальным imp/exp
проблема может быть если там люди извращались с каким-нибудь PRO*COBOL, PRO*C…iPrime
04.08.2017 11:27В том то и дело, много особенностей именно под ту версию, exp/imp не все корректно переносит
Triffids
04.08.2017 11:59да, вокруг exp/imp нужны танцы с бубном, но никаких особенностей в этом плане на фоне других версий не было. начиная с 9.2.0.4 все работало стабильно относительно. у оракла много особенностей в R1 релизах, но те кто покупают rs/6000 об этом в курсе обычно.
iPrime
04.08.2017 08:44У нас тоже Novell 5 на железке которой лет 12 был, померла, пришлось в VmWare переносить. Так там и живет, никто трогать не хочет )) Гдеж специалиста по novell сейчас надешь…
msolovyev
08.08.2017 10:08+1Извините коллеги, но очень плохая статья. В самом начале вы неправильно называете архитектуру х64, о чем вам написали уже в комментариях. Дальше вы используете массу жаргонных слов, специфичных, вероятно, для вашей команды, но не общеупотребительных в ИТ-среде. Полный бред про СУБД. Кто вас учил так писать слово VMWare? Название вашей компании также можно изменять? ;)
Отдельно про виртуализацию. Покажите скрин работающей на intel x64 ВМ с Aix 5. Если у вас такого нет — то вся статья бред.
Вы делаете очень странные пятиколесные велосипеды. Вместо нормальной миграции (а она возможна!). Кроме того, risc архитектуры некоторых вендоров развиваются и все ещё сильно впереди серверов x64.msolovyev
08.08.2017 10:22-2И да, то что вы описываете является нарушением лицензионных соглашений производителей ос. Лучше уберите эту статью из корп блога.
ustas33
09.08.2017 00:17- Novell это ещё ничего, Вы скотину (SCO Unixware) не виртуализировали ))
- В Хуавэй КунЪЛунЪ разве уже ставится Intel E7-8800 v4 или Intel Skylake?
- Хлебнут ещё радости полным черпаком с поддержкой HW… Может в России и выстроили поддержку, но как нибудь пришлют очередного роскосого на стажировку из Африки, и начнется оптимизация...
vilgeforce
«LTP-портам» только они LPT ;-) А так да, видел в банках совсем недавно досовский софт. И, что характерно, банк тот работал лучше новомодных, с которыми я имел дело.
Dmitry_5
Вы не представляете, насколько на самом деле быстр текстовый интерфейс. Руки сами запоминают последовательности клавиш, а мышку пока наведешь, пока кликнешь, пока облако ответит
eugenebabichenko
В какой-то момент начал ловить себя на мысли, что мне лень тянуться за мышкой, например.
vilgeforce
Грамотно спроектированный GUI, IMHO, можно использовать и без мыши в типовых случаях. Порядок обхода элементов по TAB можно задать…
greendimka
У современных UI/UX экспертов грамотно проектировать — не модно. Скучаю по несовременным GUI-шникам.
Caelwyn
У современных GUI этот TAB зачастую и не работает вообще.
vilgeforce
Еретеки!
khim
Вообще ни разу не сравнимо. Проблема даже не в TAB'ах и мышке, а в очереди сообщений.
В TUI я могу спокойно вбивать данные, окрывать и закрывать окошки (опираясь на мускульную память, да) — вообще не глядя на экран! Более того, на экране может отображаться экран номер два, когда я с клавиатуры задаю данные уже для экрана номер 5. Проснёться, просрётся, отгрюкает дисководом, сделает — пока я буду перелистывать странички договора или с клиентом разговаривать.
В GUI — так нельзя. Вы не знаете, куда попадут ваши нажатия и что они сделают, если не следите за происходящим. Это и производить ощущение «безумного отзывчивого текстового интерфейса» и «жутких GUI-тормозов».
navion
Сдаётся мне, что у некоторых современных фронтендщиков и TUI тормозить начнёт.
POS_troi
Досих пор используем софт ещё из мамонтового периода.
Сейчас пробуем перейти на что-то посовременнее (чисто из за того что мамонты писавшие это вымерли), проблем имеем массу из за перехода.
Если старый софт писался для решения конкретных бизнес задач, то современные разработчика пытаются просто прогнуть бизнес под то что у них уже есть — просто у них уже куча легаси которое дорого переписывать
Mumps :)
x67
да и в целом даже непрошаренный человек может легко обмениваться информацией со скоростью 150 байт/мин через текстовый интерфейс, а через графический добиться такой скорости сложнее
Zonzen
Участвовал в разработке системы управления оптово-розничными предприятиями — Gestori. Так вот, там псевдографический интерфейс (в терминале), без поддержки мыши, но с горячими клавишами. Операционисты набивали документы с такой скоростью, которая пользователям, например, 1с даже не снилась.
PartisanBLR
В большинстве случаев это именно и есть Netware x.x. о котором говорится в статье
Т.е. корни там не в DOS а именно в ОС которая дает сеть и управляемость на простой клиентской ОС удаленных терминалов, работающей на слабом железе.
Daar
Да у топ 10 продуктового ритейла тоже много такого, пусть и не DOS, но консольного много.
А вот IPX… это жесть. Несколько месяцев назад, приглашали к небольшому ритейлу посмотреть на сервак, в начале не мог понять, зачем меня кличут… Novell Netware там стояло… и как понял без админа последние лет 5 работало без проблем, просто на серваке винт начал глючить, а там еще первые SCSI :))) посмотрел на дату производства винта… 14 лет!!! Сейчас столько не живут.