Необходимо в случае установки на SSD запускать fstrim как минимум раз в неделю по расписанию.
Как воспроизвести?
А рецепт с fstab : http://vasilisc.com/trim-ssd годится7
Найти в коде место, где вызывается fstrim -a по крону. Ну или поставить на ssd, через месяц дать команду fstrim -v -a и убедиться в том, что TRIM не выполнен. # fstrim -v -a /: 52,6 GiB (56417341440 bytes) trimmed
Рецепт с fstab признан устаревшим. У меня он не работает. В других популярных дистрибутивах fstrim вызывается по крону. Эту функцию нужно иметь возможность отключить.
http://help.ubuntu.ru/wiki/ssd/
И еще (ссылки от rider@) : http://askubuntu.com/questions/443761/how-is-trim-enabled
Собери пакетик, который можно класть в дистрибутивы? Разумеется, стоит проверять, что работаем по SSD (по /sys/block/sd?/queue/rotational -- должен быть нолик). У меня на локалхосте воткнуто в скриптик синхронизации сизифа :(
В исходниках util-linux лежит fstrim.service и fstrim.timer А проверять надо делать или нет оно умеет само (fstrim -a)
Кстати, для сервера это тоже актуально
Т.е. - для того, что бы делать TRIM на ssd достаточно время от времени запускать fstrim -a, все необходимые сервисы (systemd) для которого лежат в исходниках util-linux Устанавливать это нужно не только на сервера, но и на рабочие станции. fstrim -a сам умеет (я посмотрел в исходники) определять, для каких дисков нужно делать TRIM а для каких - нет. Эту функцию нужно включить во все собираемые дистрибутивы, включая стартеркиты.
По твоей же ссылке: --- Only Intel and Samsung SSDs will have TRIM enabled by default in Ubuntu 14.04 because some cheap SSDs can even brick themselves when running TRIM. --- http://askubuntu.com/questions/443761/how-is-trim-enabled Повторюсь, просьба по возможности помочь с пакетом. Я давно хочу добавить такую функциональность, сдерживают именно редкие, но меткие косяки прошивок, о которых порой слышу.
Миша, blacklist теперь в ядре, посмотри последний комментарий здесь: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1259829 А ещё патч тут: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/ata?id=3b8d2676d15d6b2326757adb66b70a9cd6650373 И баг тут: https://bugzilla.kernel.org/show_bug.cgi?id=71371 Можно смело запускать fstrim -a везде где хочешь. Если вылезет проблема - совет отключить trim и дать нам информацию о проблемном устройстве для добавления в blacklist ядра.
(В ответ на комментарий №8) > В исходниках util-linux лежит fstrim.service и fstrim.timer > А проверять надо делать или нет оно умеет само (fstrim -a) (В ответ на комментарий №10) > Эту функцию нужно включить во все собираемые дистрибутивы, включая стартеркиты. Посмотрел в федорином спеке -- там %{_unitdir}/fstrim.* прямо в основной пакет util-linux и кладут. Может, так и сделать? (с legion@ обсудили подпакет, он не против -- я пошёл смотреть, заметил такое)
(In reply to comment #13) > (В ответ на комментарий №8) > > В исходниках util-linux лежит fstrim.service и fstrim.timer > > А проверять надо делать или нет оно умеет само (fstrim -a) > > (В ответ на комментарий №10) > > Эту функцию нужно включить во все собираемые дистрибутивы, включая стартеркиты. > > Посмотрел в федорином спеке -- там %{_unitdir}/fstrim.* прямо в основной пакет > util-linux и кладут. Может, так и сделать? (с legion@ обсудили подпакет, он не > против -- я пошёл смотреть, заметил такое) +1
(In reply to comment #14) > (In reply to comment #13) > > (В ответ на комментарий №8) > > > В исходниках util-linux лежит fstrim.service и fstrim.timer > > > А проверять надо делать или нет оно умеет само (fstrim -a) > > > > (В ответ на комментарий №10) > > > Эту функцию нужно включить во все собираемые дистрибутивы, включая стартеркиты. > > > > Посмотрел в федорином спеке -- там %{_unitdir}/fstrim.* прямо в основной пакет > > util-linux и кладут. Может, так и сделать? (с legion@ обсудили подпакет, он не > > против -- я пошёл смотреть, заметил такое) > > +1 В смысле -- в основной пакет, как в Fedora
(В ответ на комментарий №8) > В исходниках util-linux лежит fstrim.service и fstrim.timer Обсудили ещё с glebfm@ (в т.ч. по взаимодействию с ovz-el) и aen@; похоже, стоит положить эти файлики туда же, где и бинарник fstrim, т.е. в основной подпакет util-linux. Проверяю 2.27.1-alt2.M80P.1...
Так я о чём и писал. Конечно так и сделать.
util-linux-2.27.1-alt2.M80P.1 -> p8: * Wed Nov 02 2016 Michael Shigorin <mike@altlinux> 2.27.1-alt2.M80P.1 - added fstrim service/timer (closes: #32687)
Факта добавления таймера и сервиса недостаточно - нужно активировать его в дистрибутиве.
(В ответ на комментарий №19) > Факта добавления таймера и сервиса недостаточно - нужно активировать его в > дистрибутиве. Да, и мне такое положение вещей кажется разумным. Достаточно + @$(call add,DEFAULT_SERVICES_ENABLE,fstrim.timer)
Хорошо бы и в сизифе не забыть сделать.
А можно то-же самое повторить и в Sisyphus ? а то я с удивлением обнаружил что данное изменение было сделано только в p8
util-linux-2.29.2-alt1 -> sisyphus: * Sun Apr 02 2017 Alexey Gladkov <legion@altlinux> 2.29.2-alt1 - New version (2.29.2). - Fix `blkid -v` exit code (ALT#29544). - Add fstrim service/timer (ALT#32687). - Cleanup logger man-page (ALT#33152).