Комментарии 14
Спасибо, как всегда текст информативен и на высоте!
Неизвестно когда бы я смог прочитать эту статью учитывая язык оригинала.
Расскажите, а как вы делали перевод с китайского? У вас есть в команде инженер с такими навыками или нанимали толмача?
Нанимали Google Translate:) Плюс для уточнения разных нюансов перелопатили разные англоязычные и русскоязычные источники, чтобы выверить перевод терминов и т.п. Ну и у Андрея мощный бэкграунд во всем этом.
Нынче ChatGPT очень помогает с переводами подобных статей, иногда подключал Google Translate, каждое утверждение проверялось на действительность из моего опыта и с фактами доступными в открытых источниках.
Плюс огромное спасибо редакторской команде Фланта и персонально @TimurTukaev, которые помогли с редактурой статьи и проверкой фактов
Так и не понял толком, для чего это используется.
На следующей неделе будет статья с реальным кейсом.
Когда у вас есть потребность запускать виртуальные машины вы всегда ищите наиболее эффективные методы виртуализации оборудования, в первую очередь для того чтобы получить более быстрые сеть и хранилище внутри виртуальных машин.
Эта статья делает детальный обзор на то как появлялись и как работают различные методы виртуализации оборудования.
И если сначала такие устройства эмулировались гипервизором полностью. То сейчас большинство методов основаны на том чтобы отказаться от необходимости эмулировать реальные устройства и максимально заоффлоадить I/O из виртуалок чтобы миновать гипервизор, а по возможности и ядро хостовой системы.
А как раньше в этом участвовало ядро хостовой системы?
Думаю, мне будет проще объяснить это на примере того как работает дисковая подсистема.
В хостовой системе QEMU представляет из себя обычный процесс юзерского пространства, работающий с файлами и сетевыми сокетами.
Если вы запускаете виртуалку и отдаёте ей виртуальный диск (допустим, это отдельный файл, созданный в файловой системе хоста). То ядру хостовой системы, а именно драйверу файловой системы и драйверу реального устройства хранения, по прежнему приходится обрабатывать все запросы на чтение/запись полученные от QEMU, точно также как и от любого другого пользовательского процесса в хостовой ОС.
Последние технологии, основанные на vDPA, приносят для этого единый интерфейс в ядро, что, как side effect, добавляет довольно интересную возможность использовать их не только для виртуальных машин но и для контейнеров. Как раз об этом и будет моя следующая статья. Подписывайтесь чтобы не пропустить ;)
Когда виртуальное устройство внутри виртуальной машины обращается к своим регистрам, инструкция перехватывается и обрабатывается QEMU.
В этой фразе возможно некорректная формулировка. Думаю, что драйвер устройства обращается к регистрам устройства, а не само устройство?
@kvaps а есть ли вариант на English?
Эволюция технологий виртуализации сети в Linux