![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Тут как-то случайно получилось что несколько виртуальных машин, созданных с помощью vws оказались выпихнуты на сервер, которым пользуюсь не один я.
Софтинкой начали пытаться пользоваться другие люди, что немало поспособствовало ее совершенствованию.
В общем, в пятницу я поднял версию до 0.4.
Теперь оно умеет нормально выставлять права на shared машины, чтобы все пользователи группы kvm имели к ним доступ. Появилась, наконец поддержка автостарта машин при загрузке хоста, а при шатдауне оно пытается аккуратно гасить все машины - как автостартованные, так и нет. Надо бы еще сделать так чтобы vws list от рута показывал приватные машины всех пользователей. А vws start от рута слал бы в эротическое путешествие.
vws list научился показывать MAC и IP-адреса машин. Причем MAC и для остановленных тоже.
Разобрались тут наконец как правильно конфигурить bridge, чтобы винда не принимала его при каждом запуске за новую сеть.
Практика показала что не хватает сетевой прозрачности.
Хочется, чтобы указав host:vm или vm@host (не знаю, как лучше) можно было бы получить запущенный локально remote-viewer котоорый через ssh port forwarding конектится к машине на указанном хосте. Помимо некоторой экономии траффика по сравнению с запуском remote-viewer на хосте и форвардинга X-ового интерфейса через ssh, это позволит пробрасывать USB-устройства с рабочего места оператора в виртуальную машину.
Вот только думаю - завести под это дело отдельную команду, или навесить эту функциональность на vws start.
Вообще заложенная с самого начала концепция "start - это сделать так чтобы у тебя на экране появилось окошко указанной VM" оказалась не слишком очевидной для пользователей. Хотя мне по-прежнему нравится, что мне не надо думать запущена у меня машина или нет. Набираю start и через несколько секунд она у меня тут.
Еще назрел полноценный парсинг и редактирование start-файлов. Вот интересно, есть ли библиотека для python, которая максимально точно эмулирует разбор командной строки shell-ом?
Софтинкой начали пытаться пользоваться другие люди, что немало поспособствовало ее совершенствованию.
В общем, в пятницу я поднял версию до 0.4.
Теперь оно умеет нормально выставлять права на shared машины, чтобы все пользователи группы kvm имели к ним доступ. Появилась, наконец поддержка автостарта машин при загрузке хоста, а при шатдауне оно пытается аккуратно гасить все машины - как автостартованные, так и нет. Надо бы еще сделать так чтобы vws list от рута показывал приватные машины всех пользователей. А vws start от рута слал бы в эротическое путешествие.
vws list научился показывать MAC и IP-адреса машин. Причем MAC и для остановленных тоже.
Разобрались тут наконец как правильно конфигурить bridge, чтобы винда не принимала его при каждом запуске за новую сеть.
Практика показала что не хватает сетевой прозрачности.
Хочется, чтобы указав host:vm или vm@host (не знаю, как лучше) можно было бы получить запущенный локально remote-viewer котоорый через ssh port forwarding конектится к машине на указанном хосте. Помимо некоторой экономии траффика по сравнению с запуском remote-viewer на хосте и форвардинга X-ового интерфейса через ssh, это позволит пробрасывать USB-устройства с рабочего места оператора в виртуальную машину.
Вот только думаю - завести под это дело отдельную команду, или навесить эту функциональность на vws start.
Вообще заложенная с самого начала концепция "start - это сделать так чтобы у тебя на экране появилось окошко указанной VM" оказалась не слишком очевидной для пользователей. Хотя мне по-прежнему нравится, что мне не надо думать запущена у меня машина или нет. Набираю start и через несколько секунд она у меня тут.
Еще назрел полноценный парсинг и редактирование start-файлов. Вот интересно, есть ли библиотека для python, которая максимально точно эмулирует разбор командной строки shell-ом?
no subject
Date: 2016-04-19 08:13 am (UTC)no subject
Date: 2016-04-19 08:24 am (UTC)no subject
Date: 2016-04-19 09:06 am (UTC)Можно людей спросить, на самом деле. Тех, которым непонятно.
no subject
Date: 2016-04-19 09:46 am (UTC)А для чего? Syntax coloring?
no subject
Date: 2016-04-19 09:48 am (UTC)no subject
Date: 2016-04-19 09:54 am (UTC)Если его сгенерила внешняя сила - то надо приноравливаться к тому, в какое место она реально кладёт существенные для данной задачи параметры.
Если его делаешь сам - то логично ключевые параметры выносить в легко редактируемый конфиг, а в скрипте можно оставлять любые коровники.
Парсинг произвольного шелл-скрипта для "правильного" исправления параметров - задача, родственная задаче об оптимально оптимизирующем компиляторе, каковая алгоритмически неразрешима :)
no subject
Date: 2016-04-19 10:15 am (UTC)Основной принцип vws не умножать сущностей без необходимости и позволять пользователю лезть напрямую и в монитор, и в командную строку запуска qemu.
Сответственно в скрипте "коровников" быть не должно.
А то будет еще один libvirt, которого хочется избежать.
Я считаю что синтаксис shell-а понятен пользователю во всяком случае более чем произвольный xml или json.
Если бы конфиг, который создается qemu по -writeconfig позволял передавать всю требуемую информацию, я бы пользовался им. Но у qemu часть параметров вообще через environment передается. Поэтому красивая идея писать параметры в удобочитаемый ini-style файл с первой строчкой
#!/usr/bin/qemu-system-x86_64
не прокатила.
no subject
Date: 2016-04-19 10:19 am (UTC)И никакая программа с ними не справится, автоматизировать можно только редактирование предопределённого набора параметров по заданным шаблонам.
no subject
Date: 2016-04-19 10:30 am (UTC)Моя цель дать юзеру достаточно веревки, чтобы он мог на ней повеситься, поскольку инструмент рассчитан на разработчиков.
Как известно, если хочешь получить красивую резьбу по дереву, нужно дать пользователю острый нож. А как не порезаться - его проблемы.
no subject
Date: 2016-04-19 12:13 pm (UTC)no subject
Date: 2016-04-19 01:10 pm (UTC)no subject
Date: 2016-04-19 12:14 pm (UTC)Критичная задача - уменьшить размер образа. Всё это будет жить на загружаемой флэшке, на которой OpenSuSe - просто потому, что собрать загружаемую флэшку на susestudio проще, чем возиться с дебиановскими скриптами. Так что я отдам под это не больше гигабайта и то со скрипом.
Безопасность НЕ критична, поскольку после того, как я один раз поставлю всё, что надо, мне бы лучше вовсе не монтировать user-writeable persistent storage внутри виртуальной машины. Так что даже Win98 - вариант. (Или QEMU строго требует writeable image? Тогда я сделаю скрипт, который будет копировать мой образ в /tmp и запускать его оттуда. Сам образ будет доступен для модификации исключительно руту).
Всё это надо потому, что некая тусовка использует звуковой клиент Raidcall, безопасность коего я оцениваю как нулевую. Он написан настолько неаккуратно, что требует админских прав для запуска - похоже, потому, что пишет логи в Program Files. Что они ещё там наляпали - непредсказуемо.
При этом ключевая фича клиента, из-за коей тусовка им и пользуется - он может вместе со звуком микрофона передавать звук, который играется в браузере или медиаплеере. Запустить всё это внутри Wine, сохранив эту фичу, у меня скорее всего не получится, поэтому я бы предпочёл начать сразу с QEMU.
Альтернатива - переубеждать тусовку, но для этого нужен другой клиент с этой самой фичей, и к тому же не требующий подъёма собственной серверной инфраструктуры. А где ж его взять? Клиентов много, а вот чтобы "слышно то что на компе ПЛЮС то что с микрофона" - с места не нагугливается. Наиболее "идейно правильный" mumble - всё равно этого кажется не умеет, а ещё требует свой сервер.
no subject
Date: 2016-04-19 01:21 pm (UTC)Но вообще usb-устройства в QEMU пробрасвываются вполне нормально.
У QEMU есть snapshot mode. Это когда он ничего не пишет в image, а пишет только во временные файлы в /tmp, которые стираются при выходе. Хотя не уверен, что даже читаться имидж с флешки будет достаточно быстро.
Я вот сегодня пробовал собирать один и тот же пакет на двух Banana Pi - на одной 4-ядерный процессор и флэшка (MicroSD UHS, специально выбирал самую быструю карточку), на другой - двухядерный и SATA-ноутбучный диск (специально выбирал самый медленный, чтобы подешевле).
Так одновременно собралось. SATA вполне компенсировала два лишних ядра.
С другой стороны экономить место на флешке? Сейчас флешка на 16-32Гб стоит совершенные копейки.
И если ты хочешь чтобы винда в эмуляторе работала прилично, надо ставить сервер. У меня разница во времени сборки постгреса между семеркой и 2008R2 сервером чуть ли не на порядок. На одном и том же хосте, при одинаковых настройках выделяемой памяти и диска, обе 64-битные. К тому же сервер не имеет привычки в фоне качать гигабайты апдейтов, что очень полезно в snapshot-mode.
no subject
Date: 2016-04-19 02:50 pm (UTC)Флэшка - на 32 Гб, но на ней же живут другие задачи, которые решаются этой машиной. (Идея в том, что "машина целиком" живёт на флешке, её можно воткнуть и работать, не используя никакое хранилище на собственно машине. Оно мне надо). Так что гигабайт есть. Ну два, если позарез.
Snapshot mode - спасибо, это именно то, что нужно. А вот сборка пакетов в этой системе меня не волнует, от слова совсем. В этой винде будут жить один браузер (вероятно, Chrome, поскольку критичен Youtube), один медиаплеер (MPC или VLC) и один Raidcall. Установка каких-либо ещё приложений, не говоря уж о компиляторах, исключена. Но вот выкачка апдейтов - да, проблема.
С другой стороны, живя в Ирландии, я в идеале не хотел бы заниматься пераццтвом (тм). На Win98 всем давно пофиг, её я считал бы abandonware. Образы с Win7 и Win10 предлагает сам Microsoft: https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/windows/ . Правда, они там только для VirtualBox, а не для QEMU :( не знаю, насколько это конвертируемо (и не стоит ли по такому поводу пробовать сначала VirtualBox). А вот сервер - это пришлось бы качать гигаззы по торрентам либо просить у российских друзей скрытые FTP - или есть ещё какие-то варианты?
(Хотя, подумавши, самый пуристический вариант в смысле пераццтва(тм) это всё-таки Wine...но там 50 на 50 - выйдет или нет, в частности, быстрогугль показывает, что с хромом могут быть проблемы. А Youtube довольно критичен).
no subject
Date: 2016-04-19 02:56 pm (UTC)Сборка пакетов это просто хороший тест на общую производительность системы.
Образ для VirtualBox или VMWare с легкостью конвертируется в образ для QEMU с помощью qemu-img.
Youtube пока еще поддерживает не только хром, но и другие браузеры тоже.
no subject
Date: 2016-04-23 09:07 pm (UTC)no subject
Date: 2016-04-23 11:27 pm (UTC)no subject
Date: 2016-04-25 07:51 pm (UTC)Был бы благодарен за пояснения, какую версию raidcall Вам удалось запихнуть в вайн и какие настройки надо в вайне поменять. (У меня wine 1.8.2 из opensuse 42.1 Leap).
no subject
Date: 2016-04-26 08:37 am (UTC)wine-1.7.55 (Staging)
pulseaudio 5.0
(давненько я не обновлялся, оказывается)
В вайне установлен геко (ну, он сам устанавливается) и (через winetricks) директх. Может ещё флешплеер, не помню, к сожалению.
Пульст дефолтный, звуковые настройки вайна дефолтные для федоры, т.е. максимум пульсаудио.
no subject
Date: 2016-04-27 02:08 am (UTC)У вас такое зависание в начале происходит?
winetricks я пока не воткнул. Я так понимаю, что он понадобится для Music Mode?
no subject
Date: 2016-04-27 09:35 am (UTC)winetricks нужен для установки directX, который, ЕМНИП, нужен рейдколу. Всё-таки raidcall создавался для игр и зависимость его от API для игр понятна.