[devel] vserver, hasher, uml...

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Авг 2 11:04:21 MSD 2005


On Tue, Aug 02, 2005 at 09:06:52AM +0300, Michael Shigorin wrote:
> On Tue, Aug 02, 2005 at 09:29:10AM +0400, Alexey Tourbin wrote:
> > > > Одно из преимуществ hasher -- в том, что это всё в пределах
> > > > POSIX API.
> > > в vserver тоже все в пределах POSIX API (если я правильно
> > > понял эти пределы) - он затрагивает только linux caps.
> > Просто я не в курсе, что такое vserver.  По моим
> > представлениям, это какай-то хак на ядро.  Попробую
> > просветиться.

> Это клёвый хак на ядро :-)  Уже все серверы посъезжали.

В докладе ldv перечислены некоторые популярные "виртуализаторы", но нет
сравнительного анализа.  Интересно, кому-нибудь попадался сравнительный
анализ?

Меня прежде всего интересует "виртуализация для разработчика", по
следующим критериям:

1) Минимально необходимые привилегии для порождения виртуальной среды.
В идеале, виртуальная среда должно порождаться без изменения credentials
вообще, и так же просто, как запуск /bin/vi.

В хешере используется суидный хелпер, но для получения доступа к нему
требуется разовое действие со стороны администратора (суидный хелпер в
любом случае необходим как минимум для вызова chroot(2)).

В vserver, как я подозреваю, для создания виртуальной среды требуются
права рута в хост-системе, что неприемлемо для сборочных серверов.

В UML требуются какие-нибудь права (в частности, для монтирования
внешних по отношению к среде каталогов)?

2) Максимально правдоподобная эмуляция внутри виртуальной среды.
То есть рут внутри виртуальной среды должен чувствовать себя рутом
(например, в части изменения ownership у файлов в среде).

У хешера с этим никак, ${USER}_a на самом деле бесправен даже по
отношению к ${USER}_b, просто используется fakeroot.  Пример:

$ hsh-run --rooter ~/build chgrp builder /var/cache/apt
$ hsh-run --rooter ~/build -- ls -dl /var/cache/apt
drwxrws---  3 root root 72 Aug  2 10:49 /var/cache/apt
$ hsh-run --save-fakeroot --rooter ~/build chgrp builder /var/cache/apt
fakeroot: database file `/.fakedata' does not exist.
$ touch ~/build/chroot/.fakedata
$ hsh-run --save-fakeroot --rooter ~/build chgrp builder /var/cache/apt
$ hsh-run --save-fakeroot --rooter ~/build -- ls -dl /var/cache/apt
drwxrws---  3 root root 72 Aug  2 10:49 /var/cache/apt
$

То есть никак.  (В этом примере я хочу отдать каталог /var/cache/apt
пользователю builder, чтобы он смог сделать "apt-get source").

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

3) Достаточно гибкие инструмены для передачи информации между
виртуальной и внешней средами; у хешера с этим хорошо; у UML,
я так подозреваю, что плохо.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20050802/148cc36a/attachment-0001.bin>


Подробная информация о списке рассылки Devel