Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Для ядра Linux предложили систему прозрачного переноса потоков на разные ядра и хосты: Popcorn Linux

Блог компании ITSumma Open source *Системное программирование *Виртуализация *Разработка под Linux *


Для ядра Linux представлен набор патчей Popcorn Linux. Это программный стек, который позволяет приложениям с общей кодовой базой выполняться на распределённых хостах. То есть приложение можно запустить на одном хосте, а во время его выполнения выполнить миграцию на удалённый хост. Многопоточные приложения могут переносить любой свой поток на любой удалённый хост.

Более продвинутая версия Popcorn Linux позволяет приложениям одновременно выполняться на ядрах разной архитектуры (например, x86 и ARM). То есть, теоретически, часть программы можно запустить на ARM-ядре с низким энергопотреблением, а другой поток отправить на высокопроизводительное ядро x86.
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры 12K
Комментарии 20

Стас Протасов из Parallels ответил на вопросы хабрасообщества

Виртуализация *Облачные вычисления *
Стас Протасов, сооснователь Parallels и руководитель отдела разработки, ответил на вопросы пользователей Хабрахабра.

Поводом для интервью с Parallels стал отчёт Linux Foundation за 2012 год, в соответствии с которым российский разработчик средств для виртуализации вошёл в число самых активных контрибуторов ядра Linux, наравне Google, AMD, Cisco и HP. Российская компания также приняла на работу Джеймса Боттомли, члена совета директоров Linux Foundation, который теперь отвечает за направление контейнерной виртуализации Parallels.

Кроме того, в жизни компании Parallels произошли и другие события: открытие питерского офиса, выпуск нового проекта Parallels Automation for Cloud Infrastructure (PACI) — это система, аналогичная Amazon EC2, но в виде коробочного продукта.
Читать дальше →
Всего голосов 22: ↑16 и ↓6 +10
Просмотры 4.8K
Комментарии 6

В преддверии очередного релиза CRIU

Open source *
Сегодня я хочу продолжить серию статей о проекте CRIU (Checkpoint/restore mostly in the userspace). Проекту чуть более года, а по возможностям он уже в плотную приблизился к подобной функциональности в OpenVZ.
Первая часть статьи расскажет о новой функциональности, которая появилась в CRIU за последние несколько месяцев. Вторая часть расскажет о нашем опыте внедрения новых технологий для улучшения процесса разработки.

Новая функциональность


Снапшот памяти и итеративная миграция


Киллер фича следующего релиза — итеративные снапшоты состояния процесса и, как следствие, итеративная миграция. В обоих случаях на каждой следующей итерации, сохраняется только та часть памяти, которая изменилась с предыдущего раза. В первом случае это позволяет сократить время и количество данных на диске. В случае миграции существенно сокращается время простоя (downtime) системы, потому что на первой итерации копирования памяти процессы не замораживаются.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 4.2K
Комментарии 10

«Разработка ядра Linux — это общение в клубе по интересам»

Блог компании Parallels
Наш архитектор департамента серверной виртуализации Павел Емельянов дал интервью журналу «Системный администратор». Мы решили опубликовать здесь его интервью, в котором он рассказал о проекте CRIU, о том, как команда разработчиков работает с Linux-сообществом и с Линусом Торвальдсом, и об изменениях, которые могут произойти в области виртуализации в ближайшие годы.
image

Читать дальше →
Всего голосов 71: ↑66 и ↓5 +61
Просмотры 29K
Комментарии 19

Задачка из реальной жизни: Как восстановить дерево процессов в Linux

Спортивное программирование *Системное программирование *Алгоритмы *
Мы разрабатываем проект CRIU (Checkpoint/Restore in Userspace) и у нас возникла достаточно интересная задача о том, как восстановить оригинальное дерево процессов. Я предлагаю вам попытаться решить ее.

Задача


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

image
Читать дальше →
Всего голосов 20: ↑17 и ↓3 +14
Просмотры 8.5K
Комментарии 12

Простая возможность приобрести опыт в IT

Блог компании Parallels Разработка веб-сайтов *Open source *Программирование *Системное программирование *
imageАнестезиолог Кон Коливас разработал собственную версию планировщика задач для Linux ядра, потому что существующая реализация была адаптирована под серверные задачи, но неудовлетворительно справлялась с пользовательскими задачами.

Алексей Кузнецов, который по воле случая «превратился» в Linux хакера, сменил свою профессию с физика-теоретика на системного программиста.

ИТ-журналист Пётр Семилетов помимо своей основной работы уже десять лет разрабатывает свой текстовый редактор Tea с открытым исходным кодом.

Леся Новасельская, получившая специальность паталогоанатома, участвует в тестировании проекта c открытым исходным кодом.

Подобных примеров множество. Всех этих людей объединяет одно — они реализовали свои интересы в проектах с открытым исходным кодом и участвовали в них и для удовольствия, и для получения опыта. Сложился некий миф о том, что открытый проект – это только для программистов, причем тех, у кого уже есть большой опыт в разработке. Но это не так. Открытый проект — это не только разработка исходного кода, но и тестирование, техническая поддержка, написание документации, маркетинг и т.д. А ещё — отличный шанс приобрести опыт и получить удовольствие от общения с такими же единомышленниками, как вы. Согласно результатам голосования основным препятствием для участия в открытом проекте является отсутствие понимания того, как присоединиться к проекту. Поэтому в статье мы разберёмся как и в качестве кого можно присоединиться к такому проекту.
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Просмотры 24K
Комментарии 7

Новый интерфейс для получения атрибутов процессов в Linux

Open source *Системное программирование *Разработка под Linux *
Разрабатывая CRIU, мы поняли, что текущий интерфейс получения информации о процессах не идеален. К тому же, подобная проблема была успешно решена для сокетов. Мы попытались перенести эти наработки на процессы и получили достаточно хорошие результаты, о которых вы узнаете, дочитав эту статью до конца.

Недостатки текущего интерфейса


Прочитав заголовок, возникает вопрос:”A чем же старый интерфейс не угодил”? Многие из вас знают, что сейчас информация о процессах собирается по файловой системе procfs. Здесь каждому процессу соответствует директория, которая содержит несколько десятков файлов.

$ ls /proc/self/ 
attr             cwd      loginuid    numa_maps      schedstat  task
autogroup        environ  map_files   oom_adj        sessionid  timers
auxv             exe      maps        oom_score      setgroups  uid_map
cgroup           fd       mem         oom_score_adj  smaps      wchan
clear_refs       fdinfo   mountinfo   pagemap        stack
cmdline          gid_map  mounts      personality    stat
comm             io       mountstats  projid_map     statm
coredump_filter  latency  net         root           status
cpuset           limits   ns          sched          syscall

Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Просмотры 17K
Комментарии 20

Персистентная ОС: ничто не блокируется

Java *Системное программирование *Компиляторы *ООП *
Это — статья-вопрос. У меня нет идеального ответа на то, что здесь будет описано. Какой-то есть, но насколько он удачен — неочевидно.

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

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

Краткая постановка проблемы: В силу того, что прикладная программа в ОС Фантом персистентна (не перезапускается при перезагрузке), а ядро — нет (перезапускается при перезагрузке и может быть изменено между запусками), в такой системе нельзя делать блокирующие системные вызовы. Обычным способом.
Читать дальше →
Всего голосов 27: ↑25 и ↓2 +23
Просмотры 17K
Комментарии 18

Особенности тестирования технологии C/R в Linux

Open source *Тестирование IT-систем *Системное программирование *Разработка под Linux *


В 2012 году Эндрю Мортон был пессимистично настроен в отношении будущего проекта CRIU (Checkpoint and Restore In Userspace), когда принимал первые изменения в Linux ядро для поддержки C/R (Checkpoint/Restore). Идея реализовать функциональность сохранения и восстановления запущенных процессов в пространстве пользователя выглядела сумасшедшей, а спустя 4 года проект не только жив, а всё больше вызывает интерес к себе. До старта проекта CRIU предпринимались попытки реализовать C/R в Linux (DMTCP, BLCR, OpenVZ, CKPT и т.д.), но и все они по разным причинам были обречены на провал в то время как CRIU стал жизнеспособным проектом. К сожалению от этого задача C/R в Linux не стала проще. В этой статье я расскажу об особенностях тестирования CRIU.
Читать далее.
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 6.3K
Комментарии 1

Новая версия OpenVZ

Блог компании Virtuozzo Open source *Системное программирование *


Весной прошлого года мы рассказали почему Virtuozzo переходит на открытую модель разработки и какой смысл открывать исходный код коммерческого продукта. Вчера мы анонсировали выпуск финальной версии OpenVZ 7.0, образованного в результате слияния кодовых баз открытой системы контейнерной виртуализации OpenVZ и коммерческого продукта Virtuozzo (Parallels Cloud Server). Новый выпуск OpenVZ содержит множество изменений и мы по порядку расскажем о каждом из них.
Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Просмотры 15K
Комментарии 47

Как обновить ядро в системе без перезапуска сервисов (пошаговая инструкция)

Блог компании Virtuozzo Open source *Системное программирование *Разработка под Linux *
Как вы думаете насколько реально зайти на машину по ssh, обновить систему, загрузить новое ядро и при этом оставаться в той же ssh сессии. Сейчас есть модное движения по обновлению ядра на лету (ksplice, KernelCare, ReadyKernel, etc), но у этого способа есть много ограничений. Во-первых, он не позволяет применять изменения, которые меняют структуру данных. Во-вторых, объекты в памяти могут уже содержать неверные данные, которые могут вызвать проблемы в дальнейшем. Здесь будет описан более «честный» способ обновить ядро. На самом деле, сам способ уже давно известен [1], а ценность этой статьи в том, что мы разберем все в деталях на реальном примере, поймем, насколько это просто или сложно, и чего стоит ждать от подобных экспериментов.
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Просмотры 11K
Комментарии 11

Linux все еще не торт

Блог компании Virtuozzo Open source *Тестирование IT-систем *Системное программирование *Разработка под Linux *
Эта история началась около месяца назад, когда Кирилл Тхай добавил поддержку вложенных пространств имен в CRIU, после чего наша система CI приказала долго жить. В тот момент ничто не предвещало тех увлекательных приключений, в которые мы оказались вовлечены.

image
Читать дальше →
Всего голосов 101: ↑94 и ↓7 +87
Просмотры 42K
Комментарии 44

Когда время перезагрузки имеет значение или почему IBM использует CRIU на мейнфреймах

Блог компании Virtuozzo API *Разработка под Linux *
В современном мире, когда светлое будущее прочат микросервисам, кажется странным заниматься технологиями, которые помогают обновлять код без перезагрузки. Ведь микросервисы и контейнеры куда проще «убить» и создать заново. Тем не менее, мы продолжаем работу над системой живой миграции CRIU, и нам в этом активно помогают ребята из IBM. Почему? Попробуем объяснить.

image
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 4.1K
Комментарии 15

Virtuozzo 7 Update 5 – что нового?

Блог компании Virtuozzo Настройка Linux *Информационная безопасность *Виртуализация *Хранение данных *
image

Пользователи продуктов семейства Virtuozzo часто спрашивают нас о том, чем отличается каждая очередная версия, и стоит ли обновлять свои системы до последнего билда. Поэтому мы решили подробно рассказывать тут, на хабре, о возможностях каждой версии, и сегодня первый пост из цикла, посвященный Virtuozzo 7 Update 5.
Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 1.9K
Комментарии 2

Заразить во благо: как мы исполняем паразитный код

Блог компании Virtuozzo Программирование *Виртуализация *Разработка под Linux *Хранилища данных *
В последнее время мы много говорим про CRIU – систему живой миграции контейнеров. Но сегодня речь пойдет о еще более любопытной разработке: живом патчинге приложений, а также о библиотеке Compel, которая позволяет вытворять все эти безобразия, придавая гиперконвергентным системам новый уровень гибкости.

image
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 2.9K
Комментарии 2

Насколько эффективна виртуальная файловая система procfs и можно ли ее оптимизировать

Блог компании Virtuozzo Open source *Системное программирование *Серверная оптимизация *Разработка под Linux *

Файловая система proc (в дальнейшем просто procfs) является виртуальной файловой системой, которая предоставляет информацию о процессах. Она — “прекрасный” пример интерфейсов следующих парадигме “все является файлом”. Procfs была разработана очень давно: во времена, когда серверы в среднем обслуживали несколько десятков процессов, когда открыть файл и вычитать информацию о процессе не было проблемой. Однако время не стоит на месте, и сейчас серверы обслуживают сотни тысяч, а то и больше процессов одновременно. В таком контексте идея “открыть файл для каждого процесса, чтобы вычитать интересующие данные” уже не выглядит такой привлекательной, и первое что приходит на ум чтобы ускорить чтение — это получение информации о группе процессов за одну итерацию. В этой статье мы попробуем найти элементы procfs которые можно оптимизировать.


image

Читать дальше →
Всего голосов 29: ↑27 и ↓2 +25
Просмотры 6.7K
Комментарии 20

Как переехать с ESXi на KVM/LXD и не сойти с ума

Блог компании Конференции Олега Бунина (Онтико) IT-инфраструктура *Виртуализация *Серверное администрирование *DevOps *
В компании «Макснет Системы» в качестве гипервизора долгое время использовалась бесплатная версия VMware — ESXi, начиная с версии 5.0. Платная версия vSphere отпугивала моделью лицензирования, а у бесплатной был ряд недостатков, которые отсутствовали в платной, но с ними можно было смириться. Но когда в новых версиях ESXi новый веб-интерфейс отказался работать со старым, а мониторинг RAID-массивов перестал подавать признаки жизни, компания решила искать более универсальное и открытое решение. В компании уже был неплохой опыт и приятное впечатление от LXC — Linux Containers. Поэтому стало очевидно, что гипервизор мечты будет гибридным и сочетать для разных нагрузок KVM и LXD — эволюционное продолжение LXC. В поисках информации относительно KVM, компания сталкивалась с заблуждениями, граблями и вредными практиками, но тесты и время расставили все по местам.



О том, как справиться с переездом с ESXi на KVM и не проколоть колеса на граблях, расскажет Лев Николаев (maniaque) — администратор и разработчик высоконагруженных систем, тренер по информационным технологиям. Поговорим о Сети, хранилищах, контейнерах, KVM, LXD, LXC, provisioning и удобных виртуалках.
Всего голосов 46: ↑40 и ↓6 +34
Просмотры 23K
Комментарии 27

Опыт участия в GSoC: как двое (трое) студентов реально улучшили код CRIU

Блог компании Virtuozzo Open source *Разработка под Linux *
Ежегодно Google проводит мероприятие Google Summer of Code, на котором ведущие OpenSource проекты находят себе новых талантливых разработчиков среди студентов. В 2019 нашему проекту CRIU удалось не только пройти отборочный тур, но также привлечь сразу несколько молодых разработчиков. О том, зачем все это, и как проходила работа над CRUI в рамках GSoC — читайте под катом.

image

Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 1.3K
Комментарии 2

Телепортируем процесс на другой компьютер! 

Блог компании Дата-центр «Миран» Системное программирование *Виртуализация *Облачные вычисления *Серверное администрирование *
Перевод
Однажды коллега поделился размышлениями об API для распределённых вычислительных кластеров, а я в шутку ответил: «Очевидно, что идеальным API был бы простой вызов telefork(), чтобы твой процесс очнулся на каждой машине кластера, возвращая значение ID инстанса». Но в итоге эта идея овладела мной. Я не мог понять, почему она такая глупая и простая, намного проще, чем любой API для удалённой работы, и почему компьютерные системы, кажется, не способны на такое. Я также вроде бы понимал, как это можно реализовать, и у меня уже было хорошее название, что является самой трудной частью любого проекта. Поэтому я приступил к работе.

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

На видео показано, что рендеринг на 64-ядерной VM в облаке завершается за 8 секунд (плюс 6 секунд на телефорк туда и обратно). Тот же рендеринг локально в контейнере на моём ноутбуке занимает 40 секунд:

Всего голосов 53: ↑53 и ↓0 +53
Просмотры 13K
Комментарии 12