Xen — всё по этой теме для программистов

Оглавление (нажмите, чтобы открыть):

Xen — всё по этой теме для программистов

Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5

Подскажите пожалуйста, хостинг (VPS) со следующими параметрами:

1. XEN, натуральный
2. Debian 5 x86_32 (лучше Debian 6, x86_32)
3. Без технических ограничений
4. Порт 10Мибит (лучше 100Мбит), ограничения по трафику допускаются.

Пояснения:
1. Хочу видеть перед собой полноценный сервер, а не «Модуль ядра не возможно загрузить, т.к. ядро не найдено».
2. Привык я к Debian. 32-х битный по тому, что некоторый спец. софт существует только в 32-битной версии.
3. Ограничения типа: нельзя прокси, VPN, IRC, почту и пр. — в корне не устраивают. Приемлемы все ограничения которые могут нарушить законодательство каких-либо стран, но никак не ограничения с технической стороны.
4. Без комментариев

P.S. Ключевым моментом является возможность бесплатного тестирования VPS-сервера в течении хотя бы 2-х суток. Ибо я разорюсь, если и далее буду платить за каждый тест очередного VPS’а, который как в последствии выясняется — не соответствует заявленным характеристикам.

И сказал Бог: «Тогда я построю свой мир с блэк-джеком и шлюхами!»

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф

Профиль
Группа: Участник
Сообщений: 5
Регистрация: 4.5.2011

Репутация: нет
Всего: нет

vinstig
Дата 6.8.2011, 13:43 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5

И сказал Бог: «Тогда я построю свой мир с блэк-джеком и шлюхами!»

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф

WolfAlone
Дата 6.8.2011, 13:47 (ссылка) | (нет голосов) Загрузка .
Google
Дата 10.11.2020, 10:05 (ссылка)

1. Публиковать ссылки для чисто рекламных целей.

2. Оффтопить, флеймить, говорить не культурно.

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

Задавайте вопросы правильно — как спросите, так вам и ответят.

Делиться ссылками на удачные хостинги по теме.

Обсуждать хостинг по темам.

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

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

Внимание!
Все вопросы и запросы по бесплатным хостингам задаются только в этой теме

P.S. Размещение рекламы будет строго наказываться!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Wowa, MoLeX

Проект Xen получает мощную поддержку

Киты индустрии положили свой вес на чашу весов проекта open-source Xen, так что за считанные месяцы из полной безвестности он взлетел к славе.

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

На выставке-конференции LinuxWorld в Бостоне многие компании выразили поддержку Xen в форме одобрения, оказания помощи в разработке и вклада собственного ПО. В Xen приняли участие Sun Microsystems, Hewlett-Packard, Novell, Red Hat, Intel, Advanced Micro Devices и Voltaire, но одним из наиболее интересных союзников проекта обещает стать IBM, которая десятилетиями экспериментирует в этой области.

«Два-три месяца назад об этом проекте никто не знал. Теперь он способен внести серьезные изменения в общий подход к работе с Linux», — говорит вице-президент по исследованиям и разработкам Novell SuSE Linux Крис Шлегер.

Эти изменения иллюстрируют, как происходит прогресс в мире программного обеспечения open-source: проект может вызывать целый каскад коопераций между множеством заинтересованных сторон. Когда это удается, как в случае Linux, вся эта деятельность ведет к созданию единого, быстро развивающегося проекта, вместо частных, взаимно несовместимых конкурирующих друг с другом разработок.

«Сообщество open-source решило, наконец, сгладить противоречия и сплотиться вокруг одного проекта виртуализации, так что теперь он сможет воплотиться в жизнь, заменив дюжину воюющих княжеств, по два воина в каждом», — говорит аналитик Illuminata Гордон Хафф.

Проект Xen начался три года назад в Кембриджском университете в Англии, рассказывает Иэн Пратт, руководитель проекта и основатель компании XenSource , которая разрабатывает и поддерживает ПО и пытается сделать его стандартной функцией любого компьютера. «Повсеместное использование Xen на Linux — первый шаг к этому».

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

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

Требование модификации ОС будет снято, когда Intel выпустит технологию Vanderpool Technology (VT), которая должна появиться в этом году. Тогда Xen сможет работать с немодифицированной ОС, хотя и не так быстро, как с модифицированной. Это означает, что на Xen сможет работать и Windows, несмотря на то, что у программистов open-source нет возможности вносить в нее изменения.

Не попали в струю

В число конкурентов Xen, оставшихся на обочине, входят Plex86 и User-mode Linux . Хотя последний вошел в состав новой версии SuSE Linux от Novell, это, скорее всего, ненадолго.

«User-mode Linux, вероятно, отомрет», — сказал Шлегер. Генеральный менеджер SuSE Linux Маркус Рекс добавил, что инструменты управления, разработанные Novell для администрирования этого ПО, можно приспособить для Xen. По его словам, Xen может войти в будущую версию Novell SuSE Linux Professional 9.3, а позднее и в следующую версию более мощного продукта SuSE Linux Enterprise Server.

У продавца Linux, компании Red Hat, тоже есть планы в отношении Xen. Как сообщил исполнительный вице-президент по проектированию Пол Кормье, пакет виртуализации будет включен в экспериментальный продукт Red Hat Fedora Core 4 и, вероятно, в версию 5 Red Hat Enterprise Linux. Как и Novell, Red Hat планирует добавить инструменты для управления такими аспектами, как создание или удаление виртуальных машин Xen.

Hewlett-Packard весомо поддержала Xen, пообещав вложить в проект собственное ПО. «Мы ожидаем, что Xen составит жизнеспособную open-source альтернативу платформам виртуализации, — сказал вице-президент по Linux Мартин Финк в своем выступлении на LinuxWorld. НР надеется также с выгодой использовать собственные программы для управления виртуальными машинами.

Директор по маркетингу отделения Intel Digital Enterprise Group Фил Брейс сообщил, что в январе Intel начала вкладывать ПО в проект Xen, с тем чтобы он мог использовать VT-расширения.

На другие платформы

Сейчас Xen функционирует на компьютерах с процессорами х86, такими как Pentium, под Linux, но идет работа над расширением области применения этого ПО. Недавно AMD объявила, что она поможет перенести Xen на чипы 64-bit x86, такие как Opteron, в будущих версиях которых, с технологией Pacifica, появятся средства поддержки виртуализации.

Пратт говорит, что в Xen сейчас есть экспериментальная поддержка семейства Intel Itanium. А IBM проявила интерес к переносу этого ПО на процессор Power.

В число операционных систем, работающих на Xen, входит вариант Unix NetBSD , причем эта версия была разработана так быстро, что XenSource наняла программиста NetBSD, который ее делал, сообщил Пратт.

Еще один вероятный кандидат — Sun Solaris, — которую компания начала энергично продвигать для серверов х86. «Мы считаем, что виртуальный гипервизор open-source — это правильный путь», — сказал исполнительный вице-президент отделения сетевых систем Sun Джон Фоулер. (Hypervisor — это термин, которым IBM обозначает слой ПО, разделяющий аппаратуру таким образом, чтобы на ней могли работать несколько операционных систем).

Источники, знакомые с планами IBM, ожидают, что Big Blue примет весомое участие в Xen. Компания десятилетиями экспериментирует в этой области с мэйнфреймами, Unix-серверами и Intel-серверами.

Хотя IBM поддерживает партнерские отношения с VMware, она занимается и собственным проектом гипервизора для процессоров х86, на который в январе пролил свет постинг в посвященном Xen списке почтовой рассылки. В лаборатории IBM Xen применяется в качестве фундамента для проекта sHype (Secure Hypervisor), направленного на повышение устойчивости виртуальных машин к атакам. Это ПО использует правила, которые управляют административными привилегиями и потоком информации между виртуальными машинами.

«Теперь мы планируем передать это Xen, интегрировав в него нашу архитектуру безопасности», — пишет в постинге исследователь IBM Рейнер Сейлер. Пратт одобрительно отозвался об этом в собственном постинге: «Будет здорово, если IBM займется безопасностью Xen».

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

Несмотря на поддержку Xen, IBM вновь подтвердила свои связи с VMware. «IBM поддерживает тесные и прочные деловые отношения с VMware. Сейчас эти отношения прочнее, чем когда бы то ни было», — сказал представитель компании Джим Ларкин.

VMware, со своей стороны, называет Xen «зарождающимся» проектом виртуализации, которому мешает требование модификации операционной системы. «Xen не станет особенно полезным для подавляющего большинства заказчиков, которые сегодня применяют стандартные операционные системы Linux», — говорится в заявлении VMware.

Но определенная угроза для VMware — вместе с технологией Intel VT и конкурирующим ПО Microsoft Virtual Server — присутствует, считает Хафф. По его словам, у VMware есть более высокоуровневое управляющее ПО VirtualCenter и VMotion, но основу бизнеса компании все же составляет базовый продукт виртуализации. «Сегодня именно он приносит ей главный доход», — говорит Хафф.

Подписывайтесь на каналы «SecurityLab» в Telegram и Яндекс.Дзен, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

LXF84:Виртуализация

Материал из Linuxformat.

Виртуализация

Правила форума «Хостинг»

Содержание

Прорыв в виртуальность

Linux — это выбор: вы можете выбрать рабочий стол, выбрать браузер и даже выбрать логотип, который будет появляться при загрузке. Но основной выбор, без сомнения, самый сложный: какой дистрибутив лучше всех? Если вы похожи на нас, то, вероятно, скачете между дистрибутивами так же быстро, как Майк успевает выкладывать их на диск Linux Format; но настает время в вашей жизни, когда вам надоест делать переформатирование и вы начнете искать более разумный способ экспериментировать с новыми ОС. Этот способ – виртуализация: запустите множество ОС на одном компьютере и переключайтесь между ними с той же легкостью, как между программами.

Идея виртуализации не нова: VMware существует с 1999 года, и мы опубликовали две большие статьи про Xen за последние два года (LXF67 и LXF77). Теперь, впрочем, производители процессоров создали виртуализацию на кристалле (on-chip). Работа ОС в виртуальной машине (ВМ) будет явно медленнее, чем на чистом компьютере, так что если вы сможете заставить процессор выполнять эту работу, весь процесс ускорится – по крайней мере, теоретически. Конкурирующие решения от Intel (VT или Virtualisation Tethnology, технология виртуализации) и AMD (SVM, илиSecure Virtual Machines, безопасные виртуальные машины) начали поставляться с их процессорами, и наконец-то предприятия, любители новшеств и экспериментаторы среди вас могут попробовать виртуализацию, поскольку для этого она и предназначалась.

Прорыв

Аппаратная виртуализация может, наконец, решить простую, но неприятную проблему: процессоры x86 не умеют выполнять виртуализацию хорошо. От выпуска 386-го до последнего, основанного на Core 2, чипа Intel изменилось немногое – набор базовых инструкций тот же, то есть код, скомпилированный для 386, также будет работать на новейшем оборудовании от Intel и AMD. На самом деле новые функции, например, MMX, SSE, двойные ядра и 64-битная обработка, просто были «прикручены» к существующей архитектуре x86, чтобы не обесценивать вложения пользователей и предприятий.

Но это также означает, что сохранились старые недостатки. До VT и SVM все чипы x86 использовали четыре уровня (кольца) привилегий для исполнения. На уровне 0 работали наиболее привилегированные процессы (обычно ОС), а на уровне 3 – наименее привилегированные (обычно приложения пользователя). Это способствовало безопасному разделению привилегий на аппаратном уровне: только приложения уровня 0 (нулевого кольца) могут напрямую управлять оборудованием, что теоретически не позволяет приложению выполнить что-то фатальное для машины. Но на практике приложениям часто нужен доступ к оборудованию, так что они нуждаются в вызовах ОС и запрашивают ресурсы, например, побольше памяти или отрисовку трехмерной графики.

Традиционная виртуализация работает путем запуска гостевой ОС поверх вашей основной ОС, в более высоком, менее привилегированном кольце. Когда гостевая ОС пытается выполнить привилегированную инструкцию, ее должен перехватить монитор виртуальной машины (VMM) и подменить ее, чтобы гостевая ОС не обнаружила, что работает не на чистом оборудовании. Эта техника – известная как двоичная трансляция – сложна и сопряжена с проблемами, в частности, самомодифицирующегося и самопроверяющегося кода. Кроме того, это довольно медленно, поскольку предполагается, что VMM постоянно наблюдает за инструкциями, проносящимися мимо, пока не сможет выстроить кэш.

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

Аппаратная виртуализация устраняет эту проблему раз и навсегда, за счет создания нового набора уровней привилегий, которые размещаются позади традиционных уровней. Новые уровни (известные как VMX Root) становятся реальными привилегированными уровнями, в то время как старые уровни (известные как VMX Nonroot) виртуализируются чипом и используются там, где работают гостевые ОС. Когда гостевая ОС спрашивает «на каком уровне я нахожусь?», чип может честно ответить «уровень 0», потому что он действительно работает на уровне 0 – только это нулевое кольцо виртуальное. Таким образом, все гостевые системы могут работать, не прибегая к двоичной трансляции, поскольку они не замечают разницы между уровнем 0 реальной машины и уровнем 0 внутри VMX Nonroot.

Поскольку это передовая технология, аппаратная виртуализация поддерживается не всеми чипами. В случае с Intel все новые чипы, основанные на Core 2, поддерживают аппаратную виртуализацию VT. Некоторые чипы постарше также работают, но подавляющее большинство чипов Pentium 4 не совместимы с VT. Что касается AMD, то только новейшие чипы, основанные на AM2, поддерживают технологию Secure Virtual Machines. Линейка Opteron должна обновиться вконце этого года, но сейчас SVM поддерживают только новые Athlon64 и Turion 64.

Интересно заметить, что хотя VT и SVM решают одну и ту же проблему, они работают совершенно по-разному: чипы AMD64 имеютинтегрированный контроллер памяти, а Intel держит его на северном мосту. На практике это означает, что чипы Intel должны виртуализовать контроллер памяти программно, тогда как AMD может делатьэто аппаратно, обеспечивая еще больший потенциал для повышенияскорости виртуализации.

Да, Xen все еще нужен

Размещение поддержки виртуализации на процессоре не отменяет потребности в программном обеспечении типа VMware или Xen, потому что все, что находится за пределами процессора (и контроллера памяти, в случае с AMD), по-прежнему нужно виртуализовать. Видеокарта, звуковая карта, жесткие диски и т.д. нуждаются в программной обработке, и здесь системы виртуализации все еще при деле. Наряду с VMware и Xen вы можете также использовать Qemu и Parallels Workstation, но хотя вся четверка предоставляет полную эмуляцию оборудования, кроме процессора, Qemu не имеет никакой поддержки технологий виртуализации Intel и AMD, и его производительность страдает.

Зачем виртуализировать?

  • Для домашних пользователей: Сыты по горло переустановкой дистрибутивов? Запустите один маленький дистрибутив как Domain-0, затем виртуализуйте поверх него любые другие дистрибутивы.
  • Для программистов: Нужно протестировать вашу программу на различных дистрибутивах, операционных системах и настройках? Легко: создайте столько виртуальных машин, сколько у вас платформ, затем разработайте набор тестов для запуска по ночам.
  • Для администраторов серверов: Застряли на 25%-ной загрузке сервера? Используйте виртуальную инфраструктуру для снижения времени простоя, увеличения гибкости и моментального предоставления ресурсов для всех ваших задач.

Xen против VMware

Наиболее явное отличие между Xen и VMware в том, что Xen устанавливает себя как основную ОС компьютера и загружается, когда включается компьютер. Когда ОС Xen запустится, она создаст свою первую виртуальную машину с операционной системой, известную как Domain-0. Она имеет особые привилегии доступа к оборудованию и имеет полное управление над любыми гостевыми системами, вызываемыми после нее.

В VMware ваша первоначальная ОС остается неизменной – VMware запускается как приложение поверх исходной ОС, переключая ее в режим хоста. Новые виртуальные машины создаются поверх хост-ОС как гостевые, и запускаются внутри приложения VMware.

Какая из этих двух идей лучше – вопрос спорный; но мы склоняемся в сторону подхода Xen, поскольку если в хост-ОС на VMware обнаружатся проблемы (или она рухнет), все виртуальные машины «завалятся» вместе с ней.

Между прочим, профессиональная версия VMwareVMware ESX Server – работает во многом подобно Xen, так что, возможно, люди VMware тоже считают это лучшим подходом!

Попробуйте сами

Есть чип, поддерживающий VT/SVM? Отлично! Вы в нескольких минутах от запуска Windows в Linux при помощи аппаратной виртуализации. Это можно сделать двумя способами: через Vmware — тогда виртуализация получится мгновенно, но это закрытая программа, не позволяющая модифицировать аппаратную часть во время работы; или через Xen, который полностью открыт, поставляется включенным в ряд основных дистрибутивов, но потребует некоторых усилий, чтобы заставить его работать. Хотя мы пытались заставить Parallels Workstation работать с VT, это почти всегда заканчивалось зависанием — приглашаем вас попробовать самим, и если вы заставите его работать, сообщите нам.

Нашими тестовыми машинами с Xen были двухпроцессорный Intel Xeon 5160 (итого четыре ядра), с 8 ГБ памяти, и AMD Athlon 64 X2 5000+ с 1 ГБ памяти. На момент написания статьи новый чип Xeon 5160 на базе Woodcrest/Core 2 был старшим серверным чипом от Intel, а машина AMD ориентировалась на домашних пользователей – все результаты тестирования, которые здесь напечатаны, лучше использовать для сравнения одной машины, работающей под «чистой» ОС, с той же машиной под управлением виртуализованной ОС, а не сравнивать Intel и AMD.

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

Мы установили SUSE 10.1 на обе машины, используя 32-разрядные хосты и 32-разрядные гостевые ОС. SUSE 10.1 – превосходный выбор для испытания Xen, поскольку она поставляется с пакетами ядра Xen, устанавливаемыми через Yast. Также здесь есть специальный графический интерфейс для установки и настройки виртуальных машин, но на момент написания статьи он не работал – так что мы делали все вручную.

Шаг за шагом: запускаем VT- или SVM-виртуализацию с помощью Xen

Из Yast, поищите «kernel-xen», и вы увидите два пакета: kernel-xen и kernel-xenp-ae (см. ниже «Обратите внимание»). Вам также понадобятся cloop-kmp-xen, xen, xen-libs, xen-tools и xen-tools-ioemu, и любые дополнительные драйверы, какие пожелаете.

Перезагрузите свой компьютер и выберите Xen – SUSE LINUX 10.1, когда появится загрузочное меню Grub. Пролетит кое-какой текст, и ваш компьютер загрузится как обычно. Не беспокойтесь, если исчезнет графическая заставка вашей SUSE: это не является дурным знаком.

Поздравляем – вы загрузились в Xen! Вы можете проверить это, открыв консоль и запустив команду uname -a. Ваша версия ядра должна теперь походить на 2.6.16.13-4-xen.

Запустите xm list для получения информации о Domain-0. Вы можете использовать xm mem-set Domain-0 500, чтобы назначить ему 500 М памяти. Можете также использовать xm vcpu-set Domain-0 1, чтобы задать ему один процессор. Изменения вступят в силу немедленно, так что вы сразу увидите, если памяти не хватает!

Из командной строки скопируйте /etc/xen/examples/xmexample.hvm в /etc/xen/winxp.hvm, затем откройте winxp.hvm в своем любимом редакторе от имени root. Мы должны сконфигурировать его, чтобы запустить Windows.

Установите «memory» в значение в МБ для этой ВМ, а «name» – в уникальное значение, хотя бы «WinXP». Отредактируйте строку «disk» так, чтобы он указывал на winxp.img. Установите «cdrom» в значение /dev/cdrom, «boot» в d, «sdl» в 1, «vnc» в и «vncviewer» в . Удалите любые символы # из начала этих строк.

  • Создайте виртуальный жесткий диск

Отведите вашей системе XP пространство на диске, переключившись в каталог /etc/xen/images и выполнив команду dd if=/dev/zero of=winxp.img bs=1k seek=4096k count=1. Она создаст виртуальный диск размером 4 ГБ, который можно будет смонтировать как loopback-устройство внутри Xen.

Теперь выполните команду xm create winxp.hvm из каталога /etc/xen, и – если все будет нормально – появится окно с запущенным инсталлятором Windows. Будьте осторожны: этот шаг самый рискованный из всех; рекомендуем сперва выполнить команду sync и убедиться, что буфер вашей файловой системы очищен [также подразумевается, что установочный диск Windows XP вставлен в CD-ROM, – прим. ред.].

Выявление неисправностей

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

Проблема Решение
Система зависает Достаточно ли свободной памяти, чтобы создать виртуальную
«Имя ВМ уже использовано» Каждая ВМ должна иметь уникальное имя в своем конфигурационном файле.
XP не загружается Убедитесь, что «boot» в конфигурационном файле установлен в «d».
Графика повреждена Установите «stdvga» в 1 в конфигурационном файле. Когда XP установится, вы можете снова поменять его на 0.
Гостевая ОС не может прочитать более 4 ГБ памяти Установите «pae» в 1 в конфигурационном файле.
«Платформа не поддерживает HVM» Ваш чип с функцией VT/SVM? Эта функция запрещена в вашем BIOS? Заметьте: когда изменяется эта опция BIOS, вам нужно полностью отключить питание системы.

Обратите внимание

Windows XP на Xen работает, только если ваш процессор входит в следующий список:

  • Core Duo
  • Core 2 Duo
  • Pentium Extreme Edition 955/965
  • Pentium D 920/930/940/950/960
  • Xeon 5030/5050/5060/5063/5080/5160/7020/7030/7040/7041
  • AM2-based Athlon 64s
  • AM2-based Athlon 64 X2s
  • Athlon 64 FX-62

Имеете ОЗУ больше 4 ГБ?

Если ваша машина имеет более 4 ГБ памяти, вы, вероятно, уже используете Linux-ядро с PAE (Physical Address Extension). Некоторые дистрибутивы именуют такие ядра по типу linux-kernel-pae или kernel-bigsmp. Устанавливая свое ядро Xen, используйте также и ядро PAE Xen, иначе ваши гостевые системы в Xen не смогут получить доступ более чем к 4 ГБ ОЗУ.

Насколько быстра аппаратная виртуализация?

Получить графики испытаний аппаратной виртуализации – задача не простая: фактически, потребовалось две недели на установку, настройку, переустановку, копирование и тестирование на обеих наших машинах, чтобы получить то, что мы считаем окончательными результатами. Кроме того, не забывайте, что реально мы можем сравнивать только Intel с Intel, а AMD — с AMD, поскольку эквивалента AMD64 для поддерживающего VT чипа Xeon пока нету. Более того, большинство этих тестов автоматически получают преимущества от дополнительных ядер там, где они доступны, так что баллы Intel будут с учетом четырех ядер по сравнению с двумя ядрами Athlon 64.

Мы провели в общей сложности восемь тестов, используя шесть сценариев и две машины. Каждый тест на каждой машине запускался на «родной» ОС, в гостевом домене Xen (xenU) и внутри виртуальной машины VMware. Поскольку нас особенно интересовала аппаратная виртуализация для этих функций, большинство тестов использовало Windows XP в качестве гостевой ОС, за исключением теста кодирования Ogg: тут использовалась SUSE 10.1.

Помимо установки монитора виртуальной машины и гостевой ОС, выполнялась небольшая дальнейшая настройка системы. Как для VMware, так и для Xen выделялся одинаковые объем ОЗУ и место на диске для работы, и от обоих требовалось предоставить виртуальную сетевую карту; обоим дана свобода управлять процессорами как они сочтут нужным. Одно небольшое исключение было сделано для Xen, запускаемого на машине Intel, поскольку Intel VT, похоже, имеет проблемы с чипсетом Cirrus Logic, эмулируемым Xen (см. врезку «Заставь работать VT-графику»).

Интерпретация результатов

Наших тесты обнаружили, что реализация VT от Intel в паре с Xen вызывала искажение графики и даже падения, когда выполнялась загрузка с CD. Если вы столкнетесь с такой же проблемой, решением будет редактирование файла конфигурации вашей ВМ: измените строку «stdvga» на значение «1», чтобы принудительно включить стандартный низкоцветный режим VGA. Как только ваша гостевая ОС установится и будет настроена, вы можете изменить stdvga снова на , для возврата к эмуляции графической системы Cirrus Logic.

Сравнивать «чистый» Intel с «чистым» AMD несправедливо: чип Intel имеет в два раза больше ядер и в восемь раз больше ОЗУ. Но мы можем рассмотреть различие в скорости между чипами Intel и AMD, когда они работают виртуально. Средняя скорость чипа Intel, управляемого гостевой ОС через Xen, составила 43,7% от «чистого», по сравнению с 45,5% на VMware. На AMD результаты поднялись до 63,6% для Xen и 73% для VMware.

Это отчасти объясняется интегрированным в AMD контроллером памяти: тогда нужно программно реализовывать одним устройством меньше. Но другой фактор, заслуживающий внимания – тот, что тесты используют конфигурацию «из коробки», и оба приложения управляют ресурсами гостевых ОС в свободном полете. В случае с Xen вы можете, например, отдать виртуальной гостевой ОС весь процессор, и многопоточным тестам будет куда вольготнее.

Тесты

Вердикт Это одна из областей, где Xen должен быть на коне: была бы производительность процессора высока, а Xen просто работает как тонкая прослойка между гостевой ОС и хостом.

Вердикт Неудача постигла VT от Intel, разница в скорости по сравнению с «чистым» оборудованием – почти вдвое. На AMD разница минимальна. Только VMware хорошо держит темп на обеих платформах.

Вердикт Xen на Intel дает менее 33% от скорости чистого оборудования Intel, в основном из-за слабой эмуляции графики. AMD справился с тестом лучше, благодаря виртуализованному контроллеру памяти.

Вердикт Запускаясь в первый раз, ОpenOffice.org 2.0 буквально истязает жесткий диск, но VMware и здесь умудряется вывернуться с очень приличным результатом.

Вердикт Чистый Intel властвует в этойкатегории, но при виртуализации заметно резкое падение. Для сравнения, AMD при виртуализации замедляется не более чем на 50%.

Вердикт Чип Intel превосходен при работе с «чистой» ОС, но отстает на виртуальных машинах. Результаты AMD близки к его результатам Dhrystone, лишь с небольшим отставанием.

Вердикт Новое серверное ядро Woodcrest от Intel вызывающе быстро, но плохо уживается с виртуализацией. У AMD падение куда менее драматичное. Самые лучшие показатели здесь у VMware.

Вердикт AMD не намного обошел Intel в «чистом» режиме, но «сокрушил» его как под Xen, так и под VMware. Опять-таки, аппаратная виртуализация контроллера памяти – существенное отличие.

Лучше не бывает?

Увлекательные сами по себе, наши диаграммы показывают, что неоптимизированная аппаратная виртуализация в ряде тестов отстает от ОС, запущенных в «чистом» виде. Конечно, теперь можно запустить любую ОС поверх другой ОС, но для первой попытки, производительность здесь еще недостаточная. Можно достичь хорошей скорости, вручную подстроив виртуальные машины и отведя им процессорные ядра, но это довольно утомительно — особенно сейчас, когда многоядерные архитектуры скорее стандарт, чем исключение. Вдобавок ручная оптимизация лишает виртуальную инфраструктуру свойственной ей гибкости. Поскольку Xen и VMware расширили свою поддержку для VT и SVM, в частности, для лучшей обработки многоядерных сценариев, мы надеемся, что наши цифры немного поднимутся, но в конечном итоге для достижения полноскоростной виртуализации нужно реформировать оборудование.

Как мы видели, виртуализуемый контроллер памяти – огромное подспорье для AMD, поскольку программно требуется эмулировать на одну вещь меньше. Виртуализация высокоскоростных устройств — ключ к снижению общей латентности системы, и неудивительно, что Intel уже работает над следующей версией VT, где появится штука, называемая Directed IO и разработанная, чтобы поддержать аппаратную виртуализацию мириадов наших обычных устройств ввода-вывода – клавиатуры, мыши и устройств USB.

При наличии поддержки аппаратной виртуализации ввода-вывода останется решить только одну проблему: нужна виртуальная графическая система, способная обеспечить гостевым машинам приличное ускорение графики. Сейчас большинство гостевых ОС привязаны к эмуляции графического уровня Cirrus Logic, которая ощутимо тормозила наши тесты по части графики. При такой слабой 2D-графике безнадежно запускать на гостевой ОС графически богатые приложения, так что трехмерное моделирование, игры и даже окружение рабочего стола уровня 2.5D/3D, например, Xgl и Windows Vista, не поддерживаются.

Пока Intel работает над следующим поколением VT, инновации происходят и в программном обеспечении, которое обеспечивает прогресс виртуализации. Xen 3.0 принес с собой огромные улучшения, включая поддержку VT и SVM, что позволило нам написать эту статью. Он также ввел приличную поддержку SMP, большую производительность памяти и порт для Itanium. Но есть кое-какие интересные вещи, все еще находящиеся на стадии разработки, которые могут увидеть свет в следующем крупном релизе Xen.

Большие скачки ПО

Список интересных новых функций возглавляет виртуализованная графическая подсистема, использующая ПО, а не оборудование. Чтобы обеспечить базовое ускорение графики, используются разделяемые буферы кадров, и есть шансы, что мы увидим даже виртуализованный OpenGL, доступный современным трехмерным графическим интерфейсам. Другая область, где, похоже, разра ботки ведутся интенсивно – качество обслуживания: разработчики Xen хотят, чтобы виртуальные машины сами балансировали себя на доступных процессорах, а также эффективнее использовали ОЗУ.

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

Следующий шаг

Возможно, самые значительные новые разработки имеют место в ядре Linux, а не в самом Xen. Xen очень близко подошел к слиянию с основным ядром, которое сделало бы Xen доступным в каждом дистрибутиве как стандарт. Сейчас дистрибутивы, поставляющие Xen – например, Red Hat и SUSE – должны включать его в свои ядра. Но планируется создание независимого от поставщиков интерфейса к виртуализации ядра, тогда Xen, VMware и вообще любой разработчик виртуализации смогут включить свою систему в ядро Linux. Чтобы это сработало, потребуется некоторая степень согласования между Xen и VMware, и обе команды близки к этому. Их конечные цели совпадают, как во многом совпадают и их коды, но потребуется некоторая работа, чтобы завершить объединение оставшихся 25% или около того, пока не будет готово совместное решение.

Пока не планируется вводить совместимость виртуальных машин VMware и Xen, что явилось бы логичным следующим шагом. Сейчас формат ВМ, используемый Xen, полностью отличается от используемого в VMware, то есть виртуальную машину, созданную в одном приложении, нельзя запросто использовать в другом.

Xen уже включен как стандарт в SUSE 10.1 и Fedora Core 5, и, вероятно, сейчас будет включаться и в другие дистрибутивы: Xen 3.0 достаточно стабилен, чтобы считаться свободным от ошибок. Марк Шаттлворт сказал, что он хочет видеть ряд захватывающих функций в следующем релизе Ubuntu, и мы думаем, что можно держать пари – Xen будет одной из них. Вдобавок и SUSE, и Red Hat обдумывают идею сделать Xen доступным по умолчанию в своих дистрибутивах, это даст возможность за пять минут устанавливать новые гостевые домены, поскольку машина уже будет виртуализована. Поскольку основной домен Xen (известный как Xen0) имеет больше привилегий по управлению оборудованием, расплачиваться за это скоростью практически не придется – и это действительно очень заманчивая перспектива.

Как только аппаратная виртуализация сумеет превысить 90% производительности по сравнению с «чистым железом» без ручной подстройки файлов конфигурации, уклоняться от виртуализации станет практически незачем. Установка ВМ для базы данных и ВМ для web-сервера на одном и том же оборудовании и передача динамического назначения требуемых процессоров и памяти на откуп Xen или VMware будет способствовать значительной экономии – и в серверном зале, и дома. Вам больше не понадобится машина для Linux, машина для OS X и машина для Windows, и использование сервера на 25% не будет больше считаться средним значением. Вместо этого мы сможем разместить все наши операционные системы на одном центральном компьютере дома и получать доступ к нашему рабочему столу в любом месте, где есть сетевое подключение. Обещания VT и SVM станут реальностью – в смысле, виртуальной реальностью. LXF

Как добиться максимальной производительности

Как мы видим, и Xen, и VMware борются за достижение максимальной производительности, когда работают на нескольких ядрах, но если вы готовы пожертвовать некоторой гибкостью, вы можете достичь максимума, вручную настроив ваши ВМ. Самое простое, что можно сделать – найти настройку vcpus в файле конфигурации Xen и изменить ее так, чтобы она соответствовала общему числу ядер на вашей системе. Если у вас машина с поддержкой HyperThreading, вам, возможно, захочется ради эксперимента удвоить число vcpus и выяснить, поможет тут HT или нет.

Итак, на одноядерном Athlon 64 установите vcpus в 1, а на двухядерном, двухпроцессорном поддерживающем HyperThreading Xeon начните с четырех vcups и затем попробуйте перейти на восемь, чтобы посмотреть, будет ли заметно повышение производительности. Заметьте, что HyperThreading обновилась с SSE3 («Новые инструкции Prescott»). Раньше некоторые приложения шли с HT быстрее, а некоторые – медленнее, но после обновления набора команд скорость в худшем случае просто не изменится.

А как же Qemu?

Qemu – превосходная и давно известная программа эмуляции, которая позволяет запускать Windows (или любую другую ОС) внутри виртуальной машины. Несколько лет она являлась приложением с открытым кодом, но поскольку она только эмулирует операционные системы (т.е. транслирует их программно), а не виртуализует их (т.е. запускает их на самом чипе), она всегда работала довольно медленно. Однако ее создатель реализовал модуль виртуализации, позволивший Qemu работать гораздо быстрее – с оговоркой, что это модуль закрытый.

Если вас не волнует моральное падение по отношению к свободному ПО, Qemu с бесплатным акселератором работает гораздо быстрее. Мы хотели было включить Qemu в наше тестирование, но уж очень странные вышли результаты (невозможные или маловероятные цифры). Тем не менее Qemu работает, причем неплохо. Например, Xen вовсю использует Qemu в режиме аппаратной виртуализации, потому что эмуляция устройств определенно реализована в нем лучше, чем где-либо.

KVM или Xen — сравнение гипервизоров

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

Гипервизор KVM

Он дает возможность осуществлять виртуализацию на серверах с операционной системой Linux. Однозначным плюсом является то, что данный гипервизор входит в состав ядра Linux, поэтому он постоянно совершенствуется и обновляется. Использовать его можно только в случае аппаратной виртуализации – с помощью процессоров Intel или Amd. Процессорный модуль KVM дает ему возможность осуществлять доступ непосредственно к ядру. Благодаря этому можно напрямую управлять файлами виртуальных машин и образами дисков. Для каждой ВМ предназначено индивидуальное пространство.

Гипервизор Xen

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

Код этого гипервизора не перегружен лишними функциями. Он оснащен возможностями управления ОЗУ, частотой работы процессора, работы c прямым доступом к памяти, а также таймером. Все остальные функции выполняют подключенные к работе в данный момент ВМ. Перечисленные преимущества делают работу с Xen простой и удобной даже для человека, познания которого не очень глубоки в данной сфере.

Исследование

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

Уточним, что мнения о том, что выбранный нами дистрибутив для ОС – Fedora 20 от Red Hat – лучше подходит для KVM не совсем верны. Мы не рассматриваем борьбу ВМ за ресурсы процессора во время одновременной работы, так как при разной степени конкуренции гипервизоры могут показывать разную производительность. Поэтому мы считаем условия соревнования честными для обеих сторон.

Результаты

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

Первый кандидат – KVM показал производительность в среднем на полтора процента ниже производительности железа. В тесте на 7-ZIP данный гипервизор оказался почти на 3 процента медленнее, а в тесте на PostMark на целых 4 с лишним процента быстрее железа. Результаты Xen оказались хуже, он не превзошел своего конкурента ни в одном из тестов, отстав от железа на 2.5 процента в трех тестах, а в остальных показал себя еще хуже. Самое сильное отклонение выявилось, как и у KVM – в тесте на PostMark, но Xen не обогнал железо, как его конкурент, а отстал практически на 15 процентов. Повторные результаты теста отклонились от предыдущих не более, чем на 2 процента. Более подробно с результатами тестирования вы можете ознакомиться в таблице:

KVM всегда показывал себя медленнее железа примерно на 2 процента, но не более того. Xen же уступал железу на 2.5-7 процентов в большинстве из тестов. Хорошие результаты KVM в тесте на PostMark могут быть не совсем точными про причине недостаточного количества проведенных тестов. Чтобы принять правильное решение в выборе теста гипервизора, изучите характер нагрузок своего сайта. При необходимости проведите больше тестов для получения более точных результатов.

Наша компания, имея свои VPS серверы на базе KVM, выбирает именно этот гипервизор из-за преимуществ, которые он обеспечивает. К ним можно отнести тот факт, что KVM жестко делит ОЗУ и дисковое пространство. Это не позволяет ресурсам быть переданными другим пользователям (не допускается оверселлинг).

Лучшие дистрибутивы Linux для программистов в 2020 году

Более популярные версии Linux, такие, как Ubuntu, фокусируются на том, чтобы улучшать опыт пользователя, автоматически обновляя пакеты и предоставляя
ресурсоемкие версии ОС с графическим интерфейсом.

В этом руководстве мы расскажем о дистрибутивах ОС, которые программисты могут кастомизировать под себя.

Из статьи вы узнаете:

Arch Linux

Arch Linux предоставляет большой функционал для кастомизации во время установки. Это позволяет вам загружать и устанавливать нужные пакеты.

Этот дистрибутив не для новичков. Вы можете установить минимальный набор программ на машину, используя Arch Build System и Arch User Repository. Это снижает риск того, что какое-то приложение вмешается в ваш код.

Debian

Debian — один из самых старых и стабильных дистрибутивов Linux. Все программы, включенные в Debian, должны соответствовать стандартам бесплатного ПО Debian.

Пакеты аккуратно выбираются и тестируются в ветке Stable Debian. Это значит, что даже если некоторые из них устаревшие, они точно стабильные. Это идеальная ОС для программистов.

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

Raspbian

Raspbian — дефолтная ОС, которая включена в Raspberry Pi. Так как Pi был разработан как образовательный инструмент, Raspbian — отличная ОС для тех, кто хочет начать писать код.

На сайте Raspberry Pi выложено много руководств о том, как использовать визуальный инструмент программирования Scratch. Его используют, чтобы создавать анимацию и игры. Есть также отличный раздел о том, как начать работать с Python.

Более молодые программисты могут начать изучать язык программирования для Minecraft Pi. Это мини-версия очень популярной игры в песочнице.

Gentoo

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

У Gentoo есть своя вики, в которой вы найдете много полезной информации — включая Gentoo Handbook.

Ubuntu

В отличие от голых дистрибутивов таких, как Arch Linux и Gentoo, Ubuntu — идеальная ОС для начинающих. У нее есть десктопный интерфейс, и она автоматически обновляется.

Ubuntu теперь поддерживает формат упаковки приложений snaps с помощью инструмента Snapcraft. Он позволяет писать приложения на языке программирования, который вам подходит, и упаковать их со всеми необходимыми зависимостями. За более подробной информацией заходите на портал Ubuntu Developer.

Fedora

Fedora — производный дистрибутив от Red Hat Linux. Кроме того, что его очень легко настраивать и устанавливать, у Fedora также есть отдельный Developer Portal. Нажмите на “Start a Project”, чтобы посмотреть руководства по программированию, командной строке, десктопным и мобильным приложениям.

Репозитории Fedora также включают Eclipse, полнофункциональную и мультиязычную внутреннюю среду разработки. Eclipse прежде всего известен Java, но он также подходит для разработки на C/C++ и PHP. Вы также можете расширять функционал Eclipse с помощью плагинов.

OpenSUSE

OpenSUSE — дистрибутив, специально разработанный для разработчиков ПО и системных администраторов. Его легко устанавливать и настраивать благодаря интегрированному инструменту YaST. Этот инструмент позволяет устанавливать все нужные программистам ‘-devel’ пакеты в один клик.

OpenSUSE поставляется предустановленным — в него включены все базовые инструменты, которые могут понадобиться программистам. Это текстовые редакторы Vim и Emacs, такие автоматизированные инструменты, как CMake и упаковывающие инструменты, как, например, RPM. ОС также включает OBS — инструмент, с помощью которого программисты создают ПО для разных дистрибутивов и платформ.

CentOS

Как и Fedora, CentOS — бесплатный вариант коммерческой версии Linux Red Hat.
CentOS — очень стабильная система.

Репозиторий CentOS включает Developer Toolset, который предоставляет набор основных инструментов программирования.

Для программистов есть платформа с XEN-виртуализацией. С помощью нее можно структурировать проекты и безопасно запускать приложения внутри виртуальной машины. Вы можете найти инструкции о том, как это делать, и другие полезные лайфхаки для программистов в вики CentOS.

Solus

Solus — дистрибутив Linux уникальный тем, что он основывается на модели контролируемого плавающего релиза. Это значит, что после того, как вы устанавливаете ОС, вы можете продолжать устанавливать отдельные обновления для нее вместо того, чтобы обновлять ОС полностью. Solus старается не устанавливать новейшие пакеты и ПО в стадии бета, чтобы поддерживать стабильность системы.

Solus поддерживает несколько редакторов и внутренних сред разработки, — такие, как Atom, Idea и Gnome Builder, а также Git GU и GitKraken. На сайте Solus говорится, что ОС поддерживает множество языков программирования — например, Go, Rust, PHP, Node.js и Ruby.

Puppy Linux

Puppy Linux — очень легкий дистрибутив на Ubuntu или Slackware. Вся ОС весит около 330 МБ. Это значит, что она может полностью запускаться в RAM и устанавливаться на обычный жесткий диск. В нее входит минимальное количество пакетов, куда вы можете добавить свои — например, пакеты ‘devx’, в которые входят различные инструменты программирования.

В вики Puppy Linux подробно описываются языки программирования, которые поддерживает ОС. Один из примечательных языков — BaCon, который может превращать код, написанный на BASIC, в C. В вики также есть подборка инструкций о том, как писать скрипты Bash и начать писать на Python.

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

Допустим ты молодой, но всё ещё бедный студент, А значит из всех возможных платформ ты имеешь лишь ПК на Windows и PS4. В один прекрасный день ты решаешься взяться за ум и стать программистом, но мудрые люди в интернете сообщили тебе, что нормальным инженером без Linux не стать. Установить Fedora своей основной и единственной системой ты не можешь, потому что Windows всё ещё нужен для игр и вконтактика, а установить Linux второй системой на жёсткий диск тебе мешает страх или отсутствие опыта.

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

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

А, может, ты и вовсе архитектор, который спроектировал новую сложную систему для обработки бизнес аналитики. В систему твою входят такие вещи, как ElasticSearch, Kafka, Spark и много чего ещё, и каждый компонент должен жить отдельно, настраиваться по уму и общаться с другими компонентами. Как хороший инженер, ты понимаешь, что недостаточно просто установить весь этот зоопарк прямо себе на систему. Нужно попробовать развернуть максимально близкое к будущему production окружение, и желательно так, чтобы твои наработки потом бесшовно заработали на production серверах.

И что же делать во всех этих непростых ситуациях? Правильно: использовать виртуализацию.

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

Немного истории. Первые технологии виртуализации появились аж в 60-ых годах, однако настоящая нужда в них появилась только в 90-ых, по мере всё большего роста количества серверов. Именно тогда возникла проблема эффективной утилизации всех железок, а также оптимизации процессов обновления, развёртывания приложений, обеспечения безопасности и восстановления систем в случае какой-нибудь катастрофы.

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

Подходы к виртуализации

Независимо от подхода и технологии, при использовании виртуализации всегда существует host-машина и установленный на ней гипервизор, управляющий guest-машинами.

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

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

Существует три способа взаимодействия виртуальных машин с железом:

Динамическая трансляция

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

Паравиртуализация

В случае с паравиртуализацией исходный код гостевой ОС специально изменяется так, чтобы все инструкции выполнялись максимально эффективно и безопасно. При этом виртуалка всегда в курсе, что она — виртуалка. Из плюсов — улучшенная производительность. Из минусов — таким образом нельзя виртуализовать, например, MacOS или Windows, или любой другую ОС, к исходникам которой нет доступа. Паравиртуализация в той или иной форме используется, например, в Xen и KVM.

Аппаратная виртуализация

Разработчики процессоров вовремя осознали, что архитектура x86 плохо подходит для виртуализации, так как изначально была заточена под одну ОС за раз. Поэтому, уже после того как появились динамическая трансляция от VMWare и паравиртуализация от Xen, Intel и AMD начали выпускать процессоры с аппаратной поддержкой виртуализации.

Особого прироста производительности это поначалу не дало,так как главным фокусом первых релизов было улучшение архитектуры процессоров. Однако, теперь, спустя больше 10 лет после появления Intel VT-x и AMD-V, аппаратная виртуализация ничем не уступает и даже в чём-то превосходит другие решения.

Аппаратную виртуализацию использует и требует KVM (Kernel-based Virtual Machine), которую мы и будем использовать в дальнейшем.

Kernel-based Virtual Machine

KVM — это решение для виртуализации, встроенное прямо в ядро Linux, не уступающее остальным решениям в функциональности и превосходящее их в удобстве использования. Более того, KVM — open source технология, которую, тем не менее, на всех парах двигает вперёд (как в плане написания кода, так и в плане маркетинга) и внедряет в свои продукты Red Hat.

Это, кстати, одна из многих причин, почему мы настаиваем на Red Hat дистрибутивах.

Создатели KVM изначально сфокусировались на поддержке аппаратной виртуализации и не стали переизобретать многие вещи. Гипервизор, по сути, это маленькая операционная система, которая должна уметь работать с памятью, с сетью и т.п. Linux уже отлично умеет всё это делать, поэтому использование ядра Linux в качестве гипервизора — логичное и красивое техническое решение. Каждая виртуальная машина KVM —это всего лишь отдельный Linux процесс, безопасность обеспечивается при помощи SELinux/sVirt, ресурсы управляются при помощи CGroups.

Мы ещё поговорим о SELinux и CGroups в другой статье, не пугайся, если не знаешь таких слов.

KVM не просто работает как часть ядра Linux: начиная с версии ядра 2.6.20 KVM является основной составляющей Linux. Иными словами, если у вас стоит Linux, то у вас уже есть KVM. Удобно, правда?

Стоит сказать, что в сфере публичных облачных платформ Xen доминирует чуть больше, чем полностью. Например, AWS EC2 и Rackspace используют именно Xen. Обусловлено это тем, что Xen появился раньше всех и первый достиг достаточного уровня производительности. Но есть и хорошие новости: в ноябре 2020 AWS анонсировали новый основанный на KVM гипервизор, который постепенно заменит Xen для крупнейшего облачного провайдера.

Несмотря на то, что KVM использует аппаратную виртуализацию, для некоторых драйверов I/O устройств KVM может использовать паравиртуализацию, что обеспечивает прирост производительности для определённых сценариев использования.

libvirt

Мы уже почти дошли до практической части статьи, осталось только рассмотреть ещё один open source инструмент: libvirt.

libvirt — это набор инструментов, предоставляющий единый API к множеству различных технологий виртуализации. Используя libvirt вам впринципе без разницы, что там за “бакенд”: Xen, KVM, VirtualBox или что-то ещё. Более того, можно использовать libvirt внутри Ruby (а ещё Python, C++ и много чего ещё) программ. Ещё можно удалённо по защищённым каналам подключаться к виртуальным машинам.

Разработкой libvirt, кстати, занимается Red Hat. Ты уже установил себе Fedora Workstation основной системой?

Создадим виртуалку

libvirt — это просто API, а вот как с ним взаимодействовать решать пользователю. Вариантов куча. Мы воспользуемся несколькими стандартными утилитами. Напоминаем: мы настаиваем на использовании Red Hat дистрибутивов (CentOS, Fedora, RHEL) и команды ниже были протестированы именно на одной из этих систем. Для других дистрибутивов Linux возможны небольшие отличия.

Сначала проверим, поддерживается ли аппаратная виртуализация. На самом деле, работать будет и без её поддержки, только гораздо медленнее.

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

Возможна ситуация, что аппаратная виртуализация выключена в BIOS. Поэтому если модули kvm_intel/kvm_amd не подгружаются, то проверь настройки BIOS.

Теперь установим необходимые пакеты. Проще всего сделать это, установив сразу группу пакетов:

Список групп зависит от используемой ОС. У меня группа называлась Virtualization. Для управления виртуальными машинами из командой строки используется утилита virsh . Проверь, есть ли у тебя хотя бы одна виртуалка командой virsh list . Скорее всего нет.

Если не нравится командная строка, то ещё есть virt-manager — весьма удобный GUI для виртуалок.

virsh умеет создавать виртуалки только из XML файлов, формат которых можно изучить в документации libvirt. К счастью, ещё есть virt-manager и команда virt-install . С GUI ты и сам разберёшься, а вот пример использования virt-install :

Вместо указания размера диска, можно создать его заранее через virt-manager, или через virsh и XML файл. Я использовал выше образ с Centos 7 minimal, который легко найти на сайте Centos.

Теперь остаётся один важный вопрос: как подсоединиться к созданной машине? Проще всего это сделать через virt-manager — достаточно дважды кликнуть по созданной машине и откроется окно с SPICE соединением. Там тебя ждёт экран установки ОС.

Кстати, KVM умеет nested virtualization: виртуалки внутри виртуалку. We need to go deeper!

После того, как ты установишь ОС вручную, ты сразу задашься вопросом, как этот процесс можно автоматизировать. Для этого нам понадобится утилита под названием Kickstart, предназначенная для автоматической первичной настройки ОС. Это простой текстовый файлик, в котором можно указать конфигурацию ОС, вплоть до различных скриптов, выполняемых уже после установки.

Но где взять такой файл? Не писать же его с нуля? Разумеется, нет: так как мы уже установили внутри нашей виртуалки Centos 7, то нам нужно просто подсоединиться к ней и найти файл /root/anaconda-ks.cfg — это Kickstart конфиг для того, чтобы создать копию уже созданной ОС. Нужно просто скопировать его и отредактировать содержимое.

Но просто скопировать файл скучно, поэтому мы добавим в него ещё кое-что. Дело в том, что по умолчанию у нас не получится подсоединиться к консоли созданной виртуалки из командой строки host-машины. Чтобы сделать это, нужно отредактировать конфиг загрузчика GRUB. Поэтому в самый конец Kickstart файла добавим следующую секцию:

%post , как не сложно догадаться, выполнится после установки ОС. Команда grubby обновит конфиг GRUB, добавив возможность подключаться к консоли.

Кстати, ещё можно указать возможность подключения через консоль прямо во время создания виртуалки. Для этого в команду virt-install нужно передать ещё один аргумент: —extra-args=»console=ttyS0″ . После этого можно устанавливать саму ОС в интерактивном текстовом режиме из терминала твоей host машины, подключившись к виртуалке через virsh console сразу после её создания. Это особенно удобно, когда создаёшь виртуалки на железном удалённом сервере.

Теперь можно применить созданный конфиг! virt-install позволяет при создании виртуалки передавать дополнительные аргументы, в том числе путь к Kickstart файлу.

После того, как вторая виртуалка будет создана (полностью автоматически), ты сможешь подключиться к ней из командой строки командой virsh console vm_id . vm_id можно узнать из списка всех виртуалок командой virsh list .

Одно из преимуществ использования KVM/libvirt — потрясающая документация, в том числе создаваемая компанией Red Hat. Дорогому читателю предлагается с должной любознательностью изучить её.

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

Что дальше?

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

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

Каким бы мощным и богатым на сервисы не был AWS, его основа — это виртуальные машины поверх Xen. Каждый раз, когда ты создаёшь новый дроплет на DigitalOcean, ты создаёшь виртуалку. Практически все сайты, которыми ты пользуешься, размещены на виртуальных машинах. Простота и гибкость виртуалок позволяет не только строить production-системы, но и в десятки раз облегчает локальную разработку и тестирование, особенно когда в системе задействовано множество компонентов.

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

Дополнительное чтение

Мы рассказываем, как стать более лучшим разработчиком, как поддерживать и эффективно применять свои навыки. Информация о вакансиях и акциях эксклюзивно для более чем 8000 подписчиков. Присоединяйся!

Русский Xen FAQ

Появился полный перевод на русский язык FAQ по Xen. FAQ дополнен ссылками на русскоязычные ресурсы.

Re: Русский Xen FAQ

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

Re: Русский Xen FAQ

ну так не прошло и полгода. лет эдак через пять переведут как запустить хена

Re: Русский Xen FAQ

Пользую VmWare и думаю- зачем люди ерундой страдают.

Re: Русский Xen FAQ

Re: Русский Xen FAQ

> Пользую VmWare и думаю- зачем люди ерундой страдают.

Re: Русский Xen FAQ

пользую VirtualBox и думаю — а на кой вмваря вообще впала?

Re: Русский Xen FAQ

> пользую VirtualBox и думаю — а на кой вмваря вообще впала?

Увы, но до VMware ему еще очень далеко. Пока в плюсах у VirtualBox только лицензия и менеджер дисков. А качество эмуляции у VirtualBox хреновое.

Re: Русский Xen FAQ

мне хватает, чтобы вмварю не использовать 😉

Re: Вопросы и ответы по Xen на русском

Увы, из всех трех переводов (обсуждаемая тема и два приведенных) относительно удобоварим только второй. Топик заслэнгован и напичкан непереведенными словами до такой степени, что сомневаешься, понял ли его сам переводчик. Второй (первая ссылка) не без досадных ляпов (бессмысленное «ISP-сервер» вместо «сервера провайдера (поставщика услуг) Интернета»), но в целом понятно. В третьем переводчик не в курсе, что «spoofing» — это «подмена» (у Микрософта почему-то «подделка» 🙂 ), а «ARP spoofing» — это «подмена в ARP».

Re: Русский Xen FAQ

>Пользую VmWare и думаю- зачем люди ерундой страдают.
Вот когда научится vmware с блочными устройствами (типа lvm томов например) напрямую работать, когда появится полноценная поддержка 64 бит, возможность передачи pci устройства гостевой системе, когда в конце концов тормозить не будет — тогда и возможно станет конкурентом xen’у. И не следует забывать сколько vmware стоит. Вдобавок бесплатные player и vmware-server сознательно урезаны в угоду платным версиям.
В общем вылазь из танка и смотри по сторонам — vmware отстал от бесплатных аналогов по своему функционалу.

Re: Русский Xen FAQ

зато виртуальные машины можно переносить между виндовыми и линуксовыми хостами, что очень удобно лично для меня, это первое. второе: vmware вроде как сетевую инфраструктуру эмулирует, а не все железо

Re: Русский Xen FAQ

Ура! Дорогу Зену! 🙂

Еще с 6-й Федоры провожу эксперименты внутри виртуальных xen-машин, все работает как надо. Вот только с документацией на версию 3 беда какая-то. Все приходится в гугле искать, да и ссылки все больше на форумы выпадают.

А тут по третьей версии. Да на русском! СПАСИБО за новость!

nhc_it

IT для начинающих

Добавлю немного нердности:
> «Мне не удалось его скачать даже не помню почему»
no comments 🙂
Даже если бы и скачал, вряд ли бы стал пользовать в своих нуждах: в бесплатной версии ESXi настолько урезан, что даже консоль не увидишь — только удаленное управление и всюду одни ограничения. Несерьезно даже для бесплатного решения.
> «Microsoft стоит денег.. отпадает»
Microsoft Hyper-V Server 2008 (в core-варианте) абсолютно бесплатен и даже во второй своей редакции поддерживает Live Migration. Почитай Бешкова на эту тему.
> «готовое (к тому же бесплатное) решение от Citrix. «
Не скажу, что бесплатное. В базовой версии — да. Без High Availability и прочих плюшек, входящих в Essentials.

Лично я в своем выборе опирался на конкретные факты, а именно — показатели производительности гостевых ВМ.
Hyper-V в первой своей редакции показал неплохие результаты, но XenServer от Citrix’a опередил его процентов на 15-20, особенно в части работы с дисковой подсистемой.

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

В остальном, деликатно отмолчусь, ибо просили «Ногами не бить» 🙂

Русский Xen FAQ

Появился полный перевод на русский язык FAQ по Xen. FAQ дополнен ссылками на русскоязычные ресурсы.

Re: Русский Xen FAQ

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

Re: Русский Xen FAQ

ну так не прошло и полгода. лет эдак через пять переведут как запустить хена

Re: Русский Xen FAQ

Пользую VmWare и думаю- зачем люди ерундой страдают.

Re: Русский Xen FAQ

Re: Русский Xen FAQ

> Пользую VmWare и думаю- зачем люди ерундой страдают.

Re: Русский Xen FAQ

пользую VirtualBox и думаю — а на кой вмваря вообще впала?

Re: Русский Xen FAQ

> пользую VirtualBox и думаю — а на кой вмваря вообще впала?

Увы, но до VMware ему еще очень далеко. Пока в плюсах у VirtualBox только лицензия и менеджер дисков. А качество эмуляции у VirtualBox хреновое.

Re: Русский Xen FAQ

мне хватает, чтобы вмварю не использовать 😉

Re: Вопросы и ответы по Xen на русском

Увы, из всех трех переводов (обсуждаемая тема и два приведенных) относительно удобоварим только второй. Топик заслэнгован и напичкан непереведенными словами до такой степени, что сомневаешься, понял ли его сам переводчик. Второй (первая ссылка) не без досадных ляпов (бессмысленное «ISP-сервер» вместо «сервера провайдера (поставщика услуг) Интернета»), но в целом понятно. В третьем переводчик не в курсе, что «spoofing» — это «подмена» (у Микрософта почему-то «подделка» 🙂 ), а «ARP spoofing» — это «подмена в ARP».

Re: Русский Xen FAQ

>Пользую VmWare и думаю- зачем люди ерундой страдают.
Вот когда научится vmware с блочными устройствами (типа lvm томов например) напрямую работать, когда появится полноценная поддержка 64 бит, возможность передачи pci устройства гостевой системе, когда в конце концов тормозить не будет — тогда и возможно станет конкурентом xen’у. И не следует забывать сколько vmware стоит. Вдобавок бесплатные player и vmware-server сознательно урезаны в угоду платным версиям.
В общем вылазь из танка и смотри по сторонам — vmware отстал от бесплатных аналогов по своему функционалу.

Re: Русский Xen FAQ

зато виртуальные машины можно переносить между виндовыми и линуксовыми хостами, что очень удобно лично для меня, это первое. второе: vmware вроде как сетевую инфраструктуру эмулирует, а не все железо

Re: Русский Xen FAQ

Ура! Дорогу Зену! 🙂

Еще с 6-й Федоры провожу эксперименты внутри виртуальных xen-машин, все работает как надо. Вот только с документацией на версию 3 беда какая-то. Все приходится в гугле искать, да и ссылки все больше на форумы выпадают.

А тут по третьей версии. Да на русском! СПАСИБО за новость!

Рубрика: Xen

Как определить версию Xen

KVM vs XEN

На текущий момент два основных гипервизора под Linux — Xen и KVM — примерно равны по функционалу и возможностям.

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

Заметил, что виртуальная машина, запущенной под KVM, создает значительно большую нагрузку на диск по сравнению с паравиртуализированной системой, запущенной под Xen.

Пока определил это «на глаз» — нужно будет дополнительно потестировать.

Citrix XenServer — установка по сети

Данная статья описывает, как можно осуществить установку Citrix XenServer на удаленный сервер, доступный по сети. В статье будет рассмотрен сервер Hetzner, однако изложенные рекомендации применимы для сервера в любом датацентре. Читать далее Citrix XenServer — установка по сети

Xen гипервизор

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

Xen способен запускать виртуальные машины как в режиме полной виртуализации, так и в режиме «пара-виртуализации».

Запускаемые Xen виртуальные машины называются «домены». Особенностью Xen является наличие домена dom0, который на самом деле управляет физическим сервером. Виртуальные машины запускаются в dom1, dom2 и так далее.

В статье описан запуск Xen на базе дистрибутива Debian, а также создание и запуск виртуальных машин в паравиртуальном режиме и режиме полной виртуализации.
Читать далее Xen гипервизор

Мастер Йода рекомендует:  Введение в PHP5 PHP
Добавить комментарий