bash.im ithappens.me zadolba.li
13200

В битве брони, снаряда и здравого смысла

25 марта 2015, 08:12

Я уже долго занимаюсь виртуализацией на десктопном железе, связанной с IOMMU напрямую. Конкретнее — «пробросом» видеокарты в виртуальную машину.

Позвольте мне привести некую выжимку из ситуации.

Лагерь зелёных производителей видеокарт:

«Энтузиасты занимаются этим, не купив наши профессиональные, ухудшенные и переоценённые видеокарты! Плохо, мы будем обнаруживать сигнатуру гипервизора в CPUID и выключать карту, если она проброшена в виртуальную машину».

«О ужас, они обошли это! Выпускаем новые драйверы, которые обнаруживают расширения Hyper-V и отключают карту. Пусть оно и будет работать без этих расширений, зато медленнее из-за процессора и памяти».

Конечно, в битве брони и снаряда победил энтузиазм: вместо покупки профессиональной карты народ подсовывает прошивку от неё подходящей десктопной карте и меняет её идентификаторы, иногда перепаивая резисторы, иногда программно, на стороне гипервизора. Вы думали, что времена переделки шестой серии зелёных видеокарт в их профессиональные аналоги ушли? Они вернулись.

А у кого-то видеокарта достаточно старая, чтобы использовать старые драйверы без этой замечательной функциональности.

Лагерь синих производителей процессоров и чипсетов:

«Ой, ваш процессор поддерживает данную технологию, а чипсет — нет. Ну и что, что контроллер PCI-E в процессоре и поддержка зависит от прошивки материнской платы, покупайте более дорогую материнскую плату с другим чипсетом». Самое забавное — некоторые производители материнских плат говорят, что всё будет работать: процессор же поддерживает!

«Ой, извините, так получилось: прошивка материнской платы (и производитель тут почти не важен) утверждает, что наши процессоры не изолируют PCI-E-устройства друг от друга, их не получится разделить на группы». Хотя на самом деле изолируют, и приходится прикручивать костыли на уровне ядра.

«Ой, вы купили наисовременнейшую материнскую плату на нашем новейшем чипсете с новейшей технологией памяти DDR4? Вы, несомненно, молодец, только вот наши процессоры разучились изолировать устройства, и костыли не помогут. Печалька».

«Вау, вы купили серверную материнскую плату и наш серверный процессор на базе десктопного! Мы можем порадовать вас улучшенной производительностью, надёжностью, поддержкой различных технологий, очень важных в энтерпрайзе. IOMMU? Ой, мы забыли. Ну, там так же, как на десктопах, разберётесь».

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

И моё любимое: «Мы дружим с опенсорсом! Поэтому мы разработали супертехнологию, которая позволяет разделить наше видеоядро (производительность которого не уступает картам уровня затычки) на несколько виртуальных машин сразу! И планируем включить это в ядро Linux! Правда, у нас есть только прототип, который пока работает со скоростью бесколёсного велосипеда, но за этим будущее!» Действительно, это очень интересная технология, если бы не производительность, из-за которой эта технология никому не сдалась. Будто видеоядро само по себе не тормозит достаточно. Действительно, программной оптимизацией можно выжать из него поразительную мощность, но железо — это не панацея.

Лагерь красных производителей процессоров и видеоядер:

«Наши процессоры поддерживают IOMMU с давних времён, и на нашей производительной линейке десктопных процессоров всё работает как часы. Но наш отдел маркетинга решил прекратить разработку этой линейки процессоров, и основные силы сконцентрировать на…»

«Мы выпустили на их основе гибридные (или — модное маркетинговое слово — гетерогенные) процессоры со встроенным видеоядром! И это видеоядро даже сравнимо по производительности с нашими видеокартами среднего уровня! IOMMU? Ну… Так получилось, вы знаете, первый блин комом… Ну, в общем, вот вам список багов с пометкой „No Fix Planned“ на две страницы. Да, это баги в процессоре. Почему вы удивляетесь багу „Счётчик тактов может испытывать дрейф“? Зато у нас самые удобные видеокарты!»

«Кстати, о видеокартах… Мы рассказали производителям железок, как написать прошивку с поддержкой UEFI, но некоторые провалились. Энтузиасты склеят из двух одну, благо мы два года назад сказали, что блок поддержки UEFI универсальный, а всем остальным это не нужно». Зачем UEFI? Да потому, что если использовать традиционные технологии (VGA и BIOS), то начинаются такие пляски с памятью и прерываниями, что хост-система в панике выключается. И это её поведение прописано в документации. Пляски в том числе. Но если подобрать правильное железо, то всё работает.

«О, а ещё мы заботимся о энергопотреблении наших видеокарт, и их надо выключать особенным образом. Ну да, гипервизор об этом, как обычно, не знает, поэтому для повторного запуска карты надо перезапускать всю систему целиком».

«Хотите подробную документацию или хотя бы базовые спецификации вашего железа? Извините, вы должны подписать NDA. Да, температура перегрева процессора указана в документе под NDA. А зачем вам эти данные?» Но надо отдать должное, та документация, что есть — действительно крутая. Хотя и запутанная местами.

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

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

А так — да, всё работает, если грамотно подобрать железо. Можно запустить виртуальную машину с видеокартой и использовать там свои чудесные пакеты обработки изображений, 3D-редакторы и играть в игры сложнее «косынки».

И всё бы ничего, но ведь на основе этих же технологий работает энтерпрайз-ПО!

О да, можно работать в 3D-редакторе по сети с планшета, не беспокоясь о тормозах и безопасности. Только вот «под капотом» там тот же ужас, что и в пользовательском поле.

Пока я копался с этим, видеокарта, которую я хотел пробросить, успела устареть. Ну и ладно. Зато работает. А сколько всего нового успел узнать в процессе…

13199

Шарик, wget!

25 марта 2015, 08:00

Собака хороша не только в роли кабелеукладчика. Как происходит мошенничество с брошенным кошельком, рассказывать не стану — почти все и так знают. Найти управу на преступников решил отставной кинолог.

Как он там учил собаку, остаётся загадкой. Но она внезапно выскочила из-за угла, схватила брошенный кошелёк, после чего молниеносно забежала за другой угол. Мошенникам оставалось только растеряться, а питомец после непродолжительного зигзагообразного марафона принёс добычу хозяину.

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

Но следующего раза не было. Они больше туда не пришли. А на вырученную четвероногим другом сумму кинолог купил ему еду, а себе — ноутбучные запчасти.

13198

Эпплопея

24 марта 2015, 08:24

Дело было в 2010–2012 годах, когда я работала в небольшой софтверной компании. Писали мы софт для шахматистов, очень разный. И вот возникла идея портировать один из продуктов на мобильные платформы — Andriod и iOS. По разным, частично случайным причинам первым делом портировали на Android.

Приложение мы написали чуть меньше, чем за год. Конечно, были проблемы, в основном — из-за «зоопарка устройств», который наше приложение должно было поддерживать. Но есть форумы, есть Stack Overflow, а главное — есть открытая документация, в которой можно было найти всё или почти всё.

Но вот дошло дело и до iOS. Мне, как младшему разработчику, было дано «несложное» задание: разобраться с принципами разработки и подготовить рабочее место. Надо сказать, что копирайт мы уважали и всё хотели делать «по закону». Тут-то и началась эпплопея.

Писать под iOS можно только с последней (четвёртой на тот момент) версии Xcode, которая идёт только на последней (тогда) версии OS X — Lion. И только на маке. Мак в офисе есть, правда, за ним пару лет никто не работал. На нём стоит предпредыдущая версия OS X — Leopard. Таким образом, задача — апгрейд ОС на две версии.

Установить «Льва» можно только из App Store. Установить App Store нельзя, он идёт вместе с промежуточной версией — OS X Snow Leopard («Ирбис»). Нужно ставить «Ирбиса» с диска. Купить диск в России нельзя. В Америке, впрочем, тоже, потому что уже вышел «Лев». На выяснение этого чудо-факта в техподдержке Apple и re:Store ушло около недели.

Тем временем мы смотрим, пойдёт ли «Лев» на нашем маке. Выясняется, что по техническим требованиям всё железо проходит на грани допустимого, только памяти маловато. Докупаем хитрую маковскую память. Радуемся, что не хватило именно памяти, так как её доставить можно, а вот все остальные части моноблока неразборные.

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

Среднее время попытки записать образ — 40 минут. Первые десять попыток крэшатся на той или иной стадии. Иногда образ записывается, но операционка с него не ставится. Опытным путём выясняем, что для корректной записи нужно, чтобы во время процесса не гас экран. Каждые пять минут шерудим по столу мышкой. Образ записывается, ставится.

Покупаем в App Store «Льва», попутно регистрируя мне Apple ID и привязывая к нему кредитку. Как её потом отвязывали — особая эпплопея.

Тем временем ищем туториалы, «хэлловорлды» хотя бы для старых версий и пытаемся хоть что-то написать. Выясняются следующие чудесные вещи:

  • документация закрытая, чтобы её почитать, нужно получить Developer ID за деньги;

  • форумы разработчиков — там же;

  • документация неточна и неполна, а официальный «хэлловорлд» не работает;

  • эмулятор в Xcode работает не совсем так, как реальный iPhone или iPad;

  • для установки собственного приложения с собственного мака на собственный iPad надо заплатить денег.

Вот где-то на этом моменте, после двух месяцев эпплопеи, я с воплями сбежала в степь, то есть уволилась. Периодически узнаю у друзей и знакомых, продолжающих работать с яблочной ОС — там всё примерно так же. Хорошо, что iOS не ставят на любой холодильник, как Android: если б туда ещё «зоопарк» добавился, у разработчиков точно бы прошла эпидемия самоубийств.

13197

Эти сети в огне, и нам не на что больше жать

24 марта 2015, 08:12

Один состоятельный человек заказал сделать ему вайфай в загородном доме. И даже провайдер в том посёлке нашёлся, что оптику привёл относительной недорого и канал дал хороший и стабильный. Поставили пятисотый Asus, настроили сеть, всё подключили — работает! И счастье длилось полтора года…

Но это не сказка — это присказка была.

Дальше захотелось человеку дом свой старый (который был с участком куплен), о котором не слишком лестно отзывались: «Как цыганские хоромы», заменить на что-то современное и побольше.

— И чтобы бассейн там был и зимний сад!

Проектирование дома заняло полгода или и того более, но спроектировали. Стали строить новый дом, приехали строители, начали рыть котлован. А ведь на стройке не насидишься — дела бизнеса не позволяют, а наблюдать хочется.

— А подать сюда камер на веб-технологии, чтобы и с планшета, и с телефона я мог обозревать стройку свою!

Сказано — сделано. Камеры Full HD с оптическим 10-кратным зумом.

— А чего бы мне и охранные камеры не посмотреть? Вывести мне и охранные камеры!

Сделано!

— А пусть ещё и охрана в офисе наблюдает за домом!

Сделано!

В итоге исходящий поток со всех камер под 50 мегабит стабильно идёт.

И тут началась сказка…

— А хочу, чтобы вайфай был не только в доме, но и на всём участке! Чтобы строители через тот вайфай могли из офиса свежайшие чертежи получать!

Кто бы их ещё загружал, свежайшие-то, но это, как всегда, за рамками остаётся…

Приезжает подрядчик, ему описывается ситуация. Выходит предложение делать на оборудовании Cisco. Я говорю: «Прекрасно, делаем!» Подрядчик: «Два месяца — срок поставки оборудования». А человек уже просто вчера хочет сеть на всём участке.

Прошу найти альтернативы из быстродоступных. Нашли — Mikrotik. Да, похуже, чем Cisco, но и дешевле, и быстрее. Подписали договор, ставим! Самые современные точки, стандарт N! Всё сделали, походили, померили скорость — всё хорошо.

Приходит время сдачи, а мне и говорят:

— Что-то хреново оно работает! Вообще никак! Раньше было лучше!

У меня в голове диссонанс: как Asus WL-500gP может быть лучше Microtik CCR1009-8G и распределённых по всему дому и участку точек?

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

После анализа и поиска причин периодических сбоев была установлена связь: сбой проходит в момент запуска газового котла. При просмотре характеристик котла выяснилось, что газовый котёл при поджиге факела нагрева использует не технологию «малый фитиль» (постоянно горящий огонёк), а искровый разрядник, который для гарантии поджига даёт множественную и продолжительную искру.

Примерно с таких же разрядников начиналось радио. Искра создавала широковещательную помеху, к которой использовавшийся прогрессивный стандарт 802.11n был не готов физически. ТТХ стандарта подразумевают передачу данных на высоких скоростях (до 300 мегабит) и, как оказалось, очень критичны к таким грубым помехам.

После переключения сети в стандарт 802.11g (с ограничением скорости) работа стабилизировалась.

13196

Съешь меня, выпей меня, кликни меня

24 марта 2015, 08:00

— Вова, ты мне лечил флешку, но там всё равно ничего нет.

— Вообще ничего? Мы же сделали вроде файлы нескрытыми.

— Ну, не совсем. Там лежала программа Файлы.exe.

— И что вы сделали?

— Я её запустила.

— Зачем?!

— Ну, раз ничего не было — я запустила посмотреть, какие файлы на флешке.

— И вам это помогло?

— Нет, всё осталось как было. Это всё началось после того, как вы мой компьютер в вашу сеть включали. (Имеется в виду AD.) До этого всё было хорошо. Вылечи мой компьютер!

13195

Буква грехов

— С чем у вас ассоциируется этот значок? — спросил журналист и показал синюю букву e с кружком.

— С геморроем, матом, мамонтами, желанием убивать и бессонными ночами, — ответил я.

— Но… почему?

— Я занимаюсь веб-разработкой.

Оказалось, что у большинства среднестатистического населения злосчастная буква ассоциируется с запрещёнными у нас и маскирующимися под интернет-клубы подпольными казино. Зло многогранно, но символ его — один.

13194

На своей волне

23 марта 2015, 08:24

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

— Как-как? Хрень?

Нося «Ирень-401» в кармане годами, я и не замечал, что металлизация на букве «И» немного стёрлась. Получилось что-то вроде «/ рень». А прочитали собравшиеся в меру своей испорченности.

В другом кармане у меня, конечно, недорогой сенсорный «китаец». Просто я уважаю такие штуковины. Тянет, и всё.

13193

Всё бросить, вставить, вынуть и уйти

Сидишь так на работе и стараешься лишний раз не дышать, чтобы никого не прибить.

Нестройный хор десятерых баб:

— Не работает почта! Целых две минуты!

— У меня проект горит!

— Админы — козлы!

— Нужно вытащить вот эту антенну!

— Надо купить новый сервер!

— И вытащить антенну из старого сервера!

— Почему они не купят новый сервер? Им сложно, что ли?

— Им проще старый запаять…

— Паяльщики, блин! Да что там делать-то? Одну железку выкинул, другую поставил!

Увидев в начале работы XP на компе, я подозревала что-то подобное, но всё же…

13192

Пахнет жареным

23 марта 2015, 08:00

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

— Надо, — говорю, — Толстопуза завести, а то Гайка совсем оборзела.

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

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