Назад | Перейти на главную страницу

Btrfs: удаление большого файла занимает много времени

Я использую Synology nas DS1817 + с DSM 6.2.2-24922 с томом RAID5, отформатированным с помощью BTRFS.

Удаление большого файла с помощью DSM FileStation или непосредственно в сеансе ssh с использованием rm filename занимает много времени.

bash-4.3# ls -al
total 31362720
drwxr-xr-x 1 root root         154 Apr 13 05:09 .
drwxr-xr-x 1 root root          86 Apr 13 05:09 ..
-rw------- 1 root root 42949672960 Apr 13 05:09 Zoll-VM-flat.vmdk

bash-4.3# time rm Zoll-VM-flat.vmdk 

real    7m24.817s
user    0m0.000s
sys     0m6.435s

Зачем? Глядя на iotop, кажется, что он читает и записывает весь файл?!?

btrfs - это файловая система CoW, которая использует блоки размером 4 КБ в качестве базового размера «записи». Это для больших файлов с интенсивной рабочей нагрузкой перезаписи (как ваш файл виртуального диска) вызовет огромные данные и метаданные фрагментация. Вы можете проверить фрагментацию данных, запустив filefrag -v <diskfile> и подсчет количества или фрагментов; при изменении каждого фрагмента необходимо создать / изменить запись метаданных.

Для томов на классических механических дисках удаление таких файлов потребует изрядного количества времени, особенно при работе на raid5 / 6.

Поэтому я не думаю, что вам удастся избежать этого долгого времени удаления. Посмотреть Вот для аналогичного случая.