Есть стойкий миф про файловые системы 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, избегая точки отказа в виде диска и сервера, равномерно "размазывает" информацию по всему кластеру.
Filesystem Size Used Avail Use% Mounted on /dev/sdc1 2,8T 716G 2,1T 26% /mnt/d2 /dev/sdd1 2,8T 797G 2,0T 29% /mnt/d3
Для онлайн дефрагментации XFS разделов есть утилита xfs_fsr. После её работы резко упал fragmentation factor, что почти моментально благоприятно отразилось на моём графике Ceph HDD Latency в Zabbix. Осталось запихать вызов xfs_fsr в crontab и забыть о фрагментации файлов на разделах XFS. Кто бы ещё купил SSD для радикального уменьшения latency?
А ваша ext4 фрагментирована? sudo e4defrag -c /dev/sda1