Использование Docker на сервере Linux
Командная строка через PuTTy
Когда я запускаю ODM на локальном компьютере, он отлично работает с разбиением набора данных и без него, используя
docker run -it --rm -v G: / test: / datasets / code opendronemap / odm --project-path / datasets
или
docker run -it --rm -v G: / test: / datasets / code opendronemap / odm --project-path / datasets --split 10 --split-overlap 3
Пока у меня есть данные в локальной папке (на жестком диске или внешнем USB-диске), он делает все, как ожидалось.
Но когда я запускаю его на сервере, он работает только без команды split:
docker run -it --rm -v / my-server / Папка проекта: / datasets / code opendronemap / odm --project-path / datasets
Работает нормально, но как только добавлю
--split 10 --split-overlap 3
к коду я получаю следующую ошибку:
[ИНФОРМАЦИЯ] running / code / SuperBuild / src / opensfm / bin / opensfm create_submodels> / var / www / data / 44a86e01-7ff1-4848-a6b6-711097026c96 / opensfm
Отслеживание (последний вызов последний):
Файл «/ code / SuperBuild / src / opensfm / bin / opensfm», строка 34, в
command.run (аргументы)
Файл «/code/SuperBuild/src/opensfm/opensfm/commands/create_submodels.py», строка 37, в процессе
meta_data.load_clusters_with_neighbors ())
Файл «/code/SuperBuild/src/opensfm/opensfm/large/metadataset.py», строка 154, в> create_submodels
os.symlink (src_relpath, dst)
OSError: [Errno 95] Операция не поддерживается
Отслеживание (последний вызов последний):
Файл «/code/run.py», строка 56, в
app.execute ()
Файл «/code/stages/odm_app.py», строка 93, выполняется
self.first_stage.run ()
Файл «/code/opendm/types.py», строка 376, в процессе
self.next_stage.run (выходы)
Файл «/code/opendm/types.py», строка 357, в процессе
self.process (self.args, выходы)
Файл «/code/stages/splitmerge.py», строка 65, в процессе
octx.run («create_submodels»)
Файл «/code/opendm/osfm.py», строка 21, выполняется
(context.opensfm_path, команда, self.opensfm_project_path))
Файл «/code/opendm/system.py», строка 76, запущен
поднять исключение («Дочерний вернулся {}». формат (retcode))
Исключение: ребенок вернул 1
Похоже, что у opensfm проблемы с чтением / записью папки подмоделей. Я добавлен в группу пользователей докеров, но у меня нет прав sudo, когда я запускаю команду.
Ожидаемое поведение заключается в том, что ODM создает папки подмоделей и обрабатывает набор данных по частям, поэтому я могу извлечь ортофото и DSM каждой подмодели, чтобы впоследствии работать с меньшими файлами tif.
Запустите ODM с параметром --split на диске сервера
Я много раз общался с администратором сервера и думаю, что мы нашли проблему:
У Symlinks есть проблемы при работе в файловой системе cifs, что требует добавления флага mfsymlink к команде mount, и именно поэтому я получал сообщение об ошибке. После добавления флага mfsymlink процесс работает нормально. Сейчас я использую больший набор данных, чтобы убедиться, но похоже, что теперь он исправлен.
Да, в этом есть смысл. Интенсивное использование символических ссылок - определенная проблема для файловой системы.
Пьеро, вы все еще считаете это ошибкой, или мы должны попросить x-ancin добавить что-то в документы, если они могут?
Я не думаю, что это ошибка, а проблема с файловой системой. Закрытие.