Почему серверная часть хранилища Docker vfs не считается пригодной для производства?

Серверная часть хранилища Docker vfs в нескольких местах упоминается как не производственная серверная часть (см., Например, комментарий к проблеме Docker GitHub Майкла Кросби). Что делает его не пригодным для производства?

Описание хранилища в Project Atomic гласит:

Бэкэнд vfs - это очень простой резерв, который не имеет поддержки копирования при записи. Каждый слой - это просто отдельный каталог. Создание нового слоя на основе другого слоя выполняется путем создания глубокой копии базового слоя в новый каталог.

Поскольку этот бэкэнд не разделяет использование дискового пространства между слоями и поскольку создание нового слоя является медленной операцией, это не очень практичный бэкэнд. Тем не менее, он по-прежнему имеет свои применения, например, для проверки других бэкендов, или если вам нужен супер надежный (если медленный) бэкэнд, который работает везде.

В соответствии с этим описанием кажется, что единственным недостатком является то, что может использоваться больше дискового пространства, а создание слоев может выполняться медленнее. Но нет никаких упоминаний о минусах во время выполнения при доступе к файлам, и он даже описывается как "надежный". Одна только проблема дискового пространства не кажется блокирующим для производственного использования.

1 ответ

Действительно, вы могли бы использовать vfs Драйвер в производстве, однако, следует помнить, что, поскольку это "обычная" копия, вы не сможете воспользоваться функциями, которые могут предоставить devicemapper или btrfs, и вы полагаетесь исключительно на базовую файловую систему.

Недостатком времени выполнения является то, что он намного медленнее run, После запуска, если у вас одна и та же базовая файловая система, это будет то же самое.

Короче, я бы рекомендовал против, потому что:

  • Он был реализован сначала для тестов, а затем использовался для томов. Никогда не предназначался для использования во время выполнения
  • Он опирается на базовую файловую систему, поэтому вы даете меньше контроля Docker над вашими файлами. Это может (или не может) вызвать проблемы с будущим обновлением. Сама цель Docker - абстрагировать хост, так что вам лучше делегировать подобные вещи Docker.
  • Занимает много места на диске
  • Требуется много времени для запуска или фиксации
Другие вопросы по тегам