Назад | Перейти на главную страницу

cp работает слишком медленно, как и rsync (я полагаю) - есть ли способ поделиться файлами в двух местах?

Я использую Docker, а Docker не может COPY файлы с символической связью в изображение. Но файлы, которые связаны символическими ссылками, не находятся в «контексте сборки». Поэтому я собирался скопировать их в контекст сборки с помощью cp, но это очень медленно. Есть ли способ поделиться файлами в двух разных местах на диске без необходимости их копирования и без использования символических ссылок?

Вы можете скопировать с помощью reflinks `cp --reflink = always ', что создаст дифференциальный файл, ссылающийся на статический оригинал. Если вы сделаете это, вы, вероятно, захотите сделать оригинал неизменяемым, чтобы копия с переадресацией не была повреждена.

Или вы можете использовать что-то вроде снимков LVM для быстрого создания / клонирования файловых систем, которые отличаются от оригинала. Тонкий LVM был бы лучше всего для этого подхода, и вы могли бы достичь этого, установив сам моментальный снимок, а не используя моментальный снимок как способ отката исходного тома, как мы традиционно делаем. Использование LVM будет безопаснее, чем копии с переадресацией ссылок, поскольку изменения в оригинале корректно обрабатываются путем обновления всех снимков с обновлениями источника.

В-третьих, вы можете делать снимки подтомов BTRFS. Это лучшее из обоих миров, поскольку это механизм моментальных снимков на уровне файловой системы или файлов, который не требует, чтобы вы управляли обоими файлами и менеджером томов по отдельности. Этот процесс был бы очень похож на LVM, поскольку вы можете монтировать подтомы где угодно.

И наконец, рассматривали ли вы NFS? Указание соединения NFS в образе контейнера - хороший способ получить общее хранилище.