войти зарегистрироваться

Блог компании СелектелОб учёте процессорного времени в облаке

После запуска я получил много вопросов о том, как именно учитываются ресурсы в облаке. Некоторые интуитивно понимают, что такое «час процессорного времени» но есть и те, кто хочет подробного объяснения. Поскольку в общем анонсе подробные объяснения заняли бы много места, я вынес его в отдельный топик. Заодно, такой формат позволит более подробно описать, как Зен и виртуальные машины взаимодействуют. Уровень этого текста научно-популярный, то есть я не буду вдаваться в дебри кольцевых буферов, маскировки событий, «кредитного планировщика» и т.д., вместо этого я попробую рассказать относительно человеческим языком о том, как гипервизор управляет гостевыми машинами.


Что такое «процессорное время»? Сначала мы его хотели назвать более привычным «машинное время», благо, такой термин использовался во времена мейнфреймов, когда идея разделения машинного времени только-только зародилась, но вовремя остановились. Машинное время тех лет подразумевало все ресурсы, которые использовались машиной, а в нашем случае речь идёт именно о процессоре, так как каждый ограниченный ресурс учитывается раздельно.

Итак, что такое «процессорное время» и как может оказаться, что у одной виртуальной машины его насчитывается 4 часа в сутки, а у другой накручивает 30 «часов» за часов десять?

Облако Селектел работает под управлением Xen, точнее, Xen Cloud Platform, в котором гипервизором выступает Xen.

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

Как выглядит работа виртуальной машины?

ПрограммированиеОбзор LLVM

LLVM (Low Level Virtual Machine) — это универсальная система анализа, трансформации и оптимизации программ или, как её называют разработчики, «compiler infrastucture».

LLVM — не просто очередной академический проект. Его история началась в 2000 году в Университете Иллинойса, а теперь LLVM используют такие гиганты индустрии как Apple и Adobe. В частности, на LLVM основана подсистема OpenGL в MacOS X 10.5, а iPhone SDK использует GCC с бэкэндом на LLVM. Apple является одним из основных спонсоров проекта, а вдохновитель LLVM — Крис Латтнер — теперь работает в Apple.

В основе LLVM лежит промежуточное представление кода (intermediate representation, IR), над которым можно производить трансформации во время компиляции, компоновки (linking) и выполнения. Из этого представления генерируется оптимизированный машинный код для целого ряда платформ, как статически, так и динамически (JIT-компиляция). LLVM поддерживает генерацию кода для x86, x86-64, ARM, PowerPC, SPARC, MIPS, IA-64, Alpha.

LLVM написана на C++ и портирована на большинство *nix-систем и Windows. Система имеет модульную структуру и может расширяться дополнительными алгоритмами трансформации (compiler passes) и кодогенераторами для новых аппаратных платформ. Пользовательский фронтенд, как правило, линкуется с LLVM и использует C++ API для генерации кода и его преобразований. Однако LLVM включает в себя и standalone утилиты.

Для тех, кто не без оснований считает C++ не лучшим языком для написания компиляторов, с недавних пор в LLVM включена обертка API для OCaml.

Чтобы понять, что можно сделать с помощью LLVM, и на каком уровне придётся работать, давайте разберёмся,

СофтВиртуализованный рынок

Виртуализация, виртуализация, виртуализация. Это модное слово мелькает в новостных заголовках всех отраслевых и деловых изданий, вещается на всех конференциях для ИТ-профессионалов, становится идеей фикс для стратегов крупнейших корпораций. Те продукты и решения для виртуализации, которые раньше предлагались только их традиционным потребителям – хостинг-провайдерам и держателям огромных распределенных ЛВС – сейчас активно продвигаются в массы.

Накал страстей достиг уже такого критического уровня, когда о виртуализации вот-вот начнут говорить таксисты и девочки из отдела кадров. Microsoft, не скупясь ни на какие ресурсы, начала настоящую гонку вооружений с компаниями-конкурентами. Массированной маркетинговой атаке в поддержку ее Hyper-V противостоит контратака VMware с ее бесплатным ESXi Server.

Чтобы разобраться в потоке информации от Microsoft и, в меньшей степени, от VMware и других компаний, я взял несколько интервью и посетил прорву разъяснительных мероприятий, а Филипп Гладков (Bukasa) даже отправился на несколько дней в Барселону, на европейскую конференцию TechEd IT Professionals. Если виртуализация не касается вас напрямую, но как и мы, вы хотите понять кто есть кто в мире вокруг нее – мы делали это и для вас тоже.

Linux для всехRedHat теперь будет любить KVM, а не Xen

Пресс релиз. Ему всего месяц, почти свежак :)

Здесь еще немного подробностей, кому интересно.

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

MicrosoftВ VMware недовольны новой лицензионной политикой MS

Компания VMware опубликовала открытое письмо, в котором обвинила Microsoft в ограничении свободы пользователей в выборе виртуального ПО.

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

Лицензионные условия (.doc) запрещают пользователям использовать виртуальные жёсткие диски (VHD), созданные сторонним ПО, при работе с программным обеспечением от Microsoft, а собственный формат VHD является закрытым. Ужесточение условий лицензирования сказалось и на операционных системах: к примеру, недорогие версии Windows Vista (Home Basic и Home Premium) запрещено запускать на виртуальных машинах.

Ранее на прошлой неделе было объявлено о том, что MS Virtual PC 2007 доступен для бесплатного скачивания.