Фрагментація файлових систем Linux

Є стійкий міф про файлові системи Linux: це вам не вінда і тут дефрагментатор не потрібен! Якщо бути перед собою чесним, то варто визнати факт - файлові системи в linux менш схильні до фрагментації файлів на них, в порівнянні з NTFS, але все-таки вона є.

Коли освоювали з колегами Ceph, його мануал HARD DISK AND FILE SYSTEM RECOMMENDATIONS був визначальним під час виборів файлової системи. Давайте будемо чесними. Якщо вам розробник рекомендує щось, то це майже наказ-вказівка. Ну хто хоче похизувати непотрібні проблеми у майбутньому, відхилившись від генеральної лінії партії? Скрізь XFS у рекомендаціях. Ну, XFS так XFS. Що знав про неї? Мало. Зроблена в Silicon Graphics і хороша під час роботи з величезними файлами.

Після того, як файлова система XFS була створена на всіх дисках, що зберігають дані Ceph, пройшов майже рік. Зізнаюся чесно, але в метушні адмінських днів, я забув промоніторити цей момент, названий темою. Вирячись у систему моніторингу, яка малювала графіки команди ceph osd perf, на думку і спала на думку, а що там із фрагментацією файлів? У Ceph все представлено як об'єктів і на дисках вони лежать, природно, як файлів, але зі своїми іменами-ідентифікаторами. Здебільшого розмір більшості файлів становить 4194304 байта. Невеликий розмір натякає, що це не коник файлової системи XFS, але, можливо,екстенти(extents), що зберігають так само блоками вільні ділянки, івідкладене виділення місця(delayed allocation) утримають відсоток фрагментації в розумній межі.

файлових
файлових

xfs_db -r -c frag /dev/ім'я-розділу-xfs видало fragmentation factor 35-38% у всіх розділів XFS. Ось тобі, бабусю, і Юр'єв день! Це при тому, що вставлені 3 Тб диски і вони напівпорожні,так як Ceph, уникаючи точки відмови у вигляді диска та сервера, поступово "розмазує" інформацію по всьому кластеру.

Для онлайн дефрагментації розділів XFS є утиліта xfs_fsr. Після її роботи різко впав fragmentation factor, що майже моментально сприятливо позначилося на моєму графіку Ceph HDD Latency в Zabbix. Залишилось запхати виклик xfs_fsr у crontab і забути про фрагментацію файлів на розділах XFS. Хто ще купив SSD для радикального зменшення latency?

А ваша ext4 фрагментована? sudo e4defrag -c /dev/sda1