Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование *NIX систем > chroot via sshfs


Автор: ruX 22.7.2008, 09:48
Всем привет.

Вот такая цель: подмонтировать через sshfs удалённый компьютер, сделать чрут на локальном и выполнять ресурсоёмкие операции для удалённого компа на локальном.
Потребность появилась когда в генте пересобирал фф, но думаю если заработает полноценно то много где может пригодиться.

Вот что делаю:
Код

ruX-laptop-wifi:/media # sshfs root@rux.box:/ sshfs
Password: 
ruX-laptop-wifi:/media # mount -t proc proc sshfs/proc
ruX-laptop-wifi:/media # chroot sshfs/
bash: /dev/null: Отказано в доступе
ruX-laptop-wifi / # exit
exit
ruX-laptop-wifi:/media # mount -o bind /dev sshfs/dev/
ruX-laptop-wifi:/media # chroot sshfs/
ruX-laptop-wifi / # emerge syslog-ng
Traceback (most recent call last):
  File "/usr/bin/emerge", line 18, in <module>
    retval = _emerge.emerge_main()
  File "/usr/lib/portage/pym/_emerge/__init__.py", line 9432, in emerge_main
    display_news_notification(trees)
  File "/usr/lib/portage/pym/_emerge/__init__.py", line 6888, in display_news_notification
    portdb, vardb, NEWS_PATH, UNREAD_PATH, repo)
  File "/usr/lib/portage/pym/_emerge/__init__.py", line 7066, in checkUpdatedNewsItems
    return manager.getUnreadItems( repo_id, update=True )
  File "/usr/lib/portage/pym/portage/news.py", line 133, in getUnreadItems
    self.updateItems(repoid)
  File "/usr/lib/portage/pym/portage/news.py", line 111, in updateItems
    write_atomic(skipfile, "\n".join(skiplist)+"\n")
  File "/usr/lib/portage/pym/portage/util.py", line 880, in write_atomic
    raise OperationNotPermitted(func_call)
portage.exception.OperationNotPermitted: write_atomic('/var/lib/gentoo/news/news-gentoo.skip')


PS. если не биндить /dev то пишет "bash: /dev/null: Отказано в доступе", хотя дальше такие же ошибки

Автор: ruX 23.7.2008, 20:17
Нету никаких идей?  smile 
Ниужели так никто не делал?

Автор: ZeeLax 24.7.2008, 04:34
ruX, а чего вы удивляетесь? Вы думаете, что весь мир только тем из нанимается, что входит в чрут через sshfs?
С правами всё хорошо? Проверяли?

Автор: ruX 24.7.2008, 05:52
ZeeLax, 
Цитата(ZeeLax @  24.7.2008,  04:34 Найти цитируемый пост)
Вы думаете, что весь мир только тем из нанимается, что входит в чрут через sshfs?

Тогда думаю я б нашёл ответ на вопрос)
Цитата(ZeeLax @  24.7.2008,  04:34 Найти цитируемый пост)
С правами всё хорошо? Проверяли?

всмысле то что под рутом вхожу?
Причём не работает только эмерж. По крайней мере больше никто не ругается и не выпадает

Автор: bilbobagginz 24.7.2008, 09:05
Цитата(ruX @  22.7.2008,  09:48 Найти цитируемый пост)
 mount -o bind /dev sshfs/dev/

т.е. идея - подбайндить локальные устройства в чрут.
мне непонятно какие преимущества это действие даёт над другими способами схлестнуть ресурсы.
вопросы:
какие ресурсоемкие действия пытаемся сделать ? (для "расшарки" памяти, посмотри про DSM, distributed shared memory)
почему нужна эта шифровка, которая расходует процессорное время, увеличивает задержки при I/O ?

к чему тянем Витю за титю ?

Автор: ruX 24.7.2008, 10:38
Цитата(bilbobagginz @  24.7.2008,  09:05 Найти цитируемый пост)
мне непонятно какие преимущества это действие даёт над другими способами схлестнуть ресурсы.

В смысле схлестнуть ресурсы? Не понял о чём вы


Цитата(bilbobagginz @  24.7.2008,  09:05 Найти цитируемый пост)
какие ресурсоемкие действия пытаемся сделать ? (для "расшарки" памяти, посмотри про DSM, distributed shared memory)почему нужна эта шифровка, которая расходует процессорное время, увеличивает задержки при I/O ?

про DSM прочитал, интересно)
как писал выше необходимость этого изврата когда собирал ФаерФокс. Тут скорее ресурсы процессора  нужны
А по поводу того что используется ssh - я про это не думал.. Неужели действительно уходит так много ресурсов? Стоит монтировать через что нить другое?

Автор: bilbobagginz 24.7.2008, 11:37
Цитата(ruX @  24.7.2008,  10:38 Найти цитируемый пост)
Тут скорее ресурсы процессора  нужны
А по поводу того что используется ssh - я про это не думал.. Неужели действительно уходит так много ресурсов? Стоит монтировать через что нить другое? 

Посмотри что такое "распределенная сборка", distcc, и т.д.
В идеале, не нужно париться - настраивается распределенная среда сборки, и это ее проблема - как файлы ввода - т.е. исходники, перенести на "рабочую машину" (которая компилирует), и как перенести обратно двоичные  файлы.
Цитата(ruX @  24.7.2008,  10:38 Найти цитируемый пост)
В смысле схлестнуть ресурсы? Не понял о чём вы

я не понимал основную задачу, думал проблема в том, что хочешь на одном компьютере иметь доступ к памяти другого, т.е. иметь доступ к 2-м физическим модулям памяти в виде одного большого "виртуального", т.е. DSM.

потому как распараллеливание задач на уровне процессов, т.е. когда каждый исходник компилируется в "своём" gcc процессе, со своим адресным пространством, и т.д. - эта задача уже давно и очень неплохо решена.
Цитата(ruX @  24.7.2008,  10:38 Найти цитируемый пост)
Тут скорее ресурсы процессора  нужны

Если не ошибаюсь можно сформулировать задачу так:
"хочется собирать мозиллу побыстрее, используя все свои компьютеры"
правильно ?

Автор: Любитель 24.7.2008, 13:16
Для distcc emerge имеет встроенную поддержку - не проще этим воспользоваться, если основная задача в сборке ФФ? А вообще - мне кажется, что с правами доступа у тебя что-то не так. Посмотри - что конкретно находится на
Цитата

File "/usr/lib/portage/pym/portage/util.py", line 880

Автор: ruX 26.7.2008, 00:22
Цитата(bilbobagginz @  24.7.2008,  11:37 Найти цитируемый пост)
Если не ошибаюсь можно сформулировать задачу так:"хочется собирать мозиллу побыстрее, используя все свои компьютеры"правильно ?

да, именно так

Цитата(Любитель @  24.7.2008,  13:16 Найти цитируемый пост)
Для distcc emerge имеет встроенную поддержку - не проще этим воспользоваться, если основная задача в сборке ФФ? 

Ну не только фф) тяжолые вещи такие как глиб или кделибс тоже к этому относятся

Вообщем спасибо вам, нагуглил http://www.gentoo.org/doc/en/distcc.xml
То что мне нужно )

Цитата(Любитель @  24.7.2008,  13:16 Найти цитируемый пост)
А вообще - мне кажется, что с правами доступа у тебя что-то не так. Посмотри - что конкретно находится на


Код

ruX ~ # ls -l /usr/lib/portage/pym/portage/util.py
-rw-r--r-- 1 root root 32917 Июл 19 22:35 /usr/lib/portage/pym/portage/util.py
ruX ~ # ls -l /var/lib/gentoo/news/news-gentoo.skip
-rw-rw-r-- 1 root portage 1 Июл 25 14:11 /var/lib/gentoo/news/news-gentoo.skip

(может и второй файл пригодиться..)

Автор: ruX 27.7.2008, 16:53
Ладно тогда, буду только distcc использовать. С ним разобрался
Спасибо

Тема закрыта

Автор: Любитель 28.7.2008, 11:23
Про права - это я имел ввиду на удалённой тачке. А насчёт емержевских скриптов - я имел ввиду посмотреть, что в util.py на 880-й строчке он пытается сделать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)