Назад | Перейти на главную страницу

Wiper.sh работает?

Я настраиваю сервер под управлением Ubuntu Precise и пытаюсь проверить, работает ли SSD TRIM.

fstrim не работает:

~  sudo fstrim -v /
fstrim: /: FITRIM ioctl failed: Operation not supported

Итак, я попробовал wiper.sh в hdparm:

wiper-3.5  sudo ./wiper.sh --verbose  --commit /dev/sda1

wiper.sh: Linux SATA SSD TRIM utility, version 3.5, by Mark Lord.
rootdev=/dev/sda1
fsmode2: fsmode=read-write
/: fstype=ext4
freesize = 169502088 KB, reserved = 1695020 KB
Preparing for online TRIM of free space on /dev/sda1 (ext4 mounted read-write at /).

This operation could silently destroy your data.  Are you sure (y/N)? y
Creating temporary file (167807068 KB)..
Syncing disks..
Beginning TRIM operations..
get_trimlist=/sbin/hdparm --fibmap WIPER_TMPFILE.11503

/dev/sda:
trimming 3211263 sectors from 64 ranges
succeeded
trimming 3571713 sectors from 64 ranges
succeeded
trimming 3915776 sectors from 64 ranges
succeeded
(...)
trimming 3657913 sectors from 60 ranges
succeeded
Removing temporary file..
Syncing disks..
Done.

Вроде работает, но мне интересно, правда ли это. Есть ли случаи, когда wiper.sh должен работать, а fstrim - нет? Есть ли способ проверить, действительно ли обрезка прошла успешно (кроме как доверять wiper.sh-log)?

Версия ядра: Linux 3.2.0-31-generic # 50-Ubuntu SMP Пт 7 сентября 16:16:45 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux

Какая версия ядра у вас установлена? ФИТРИМ ioctl был добавлен примерно в августе 2010 г., поэтому в старых ядрах этого не будет. Я предполагаю, что wiper.sh использует другой метод обрезки, поэтому он будет работать без ioctl.

fstrim использует интерфейсы ядра для связи с диском, и если ваше ядро ​​не знает, как отправить TRIM команда к приводу, fstrim будет излучать Operation not supported. (Например, для некоторых дисков требуется TRIM быть переведенным на UNMAP или DISCARD.)

С другой стороны, hdparm напрямую обращается к вашему устройству хранения без поддержки ядра (по этой причине его всегда нужно запускать root). В результате он может поддерживать устройства, которые ядро ​​(пока?) Не знает достаточно хорошо для поддержки. В wiper.sh скрипт - это просто интерфейс для hdparm так что вам не нужно вручную вычислять и вводить номера секторов.

Я считаю, что если вы используете последнее ядро ​​Linux, то TRIM должны поддерживаться, если устройство напрямую подключено к системе. Однако ядро ​​может не поддерживать TRIM для вашего устройства, если оно подключено через USB с использованием SAT через мост UAS / UASP.

Обратите внимание, что в настоящее время вам может потребоваться выполнить TRIM на жестких дисках тоже, потому что жесткие диски SMR будут иметь лучшую производительность, если можно будет отбросить большие блоки.