Отключение функции копирования при записи (CoW) в файловой системе BTRFS является важной темой для пользователей, работающих с виртуальными машинами или специализированными приложениями, требующими высокой производительности диска. BTRFS, современная файловая система Linux, предлагает множество преимуществ, включая улучшенное управление данными и восстановление после сбоев. Однако её механизм CoW может замедлять производительность определённых типов файлов, таких как файлы виртуальных дисков.
Что такое CoW и почему его иногда отключают?
Копирование при записи (CoW) – это функция, при которой изменения в файле не перезаписывают исходные данные, а создают новую копию изменённой части файла. Это повышает безопасность данных и упрощает создание снимков состояния системы (snapshots). Тем не менее, для файлов виртуальных машин или баз данных, где часто происходят записи, CoW может снижать производительность из-за дополнительных операций копирования.
Как отключить CoW в BTRFS
Отключение CoW для отдельных файлов
Для отключения CoW на уровне отдельных файлов используется команда chattr +C. Прежде всего, убедитесь, что файл или директория, для которой вы хотите отключить CoW, новая или не содержит данных.
Важно, команда применяется к новым файлам или директориям без данных.
chattr +C /путь/к/новому/файлу_или_директории
Проверка статуса CoW
Статус CoW можно проверить с помощью команды lsattr:
lsattr /путь/к/файлу_или_директории
Флаг C в выводе указывает на то, что CoW отключен.
Создание подтомов в BTRFS
Подтома BTRFS — это мощный инструмент для организации файлов и директорий, позволяющий управлять разделами данных независимо друг от друга. Создание подтома может быть полезно для изоляции различных типов данных или для упрощения резервного копирования и восстановления.
В случае предстоящего использования виртуальных машин, например VirtualBox, стоит создать подтом BTRFS, затем задать ему ему флаг для отключения копирования при записи.
Для создания нового подтома используйте команду:
btrfs subvolume create /путь/к/новому_подтому
Например, для создания подтома для виртуальных машин:
btrfs subvolume create VirtualBoxVMs/
Затем:
chattr +C VirtualBoxVMs/
Не забудьте в настройках VirtualBox указать новый путь для создания и хранения виртуальных машин.
Мы создали новый подтом, который можно использовать для хранения файлов виртуальных машин и который не будет использовать функцию CoW.
Важные замечания
- Отключение CoW может увеличить риск потери данных при сбоях, так как изменения записываются напрямую в исходные блоки данных.
- Для максимальной эффективности рекомендуется отключать CoW для файлов и директорий, где ожидается интенсивная запись данных, например, для директорий с файлами виртуальных машин.
- Всегда создавайте резервные копии важных данных перед внесением изменений в системные настройки.
Отключение CoW в BTRFS предоставляет пользователям гибкость в оптимизации производительности для специфических задач, однако следует тщательно взвешивать потенциальные риски и преимущества перед применением этих изменений.
Linux: обзоры и обновления
• Proton Experimental получил исправления для THE FINALS, Avatar: Frontiers of Pandora и METAL GEAR SOLID V на Linux и Steam Deck
• Почему пользователи Windows не переходят на Linux: 6 основных причин
• Обновления Linux за неделю: 11 – 17 августа 2025 года
• Сервис AUR в Arch Linux столкнулся с перебоями из-за DDoS-атак
• Вышла версия Wine 10.13: исправления для Office 365, SQL Server и Doom 3 BFG
• CachyOS занял первое место в рейтинге DistroWatch, обогнав Linux Mint