Alex
может у нас тут банальное lsof |grep deleted ?
Alex
Debian 12
пни lsof |grep deleted есть что с zfs-ных датасетов?
Vladislav
А покажи ка мне spa_slop_shift
Для этого arc_summary | grep spa_slop_shift И cat /sys/module/zfs/parameters/spa_slop_shift
Free
пни lsof |grep deleted есть что с zfs-ных датасетов?
Нет, только на системном в /tmp показывает
Alex
жаль..
Alex
но анмаунт я б попробовал. вдруг
Vladislav
By contrast, the zfs(8) available property describes how much new data can be written to ZFS filesystems/volumes. The zpool free property is not generally useful for this purpose
Понимаешь в чем проблема, rm не совсем "новые данные"
Free
Для этого arc_summary | grep spa_slop_shift И cat /sys/module/zfs/parameters/spa_slop_shift
root@S07:~# arc_summary | grep spa_slop_shift spa_slop_shift 5 root@S07:~# cat /sys/module/zfs/parameters/spa_slop_shift 5
Vladislav
То есть дефолтные 3.2% всего пула зарезервированы как раз чтобы избежать такой ситуации...эх
Vladislav
но анмаунт я б попробовал. вдруг
Ну типо, как крайняя мера, да
Alex
крайняя это уже export
Free
но анмаунт я б попробовал. вдруг
Боюсь, вдруг потом mount обратно не получится. Сейчас запустил rsync одного датасета. Как закончится - буду его удалять. Вот перед этим попробую unmount какого-нибудь
Alex
import может и не случиться после этого без принуждения
Vladislav
но анмаунт я б попробовал. вдруг
zfs unmount это часть zpool export ....
Free
крайняя это уже export
Вот это точно страшно - import может не произойти, и тогда уж совсем ничего не сделаешь
Alex
zfs unmount это часть zpool export ....
это каким образом?
Vladislav
это каким образом?
Прямым, что по твоему делает zfs export?
Vladislav
Делает анмаунт и помечает пул как importable
Alex
Делает анмаунт и помечает пул как importable
то, что export делает unmount - очевидно. Но это ни капли не означает, что это часть единого
Alex
они даже над разными объектами, ёлки
Vladislav
У тебя операция XY включает в себя действие X
Alex
словоблудие задолбало, проехали
Vladislav
Каким образом у тебя действие Х не часть операции XY
Alex
без меня
Vladislav
без меня
Логично, навалил кучу и ушёл
George
Это уже радует 😉 Может, разработчикам @gmelikov будет интересно разобраться и помочь?
Будет отлично, если оформите issue по шаблону, нужен репродьюс или дамп пула увы. Текста много, нет возможности сейчас всё изучить и саппортить, но стоит попробовать просто крутануть https://openzfs.github.io/openzfs-docs/man/v2.2/4/zfs.4.html#spa_slop_shift чуть повыше, чтобы резерв освободился явно под запись и должно дать удалить уже. А дальше стоит прикинуть особенности пула, это raidz ли, к примеру, и можно в трекере прикопать инфу
George
Прямо целиком или?
в худшем случае для удобства дебага - да, инструмента слить всю мету без данных я не видел, хотя это может быть и удобно, правда не быстро
George
у меня на одной из машин spa_slop_shift=10 вообще (резерв совсем крохи, чуть ли не мегабайты), не раз упирался по месту и всё ещё живу) но это я экстремал. Но у меня миррор или страйп, не исключаю что частный случай у raidz где-то появился
Free
Будет отлично, если оформите issue по шаблону, нужен репродьюс или дамп пула увы. Текста много, нет возможности сейчас всё изучить и саппортить, но стоит попробовать просто крутануть https://openzfs.github.io/openzfs-docs/man/v2.2/4/zfs.4.html#spa_slop_shift чуть повыше, чтобы резерв освободился явно под запись и должно дать удалить уже. А дальше стоит прикинуть особенности пула, это raidz ли, к примеру, и можно в трекере прикопать инфу
👍Спасибо 🙏 Поднял spa_slop_shift до 10 - удалось и файлы лишние удалить, и снапшот сделать (потом подумал, что нужно было бы наоборот: сразу попробовать снапшот сделать, чтобы понять, хватило ли только увеличение spa_slop_shift для снапшота)! Теперь смогу send одного датасета, разрушу его, и после этого восстановлю spa_slop_shift до дефолтного 5. После этого посмотрю, смогу ли воспроизвести эту ситуацию (буду заполнять данными пул, не выставляя дополнительных ограничений). Если получится - можно будет говорить про воспроизводимость и оформлять issue
Free
sea freeing 0 -
Кстати, после этого (удаления нескольких файлов и создания снапшота) free осталось практически такой же (ну да, место чуть увеличилось за счет удаления файлов, больше и не могло появиться), но и freeing не поднялось выше нуля! free 77.9G freeing 0
George
@gmelikov Кстати, вот тот факт, что у меня при spa_slop_shift=5 было free=77.8G (то есть не положенные 3.2% от пула raidz2 размером 27.3T, а всего-лишь 0.28%) - это уже само по себе на баг тянет? Или это значение (free) - не тот резерв, который spa_slop_shift устанавливает?
это инфа от zpool команды или zfs? zpool на raidz показывает сырое место и это скорее ок бага скорее всего в расчёте виртуального свободного места для raidz, т.к. фактическое резервирование slop работало корректно
Free
Сейчас провожу дальнейшие эксперименты. Вернул spa_slop_shift=5. Несмотря на то, что до этого (при spa_slop_shift=10) удалил несколько десятков файлов - этого оказалось недостаточно, чтобы при возврате spa_slop_shift=5 удалить хоть какой-нибудь еще файл. Удалось сделать только destroy созданного снапшота. zfs list показывает 0B available (при spa_slop_shift=10 было 36.8G). Сейчас возвращаю spa_slop_shift=10, удалю файлов побольше - посмотрю на результат
Free
Удалил несколько тысяч мелких файлов при spa_slop_shift=10 - не помогает освободить место, достаточное для удаление хотя бы одного файла при spa_slop_shift=5
Δαρθ
мож там какой flush сделать, где-то читал что сабж реально помечает блоки свободными не сразу
Free
Ну когда делается destroy большого датасета с миллионами файлов - да, наблюдал, как гигабайты свободные постепенно появляются. Но от нескольких тысяч файлов размеров в несколько мегабайт эффект должен быть быстрый. Тем более я уже несколько раз повторил эту процедуру. То, что первый раз удалял - давно должно было освободиться. Сейчас надоело - грохну сразу на несколько гигабайт директорию и выжду пару часов - посмотрю на результат
Free
Ну вот удалил >120K файлов размером ~40G - эффект наконец-то (сразу же) появился. Удалось наконец-то удалить файл при spa_slop_shift=5. При этом zfs list по-прежнему показывает AVAIL 0B !
Free
Сделал, долждался - по-прежнему AVAIL 0B
Free
Но файлы успешно удаляются
Ivan
@neurox @gmelikov а протекрон что в sds чатике хорош ! может стоит его сюда добавить ?
Vladislav
Vladislav
Немного правда на ссылки чувствительно реагирует
George
@neurox @gmelikov а протекрон что в sds чатике хорош ! может стоит его сюда добавить ?
регулярно в том чате руками спам подтираю) и не только я
Anonymous
Добрый день!👋 Ищу людей для заработка на тестнетах в сфере крипты.🏦 ▫️Всему обучаю с 0, опыт не обязателен. ◾️Возможен заработок от 350$ ▫️Работаем на выгодных условиях для обеих сторон 💬 Более детально в личк. @RomBerdnik
Vladislav
/report
Animal
Братва, привет. Мб кто подскажет как отменить ресильверинг? Это возможно?
Animal
пробовал echo 1 | sudo tee /sys/module/zfs/parameters/zfs_scan_suspend_progress
Animal
на реддите писали что визуально статус будет показывать что ресильверинг идет но на сам деле типа НЕ должен. Но после перезагрузки ресильверинг опять стартует...
Animal
или ВСЕ? только ждать окончания или совсем убивать пул?
Алексей
Никак
Алексей
Можно только зафризить
Animal
Спс. Жопа конечно ))
Animal
Судя по всему пару-тройку месяцев ждать...чот еле ползет. Так бы с нуля перестроил, скопировав что есть но епт некуда ))
Animal
scan: resilver in progress since Sun Jul 14 05:28:23 2024 51.2G scanned at 14.4M/s, 750M issued at 211K/s, 13.6T total 0B resilvered, 0.01% done, no estimated completion time
Animal
SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0 3 Spin_Up_Time 0x0027 224 214 021 Pre-fail Always - 3783 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 452 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0 9 Power_On_Hours 0x0032 067 067 000 Old_age Always - 24617 10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 449 192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 319 193 Load_Cycle_Count 0x0032 199 199 000 Old_age Always - 4830 194 Temperature_Celsius 0x0022 105 090 000 Old_age Always - 45 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0
Dexex
хз.. мб сыпаться начал...
У меня такое было, когда я вместо неисправного ssd поставил hdd, по ходу тоже неисправный, ну там замедление из за ошибок.
Dexex
Честно, сколько раз SMART ***здел. Типа нет фейлов, а по факту диск крякает на каком то этапе.
Dexex
Ставишь новый - нет проблем.
Animal
хер знает. самый проблем где взять новый )) у меня там raidz1 из 3х по 6тб
Vladislav
Честно, сколько раз SMART ***здел. Типа нет фейлов, а по факту диск крякает на каком то этапе.
Нууу, у меня смарт не пиздел ещё, если он говорил, что диску хуево - диску хуево. И обратное тоже верно. Другое дело, что у меня настроены проверки смарта
Alex
Честно, сколько раз SMART ***здел. Типа нет фейлов, а по факту диск крякает на каком то этапе.
именно так. Есть старое исследование гугла на огромном массиве дисков https://research.google.com/archive/disk_failures.pdf
Alex
если tldr, то суть в том, что если смарт показывает ошибки - скорее всего диску хана. Но! если смарт Не показывает ошибок, это Не значит , что диск скоро не вылетит
Alex
много "не" ) иначе, смарт чистый - диск все равно может скоро сдохнуть
Станислав
Alex
ой, 2007 год... тут конечно надо брать поправку 8)
Станислав
ой, 2007 год... тут конечно надо брать поправку 8)
Да, потом было ещё хуже из-за мухи CC))