Entry tags:
(no subject)
Отличная заметка Дреппера по поводу борьбы на рынке виртуальных сред. В сочетании с опубликованной 23 февраля статьей VMWare о кознях Microsoft в этой области хорошо демонстрирует общую перегретость ожиданий рынка и очередную "войну миров".
А мне вот интересно, как живут друг с другом KVM и OpenVZ?
k001? В частности, меня интересуют в OpenVZ две вещи: производительность прокси-драйверов (сеть, файловая система) и перспективы поддержки POSIX ACLs, POSIX ATTRs в simfs. Без поддержки этих базовых вещей размещение всяких сетевых штук вроде Samba/NFSv4 в контейнерах OpenVZ бессмысленно.
А мне вот интересно, как живут друг с другом KVM и OpenVZ?
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
no subject
про ACL/ATTRS:
и вот:
если б ещё TBS навесили на simfs, цены бы не было.
no subject
no subject
no subject
no subject
Вы не могли бы подробно аргументировать этот тезис?
no subject
Я не ругаю OVZ ни в коем случае, просто реализовать виртуализацию в ядре на том уровне, на котором это делают OVZ и VServer, имхо, без серьёзных проблем сложно -- порукой тому объём Вашего же кода. И всё должно кончаться либо полной "шизофренией" у ядра, либо постоянными проверками на принадлежность объекта I/O к контексту безопасности. В первом случае уйдёт много памяти, да и проще гонять kvm или xen, во втором -- падает производительность. А если, как в VServer, по мере возможности копировать пакет -- ну, тут вообще беда.
То есть, дело не в качестве кода, дело в использованной технологии, вот я про что.
no subject
no subject
тескейс, который я юзал -- многочисленный netcat одного файла (взятого из /dev/urandom) через direct link машины в машину на полуметровом патчкорде (чтоп исключить настроение свитча, проблемы с эхом на длинном проводе и т.п.). С одной стороны линух, с другой -- линух либо гест (один) ovz (venet) либо гест (один) xen. Тайминги могу на досуге снять, не проблема. Veth не гонял.
ещё одно допущение: я гонял (гоняю) xen, как и ovz, на amd64x2, где xen работает в режиме нормальной виртуализации. Как будет себя вести xen в паравиртуализации -- хез, можно попробовать.
no subject
no subject
ещё хорошо бы коммандлайны привести, размер файла, в какую сторону его тянули, и что конкретно мерялось?
PS на самом деле я, возможно, догадываюсь, что там произошло. /proc/user_beancounters не смотрели в процессе теста?
no subject
Пойду сегодня мерять, расширив буферы.
no subject
no subject
1. Сгенерил файлик 10 мегабайт:
dd if=/dev/urandom of=test10M bs=1M count=10
)2. На удалённой машине запустил:
nc -v -l -p 12345 -q 0 >/dev/null
3. На локальной машине запустил:
time (for i in `seq 1 30`; do nc RE.MO.TE.IP 12345 < test10M; done)
Сделал то же самое, только вместо удалённой машины использовал VE.
Сделал то же самое, только вместо netcat использовал
scp -c blowfish
. И с машиной, и с ВЕ.Во всех случаях результаты колеблются от 32 до 33 секунд, и от того, машина это или ВЕ, ничего не зависит (то бишь там разница в 0.1 секунды или вроде того).
Вопрос: что я делаю не так?
no subject
while true; do nc -v -l -p 12345 -q 0 > /dev/null; done
ибо там стоит какая-то простая версия нетката, которая не умеет игнорировать eof.
no subject
no subject
мы не пробовали
Ты имеешь в виду OpenVZ драйвера или KVM-драйвера?
Если OpenVZ, то дефолтная сетка (т.н. venet)у нас устроена как ещё один TCP/IP стек — то бишь, хост-система работает как маршрутизатор, а в VE есть отдельный девайс venet. Плюсы — можно в VE заводить iptables and routing rules, всё это весьма секьюрно. Минусы — некоторое (весьма незначительное, цифры не помню) падение производительности (потому что пакет по двум стекам путешествует), отсутствие MACa (невозможность приёма бродкастов и т.п.).
Второй вариант называется veth, он с маком, хост система выступает в роли бриджа. Производительность выше, секьюрность хуже.
В каждой ВЕ можно использовать любой вариант, или оба сразу. Разница меж ними тут наглядно расписана: http://wiki.openvz.org/Differences_between_venet_and_veth
По поводу файловой системы — simfs совсем тупой (поэтому и называется SIMple), он, в общем-то, нужен только для того, чтобы был суперблок — а суперблок нужен для дисковой квоты. На производительности simfs никак не сказывается, то бишь всё так же, как на подлежащей ФС.
Плюс к тому, можно bind mount-ом что-нибудь монтировать внутрь VE, или дать ей доступ к физической партиции. Всякие там AIO мы тоже поддерживаем (и даже умеем мигрировать, что нетривиально).
По поводу acl/attrs — в планах есть, но сроки точно сейчас затрудняюсь назвать.
NFS сервер или клиент? Ядерный nfs-cервер в ВЕ нельзя запустить (его надо виртуализовывать), юзерспейс можно, монтировать нфс-ные шары (экспорты?:) из ВЕ можно. http://wiki.openvz.org/NFS
Самбу, наверное, монтировать изнутри ВЕ нельзя — требует виртуализации.
no subject
Видимо, я чего-то не заметил, или текущей реализации не хватает? Вроде всё работает, нет?
no subject
no subject
no subject
Вообще, отсутствие нормальной сети и поддержки функционала обычных файловых систем (ext3/reiserfs/jfs/xfs) -- главное, что меня напрягает в текущих sub-виртуализациях. Потому что без этого сложно делать сервисы, которые как раз и хотелось бы виртуализовывать в рамках одной среды, разбросав куски по разным "машинам". Контроллер домена, клиенты, другие компоненты. Я смотрю на субвиртуализацию сейчас как на относительно легкий механизм собирания тестовых стендов для сложных сетевых приложений.
Почему бы не появиться разновидности venet с MAC-ом? В конечном итоге, в рамках одной физической машины это можно было бы сделать и широковещательные пакеты ходили бы между машинками, технически можно было бы и на всю виртуальную среду-домен распространить посредством какого-нибудь VPN (в VMWare оно же ходит), так чтобы широковещательные запросы работали в этой "сети" между всеми машинами, на которых подняты контейнеры, входящие в единую среду (там, где можно сделать заморозку/разморозку контейнера).
no subject
Что такое нормальная сеть? Ethernet? пожалуйста — берите сетевой адаптер, прокидывайте его в ВЕ (vzctl set VEID --netif_add ethX).
Все ФС, которые не требуют kernel thread — работают в VE. Которые требуют (а это, например, ext3 (kjournald) — их надо виртуализовывать, либо монтировать ФС из хост-системы.
venet — это хост-система в качестве роутера. там не нужны маки, потому что за роутером маки не видны. Кому нужны маки — есть veth и бриджинг.
no subject
Да, я понимаю, что tun/tap медленные, но такой метод позволяет получить полноценный интерфейс, с которым приложение может делать все, что нужно, включая и броадкасты. Например, сделать десяток контейнеров, в каждом такой интерфейс, со своим мак-адресом, все на самом деле "слышны" друг другу и основной системе, которая их видит через один системный интерфейс. Такая виртуальная локальная сеть.
no subject
Простой вопрос -- чем не подходит veth?
no subject
no subject
ну конечно, может. veth — это как две ethernet-карты, соединёнными кроссоверным кабелем — одна карта торчит в VE, другая карта — в хост-системе. В вики, вроде бы, так и написано. Понятно, что этих «пар» может быть сколько угодно.
Наверное, надо картинку нарисовать, чтобы было понятно….
simfs к кернель тредам никакого отношения не имеет. Просто, проблема в том, что если ты смонтировал ext3 внутри ВЕ, то ядро запускает kjournald. Таким образом, владелец ВЕ запускает кернель тред, который что-то там делает. Это несекьюрно по определению. На практике — оно работает, но надо смотреть, разбираться, к каким последствиям это может привести.
no subject
no subject
Во-первых, simfs работает поверх "обычной" файловой системы, то бишь это не simfs, а simfs over ext2, simfs over ext3, simfs over reiser. То бишь, "поддержка функционала обычных файловых систем" по сути есть. Перфоманс такой же.
Во-вторых, что касается возможности напрямую монтировать разделы внутри ВЕ. Таковая возможность есть, надо только дать VE доступ к физической партиции -- хочу отметить, что при этом VE привязывается к реальному железу, то есть мы теряем то преимущество, что ВЕ железонезависима. Я бы хотел услышать сценарий, когда это надо делать.
В-третьих, что касается файловых систем в ВЕ. Этот пункт привязан ко второму. Сейчас можно использовать ext2, ext3 (не очень секьюрно) и автомаунтер. Остальные fs надо смотреть -- возможно, достаточно всего лишь добавить флажок FS_VIRTUALIZED в file_system_type.fs_flags.
offtopic
Re: offtopic