Отключение функции копирования при записи (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: обзоры и обновления
• Wine 10.5 представлен с поддержкой H.264 и обновлением Mono 10.0
• Производительность GNOME и KDE на Wayland превосходит Xfce и LXQt на Ubuntu 25.04 в играх
• Обновление GE-Proton 9-27 для Linux и Steam Deck: исправления для Ubisoft Connect, Epic Games, Wuthering Waves и Monster Hunter Wilds
• Релиз Linux Lite 7.4: исправления ошибок и новые версии ПО
• Вышло обновление SteamOS 3.6.24 для Steam Deck с исправлениями для Avowed и No Rest for the Wicked
• В KDE исправлены основные сбои в Plasma 6.3.4, количество VHI-багов снижено до нуля