amarao (amarao_san) wrote,
amarao
amarao_san

Category:

KVM vs Xen

Скажу ровно две вещи, которые для меня стали практически рубиконом в отношении к Зену.

Предположим, у вас overprovision диск. Виртуалка делает запись, драйвер пытается записать, получает ENOSPACE. Варианты поведения?

- Xen: user-space часть tapdisk получает ошибку записи в битмап VHD, не понимает что делать, возвращает -2, blkback видит что что-то не так, пишет ошибку в кольцевой буффер, blkfront (он тупой, ему можно) транслирует ошибку файловой системе, файловая система либо говорит "у блянахуй" и скопычивается в RO, либо говорит "у блянахуй" и транслирует ошибку записи в SQL-сервер, который скопычивается с незавершённой транзакцией и лок-файлом, либо просто скопычивает сервер.

- KVM: qemu видит, что писать больше некуда и ставит домен на паузу. Приходит админ, разгребает место, снимает домен с паузы, поехали молотить дальше. Если снимут с паузы не разгребя - снова встанет на паузу.

Второй пример. У вас дохера виртуалок и каждой вы пообещали много памяти. (нет, речь не про оверпровиженинг). Виртуалки память не используют процентов на 50. Даже под кеш. Что делать?

- Xen: а давайте у нас будет такая смешная система регуляции памяти, что у нас будет maxmem, который не start_memory, и балунинг, который у виртуалки память забирает, и в гипервизор отдаёт, но виртуалка при этом на самом деле имеет хак, который не показывает, сколько памяти сожрал балунинг, а вместо этого высчитывает свободную память с учётом балунинга, но только если не рассчитывается, сколько свободной памяти, тогда мы считаем, что балунинг занятый, а если произойдёт memory-hotplug, то мы свободную память отнесём к балунингу, но не в смысле свободной памяти, а в смысле свободной памяти которая показывается пользователю, а потом скажем балунингу сжаться, но при этом проебётся 20% памяти и никто не знает куда, поэтому мы будем использовать forward-port'ы из 2.6.18, в которой свободная память считается не так, как она считается, потому у клиента цифры сходятся, но не сходятся у oom'а, который init сносит за нехватку памяти, а использовать апстрим мы не будем, потому что oom там всё равно инит сносит, но при этом ещё и пользователю правильные цифры не показывает и память пиздит, а ещё у нас новая технология populate-on-demand, которая как балунинг, но ещё более честная и мы свободную память говорим сколько в теории сделаем, а на самом деле жёсткий лимит ставим меньше, чем сказали что есть.

KVM: ни разу не записанная, но обещанная виртуалке память, считается свободной и используется хост-системой по своему усмотрению (под файловый кеш). Гости получают память по мере её записи, лимиты определяются софтом, oom отрабатывает по общим правилам и весам (и может прибить гостя при острой нехватке кислорода). Если oom не нравится, его можно легко отключить (вместе с оверкоммитом).

При том, что у зена есть интересные идеи, разница в реализации - вот что острее всего ощущается. Чужеродная куча патчей на линукс, чтобы хоть как-то работает, похуизм со стороны разработчиков гипервизора на проблемы гостей, похуизм со стороны разработчиков драйверов на проблемы юзерспейса, каждый сидит в своей уютной CS-башенке и срать хотел на реальную жизнь вокруг.
Tags: kvm, xen
Subscribe

  • Очередная жидкая кака от цитрикса

    Так долго старательно бегали с попаданием в репозитории Дебиана. Никогда такого не было, и вот опять жидко обкакались с мейнтенингом.…

  • Решето

    CVE-2013-4554 / XSA-76 Гипервызовы с 1-2 колец привелегий не проверяются на permission'ы. Только 3 и 0. facepalm. Рекурсивный.

  • kvm strategy

    Или, если точнее, продолжение известного спора Танненбаума с Линусом. Как я говорил ранее, Xen - фактически является пуристской реализацией того, о…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments

  • Очередная жидкая кака от цитрикса

    Так долго старательно бегали с попаданием в репозитории Дебиана. Никогда такого не было, и вот опять жидко обкакались с мейнтенингом.…

  • Решето

    CVE-2013-4554 / XSA-76 Гипервызовы с 1-2 колец привелегий не проверяются на permission'ы. Только 3 и 0. facepalm. Рекурсивный.

  • kvm strategy

    Или, если точнее, продолжение известного спора Танненбаума с Линусом. Как я говорил ранее, Xen - фактически является пуристской реализацией того, о…