Разработчик VServer отвечает на ваши вопросы


Kreativka - Posted on 21 Апрель 2012

В: для начала, не могли бы вы рассказать немного о себе?

В университете я начал изучать Физику, но потом переключился на компьютеры. Закончил университет уже с дипломом кафедры ЭВМ (эквивалентом Магистра) и теперь продолжаю работать над своей докторской диссертацией.

Помимо программирования, моим хобби является жонглирование, бильярд, музыка, кино и электроника (это, кстати, не полный список).

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

В: что же представляет из себя VServer?

Linux-VServer - это техника изолирования, по концепции очень схожая с Jails в BSD или контейнерами в Solaris. Она позволяет параллельно выполнять на одном сервере множество рабочих сред Linux, без какого-либо измеряемого падения в производительности.

В: как вы начали работать над этим проектом?

начал как и любой обычный пользователь проекта, в те времена называвшегося 'контексты безопасности Linux' (Linux Security Contexts, или ctx), разрабатывающийся и поддерживающийся Жаком Гелинас (Jacques Gelinas). В те времена все было достаточно топорно и кудряво, с кучей возможных эксплойтов, никакого управления ресурсами или поддержки многопроцессорности.

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

Летом 2003го года Жак исчез, и это полностью затормозило проект. Спустя несколько месяцев, я вызвался возглавить проект на временой основе, до тех пор пока Жак не вернется. Но после возвращения Жака всем стало ясно, что у него нет времени, чтобы продолжать работать над VServer. Так я и стал новым мэйнтейнером.

В: Каков статус проекта в настоящий момент? Над чем идет работа?

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

В: Ваши планы на будущее?

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

В: Насколько просто начать играться с vserver? Выложены ли где-то бинарники, которые можно просто скачать и установить?

ИМХО, на сегодняшний день начать играться с Linux-Vserver достаточно просто - даже Live CD уже поставляются со встроенным Linux-Vserver. Но если вы настроены на серьезную работу, подумайте над компиляцией своего ядра, и, возможно, даже util-vserver (набор утилит для контроля за различными возможностями ядра).

В: То есть, обязательно нужно ли что-то компилировать?

Для большинства дистрибутивов - нет

В: Когда вы говорите об использовании всех имеющихся возможностей ядра Linux вместо создания собственного "велосипеда", выкладываете ли вы по ним документацию/вики/предоставляете поддержку?

большинство возможностей 'mainline' Linux так или иначе хорошо документированы (это может быть документ в дереве ядра, вики или RFC, описывающие некотурую функциональность)

В: Например, шейпинг траффика, приоритеты дискового ввода\вывода, т.д.?

Для шейпинга траффика существует множество HOWTO документов (мы не влазим в сетевую часть ядра Linux на этом уровне), поэтому вы можете использовать любой предпочитаемый вами интерфейс к tc (traffic control tool) и, конечно же, iptables. Что касается различных планировщиков ввода-вывода, то ядро содержит массивную документацию по этому вопросу (единственный планировщик для потенциально недружественных сред - это cfq).

Но в целом, мы доверяем пользователю делать то, что он считает нужным.

В любом случае, мы обеспечиваем намного более общую поддержку, чем возможности Linux-VServer на нашем очень активном IRC канале (#vserver @ irc.oftc.net)

В: Работа над VServer - это ваша основной род деятельности?

Нет, конечно нет. Я работаю над Linux-VServer в свое свободное время, и, насколько мне известно, другие разработчики VServer поступают точно также.

В: Есть ли у вас есть планы по превращению проекта в бизнес?

Я не думаю, что такие понятия, как "бизнес" и отличный софт хорошо ладят вместе. Обычно бизнес сдвигает фокус проекта с разработки очень хорошего продукта на продажу продукта :)

Хотя, конечно же, как консультант, я часто работаю над проектами, связанными с Linux-VServer.

В: Где вы видите будущее для таких продуктов, как VServer/OpenVZ?

IMHO, в "продукте", обеспечивающим виртуализацию или изоляцию, нет ничего инновационного. Он медленно становится обыденным явлением и в этом же направлении движется виртуализация на уровне ОС.

В: Говорят, VServer можно легко "убить" рекурсивным созданием директорий и подобными DoS атаками.

Если вы возьмете ядро (и Linux VServer патч к нему) многолетней давности(!), вы, возможно, и сумеете провести успешную DoS атаку, но не с недавними ядрами и VServer патчами к ним.

К тому же, знаете ли вы, что вы можете запустить очень похожую DoS атаку как обычный пользователь на большинстве современных дистрибутивов Linux?

В: Чем ваш продукт лучше или хуже по сравнению с OpenVZ?

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

Linux-Vserver
- проект, разрабатывающийся сообществом
- легковесная изоляция
- небольшой и невмешивающийся патч
- поддержка всех ядерных архитектур
- обеспечение высоко-продвинутых jails

OpenVZ
- FOSS версия коммерческого продукта
- виртуализация (напр. сеть)
- достаточно большой (объемный) патч
- фокус на нескольких архитектурах (x86/ppc/sparc)
- обеспечивает VPS (напр, живую миграцию)

Кроме вышеперечисленного, функциональность продуктов в большинстве своем одинакова

В: Проекту уже давно пора быть включенным в основную ветку ядра. (VServer) - очень уважаемая и стройная подсистема для некоторых случаев

Разработчики главной ветки работают над виртуализацией на уровне ОС, и некоторые результаты этой работы уже встроены в Linux-VServer. Я оптимистично настроен, и думаю, что в ближайшем будущем основная ветка ядра Linux будет содержать большую часть функционала, достаточных для построения jail'ов.

В: Рекомендуете ли вы использовать VServer в продашкне? Если нет, чтобы вы посоветовали?

Конечно же, рекомендую! Все же несколько компаний, организаций и людей, включая меня, используют их в продакше уже несколько лет (если быть точнее, то больше 5 лет :)

В: Я никогда не буду использовать VServer, пока он не станет частью основной ветки ядра!

Это ваш выбор, живите с ним :)

В: Когда мы можем ожидать, что эти патчи станут полностью интегрированными в основную ветку?

Никогда! Но хорошая новость в том, что эта функциональность в ядре появится в скором (а может быть, и не очень скором) будущем. Поживем - увидим, как скоро основная ветка дорастет до этого.

В: Сколько разработчиков работают на Linux-VServer?

В настоящее время у нас около четырех человек, которые работают над ядром (включая меня).

В: Почему виртуализация сети до сих пор не реализована в Linux-Vserver?

Linux-VServer не пытается соревноваться с системами полной виртуализации (как Xen или VMWare (tm)) и IP (layer 3) изоляция имеет много преимуществ над виртуализацией сети.

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

Подчеркну, что 99% всех приложений (за исключением утилит теста сети) работают над уровнем IP, таким образом, они полностью совместимы с изоляцией на уровне IP.

В: Каков статус проекта NGnet?

Виртуализационная часть была выброшена, изоляция была улучшена. Если вы загрузите недавний патч Linux-Vserver, это и будет NGnet :-)

В: Почему разработчики VServer и персонально Херберт ничего не отдают в основную ветку ядра, и не учавствуют в общей работе над "контейнерами" в ядре?

Если вы поищете в исходниках основной ветки ядра, вы обнаружите, что программисты Linux-VServer вносят весомый вклад в его разработку. Основнае отличие заключается, наверное, в том, что Linux VServer не так рьяно пытается продолкнуть свои патчи в основую ветку, как SWsoft/Parallels?

В: Почему у проекта нет багтрекера (a la bugzilla)?

Короткая версия: мы не трэким баги, мы их чиним :)
Более длинная версия: у нас был багтрекер в течение долгого времени (для ядра) и у нас все еще есть один для утилит (unit-vserver). Багтрекер для ядра создавал больше работы, чем приносил пользы, поэтому мы его упразднили в какой-то момент времени.

В: и репозитория кода (a la git)?

У нас есть и git, и svn репозиторий. Но персонально я предпочитаю (и это влияет на все патчи ядра) работать с патчами подобно многим другим проектам. Опять же, подчеркну, мы пытались работать и с git для дерево ядра, но оно создавало больше работы, чем пользы.

В: Может ли VServer запустить RHEL 3.x с ядром 2.4.2? (ЗдЕсЬ бЫл Саныч)

Не имею ни малейшего понятия. У нас есть патчи для ядер 2.4.х, и учитывая, что RHEL 3.x работает с веткой 2.4.х, все должно работать. Обратите внимание, что большинство дистрибутивов не делают _ничего_, что бы требовало специального ядра (кроме вещей, связанных с железом, но это все равно делается на уровне хост системы), так что все должно работать на _любом_ дистрибутиве, который вы выберете в качестве Linux-VServer гостя.

В: Спасибо товарищу Пёцлю за превосходный VServer, пользуюсь им уже не первый год!

Пожалуйста!

В: OpenVZ лучше чем VServer, потому что имеет iptables внутри контейнера!

Ок, Linux-Vserver имеет iptables снаружи контейнера :)

В: У него нет 127.0.0.1 проблем

Их нет и у Linux-VServer!

В: Никаких проблем с любым софтом, который я пробовал!

Возможно, не такой уж и длинный список?

В: Для VServerа нужно даже патчить bind!

Только если вы используете древнюю версию Linux-Vserver. Кстати, поясню, что это была проблема с Bind, так что проблему можно заново создать с непатченным ядром.

В: Переехал за один день на openvz и забыл как страшный сон.

Замечательно, наслаждайтесь :)

В: Кстати, был еще какой-то Lycos от одноименного поисковика. У них / (root fs) имитировался через NFS :-) В результате, rm -rf dir нельзя было сделать, если какой-то файл открытый там был. А переименовать было можно :-)

Насколько я знаю, Lycos использует модифицированную версию Linux-VServer для некоторых из своих VPS решений. Конечно же, вы можете делать всякие странные вещи на VPS :-)

В: Vserver научился лимиты выставлять на сокеты/память и т.п.?

Уже давно. Вообщето, я посмотрел, когда мы реализовали новую систему лимитов, и оказалось, что это февраль 2004го, с версии 1.3.6 (на ядре 2.4), то есть задолго до того, как появился OpenVZ :-)

Так что да, Linux-VServer поддерживает эккаунтинг и ограничения на многие ресурсы, включая сокеты и память, так что вы можете быть уверенным, что потенциально нехороший Гость не сможет порушить вам Хост систему:
[linux-vserver.org/ProcFS#limit]

В: Спасибо за замечательное интервью!

Пожалуйста!

Спасибо!

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.