Как стать автором
Обновить

Компания Virtuozzo временно не ведёт блог на Хабре

Сначала показывать

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

Время на прочтение6 мин
Количество просмотров42K
Эта история началась около месяца назад, когда Кирилл Тхай добавил поддержку вложенных пространств имен в CRIU, после чего наша система CI приказала долго жить. В тот момент ничто не предвещало тех увлекательных приключений, в которые мы оказались вовлечены.

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

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

Время на прочтение3 мин
Количество просмотров16K


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

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

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

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

Время на прочтение9 мин
Количество просмотров8.4K

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


image

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

Контейнеры и виртуализация: быстрее, эффективнее, надежнее

Время на прочтение5 мин
Количество просмотров23K
Современные технологии виртуализации все без исключения стремятся найти золотую середину: помочь в максимальной быстрой работе систем, эффективном использовании оборудования и безопасности. Сегодня мы хотим поделиться своим видением истории развития виртуализации и ее ближайших перспектив.

image
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии8

Как и зачем мы оптимизировали алгоритм очистки SLAB-кэшей в ядре Linux

Время на прочтение8 мин
Количество просмотров8.3K
Рост популярности контейнеров и их использование в совокупности с контрольными группами выявили серьезную проблему масштабируемости, которая приводит к значительному падению производительности на больших машинах. Проблема в том, что время обхода SLAB-кэшей зависит квадратично от количества контейнеров, а активное потребление больших объемов памяти за короткий период может стать причиной ухода системы в busy loop, потребляющий 100% процессорного времени. Сегодня мне хотелось бы рассказать, как мы решили эту проблему, изменив алгоритм учета использования контрольной группой memcg объектов SLAB-кэшей и оптимизировав функцию shrink_slab().

Очистка памяти
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии7

VZ7 vs VZ6: есть ли повод обновляться?

Время на прочтение5 мин
Количество просмотров6.7K
В уходящем году вышла новая версия нашего основного продукта – системы виртуализации Virtuozzo. С тех пор мы постоянно получаем вопросы: «Стоит ли обновляться?», «Чем 7ка лучше 6ки?» и так далее. Поэтому на праздниках возникло желание расставить точки над i и в одном посте рассказать об отличиях Virtuozzo последней версии от предыдущих.

image

Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии5

Контейнерная виртуализация: скоро будут стандарты

Время на прочтение4 мин
Количество просмотров9.6K
Разработка стандартов для работы с контейнерами – очень актуальная на сегодняшний день тема. Дело в том, что практика контейнерной виртуализации стремительно набирает популярность в силу своей экономической и технологической эффективности, а наличие открытых стандартов, в свою очередь, делает готовые решения еще боле доступными и привлекательными для заказчиков.

image
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии4

Как теперь процессить kernel crash и bug report? Или несколько слов о разнице между интересным и удивительным

Время на прочтение5 мин
Количество просмотров2.8K

Широко известен исторический анекдот о том, что царица Екатерина II писала простое русское слово из 3 букв с 4 ошибками. Куда менее известно, что эта ошибка вовсе не уникальна. Дети европейских экспатов, изучающие русский язык, запросто могут в диктанте слово “ёжик” написать как Й-О-Ш-Е-Г.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

Что дают системные контейнеры в реальности? Где их стоит применять?

Время на прочтение6 мин
Количество просмотров11K
Системные контейнеры, так же известные как контейнеры операционных систем представляют собой близкие аналоги виртуальных машин. Самое важное отличие от обычных виртуальных машин в том, что вместо гипервизора, они используют пространство имен (namespaces) и средства ограничения ресурсов ядра операционной системы (как правило Linux) для виртуализации и изоляции по ресурсам.

image
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии0

Несколько слов о реальной производительности гипервизора

Время на прочтение5 мин
Количество просмотров11K
Пользователи виртуализированных систем, а особенно – сервис-провайдеры, очень часто задаются вопросом: «как выжать максимум из имеющегося железа?». И в этом контексте нам нередко приходится обсуждать гипервизор KVM и отличия между разными версиями Virtuozzo. В этом посте мы расскажем о ряде тестов последней системы виртуализации вместе с оценками реальной производительности при типовых нагрузках, а также с учетом патчей Meltdown и Spectre.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии27

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

Время на прочтение6 мин
Количество просмотров3.3K
В последнее время мы много говорим про CRIU – систему живой миграции контейнеров. Но сегодня речь пойдет о еще более любопытной разработке: живом патчинге приложений, а также о библиотеке Compel, которая позволяет вытворять все эти безобразия, придавая гиперконвергентным системам новый уровень гибкости.

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

Как мы заново собирали серверы в американском ЦОДе из России

Время на прочтение4 мин
Количество просмотров10K
Сегодня мы хотели рассказать вам о том, как наши ребята за три часа повысили производительность кластера для тестирования ПО в 4 раза, просто «пораскинув мозгами».

image

Upd. Этот пост это — НЕ МАСШТАБНОЕ ТЕСТИРОВАНИЕ — это реальная история из практики с забавными моментами. Мы повысили плотность ВМок в 4 раза, если вы ожидаете увидеть сравнительное тестирование, графики и анализ производительности, вам не сюда. Тут сегодня скорее душевное чтиво.
Читать дальше →
Всего голосов 22: ↑17 и ↓5+12
Комментарии23

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

Время на прочтение5 мин
Количество просмотров1.6K
Ежегодно Google проводит мероприятие Google Summer of Code, на котором ведущие OpenSource проекты находят себе новых талантливых разработчиков среди студентов. В 2019 нашему проекту CRIU удалось не только пройти отборочный тур, но также привлечь сразу несколько молодых разработчиков. О том, зачем все это, и как проходила работа над CRUI в рамках GSoC — читайте под катом.

image

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

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

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

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

День из жизни технической поддержки

Время на прочтение6 мин
Количество просмотров8.9K
Хорошо ли работать в техподдержке? Ну это зависит от того, что нужно поддерживать! Сегодня мы расскажем о том, какие задачи приходится решать саппортерам в Virtuozzo, а они поделятся своими секретами – почему пришли работать именно на эти должности.

image
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии14

CVE и квадратная вероятность

Время на прочтение10 мин
Количество просмотров2.1K
Приблизительно год назад, с июля 2019 года нам в OpenVz начали поступать странные багрепорты на RHEL7-based kernel. На первый взгляд баги были разными: ноды крашились в разных местах и даже в разных подсистемах, но каждый раз расследование обнаруживало тот или иной «кривой» объект. Объекты были разными, иногда там обнаруживался какой-то мусор, иногда ссылка в освобожденную память, иногда сам объект оказывался освобожден, но во всех случаях память под этот объект выделялась из kmalloc-192 cache. Под катом – подробный рассказ про эту историю.

image
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Резервное копирование с Software-defined Storage и Erasure Coding – стоит ли игра свеч?

Время на прочтение5 мин
Количество просмотров2.8K
По мере роста активности программ-вымогателей, таких как Petya или BadRabbit, а также в связи с ужесточением требований законодательства (например, как раз вступившим в силу №187-ФЗ «О защите критической информационной инфраструктуры») объемы данных для резервного копирования постоянно увеличиваются. В результате растет стоимость инфраструктуры хранения резервных копий. Такие технологии как Erasure Coding могут кардинально снизить затраты на их хранение. Сегодня мы расскажем насколько именно и о том, как построить Backup на базе Erasure Coding.

image
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии7

Тестирование производительности виртуализации и облачных сервисов

Время на прочтение7 мин
Количество просмотров12K
Сегодня мы рассуждаем о тестировании производительности облачных сервисов и систем виртуализации, а также делаем полезные выводы. Но прежде чем говорить о benchmarking’е, давайте задумаемся, как же правильно проводить тесты в виртуальной среде? На самом деле, в этом вопросе есть и свои хитрости, и свои, уже проверенные методы.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии10

Virtuozz’ный переезд

Время на прочтение4 мин
Количество просмотров10K
Много компаний думают о переезде и переезжают, а специалисты, в свою очередь, размышляют, где лучше работать. Например, моряки нередко идут на те суда, где есть связь и развлечения, а не только хорошая зарплата. Но вот и мы решили искать себе «лужок посочнее».

image
Читать дальше →
Всего голосов 30: ↑19 и ↓11+8
Комментарии33
1