Проблема его, что он не развивается особо. А не развивается потому, что не приносит денег. А в этой модели сервиса можно зарабатывать, а, значит, вкладывать деньги в развитие.
Как минимум сервис хранения данных можно сделать аналогично OneDrive на основе storage cryptocurrency для тех у кого много фоток и видео, что у друзей не помещается.
Можно продавать вычислительные мощности для распределенных вычислений, тока не втихую, а совершенно по желанию. Сделать официальную биржу.
Сервис/биржу перекодирования видео для тех кому лень делать это на своем компе. Сервис фотошопливания фоток) И т.п. Главное какую-нибудь криптофиту подключить.
Социальной сети надо срочно менять модель. Переходить на P2P с DHT поверх TOR/I2P hidden service с JS вебмордой на локалхосте. Ну, или через торбраузер на мобильнике через персональный hidden service endpoint. Ну, или статикой.
Личные данные аккаунтов хранить у себя и у друзей в «зашифрованном виде» для резервирования.
Пока не-ECC память работает хорошо, — она ничем не хуже, чем ECC.
Преимущество ECC начинается тогда, когда память не работает хорошо по каким-то причинам. Без кодов коррекции/обнаружения ошибки памяти крайне тяжело диагностировать таким образом, чтобы выяснить, что причина была именно в памяти.
Будут случайные проблемы, зависания, повреждения данных. И, к тому моменту как вы соберете статистику, чтобы задуматься о том, что это, наверно, может быть, память, — может оказаться уже сильно поздно.
Если же память будет с ECC, то, по обнаружении в логах первых сообщений вида «исправлена ошибка памяти» можно просто по логам посмотреть, какой модуль сбоит, и поменять его. Без последствий.
У меня дочка (5 лет, почти) использует Pi 400 с Ubuntu 20.10 в качестве десктопа. Не скажу что это было ее самостоятельное решение, но… Детские обучающие игры и просмотр/скачивание мультиков оно запросто тянет. Естественно под контролем. А больше пока и не надо.
Как и с почтой.
Когда-то давно реклама в Яндекс.Почте была ненавязчивой. Ее было немного. Ее можно было по желанию отключить в настройках аккаунта. Она легко блокировалась различными блокировщиками рекламы.
Как только в Яндекс.Почте появились «платные аккаунты с подпиской и отключенной рекламой» — прогресс почты как сервиса пошел куда-то не в ту сторону. Рекламы стало сильно больше. Реклама стала гораздо более навязчивой. Ее больше невозможно отключить в настройках. Используются сложнейшие средства противодействия блокировщикам рекламы, которые постоянно меняются и создают все новые и новые проблемы.
Сервис деградирует. Заработанные на рекламе и подписках деньги тратятся на целенаправленное ухудшение качества сервиса.
Как раз где-то про такой сэтап я читал где-то в сети. Он был вполне успешен. В качестве основной на Линуксе использовалась видеокарта АМД, подключаемая видеокарта НВидия. CUDA там работала из коробки. Для динамического переключения OpenGL/OpenCL/Vulkan на эту карту использовались костыли. Можно приложению говорить какую видеокарту использовать, или по-умолчанию переключить.
Экраны перетыкать не надо. НВидивская карточка вполне успешно рендерила через OpenGL/Vulkan на монитор подключенный к АМДшной карте.
Обратная комбинация (местами поменять карточки) у автора не взлетела.
Думаю, что в такой системе не обязательно держать линукс на виртуалке. С хостом тоже может вполне работать совершенно аналогично.
Со звуком есть несколько вариантов.
1. Пробросить звуковую карту через IOMMU.
2. Использовать аудиосигнал HDMI.
3. Эмулировать звуковую карту в виртуальной машине.
4. Пробросить USB контроллер и подключить USB звуковую карту/наушники к нему.
Я использую последний вариант. Он мне кажется самым удобным, т.к. в этом случае гарнитура автоматом перекидывается через KVM переключатель в нужную ВМ, т.к. подключена к нему. Но, варианты 2 и 3 у меня тоже настроены как опции.
Есть конечно. Хост-систему вообще не надо перезагружать. Есть редкие видеокарты которые из-за бага не работают без перезагрузки хоста. Но, это исключение. Не правило.
Если все настроено правильно, хост систему перезагружать вообще не должно быть нужно.
Перетыкание карт наживную (хот-плаг) без остановки ВМ тоже работает. Для этого проброшенный GPU должен быть вторым в виртуальной машине. Добавьте VGA адаптер. Чуть лучше это работает в Винде, чуть хуже в Линуксе. Иксы не очень это любят. Но, если хочется видеокарту выделено использовать под вычисления, и не нужно ранить на них графическую среду, то вообще норм. Иначе, Линуксового гостя проще перезагрузить.
Малое количество линий PCI-E — это известная беда Ryzen. Однако, в серии 5xxx есть поддержка PCI-E Gen4. Поддержка PCI-E bifurcation (разделение одного слота 16x на 2x8, 4x4 или 1x8 + 2x4) является обязательной частью стандарта Gen4. Должно работать даже на игровых платформах. Раньше было опционально, и, реализовывалось преимущественно в серверном железе.
Можно купить Riser и воткнуть до 4х видеокарт.
Вроде этих, только для Gen4. Эти тоже будут работать, но только в режиме Gen3 (меньше скорость линий).
А еще, можно видеокарту через USB 3 подключить. Но, это не спортивно :-).
Можно, да. Я даже баловался этим. С GTX 1660 Ti это даже работает «из коробки» при загрузке ВМ в режиме UEFI.
В Legacy/BIOS режиме, — да, приходилось с VBIOS маяться и запрещать использование видеокарты хостом.
Но, я так и не выяснил для себя, зачем мне усложнять самому себе жизнь. В качестве «второй видеокарты» в госте проброс настроить гораздо проще, как мне показалось.
Тем более, что в таком виде карточки перебрасываются хот-плагом из одной ВМ в другую. Не скажу, правда, чтобы это было особо нужно.
Не в игровых картах. GeForce 3000 серия вышла без поддержки. Но, они пробрасываются целиком со стандартными для nVidia костылями (сокрытие виртуализации).
Сильно хуже получилось у АМД в последней серии. Они тоже отключили поддержку SR-IOV для игровых карт, однако, новые блоки, которые были добавлены для поддержки SR-IOV в микросхемы, создают проблемы на этих картах, из-за которых карты нормально не пробрасываются целиком.
Загрузочный видеоадаптер встроен в материнскую плату. В системе их всего три, получается)
Специальный ВБИОС я не подсовывал. На обоих пробрасываемых видеокартах достаточно флажка «ROM BAR» который автоматически копирует текущий ВБИОС из видеокарты.
Еще добавлю, что я не стремлюсь к «понтам» вроде «увидеть экран загрузки и биос на проброшенной карте». Все пробрасываемые карты у меня являются «вторыми» в виртуальной машине, и в загрузке гостя не участвуют. Для этого есть VGA адаптер. Просто, он в настройках гостевой ОС отключен, и, не используется после загрузки.
Такие видеокарты есть. Они относятся обычно к «профессиональному» сегменту или сегменту «для дата центров». Обычно они в 2-10 раз дороже в пересчете на эквивалентную производительность в играх. Обычно, они существенно лучше игровых карт в чем-то другом, например расчетах или CAD.
Раньше большинство таких карт использовало для разделения ресурсов проприетарные технологии, что требовало специальной поддержки от систем виртуализации, что, в свою очередь, делало использование технологии крайне затруднительным и затратным делом.
MS может себе позволить пропатчить Hyper-V для своих видеоадаптеров, которых они купили миллион штук для своих дата центров. Вы — не сможете.
Гугл может написать кастомный модуль ядра Линукс для своих адаптеров Тесла, но, этот модуль будет работать только с адаптерами, которые производятся специально для Гугла и в Гугл же поставляются. Вы — так не сможете.
По этой причине, использование профессиональных карт с разделением ресурсов, как правило, имеет меньшие шансы на успех мероприятия с пробросом GPU, чем использование обычных игровых, которые на это, как-бы, не заточены. Такой вот парадокс.
Все потому, что эти игровые карты продаются миллионами, миллионам разных потребителей. И, среди них, найдется «дядя Вася», который сможет написать две строчки кода Quirk в модуле vfio ядра Линукс для своей карты. Этот «квирк» потом окажется в ядре и будет радовать всех владельцев этой серии видеокарт. То есть, по факту, с обычными игровыми картами больше шансов получить «поддержку», хоть и в таком виде.
По этой же причине, использование «профессиональных» гипервизоров вроде ESXi, XEN, Hyper-V уменьшает шансы на успех.
Итого, думаю, 90% успехов с пробросом видеокарт в ВМ конечными пользователями сейчас относятся к сегменту обычных игровых карт с использованием Linux-KVM в качестве гипервизора.
Сейчас производители постепенно переходят к стандартизированному способу разделения ресурсов на основе SR-IOV, который хорошо себя зарекомендовал для сетевых карт 10G+. Но, тут мы только в начале пути.
Игровые мыши/клавиатуры обычно имеют кучу дополнительных специализированных кнопок и, в добавок к этому, еще и программируются. Часто требуют установки специальных драйверов для всего этого добра.
Так, например, если взять десятикнопочную мышь, то, без этой схемы у вас скорее всего будут работать только 3-4 кнопки.
Если говорить о программируемой игровой клавиатуре, то, вы, скорее всего, не сможете ее запрограммировать на выполнение последовательности действий по нажатию одной кнопки без прямого подключения клавиатуры к ВМ и установки драйвера.
Проброс пары из видеокарты и USB контроллера позволяет получить полностью нативное окружение. Можно делать абсолютно все, что можно было бы сделать с обычным игровым ПК (не ВМ) и не видеть разницы.
На все эти проблемы, которые могут возникнуть без проброса USB контроллера, есть, конечно, свои костыли. Но, зачем мне костыли, если есть простое и универсальное решение.
Тут главное не перепутать. Я не пробрасываю USB устройства через специальные средства для проброса USB. Вместо этого я через проброс PCI-E, также как и GPU, пробрасываю PCI-E — USB Host Bus Adapter, a.k.a. USB контроллер.
Это устройство к которому электрически подключены USB порты на материнской плате/корпусе. В современных материнских платах их обычно 2-3 штуки встроено. По одному на каждые 2-4 порта.
Часть USB портов на материнской плате/корпусе становится портами виртуальной машины.
Устройства воткнутые в эти порты автоматически подключаются в виртуальную машину минуя хост. Никакой особой настройки для этого не надо. Причем, эти устройства работают на максимальной скорости доступной для контроллера. Без потерь производительности.
В моем случае туда подключаются игровые клавиатура, мышка, и гарнитура.
Никакого колдунства.
Просто в определенный момент пришло понимание, что, пока GTX 1660 Ti занимается обсчетом моделек в виртуалке, иногда хочется поиграть вместо того, чтобы изображать из себя ждуна.
Т.к. новое железо позволяет, есть дополнительный свободный PCI-E слот и памяти оперативной достаточно, — достал с полки старый Radeon HD 7950, воткнул в систему. Запустил вторую ВМ. И играю там. Вот, думаю теперь поновее GPU для этих целей купить.
Как минимум сервис хранения данных можно сделать аналогично OneDrive на основе storage cryptocurrency для тех у кого много фоток и видео, что у друзей не помещается.
Можно продавать вычислительные мощности для распределенных вычислений, тока не втихую, а совершенно по желанию. Сделать официальную биржу.
Сервис/биржу перекодирования видео для тех кому лень делать это на своем компе. Сервис фотошопливания фоток) И т.п. Главное какую-нибудь криптофиту подключить.
Много что можно придумать.
Личные данные аккаунтов хранить у себя и у друзей в «зашифрованном виде» для резервирования.
Преимущество ECC начинается тогда, когда память не работает хорошо по каким-то причинам. Без кодов коррекции/обнаружения ошибки памяти крайне тяжело диагностировать таким образом, чтобы выяснить, что причина была именно в памяти.
Будут случайные проблемы, зависания, повреждения данных. И, к тому моменту как вы соберете статистику, чтобы задуматься о том, что это, наверно, может быть, память, — может оказаться уже сильно поздно.
Если же память будет с ECC, то, по обнаружении в логах первых сообщений вида «исправлена ошибка памяти» можно просто по логам посмотреть, какой модуль сбоит, и поменять его. Без последствий.
Когда-то давно реклама в Яндекс.Почте была ненавязчивой. Ее было немного. Ее можно было по желанию отключить в настройках аккаунта. Она легко блокировалась различными блокировщиками рекламы.
Как только в Яндекс.Почте появились «платные аккаунты с подпиской и отключенной рекламой» — прогресс почты как сервиса пошел куда-то не в ту сторону. Рекламы стало сильно больше. Реклама стала гораздо более навязчивой. Ее больше невозможно отключить в настройках. Используются сложнейшие средства противодействия блокировщикам рекламы, которые постоянно меняются и создают все новые и новые проблемы.
Сервис деградирует. Заработанные на рекламе и подписках деньги тратятся на целенаправленное ухудшение качества сервиса.
Экраны перетыкать не надо. НВидивская карточка вполне успешно рендерила через OpenGL/Vulkan на монитор подключенный к АМДшной карте.
Обратная комбинация (местами поменять карточки) у автора не взлетела.
Думаю, что в такой системе не обязательно держать линукс на виртуалке. С хостом тоже может вполне работать совершенно аналогично.
Со звуком есть несколько вариантов.
1. Пробросить звуковую карту через IOMMU.
2. Использовать аудиосигнал HDMI.
3. Эмулировать звуковую карту в виртуальной машине.
4. Пробросить USB контроллер и подключить USB звуковую карту/наушники к нему.
Я использую последний вариант. Он мне кажется самым удобным, т.к. в этом случае гарнитура автоматом перекидывается через KVM переключатель в нужную ВМ, т.к. подключена к нему. Но, варианты 2 и 3 у меня тоже настроены как опции.
Если все настроено правильно, хост систему перезагружать вообще не должно быть нужно.
Перетыкание карт наживную (хот-плаг) без остановки ВМ тоже работает. Для этого проброшенный GPU должен быть вторым в виртуальной машине. Добавьте VGA адаптер. Чуть лучше это работает в Винде, чуть хуже в Линуксе. Иксы не очень это любят. Но, если хочется видеокарту выделено использовать под вычисления, и не нужно ранить на них графическую среду, то вообще норм. Иначе, Линуксового гостя проще перезагрузить.
Попеременность заключается в использовании разных виртуальных машин для «работы» и для игр.
Можно купить Riser и воткнуть до 4х видеокарт.
Вроде этих, только для Gen4. Эти тоже будут работать, но только в режиме Gen3 (меньше скорость линий).
А еще, можно видеокарту через USB 3 подключить. Но, это не спортивно :-).
В Legacy/BIOS режиме, — да, приходилось с VBIOS маяться и запрещать использование видеокарты хостом.
Но, я так и не выяснил для себя, зачем мне усложнять самому себе жизнь. В качестве «второй видеокарты» в госте проброс настроить гораздо проще, как мне показалось.
Тем более, что в таком виде карточки перебрасываются хот-плагом из одной ВМ в другую. Не скажу, правда, чтобы это было особо нужно.
Сильно хуже получилось у АМД в последней серии. Они тоже отключили поддержку SR-IOV для игровых карт, однако, новые блоки, которые были добавлены для поддержки SR-IOV в микросхемы, создают проблемы на этих картах, из-за которых карты нормально не пробрасываются целиком.
Специальный ВБИОС я не подсовывал. На обоих пробрасываемых видеокартах достаточно флажка «ROM BAR» который автоматически копирует текущий ВБИОС из видеокарты.
Еще добавлю, что я не стремлюсь к «понтам» вроде «увидеть экран загрузки и биос на проброшенной карте». Все пробрасываемые карты у меня являются «вторыми» в виртуальной машине, и в загрузке гостя не участвуют. Для этого есть VGA адаптер. Просто, он в настройках гостевой ОС отключен, и, не используется после загрузки.
Раньше большинство таких карт использовало для разделения ресурсов проприетарные технологии, что требовало специальной поддержки от систем виртуализации, что, в свою очередь, делало использование технологии крайне затруднительным и затратным делом.
MS может себе позволить пропатчить Hyper-V для своих видеоадаптеров, которых они купили миллион штук для своих дата центров. Вы — не сможете.
Гугл может написать кастомный модуль ядра Линукс для своих адаптеров Тесла, но, этот модуль будет работать только с адаптерами, которые производятся специально для Гугла и в Гугл же поставляются. Вы — так не сможете.
По этой причине, использование профессиональных карт с разделением ресурсов, как правило, имеет меньшие шансы на успех мероприятия с пробросом GPU, чем использование обычных игровых, которые на это, как-бы, не заточены. Такой вот парадокс.
Все потому, что эти игровые карты продаются миллионами, миллионам разных потребителей. И, среди них, найдется «дядя Вася», который сможет написать две строчки кода Quirk в модуле vfio ядра Линукс для своей карты. Этот «квирк» потом окажется в ядре и будет радовать всех владельцев этой серии видеокарт. То есть, по факту, с обычными игровыми картами больше шансов получить «поддержку», хоть и в таком виде.
По этой же причине, использование «профессиональных» гипервизоров вроде ESXi, XEN, Hyper-V уменьшает шансы на успех.
Итого, думаю, 90% успехов с пробросом видеокарт в ВМ конечными пользователями сейчас относятся к сегменту обычных игровых карт с использованием Linux-KVM в качестве гипервизора.
Сейчас производители постепенно переходят к стандартизированному способу разделения ресурсов на основе SR-IOV, который хорошо себя зарекомендовал для сетевых карт 10G+. Но, тут мы только в начале пути.
Так, например, если взять десятикнопочную мышь, то, без этой схемы у вас скорее всего будут работать только 3-4 кнопки.
Если говорить о программируемой игровой клавиатуре, то, вы, скорее всего, не сможете ее запрограммировать на выполнение последовательности действий по нажатию одной кнопки без прямого подключения клавиатуры к ВМ и установки драйвера.
Проброс пары из видеокарты и USB контроллера позволяет получить полностью нативное окружение. Можно делать абсолютно все, что можно было бы сделать с обычным игровым ПК (не ВМ) и не видеть разницы.
На все эти проблемы, которые могут возникнуть без проброса USB контроллера, есть, конечно, свои костыли. Но, зачем мне костыли, если есть простое и универсальное решение.
Это устройство к которому электрически подключены USB порты на материнской плате/корпусе. В современных материнских платах их обычно 2-3 штуки встроено. По одному на каждые 2-4 порта.
Часть USB портов на материнской плате/корпусе становится портами виртуальной машины.
Устройства воткнутые в эти порты автоматически подключаются в виртуальную машину минуя хост. Никакой особой настройки для этого не надо. Причем, эти устройства работают на максимальной скорости доступной для контроллера. Без потерь производительности.
В моем случае туда подключаются игровые клавиатура, мышка, и гарнитура.
Просто в определенный момент пришло понимание, что, пока GTX 1660 Ti занимается обсчетом моделек в виртуалке, иногда хочется поиграть вместо того, чтобы изображать из себя ждуна.
Т.к. новое железо позволяет, есть дополнительный свободный PCI-E слот и памяти оперативной достаточно, — достал с полки старый Radeon HD 7950, воткнул в систему. Запустил вторую ВМ. И играю там. Вот, думаю теперь поновее GPU для этих целей купить.