IT консалтинг - статьи



   конвертер биткоин в рублях             

Разделение ресурсов


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

Более сложная ситуация с файловой системой /proc, в которой находится справочная информация о ядре, по процессам и периферии. Здесь соблюдается то же самое правило: информация о системе в целом доступна, а по конкретному оборудованию, такому как шины, память и процессор — нет. В некоторых случаях из псевдофайлов этого каталога приложение может получить информацию об отдельной виртуальной среде, а в некоторых — по серверу в целом. В частности, такое различие может быть важно для оценки загруженности процессора: для некоторых программ достаточно выдавать информацию о виртуальной среде, а в некоторых — общую нагрузку на процессоры. При этом разработчики стремились обеспечить выполнение уже существующих приложений без перекомпиляции.

Внутри виртуального сервера нет прямого доступа к сетевому интерфейсу. Все операции с сетью выполняются с помощью стандартных функций ядра, реализация которых в Virtuozzo существенно изменена. Каждой виртуальной среде выделяется определенная гарантированная полоса пропускания внешнего канала и возможность взаимодействия с другими средами того же сервера в рамках концепции виртуальной сети. Причем при необходимости можно реализовать различные способы IP-нумерации: отдельный IP-адрес на каждую среду, общий IP-адрес с разделением по DNS-имени или трансляция адресов в рамках виртуальной сети. Такая организация работы с сетью необходима для того, чтобы приложение виртуальной среды не могло подглядеть передачу данных по сети другими виртуальными средами, обратившись для этого напрямую к драйверу Ethernet. Реализованы эти функции с помощью специальной прослойки в ядре, которая дает каждой среде свой отдельный виртуальный сетевой интерфейс API, аналогичный сетевому интерфейсу самой ОС Linux.




Содержание  Назад  Вперед