Я увидел, что использовать функциональность btrfs CoW для больших файлов, таких как каталоги данных базы данных PostgreSQL, - не лучшая идея.
Поскольку я использую докер для баз данных, я спрашиваю себя, следует ли мне отключить CoW для всего /var/lib/docker
каталог. Но я не уверен, потому что многоуровневая файловая система докера использует эту функцию или нет?
Или возможно отключить CoW только для определенных объемов?
Я не думаю docker
напрямую подключается к поведению CoW BTRFS (или любой файловой системы); скорее, он может использовать снимки и / или ссылки, чтобы избежать репликации целых образов контейнеров.
Хотя отключение CoW, безусловно, улучшит производительность, имейте в виду, что:
В то время как для базы данных (например, PostgreSQL) указанные выше моменты могут не вызывать проблем (например: контрольная сумма данных выполняется на уровне записи БД, а моментальные снимки предоставляются на уровне транзакций), для виртуальной машины или контейнера, у которых отсутствуют эти функции, могут возникнуть проблемы.
В любом случае, я действительно предлагаю вам прочитать BTRFS FAQ по nodatacow