Подключите интерфейс eSata напрямую к общему ресурсу NFS

Я не уверен, возможно ли это, но я хочу смонтировать общий ресурс nfs (как клиент) и привязать внешний eSata материнской платы к общему ресурсу nfs.

Вероятно, это звучит фальшиво, но у меня есть медиаплеер, который может воспроизводить мультимедиа через eSata, и хочу иметь промежуточный блок, который выполняет перевод между eSata и монтированием nfs. (Поскольку этот конкретный игрок ничего не знает о мире NFS).

Может быть, есть лучший способ, поэтому я открыт для предложений. (Но это не должно уйти от НФС).

Другая (более небрежная) идея, которую я имею, состоит в том, чтобы найти внешний usb-диск / eSata наименьшего возможного размера и смонтировать общий ресурс nfs с помощью символической ссылки на внешнем диске, а затем медиаплеер eSata, который также подается в накопитель.

Спасибо!

1 ответ

Решение

Хотя это не является принципиально невозможным, я не верю, что какое-либо решение для этого существует.

Во-первых, если я правильно понимаю ваш запрос - у медиаплеера нет собственного диска или он здесь не используется - медиаплеер ожидает, что диск будет представлен через eSATA. eSATA - это протокол блочного доступа; чтобы дать ему такое блочное устройство (диск, который здесь на самом деле не является диском), вам нужен SATA HBA на вашем конце, работающий в целевом режиме ("нормальные" порты работают в режиме инициатора). Это редко встречается за пределами систем SAN, и там, как правило, это Fibre Channel или SAS, а не SATA. Эти настройки, поддерживающие целевой режим, отображают (один, большой) файл в LUN, который представляется подключенным устройствам. Сервер не знает и не заботится о том, что находится в этом файле; клиентский компьютер должен разобраться с таблицей разделов и файловой системой на LUN, прежде чем он сможет добраться до реального содержимого файла.

Далее, медиа-сервер, вероятно, ожидает, что на "диске" будет таблица разделов в стиле DOS и один раздел с разделом FAT (или, возможно, NTFS). Возможно, он также примет ext2/3 - это зависит от того, что он запускает сам.

NFS, с другой стороны, является файловым протоколом. Клиент запрашивает файл и получает необработанные данные, не заботясь о файловой системе, в которой живет файл.

Чтобы сделать то, что вы хотите здесь, вам нужен промежуточный уровень, который строит внутреннюю структуру какой-то структуры файловой системы, которую медиа-проигрыватель может прочитать (наиболее вероятные варианты - не открытые стандарты, что добавляет сложности), и отвечать на запросы эти блоки с данными, взятыми из файлов из NFS. Вы можете перечислить содержимое монтирования NFS для построения базы данных, но любые изменения в общем ресурсе NFS необходимо будет повторно включить в представление, подаваемое на медиаплеер. В Linux есть некоторые системные вызовы, которые могут это сделать, но они не работают с монтированием NFS.

Таким образом, способ сделать это безопасно - скопировать содержимое общего ресурса NFS в раздел FAT32, смонтированный на петле, затем размонтировать раздел и экспортировать его в качестве LUN ​​на медиаплеер. Это имеет обратную сторону необходимости хранить все дважды, как бы то ни было.

Или, короче говоря: извините, это (в значительной степени) невозможно.

Другие вопросы по тегам