Bug 32687 - После установки на ssd не работает trim
: После установки на ssd не работает trim
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/util-linux)
: unstable
: all Linux
: P3 major
Assigned To:
:
: http://altlinux.org/ssd
:
:
: 32650
  Show dependency tree
 
Reported: 2016-10-31 10:11 by
Modified: 2017-04-03 00:39 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2016-10-31 10:11:51
Необходимо в случае установки на SSD запускать fstrim как минимум раз в неделю
по расписанию.
------- Comment #1 From 2016-10-31 10:43:41 -------
Как воспроизвести?
------- Comment #2 From 2016-10-31 10:52:17 -------
А рецепт с fstab : http://vasilisc.com/trim-ssd годится7
------- Comment #3 From 2016-10-31 10:54:47 -------
Найти в коде место, где вызывается fstrim -a по крону. 

Ну или поставить на ssd, через месяц дать команду fstrim -v -a и убедиться в
том, что TRIM не выполнен.
# fstrim -v -a
/: 52,6 GiB (56417341440 bytes) trimmed
------- Comment #4 From 2016-10-31 10:56:22 -------
Рецепт с fstab признан устаревшим. У меня он не работает.

В других популярных дистрибутивах fstrim вызывается по крону.

Эту функцию нужно иметь возможность отключить.
------- Comment #5 From 2016-10-31 10:59:51 -------
http://help.ubuntu.ru/wiki/ssd/
------- Comment #6 From 2016-10-31 11:01:31 -------
И еще (ссылки от rider@) :
http://askubuntu.com/questions/443761/how-is-trim-enabled
------- Comment #7 From 2016-10-31 16:12:05 -------
Собери пакетик, который можно класть в дистрибутивы?

Разумеется, стоит проверять, что работаем по SSD
(по /sys/block/sd?/queue/rotational -- должен быть нолик).

У меня на локалхосте воткнуто в скриптик синхронизации сизифа :(
------- Comment #8 From 2016-10-31 16:21:12 -------
В исходниках util-linux лежит fstrim.service и fstrim.timer
А проверять надо делать или нет оно умеет само (fstrim -a)
------- Comment #9 From 2016-10-31 18:23:25 -------
Кстати, для сервера это тоже актуально
------- Comment #10 From 2016-10-31 18:34:14 -------
Т.е. - для того, что бы делать TRIM на ssd достаточно время от времени
запускать fstrim -a, все необходимые сервисы (systemd) для которого лежат в
исходниках util-linux
Устанавливать это нужно не только на сервера, но и на рабочие станции.
fstrim -a сам умеет (я посмотрел в исходники) определять, для каких дисков
нужно делать TRIM а для каких - нет.
Эту функцию нужно включить во все собираемые дистрибутивы, включая стартеркиты.
------- Comment #11 From 2016-11-01 13:22:03 -------
По твоей же ссылке:

---
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

Повторюсь, просьба по возможности помочь с пакетом.  Я давно хочу добавить
такую функциональность, сдерживают именно редкие, но меткие косяки прошивок, о
которых порой слышу.
------- Comment #12 From 2016-11-01 13:26:56 -------
Миша, 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 ядра.
------- Comment #13 From 2016-11-02 15:21:57 -------
(В ответ на комментарий №8)
> В исходниках util-linux лежит fstrim.service и fstrim.timer
> А проверять надо делать или нет оно умеет само (fstrim -a)

(В ответ на комментарий №10)
> Эту функцию нужно включить во все собираемые дистрибутивы, включая стартеркиты.

Посмотрел в федорином спеке -- там %{_unitdir}/fstrim.* прямо в основной пакет
util-linux и кладут.  Может, так и сделать? (с legion@ обсудили подпакет, он не
против -- я пошёл смотреть, заметил такое)
------- Comment #14 From 2016-11-02 15:23:32 -------
(In reply to comment #13)
> (В ответ на комментарий №8)
> > В исходниках util-linux лежит fstrim.service и fstrim.timer
> > А проверять надо делать или нет оно умеет само (fstrim -a)
> 
> (В ответ на комментарий №10)
> > Эту функцию нужно включить во все собираемые дистрибутивы, включая стартеркиты.
> 
> Посмотрел в федорином спеке -- там %{_unitdir}/fstrim.* прямо в основной пакет
> util-linux и кладут.  Может, так и сделать? (с legion@ обсудили подпакет, он не
> против -- я пошёл смотреть, заметил такое)

+1
------- Comment #15 From 2016-11-02 15:34:23 -------
(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
------- Comment #16 From 2016-11-02 15:40:46 -------
(В ответ на комментарий №8)
> В исходниках util-linux лежит fstrim.service и fstrim.timer
Обсудили ещё с glebfm@ (в т.ч. по взаимодействию с ovz-el) и aen@;
похоже, стоит положить эти файлики туда же, где и бинарник fstrim,
т.е. в основной подпакет util-linux.  Проверяю 2.27.1-alt2.M80P.1...
------- Comment #17 From 2016-11-02 19:09:49 -------
Так я о чём и писал. Конечно так и сделать.
------- Comment #18 From 2016-11-02 21:55:57 -------
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)
------- Comment #19 From 2016-11-03 09:19:49 -------
Факта добавления таймера и сервиса недостаточно - нужно активировать его в
дистрибутиве.
------- Comment #20 From 2016-11-03 12:49:01 -------
(В ответ на комментарий №19)
> Факта добавления таймера и сервиса недостаточно - нужно активировать его в
> дистрибутиве.
Да, и мне такое положение вещей кажется разумным.  Достаточно

+       @$(call add,DEFAULT_SERVICES_ENABLE,fstrim.timer)
------- Comment #21 From 2016-11-24 13:02:36 -------
Хорошо бы и в сизифе не забыть сделать.
------- Comment #22 From 2016-12-08 11:16:36 -------
А можно то-же самое повторить и в Sisyphus ? а то я с удивлением обнаружил что
данное изменение было сделано только в p8
------- Comment #23 From 2017-04-03 00:39:39 -------
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).