Btrfs/Настройка: различия между версиями

Материал из DZWIKI
Перейти к навигации Перейти к поиску
Строка 31: Строка 31:
{{Notice|'''Примечание:''' Из [https://man.archlinux.org/man/chattr.1 chattr(1)]:<br>
{{Notice|'''Примечание:''' Из [https://man.archlinux.org/man/chattr.1 chattr(1)]:<br>
При использовании Btrfs флаг '<code>C</code>' следует устанавливать для новых или пустых файлов. Если он установлен на файле, который уже имеет блоки данных, то неизвестно, когда блоки, назначенные файлу, станут полностью стабильными. Если флаг '<code>C</code>' установлен для каталога, он не будет иметь никакого эффекта на каталог, но новые файлы, создаваемые в этом каталоге, будут иметь атрибут <code>No_COW</code>.
При использовании Btrfs флаг '<code>C</code>' следует устанавливать для новых или пустых файлов. Если он установлен на файле, который уже имеет блоки данных, то неизвестно, когда блоки, назначенные файлу, станут полностью стабильными. Если флаг '<code>C</code>' установлен для каталога, он не будет иметь никакого эффекта на каталог, но новые файлы, создаваемые в этом каталоге, будут иметь атрибут <code>No_COW</code>.
}}
{{Imbox
| type = notice
| text = Совет: В соответствии с примечанием выше, вы можете использовать следующий трюк, чтобы отключить копирование при записи для существующих файлов в каталоге:
}}
}}



Версия от 23:00, 6 января 2024

На этой странице мы рассмотрим настройку файловой системы.

Копирование при записи (CoW)

По умолчанию Btrfs постоянно использует копирование при записи (copy-on-write) для всех файлов. Когда выполняется операция записи, новые данные не записываются поверх старых; вместо этого изменённая копия блока записывается в новое место и в метаданные записывается адрес нового блока. Подробности реализации, а также преимущества и недостатки описаны в Btrfs Sysadmin Guide.

Отключение CoW

Чтобы отключить копирование при записи для создаваемых файлов в примонтированном подтоме, используйте опцию монтирования nodatacow. Это повлияет только на новые файлы. Для существующих файлов копирование при записи всё равно будет происходить. Опция nodatacow также отключает сжатие.[1]

Чтобы отключить копирование при записи для отдельных файлов/каталогов, выполните:

chattr +C /каталог/файл

Это отключит копирование при записи для операций над файлами, на которые есть только одна ссылка. Если ссылок на файл больше одной, например, из-за клонирования файлов или облегчённых клонов или снимков файловой системы, копирование при записи всё равно будет происходить. Начиная с coreutils 9.0, cp пытается создавать облегчённые копии по умолчанию — смотрите cp(1) для более подробной информации.

Примечания

  1. btrfs(5) — Arch manual pages (англ.). Arch manual pages (14 декабря 2023). Дата обращения: 6 января 2024. Архивировано 28 декабря 2023 года.

Ссылки и источники