Btrfs/RAID: различия между версиями

Материал из DZWIKI
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
== Создание ==
== Создание ==
Основная информация о создании файловой системы на нескольких устройствах приведена в разделе о [[Btrfs/Создание файловой системы#Файловая система на нескольких устройствах|создании файловой системы]].
Основная информация о создании файловой системы на нескольких устройствах приведена в разделе о [[Btrfs/Создание файловой системы#Файловая система на нескольких устройствах|создании файловой системы]].
{{Внимание|В коде Parity RAID (RAID 5/6) есть несколько серьёзных ошибок, приводящих к потере данных. Более подробную информацию смотрите на [https://btrfs.readthedocs.io/en/latest/btrfs-man5.html#raid56-status-and-recommended-practices странице RAID5/6] в документации Btrfs и в сообщении об ошибке в [https://lore.kernel.org/linux-btrfs/8695beeb-f991-28c4-cf6b-8c92339e468f@inwind.it/ linux-btrfs mailing list].}}


== Обслуживание ==
== Обслуживание ==
*
 
=== Scrub ===
В [https://btrfs.readthedocs.io/en/latest/Glossary.html Btrfs Wiki Glossary] говорится, что Btrfs scrub — это «онлайн-инструмент проверки файловой системы. Считывает все данные и метаданные в файловой системе, использует контрольные суммы и дубликаты копий из RAID-хранилища для выявления и восстановления повреждённых данных».
 
{{Notice|Примечание: Запущенный процесс scrub помешает уходу системы в сон, подробнее в [https://lore.kernel.org/linux-btrfs/20140227190656.GA28338@merlins.org/ этой теме].}}
 
==== Запуск вручную ====
Чтобы запустить scrub в фоне:
 
<syntaxhighlight lang="bash">
btrfs scrub start /
</syntaxhighlight>
 
Чтобы проверить состояние scrub, работающего в фоне:
 
<syntaxhighlight lang="bash">
btrfs scrub status /
</syntaxhighlight>
 
==== Запуск с помощью службы или таймера ====
Пакет [[btrfs-progs]] предоставляет юнит <code>btrfs-scrub@.timer</code>, запускающий ежемесячную проверку указанной точки монтирования. Включите таймер, указав экранированный путь, например, <code>btrfs-scrub@-.timer</code> для / и <code>btrfs-scrub@home.timer</code> для <code>/home</code>. Вы можете использовать <code>systemd-escape -p /путь/к/точке/монтирования</code> для экранирования пути, подробности смотрите в [https://man.archlinux.org/man/systemd-escape.1 systemd-escape(1)].
 
Вы также можете запустить scrub через службу <code>btrfs-scrub@.service</code> (тоже указав экранированный путь). Преимущество этого способа перед простым запуском команды <code>btrfs scrub</code> (от имени root) в том, что результаты проверки будут записаны в журнал [[systemd]].
 
На больших NVMe-дисках с недостаточным охлаждением (например, в ноутбуке) scrub может считывать данные достаточно быстро и долго, чтобы диск сильно нагрелся. Если вы запускаете scrub с помощью systemd, вы можете легко ограничить скорость проверки с помощью опции <code>IOReadBandwidthMax</code>, описанной в [https://man.archlinux.org/man/systemd.resource-control.5 systemd.resource-control(5)], используя [https://wiki.archlinux.org/title/Drop-in_%D1%84%D0%B0%D0%B9%D0%BB drop-in файл].
 
=== Балансировка ===
«Балансировка повторно пропускает все данные в файловой системе через аллокатор. В первую очередь он предназначен для перебалансировки данных в файловой системе между устройствами, когда устройство добавляется или удаляется. Балансировка восстанавливает недостающие копии для избыточных уровней RAID, если устройство вышло из строя».
 
В файловой системе с одним устройством балансировка может быть также полезна для (временного) уменьшения количества выделенных, но неиспользуемых (мета)чанков данных. Иногда это необходимо для решения [https://archive.kernel.org/oldwiki/btrfs.wiki.kernel.org/index.php/FAQ.html#Help.21_Btrfs_claims_I.27m_out_of_space.2C_but_it_looks_like_I_should_have_lots_left.21 проблем «filesystem full»].
 
<syntaxhighlight lang="bash">
btrfs balance start --bg /
btrfs balance status /
</syntaxhighlight>


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

Текущая версия от 22:24, 6 января 2024

Создание

Основная информация о создании файловой системы на нескольких устройствах приведена в разделе о создании файловой системы.

Обслуживание

Scrub

В Btrfs Wiki Glossary говорится, что Btrfs scrub — это «онлайн-инструмент проверки файловой системы. Считывает все данные и метаданные в файловой системе, использует контрольные суммы и дубликаты копий из RAID-хранилища для выявления и восстановления повреждённых данных».

Запуск вручную

Чтобы запустить scrub в фоне:

btrfs scrub start /

Чтобы проверить состояние scrub, работающего в фоне:

btrfs scrub status /

Запуск с помощью службы или таймера

Пакет btrfs-progs предоставляет юнит btrfs-scrub@.timer, запускающий ежемесячную проверку указанной точки монтирования. Включите таймер, указав экранированный путь, например, btrfs-scrub@-.timer для / и btrfs-scrub@home.timer для /home. Вы можете использовать systemd-escape -p /путь/к/точке/монтирования для экранирования пути, подробности смотрите в systemd-escape(1).

Вы также можете запустить scrub через службу btrfs-scrub@.service (тоже указав экранированный путь). Преимущество этого способа перед простым запуском команды btrfs scrub (от имени root) в том, что результаты проверки будут записаны в журнал systemd.

На больших NVMe-дисках с недостаточным охлаждением (например, в ноутбуке) scrub может считывать данные достаточно быстро и долго, чтобы диск сильно нагрелся. Если вы запускаете scrub с помощью systemd, вы можете легко ограничить скорость проверки с помощью опции IOReadBandwidthMax, описанной в systemd.resource-control(5), используя drop-in файл.

Балансировка

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

В файловой системе с одним устройством балансировка может быть также полезна для (временного) уменьшения количества выделенных, но неиспользуемых (мета)чанков данных. Иногда это необходимо для решения проблем «filesystem full».

btrfs balance start --bg /
btrfs balance status /

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