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

Введение в основы виртуализации с KVM

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Глоссарий KVM

Преимущества и недостатки KVM

Нужен ли вам KVM? Это зависит от того, для чего он вам нужен.
Если вы еще не пользовались виртуальными машинами или запускали их несколько раз просто для интереса, то освоение KVM может оказаться трудным. Эта программа управляется преимущественно из командной строки и не так дружелюбна к пользователю, как VMware или VirtualBox. Можно сказать, что в плане графического интерфейса KVM отстает от своих конкурентов на несколько лет, хотя на самом деле по своим возможностям им по крайней мере не уступает. Возможности KVM наиболее востребованы при ее применении в коммерческих целях в бизнес-окружении.
Далее, если ваш процессор не поддерживает аппаратную виртуализацию, то KVM будет работать в очень медленном и неэффективном режиме программной эмуляции. Кроме того, известно, что KVM конфликтует с VirtualBox, однако этому случаю будет посвящена отдельная заметка.
На основании вышесказанного можно сделать вывод, что KVM больше подходит людям, которые занимаются виртуализацией в профессиональных целях. Вряд ли она станет вашей любимой домашней игрушкой, однако если вы решите затратить определенные усилия для ее изучения, то полученные при этом знания позволят быть с технологиями виртуализации на “ты”. В отличие от VMware и VirtualBox, изначально предполагающих, что пользователь будет работать с программой, используя графический интерфейс, KVM ориентирована на использование командной строки и написание скриптов.
Подводя итого, можно сказать, что преимущества KVM заключаются в использовании новейших технологий виртуализации, отсутствии каких-либо лицерзионных ограничений в использовании, мощном интерфейсе командной строки. Если ваш процессор не поддерживает аппаратной виртуализации, вы не хотите писать скрипты и предпочитаете более простые в администрировании системы, такие как VMware Server, ESXi или VirtualBox, то KVM не для вас.

Тестовая платформа

KVM можно использовать на любом дистрибутиве Linux. Однако основным разработчиком и спонсором KVM является RedHat. Например, RHEL поставляется сразу с KVM, поэтому вы можете найти ее в любом дистрибутиве на базе RedHat, например CentOS, Scientific Linux, или Fedora.
Так как дома я пользуюсь преимущественно Ubuntu, то и тестировать KVM буду на этой системе, установленный на мой сравнительно новый ноутбук HP, оснащенный процессором i5 с поддержкой аппаратной виртуализации.
В данной статье я расскажу, как установить KVM на 64-битную Ubuntu Lucid (LTS).

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Подготовка к установке

Сначала необходимо проверить, поддерживает ли ваш процессор аппаратную виртуализацию. Это делается с помощью следующей команды:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Если вывод представляет собой ненулевое число, все в порядке. Кроме того, необходимо проверить, что технология виртуализации активирована в BIOS.
Естественно, после ее активирования необходимо перезагрузить машину, чтобы изменения вступили в силу. Для проверки выполните команду kvm-ok:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Скачивание и установка KVM

Для работы KVM необходимо установить следующие пакеты (для дистрибутивов с apt):

Кроме того, я настоятельно рекомендую установить дополнительно следующие пакеты:

P.S. В различных дистрибутивах пакеты могут называться по разному. Например, virt-install может называться python-virt-install или python-virtinst. Зависимости для virt-clone, virt-image и virt-viewer должны установиться автоматически. В отличие от того, что пишется в большинстве руководств, утилиты bridge устанавливать необязательно. Они нужны только в том случае, если вы собираетесь создавать сетевой мост между виртуальными и физическими сетевыми картами. В большинстве руководств также указывается, что большинство беспроводных сетевых интерфейсов не работают с мостами. Может быть это верно для какого-либо частного случая, однако у меня мост прекрасно работает с беспроводными адаптерами, поэтому будем надеяться, что и вас все заработает.
Я настоятельно рекомендую VMM (virt-manager). Более того, лучше установить и все утилиты поддержки, включая virt-viewer, virt-install, virt-image и virt-clone.
И последнее. Вы можете предпочесть ubuntu-vm-builder:

Конфликт с VirtualBox

Я снова выскажу мнение, отличное от изложенного в большинстве рукводств: KVM и VirtualBox можно устанавливать вместе на одну систему. Но запустить их одновременно не получится. Другими словами, модуль ядра одной из виртуальных машин должен быть выгружен из оперативной памяти. Но это не причина отказываться от установки. Просто попробуйте, будут ли они работать у вас. Если нет, эту неполадку можно будет исправить. Позже я выложу отдельное руководство, посвященное устранению этой проблемы. У меня сейчас установлены и работают обе виртуальные машины.

Использование KVM

Ну а теперь самое интересное. Мы начнем знакомство с KVM с ее графического интерфейса, который мало отличается от аналогов. таких как консоль VMware и особенно VirtualBox.

Virtual Machine Manager (VMM)

При первом запуске программы вы увидите две категории, обе не подключенные. Это ссылки на стандартные модули KVM, пока не работающие. Для их использования щелкните правой кнопкой мыши и выберите “connect”.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Для их использования щелкните правой кнопкой мыши и выберите “connect”. Чтобы добавить новое соединение, выберите в меню File > Add Connection. При этом откроется окно, в котором можно будет задать тип гипервизора и тип соединения. VMM может использовать как локальные, так и удаленные соединения, включая QUEMU/KVM и Xen. Кроме того, поддерживаются все методы аутентификации.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Можно также поставить галочку autoconnect. При следующем запуске программы эти соединения будут готовы к использованию. Это похоже на стартовый интерфейс VMware Server. Просто для примера:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Kernel vs Usermode

Вы можете спросить, в чем различие между режимами normal/default и Usermode? При использовании Usermode виртуальную машину можно запускать без административных привилегий, но ее сетевая функциональность при этом будет ограничена.

Продолжаем изучение VMM

Кратко рассмотрим остальные функции программы.
Сетевую функциональность можно просмотреть или изменить, открыв пункт Host Details. Подробно этот вопрос я планирую рассмотреть в отдельном руководстве. Там же мы установим утилиты для работы сетевого моста.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Аналогично можно изменить параметры дисковой подсистемы:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Изменение предварительных установок

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

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работыкакие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работыкакие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

После этого вы сможете просматривать более подробную информацию о виртуальной машине. Например, ниже показан вывод информации об использовании процессора, дисковой и сетевой подсистем для гостевой системы Ubuntu.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Иконка в системном трее выглядит так:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Теперь мы готовы создать новую виртуальную машину.

Создание виртуальной машины

Создать виртуальную машину можно и из командной строки, но для начала воспользуемся VMM. Первый шаг должен быть интуитивно понятен. Введите название и задайте расположение инсталляционного диска. Это может быть как локальное устройство в виде диска CD/DVD или образа ISO, так и HTTP или FTP сервер, NFS или PXE.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Мы используем локальный носитель. Теперь необходимо задать, будет ли это физическое устройство или образ. В нашем случае используется ISO. Далее нужно выбрать тип и версию ISO. Здесь не требуется такая уж высокая точность, но правильный выбор позволит повысить производительность виртуальной машины.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Задаем количество процессоров и размер оперативной памяти:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Наша машина готова к использованию.

Настройка виртуальной машины

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

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

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

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Запуск виртуальной машины

А теперь самое интересное. Ниже несколько красивых скриншотов.
Начинаем с загрузочного меню 32-битной версии Ubuntu 10.10 Maverick:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Рабочий стол Puppy Linux как всегда великолепен:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Теперь Ubuntu, запущенная под NAT. Обратите внимание на низкую загрузку процессора. Позже мы поговорим об этом, когда будем обсуждать режим эмуляции.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Размер окна консоли можно подгонять под разрешение рабочего стола гостевой системы. На следущем скриншоте Puppy и Ubuntu бок о бок:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Обратите внимание на небольшую загрузку системы. С этим режимом эмуляции можно запускать одновременно несколько виртуальных машин.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

При необходимости можно удалить виртуальную машину вместе со всеми ее файлами:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Командная строка

Ну а теперь познакомимся поближе с нелюбимой командной строкой. Например, выведем список всех доступных виртуальных машин с помощью virsh.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Ниже приведена последовательность команд для создания и запуска виртуальной машины с помощью virt-install.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Полностью команда выглядит так:

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

Режим чистой эмуляции

Я уже говорил, что он ужасно неэффективен. Теперь подтвердим это на практике. Например, на представленном ниже скриншоте можно видеть, что система при работе потребляет все доступные ей ресурсы процессора, которые в данном случае при наличии одного ядра составляют 25% ресурсов физического процессора. Это значит, что четыре виртуальные машины будут полностью загружать четырехъядерный хост.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Кроме того, производительность гостевой системы ниже всякой критики. Если при включенной аппаратной виртуализации загрузка гостевой Ubuntu занимала у меня около 1 минуты, то после ее отключения она составила 20 минут. Необходимо отметить, что без использования аппаратной виртуализации производительность QUEMU/KVM намного ниже, чем у конкурентов.

Что еще почитать по теме

Заключение

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

Источник

🔯 Что такое KVM (виртуальная машина на основе ядра) в Linux?

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Виртуализация является горячей темой в области вычислительной техники.

Существует другой тип решений и методов виртуализации, используемых в другой среде и операционных системах.

KVM или виртуальная машина на основе ядра – это технология виртуализации, используемая в ядре и дистрибутивах Linux.

Linux KVM может использоваться только в ядре и дистрибутиве Linux из-за его архитектуры проектирования.

Аппаратная поддержка KVM

Технология KVM может использоваться только с аппаратной поддержкой, предоставляемой процессором.

Процессоры Intel и AMD предоставляют эту аппаратную поддержку.

Как работает KVM?

KVM – это модуль ядра Linux, и для работы с KVM модуль должен быть установлен и загружен в ядро Linux.

Модуль обычно называется kvm, но для процессоров Intel он называется kvm_intel, а для процессоров AMD – kvm_amd.

Ядро Linux будет изолировать созданную виртуальную машину памяти и процессора в процесс, как отдельную систему.

Особенности KVM

Виртуализация KVM предоставляет следующие функции в процессе виртуализации.

Модули ядра KVM

Как указывалось ранее, Linux KVM можно использовать с модулями ядра с именем kvm.

Мы установим модуль ядра Linux KVM с помощью следующей команды, если он не установлен.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Проверьте установку KVM

Мы можем проверить установку KVM с помощью команды kvm-ok, которая предоставит информацию и поддержку оборудования, как показано ниже.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Из скриншота видно, что /dev/kvm существует и KVM acceleration можно использовать без проблем.

KVM Qemu

KVM – это часть ядра виртуализации Linux.

В пользовательском пространстве используется инструмент с именем Qemu.

Qemu обеспечивает эмуляцию устройств VM и связь с ядром.

Qemu запускается как эмулятор виртуальной машины и объединяется с KVM для обеспечения полной виртуализации.

Мы можем установить KVM Qemu с помощью следующей команды.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Инструмент KVM Libvirt

Libvirt – это библиотека, используемая для виртуализации KVM в более корпоративной манере.

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

Мы можем установить libvirt с именем пакета libvirt-daemon, который является сервисом.

Инструменты KVM GUI

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

Но virt-manager – это популярные инструменты, которые можно использовать локально в системе. Мы можем установить Virt Manager как показано ниже.

Источник

Работа с виртуальными машинами KVM. Введение

Как и обещал, начинаю серию статей о том, как мы делали услугу аренды выделенных серверов на базе KVM.

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

Debian

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Почему Debian? Эта операционная система мне близка и понятна, так что при выборе дистрибутива мучений, терзаний и метаний испытано не было. Особых преимуществ перед Red Hat Enterprise Linux у него нет, но было принято решение работать со знакомой системой.

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

Мы же, повторюсь, решили использовать Debian Squeeze с набором пакетов из Sid/Experimental и некоторыми пакетами, бэкпортированными и собранными с нашими патчами.
В планах имеется публикация репозитория с пакетами.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

При выборе технологии виртуализации рассматривались два варианта — Xen и KVM.

Замечу, что лично я не очень хорошо знаю Xen, его архитектуру и уж тем более мелкие особенности — в основном я знакомился с ним в качестве гостя. Нет повода сказать, что Xen чем-то плох (потому, что он ещё не полностью вошёл в ядро, или у него что-то не так с производительностью, или еще по какой-то причине). Ничего определённого нельзя сказать и в плане производительности: в каких-то тестах KVM на 10-20 процентов опережает Xen по всем показателям, а где-то выигрывает Xen. Фактически, на текущий момент они практически сравнялись по функционалу, производительности, надёжности. И в принципе, не за горами тот день, когда Xen также войдёт в ядро. Уже вошёл в состав ядра virtually-a-machine.blogspot.com/2011/06/xen-support-in-mainline-linux-kernel.html.

Также во внимание принимался факт наличия огромного количества разработчиков, хостеров, комерческих решений именно на базе Xen — тем интереснее было провести в жизнь решение именно на базе KVM.

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

libvirt

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Для управления виртуальными машинами оказалось чрезвычайно удобно использовать libvirt и продукты, использующие ее API: virsh, virt-manager, virt-install, пр.

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

Разумеется, решение не идеально. Из минусов libvirt следует назвать:

cgroups

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

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

В KVM ничего такого не было до появления механизма распределения ресурсов ядра cgroups. Как обычно в Linux, доступ к этим функциям был реализован посредством специальной файловой системы cgroup, в которой при помощи обычных системных вызовов write() можно было добавить процесс в группу, назначить ему его вес в попугаях, указать ядро, на котором он будет работать, указать пропускную способность диска, которую этот процесс может использовать, или, опять же, назначить ему вес.

Профит в том, что всё это реализуется внутри ядра, и использовать это можно не только для сервера, но и для десктопа (что и использовали в известном «The

200 Line Linux Kernel Patch That Does Wonders»). И на мой взгляд, это одно из самых значительных изменений в ветке 2.6, не считая любимого #12309, а не запиливание очередной файловой системы. Ну, разве что, кроме POHMELFS (но чисто из-за названия).

libguestfs

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Отношение к этой библиотеке-утилите у меня весьма неоднозначное.

С одной стороны это выглядит примерно так:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

И ещё эту штуку чертовски сложно собрать из исходников и тем более в пакет: иногда мне кажется, что Linux From Scratch собрать с нуля несколько проще.

С другой стороны — очень мощная штука, которая позволяет создавать образы для виртуальных машин, модифицировать их, ужимать, ставить grub, модифицировать таблицу разделов, управлять конфигурационными файлами, переносить «железные» машины в виртуальную среду, переносить виртуальные машины с одного образа на другой, переносить виртуальные машины из образа на железо и, честно говоря, тут меня фантазия немного подводит. Ах, да: ещё можно запустить демон внутри виртуальной машины Linux и получить доступ к данным виртуальной машины вживую, и всё это делать на shell, python, perl, java, ocaml. Это краткий и далеко не полный список того, что можно сделать с libguestfs.

Интересно, что большая часть кода в libguestfs генерируется в момент сборки, равно как и документация к проекту. Очень широко используется ocaml, perl. Сам код пишется на C, который потом оборачивается в OCaml, и повторяющиеся куски кода генерируются сами. Работа с образами осуществляется путём запуска специального сервисного образа (supermin appliance), в который через канал внутрь него отправляются команды. Внутри этого образа содержится некоторый rescue набор утилит, таких как parted, mkfs и прочих полезных в хозяйстве системного администратора.

Я с недавнего времени его даже дома стал использовать, когда выковыривал из образа nandroid нужные мне данные. Но для этого требуется ядро с поддержкой yaffs.

Прочее

Ниже приведено ещё несколько интересных ссылок на описание использованных пограммных средств — почитать и поизучать самостоятельно, если интересно. Например, про утилиту для массовой работы с конфигурационными файлами, KVM best practices от товарищей из IBM. Рекомендую!

В следующей части

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

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Как создавать виртуальные машины на Linux с помощью KVM

Виртуальная машина на основе ядра

В этом руководстве мы расскажем, как установить KVM и как его использовать, чтобы создать виртуальные машины с такими дистрибутивами как RHEL, CentOS 7 и Fedora 21, основанными на RedHat.

Интенсив по Виртуализации VMware vSphere 7

Самое важное про виртуализацию и VMware vSphere 7 в 2-х часовом онлайн-интесиве от тренера с 30 летним стажем. Для тех, кто начинает знакомство с виртуализацией и хочет быстро погрузиться в предметную область и решения на базе VMware

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Что такое KVM?

KVM (Kernel-based Virtual Machine) – это решение для полной виртуализации для Linux на оборудовании Intel 64 и AMD 64, которое включено в основное ядро Linux, начиная с версии 2.6.20. Аппаратные средства работают быстро и стабильно даже при больших нагрузках.

Функции KVM

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

Гипервизор KVM поддерживает следующие функции:

Подготовительная работа

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Для хостов на базе AMD ЦП поддерживает расширение виртуализации [svm] :

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Если вывод отсутствует, убедитесь, что в BIOS включена опция расширения виртуализации. Убедитесь, что модули KVM загружены в ядро (это должно быть загружено по умолчанию).

Вывод должен содержать kvm_intel для хостов на базе Intel и kvm_amd – на базе AMD.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

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

Убедитесь, что Selinux в режиме Permissive.

Шаг 1: Установка KVM

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

Давайте установим эти инструменты с помощью следующей команды:

Для пользователей RHEL/CentOS7 также есть дополнительные группы пакетов, которые можно установить, например: Virtualization Client, Virtualization Platform и Virtualization Tools

Демоном виртуализации, который управляет платформой, является libvirtd. Давайте перезапустим его.

После того, как Вы перезапустили демона, проверьте его статус с помощью следующей команды:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Теперь давайте перейдем к следующему разделу и создадим виртуальную машину.

Шаг 2: Создание ВМ с помощью KVM

Так как мы установили несколько полезных приложений для управления виртуальными платформами и создания виртуальных машин, одно из них –virt-manager – нам сейчас понадобится.

Несмотря на то, что virt-manager является инструментом, основанным на графическом интерфейсе пользователя, из терминала мы можем запускать его так же, как и из GUI.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

После того, как Вы запустите приложение, появится такое окно.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Поставьте галочку на Connect to remote host и впишите название или IP (Hostname) удаленного сервера. Если Вам нужно устанавливать соединение с удаленным сервером каждый раз, когда запускается менеджер, то поставьте галочку на Auto Connect.

Давайте вернемся к localhost. Прежде чем создавать виртуальную машину, Вы должны решить, где будут храниться файлы. Другими словами, Вам необходимо создать том (виртуальный диск) для вашей виртуальной машины. Правой кнопкой мыши нажмите на localhost и выберите Details, а затем перейдите на вкладку Storage.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Затем нажмите кнопку New Volume (Новый том) и введите название вашего нового виртуального диска (тома). В графу Max Capacity (Максимальная ёмкость) введите требующийся вам объем диска.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

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

Примечание: технология в области администрирования хранилищ называется thin provision (Тонкое обеспечение). Она используется для выделения только используемого объема хранилища, а не всего доступного объема. Например, Вы создали виртуальный диск размером 60 Гб, но используемого объема у Вас только 20 Гб. С помощью данной технологии жёсткий диск предоставит Вам только 20 Гб, а не 60. Другими словами, выделенный физический объем будет динамически распределяться в зависимости от фактического используемого объема.

Знак нового диска появится в списке.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Наконец, мы готовы к созданию виртуальной машины. Нажмите на кнопку VM на главном экране, и появится окно.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Выберите метод установки для создания ВМ. Мы пока выберем Local install media, а позже обсудим оставшиеся методы.

Теперь мы должны выбрать, какой локальный носитель использовать. У нас есть два варианта:

Давайте выберем ISO-образ и введем его путь.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Важно: к сожалению, для тех, кто использует RHEL или CentOS7, здесь есть баг. Он не даёт установить машину с использованием физического носителя CDROM/DVD. Опция просто будет серая:

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

И если Вы наведете курсор, то появится сообщение об ошибке: physical cdrom passthrough not supported with this hypervisor (Физический CDROM не поддерживает данный гипервайзер).

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Больше информации можете узнать здесь.

Снова вопрос про хранилище. Используем виртуальный диск, который мы недавно создали. Он скоро появится.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

На последнем шаге Вам необходимо дать название виртуальной машине.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Если Вы хотите изменить что-то в конфигурации или сделать небольшую адаптацию, поставьте галочку на Customize configuration before install. Затем нажмите на finish и подождите несколько секунд, пока не появится контрольная консоль для вашей гостевой ОС.

какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть фото какие возможности ядра linux использует гипервизор kvm для своей работы. Смотреть картинку какие возможности ядра linux использует гипервизор kvm для своей работы. Картинка про какие возможности ядра linux использует гипервизор kvm для своей работы. Фото какие возможности ядра linux использует гипервизор kvm для своей работы

Заключение

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

Интенсив по Виртуализации VMware vSphere 7

Самое важное про виртуализацию и VMware vSphere 7 в 2-х часовом онлайн-интесиве от тренера с 30 летним стажем. Для тех, кто начинает знакомство с виртуализацией и хочет быстро погрузиться в предметную область и решения на базе VMware

Источник

Leave a Reply

Your email address will not be published. Required fields are marked *