Linux-Vserver (http://linux-vserver.org/) 2.0 для ядра 2.6 (http://www.13thfloor.at/vserver/s_rel26/v2.0/) наконец признан стабильным.
Linux-VServer предназначен для создания изолированных друг от друга окружений (contexts) имеющих свой IP адрес, базу пользователей (включая root), квоты на дисковое пространство и оперативную память.Таблица реализованных функций:
<table><tr>
<td>Feature</td>
<td> 1.00 </td>
<td> 1.20 </td>
<td> 1.2.10 </td>
<td> 1.3.8 </td>
<td> 0.09 </td>
<td> 1.9.0 </td>
<td> 1.9.2 </td>
<td> 2.0 </td></tr><tr>
<td> Legacy Kernel API (vs1.2x)</td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> part </td>
<td> part </td>
<td> part </td>
<td> part </td>
<td> part </td></tr><tr>
<td> Legacy Proc Filesystem</td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> part </td>
<td> part </td>
<td> part </td>
<td> part </td>
<td> part </td></tr><tr>
<td> Immutable Link Invert (http://linux-vserver.org/Linux-VServer-Paper-06)</td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Initpid and Fakeinit (http://linux-vserver.org/Linux-VServer-Paper-14#E23)</td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> yes </td>
<td> yes </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Syscall Command Switch (http://linux-vserver.org/Syscall+Switch+Info)</td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Syscall vkill commands (http://linux-vserver.org/linux-vserver_administrators_gide#v...)</td>
<td> - </td>
<td> yes </td>
<td> yes </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Syscall rlimit commands (http://linux-vserver.org/Linux-VServer-Paper-14#E42)</td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Syscall ctx_wait support</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td></tr><tr>
<td> Syscall iattr commands</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Syscall namespace commands</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Syscall context flags</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Syscall context caps</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Syscall scheduler tuning</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Syscall 32bit compat</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td></tr><tr>
<td> Next gen. Proc Filesystem</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Hashed RCU for xid/nid/dlim</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> - </td></tr><tr>
<td> Chroot Barrier Flag</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Proc Security Flags (http://linux-vserver.org/Proc-Security)</td>
<td> - </td>
<td> - </td>
<td> yes </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Userspace Reboot Helper</td>
<td> - </td>
<td> yes </td>
<td> yes </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Userspace Startup/Shutdown Helper</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td></tr><tr>
<td> VRoot Device </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td></tr><tr>
<td> Advanced IP Selection</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Advanced uts_name config</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Fake Memory Display</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Hard CPU limits (http://linux-vserver.org/Linux-VServer-Paper-14#E47)</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Context File Tagging</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> NFS based File Tagging</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> yes </td>
<td> YES </td></tr><tr>
<td> Per Context Disk Limits</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Network Context Support</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Socket Accounting</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Advanced Sysctl Debug System</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Extended proc/devpts Security</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Flag: Pause Context</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> Flag: Hide proc/mounts</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> CCap: Secure Mount</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> CCap: Change host/domainname</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> CCap: Modify rlimits</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> CCap: Raw ICMP for Ping</td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> - </td>
<td> YES </td>
<td> YES </td></tr><tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td></tr>
</table>URL: http://www.13thfloor.at/vserver/s_rel26/v2.0/
Новость: http://www.opennet.me/opennews/art.shtml?num=5884
это аналог vmware ?
Скорее аналог jail.
а нафиг если есть xen ? или это из разных опер ?
Это, скорее, ближе к solaris zones. В общем-то, для многих целей это будет удобнее Xen, ибо ОС все-таки остается одна.
А нафиг, если есть UML?
и он должен быть заточен под какую-то конкретно ось ?
> А нафиг, если есть UML?
Оно быстрее и легче UML.
> и он должен быть заточен под какую-то конкретно ось ?
Это патч к ядру Linux. Создает просто много отдельных контекстов. Если объяснять на пальцах и ОЧЕНЬ упрощенно, то это chroot со своим персональным IP-стеком. Там можно давать root'а пользователям, не боясь за хост систему. А бэкапы делать вообще просто - скопировал папку и все.
>Это патч к ядру Linux. Создает просто много отдельных контекстов. Если объяснять
>на пальцах и ОЧЕНЬ упрощенно, то это chroot со своим персональным
>IP-стеком. Там можно давать root'а пользователям, не боясь за хост систему.А там есть лимиты на загрузку процессора, чтобы один пользователь не мог на 100% загрузить CPU ? И есть ли вообще какие-нибудь патчи для Linux на этот счет ?
Есть, читай на сайте проекта
Network Context Support
--------
Частично живое, на хосте использовать bind(IN_ADDR_ANY) досих пор нельзя.
Предложено выкручиваться средствами каждого сервиса.
==
<td> Per Context Disk Limits</td>
---
Сделано на основе дисковых квот, что добавляет тормоза при большом количестве VPS.
---
Лимиты устаналиваются через задницу в связи с этим BIND требует специальной пересборки для работы под Linux-VServer (отключеения работы с CAP_SYS_LIMITS).
--
Disknamespace через туже задницу сделан - но таки содран и как-то работает :)
---
<td> Chroot Barrier Flag</td>
попытка защититься от банальной атаки на взлом chroot который в линухе проходит.
Была SA на этот счет - после чего экстренно латали и обозвали фичей.
----
<td> Userspace Reboot Helper</td>
<td> Userspace Startup/Shutdown Helper</td>
Ничего не скажешь веселая идея вызывать напрямую скрипт из ядра.. без всяких проверок, а что же подсунули вместо скрипта.. впрочем для линуха не привыкать.
---
<td> Advanced IP Selection</td>
эт так обозвали попытку хоть как-то правильно выбирать src addr для исходящих конектов. Но бороться с routing cache даже не пробывали.
---
<td> Network Context Support</td>
Угу.. поставить каждому объекту в стеке идентификатор и пусть списки разрастаются, а время поиска будет увеличиваться - зато будет стабильно.
итого общая сложность поиска будет где нить O(N^2) вместо O(N).
---
<td> CCap: Raw ICMP for Ping</td>
вместо виртуализации сетевого стека (обещают в NewNG который уже полтора года делается и судя по коду будет весьма веселым) сделан такой вот костыль.
----
>> А нафиг, если есть UML?
>Оно быстрее и легче UML.
>> и он должен быть заточен под какую-то конкретно ось ?
>Это патч к ядру Linux. Создает просто много отдельных контекстов. Если объяснять
>на пальцах и ОЧЕНЬ упрощенно, то это chroot со своим персональным
>IP-стеком. Там можно давать root'а пользователям, не боясь за хост систему.
>А бэкапы делать вообще просто - скопировал папку и все.
Нету там своего IP стека и не будет. NewNG который обещают - виртуализировать стэк не будет. Будет раздельная таблица роутинга, что без раздельного routing cache это нонсенс..
>> А нафиг, если есть UML?
>Оно быстрее и легче UML.
>> и он должен быть заточен под какую-то конкретно ось ?
>Это патч к ядру Linux. Создает просто много отдельных контекстов. Если объяснять
>на пальцах и ОЧЕНЬ упрощенно, то это chroot со своим персональным
>IP-стеком. Там можно давать root'а пользователям, не боясь за хост систему.
>А бэкапы делать вообще просто - скопировал папку и все.
Нет там собственного tcp стэка и врядли будет.