[Sysadmins] [Comm] Доступ к USB в контейнере:

Kostarev Alexey kaf на nevod.ru
Пт Дек 21 15:15:34 MSK 2007


Vitaly Lipatov wrote:

>On 19 декабря 2007, Kostarev Alexey wrote:
>  
>
>>Slava Dubrovskiy wrote:
>>    
>>
>>>Kostarev Alexey пишет:
>>>      
>>>
>>>>Можно ли стартовать haspd в контейнере и обеспечить ему
>>>>доступ к USB-портам или это в принципе невозможно?
>>>>        
>>>>
>>>Ну передаете в контейнер устройство USB и думаю должно
>>>заработать. Диск же передается и нормально работает.
>>>      
>>>
>>Мне в контейнере необходим доступ к /proc/bus/usb/devices
>>    
>>
>Всё же напишите на support на etersoft.ru
>И контейнер сделают, и проверят вашу ситуацию, и посоветуют как 
>быть.
>Ну или мы от вас научимся, если сами решите ;)
>  
>
Проблему решил, правда не скажу, что корректно...
Итак основная проблема для демона aksusbd в контейнере была в пробросе в 
контейнер каталога /proc/bus/usb/
Сами устройства /dev/... ей не нужны, окромя tty и null которые в 
контейнере есть.
mount --rbind  мне в руки НО Я НИКАК НЕ СМОГ СМОНТИРОВАТЬ /proc/bus 
основной системы  в /proc/bus контейнера
Команда
mount --rbind  /proc/bus /var/lib/vz/root/xxx/proc/bus
заканчивались ничем по одной постой причене - файловая система proc не 
позволяет создавать ни каталоги ни файлы.
НИКТО НЕ ПОМОЖЕТ МНЕ ОБОЙТИ ЭТО ОГРАНИЧЕНИЕ?

Для пробы я попытался монтировать каталог /proc/bus основной системы на 
каталог /root/bus контейнера.
mount --rbind  /proc/bus /var/lib/vz/root/xxx/root/bus
Монтирование прошло успешно, файл
bus/usb/devices успешно читается, каталоги bus/usb/001, .... существуют 
и доступны в контейнере.

Теперь появилась проблнма N2 - как заставить aksusbd читать файлы из 
каталога /root/bus/usb/ а не /proc/bus/usb/
Я отписал письмо в поддержку etersoft с просьбой добавить в демон 
aksusbd флаг, позволяющий указывать расположение данного каталога
Насколько я знаю у команды aksusbd исходники открыты, закрыты лишь 
alladin-библиотека (хотя может я ошибаюсь)
Тем не менее не дождавшись в течении суток ответа я  решил действовать  
хакерским способом -:)
подправил в бинарном коде строки /proc/usb/ на /root/usb/
 
После этого демон aksusbd задышал
Все остальные сервисы (hasplm, ...) запустились, правда я их не проверял.
Команда eterkeytest сообщила, что все alladin-ключи видны, правда 
сообщает с небольшой задержкой.
Причем у меня сложилась забавная ситуация -  с одними и те ми же ключами 
работают сразу два менеджера aksusbd - основной и в контейнере. Но на 
запросы о сетевых ключах, отвечает похоже один из них.
Мне важно было, чтобы в контейнере был виден локальный ключ.

На текущий момент у меня остались следующие вопросы:
1. Можно ли таки примонтировать каталог в /proc/
2. В каком месте при запуске контейнера вставить скрипт, монтирующий 
необходимый мне каталог из основной системы
до запуска /etc/init.d/-скриптов контейнера
3. Как отмонтировать примонтированный ресурс
Попытка отмонтировать его при работающем контейнере не проходит, хотя с 
этом каталогом уже никакой процесс не работает
(проверял через fuser -v). После останова контейнера каталога 
/var/lib/vz/root/xxx / уже не существует.
Каталог /var/lib/vz/privzte/... в данной ситуации не помогает - в него 
не монтируется /proc/
Такое ощещение, что отмонтирование надо производить в момент оставнова 
после всех сервисов контейнеров но до окончательного удаления контейнера.
Где бы об этом почитать?





-- 
С Уважением
Директор ООО НЕВОД
Костарев А.Ф.

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : kaf.vcf
Тип     : text/x-vcard
Размер  : 202 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/sysadmins/attachments/20071221/8a40a5a4/attachment.vcf 


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