24 февраля 2012 г. Linux SSD ThinkPad xubuntu

Настройка SSD на xubuntu linux

Это вторая часть "разделенной" статьи о покупке ThinkPad и настройки SSD на xubuntu. Первая часть находится тут.

Недавно прикупил себе Intel 310 SSD и хочу рассказать о его установке и настройке более детально. В первую очередь его надо физически установить, делается это так: Service Videos, смотрите раздел "FRU Removals/Replacements" > "WWAN Adapter". Вообще на этом сайте есть всё что надо для того чтобы пересобрать ноутбук ThinkPad.

Далее, нам понадобится утилита для анализа активности работы I/O. Мне понравился iotop:

$ sudo iotop -oa

Где:

  • -o - only show processes or threads actually doing I/O
  • -a - show accumulated I/O instead of bandwidth

Таким образом мы получим агрегированную информацию по процессам которые активно используют наш SSD.

Сразу скажу, что я использовал Ext4 и журналирование НЕ отключал, а swap я разместил на соседнем HDD, который шёл в комплектации. Статья включающая отключение журналирования находится тут. Там же в комментариях говорится о том, что перестанет работать discard (он же TRIM), если вы отключите журналирование!

Проверить скорость работы накопителя можно так:

$ sudo hdparm -t /dev/sdb1

Настройка fstab и включение TRIM

Будем подключать наш SSD со следующими дополнительными опциями:

  • noatime - не записывать access-time для файлов, потому что нам не нужны лишние записи на SSD;
  • nodiratime - не записывать access-time для каталогов, потому что нам не нужны лишние записи на SSD;
  • discard - включение TRIM. TRIM повысит время жизни нашего SSD накопителя.
TRIM — команда, позволяющая операционной системе уведомить твердотельный накопитель о том, какие блоки данных больше не используются и могут быть использованы накопителем для подготовки к записи.
TRIM (команда SSD) — Википедия
Вот срез из статьи Сколько проживет ваш SSD:
Флэш-память SSD построена из блоков, которые в свою очередь состоят из страниц. Данные записываются в отдельные страницы блоков, при этом невозможно обновить данные, просто перезаписав старые. Более того, стереть можно только блок целиком!

Поэтому сначала нужные данные перемещаются из страниц одного блока в другой, и только затем стирается весь блок с оставшимися ненужными данными, тем самым освобождаясь для новой записи. Этот процесс называется сбором мусора (garbage collection).

TRIM – это возможность операционной системы, с помощью которой ненужные данные помечаются специальным образом. Поэтому контроллеру не нужно перемещать их, записывая в другие блоки. Это повышает скорость записи, а главное – существенно уменьшает количество циклов перезаписи.

Отредактируйте /etc/fstab до вида:

# My SSD
UUID=<ВАШ_UUID>  /  ext4  noatime,nodiratime,discard,errors=remount-ro  0  1

# My SWAP
UUID=<ВАШ_UUID_ДЛЯ_SWAP>  none  swap  sw  0  0

# Memory FS for /tmp and /var/tmp
tmpfs  /tmp      tmpfs  defaults  0  0
tmpfs  /var/tmp  tmpfs  defaults  0  0

swap можно вообще отключить через команду swapoff (см. также swapon и их параметры, а для полного отключения закоментируйте определение swap в /etc/fstab), если конечно вам позволяет объем вашей ОЗУ. Я бы рекомендовал именно такой подход: не хватает памяти и активно используется swap - купи памяти, а своп только на аварийный случай.

Для применения настроек необходимо перезагрузиться.

Теперь проверим работает ли TRIM

Смысл проверки в том, чтобы TRIM затёр данные на нашем накопителе, для этого надо создать файл, потом его удалить и проверить сектора данных где был расположен файл.

Создаем файл:

# cd /
# dd if=/dev/urandom of=testfile count=10 bs=512k oflag=direct
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.885252 s, 5.9 MB/s

# hdparm --fibmap testfile
testfile:
 filesystem blocksize 4096, begins at LBA 2048; assuming 512 byte sectors.
 byte_offset  begin_LBA    end_LBA    sectors
           0    5866496    5876735      10240

Копируем begin_LBA и вставляем в следующей команде:

# hdparm --read-sector 5866496 /dev/sdb
/dev/sdb:
reading sector 5866496: succeeded
0c0b a504 8ced cbd8 8f18 f667 694d 3ee0
3516 a8fc e4ae 0859 8cd5 01fe 786e 3f84
569b e0db 6aa1 89c3 e617 8ace 30fd 9a7d
5d2a 51f6 3419 77d8 060f c540 a42b 2219
cecb 2c36 12ec d875 d2ba e86a 4e99 6b89
a84c e40d bf0e aea4 dfcc 72e0 2f46 9200
c449 f8d2 34b5 7018 372c c704 6d49 6cef
8fad ed14 4e39 486c 09e9 8e67 a086 bbad
b229 8d79 0be2 6bef 950e 9089 a95e b633
d1e6 8bca 01dc 0054 7302 9f38 6b93 e09a
7cff 4a08 c017 0a21 6f43 6710 31df 3392
0f8f ed46 4e4b b0d9 5415 9f5e 9d32 fe10
3423 beda bd5a 981b 0fd9 985d 16fe 3b92
79c0 7b8c a220 3bc0 1458 0645 5aa3 5ff9
bd28 8a0d f280 a3ab b3d7 ca05 4d22 312e
43ce 5f3b 9d7b d66b ba35 d257 7be1 6ecd
afc8 205a 36c3 f6e1 743d df89 7373 9a95
7aea 091c 7986 58bc 169c c3dc 794d a613
157e 51ad e5fe e91b a3e1 d40c d0f2 2626
5643 3ec9 006c 68e4 947a bec7 29b4 077e
c79b 9195 fd8f bb06 2cd1 6aad 5ffb 23d9
aefb 52a8 0a55 94e3 4da1 2ce3 06bc 249f
a428 66b1 4530 690f c744 3a23 6237 2043
4759 d5c6 8020 2689 f0fd b046 34f8 8e0d
4c63 e760 0f0b 0264 02cc 8faf f2fa ce82
6e1e 7410 2ee7 f838 99f6 dd73 fccb 4164
3120 35e0 a388 da2c 655d c140 42bd 1569
87ab 9d83 9f75 eb7e e8d1 61ed b24f 0f09
c454 4c35 006d e831 67cd 0161 a6a6 fb25
79db b76c eeb1 21fb a15f 8756 f35b 5ffe
7111 7b58 5453 37f3 32d1 2d92 3f37 b4c5
7982 884b 1c63 8488 0f67 8f5f 2fa5 30ad

Ага, всё хорошо, данные в секторах есть, теперь удалим файл и узнаем сработает ли TRIM:

# rm testfile 
# sync
# hdparm --read-sector 5866496 /dev/sdb

/dev/sdb:
reading sector 5866496: succeeded
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

Если у вас получились все нули, то TRIM работает,
Если нет, то проверяйте ваш fstab и пиши комментарии, помогу.

Настройка grub

Добавьте в файл "/etc/default/grub" -> "elevator=noop". Эта опция нужна для отмены режима парковки HDD (которая включена по дефолту), так как SSD-накопителю этого не надо делать по физическим причинам, то будем отключать:

#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

Для того чтобы изменения вступили в силу выполните:

$ sudo update-grub

Настройка отложенной записи на диск

Так как я не отключаю журналирование, то надо настроить систему так, чтобы она больше копила данных в буфере и скидывала на диск реже информацию. Это более экономично для времени автономной работы ноутбука (так как диск будет простаивать некоторое время) и времени жизни самого SSD. Отредактируйте "/etc/sysctl.conf" до следующего вида:

# Включаем режим
vm.laptop_mode = 5
# Устанавливаем таймаут, по истечении которого будут сбросаны данные на диск (6000 == 60 секунд, по умолчанию этот параметр равен 500, т.е. 5 секунд)
vm.dirty_writeback_centisecs = 6000

Насколько я понимаю, то "vm.dirty_writeback_centisecs" это одно и тоже что и "commit" в fstab, если я ошибаюсь - поправьте меня.

Для того чтобы изменения вступили в силу выполните:

$ sudo sysctl -p

Более подробно об этом и много другом в Disks and Filesystems / Tips & Tricks / LessWatts.org.

Настройка SWAP

Сам я не пользуюсь этой настройкой, о причинах я говорил уже выше, но для полноты статьи приведу всётаки. Есть настройка "vm.swappiness", в которой задается некий коэффициент, если он большой, то своп используется активно, если он маленький то будет редко использоваться, более подробно тут What Is the Linux Kernel Parameter vm.swappiness?. Отредактируйте "/etc/sysctl.conf":

# По умолчанию этот параметр равен "60"
vm.swappiness = 10

Для того чтобы изменения вступили в силу выполните:

$ sudo sysctl -p

Использовать zRAM вместо SWAP

Рекомендую вообще избавится от дискового SWAP и использовать только zRAM для SWAP

Настройка FireFox

Для того чтобы увеличить жизнь SSD я решил отключить кеш браузера (только на диске, кеша в памяти это не касается), для этого заходим в "about:config" и редактируем следующие опции:

browser.cache.disk.enable -> false
browser.cache.disk_cache_ssl -> false


Статистику кеша браузера можно наблюдать если войти в "about:cache", также там будут локейшены до кеша и т.д. Также доступны два параметра для этой статистики:

  • "about:cache?device=memory" — список для кеша в памяти;
  • "about:cache?device=disk" — список для кеша на диске.

Что ещё почитать про SSD?

Комментарии

В избранное. От покупки SSD останавливала цена, но на фоне выросших цен на HDD, решил я приобрести это чудо.

Ну раз в первой статье написал, кто тебе подтолкнул к x220, так и тут бы написал, с чего вдруг начал в новый ноут сразу ssd загонять ;)

А от себя добавлю:
1. Ставьте s.m.a.r.t. смотрелку:
sudo apt-get install smartmontools gsmartcontrol
вторая просто гуйня к первой. Про технологию, естественно читать тут - http://ru.wikipedia.org/wiki/S.M.A.R.T.

  1. Я пользуюсь хромиумом. Запускаю так:
    /usr/bin/chromium-browser --disk-cache-dir="/tmp/chromium/" --disk-cache-size=104857600 %U
    /tmp/ естественно у меня тоже в tmpfs

Ну и я не понял - ты не вместо hdd, а вместо беспроводного адаптера что ли ставил?

Ну раз в первой статье написал, кто тебе подтолкнул к x220, так и тут бы написал, с чего вдруг начал в новый ноут сразу ssd загонять ;)

Да я так и так хотел брать с ssd ноут (air), но ты да, несомненно мне подсказал что можно его и так засунуть в ноут :)

Ну и я не понял — ты не вместо hdd, а вместо беспроводного адаптера что ли ставил?

Ну да, в x220 можно туда засунуть либо WWAN, либо mSATA, так как мне WWAN не нужен встроенный, то я решил туда SSD сунуть :)

А зачем тебе hdd с 120 граммами веса?
Я не троллю, просто для себя думаю, может мне как у тебя сделать?

Ну у меня на HDD торренты всякие, Music, Downloads, Backups. А на SSD все остальное...

А зачем тебе hdd с 120 граммами веса?

я тоже думал "зачем", но вынимал его и понимал что я не вижу разницы "на ощупь". С учетом того что при ношении его у меня в рюкзаке лежат книги, зарядка и еще всякой ерунды, то 100 грамм кажутся мелочью...

swap можно вообще отключить через команду swapoff (см. также swapon и их параметры, а для полного отключения закоментируйте определение swap в /etc/fstab), если конечно вам позволяет объем вашей ОЗУ. Я бы рекомендовал именно такой подход: не хватает памяти и активно используется swap — купи памяти, а своп только на аварийный случай.

Вчера прикупил ещё 4Гб памяти, теперь у меня их целыхз 6-ть! Тутже вырубил своп :)

Спасибо, что собираешь свой опыт! Вот мне в очередной раз пригодилось

И тебе, за отзыв, спасибо!

У меня вопрос следуещий: elevator=noop целесообразно использовать только если в системе установленs только SSD диски, это так?
А если установлено несколько винтов: SSD под систему, а под логи, swap, почту HDD тогда какой планировщик?

Если честно не знаю, почитайте о других режимах elevator для grub в google

Промежуточный результат, может кому пригодится костыль:

  1. noop - установлен в grube;
  2. echo cfq > /sys/block/sdb/queue/scheduler - скрипт в автозагрузке.
venia / # sudo hdparm -I /dev/sdc | grep "TRIM supported"
       *    Data Set Management TRIM supported (limit 1 block)
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    discard,nodev,noexec,nosuid 0       0
# / was on /dev/sdc1 during installation
UUID=062a8352-8d4a-4c77-9988-ce08bb405f0d /               ext4    noatime,nodiratime,discard,errors=remount-ro 0       1
# Memory FS for /tmp and /var/tmp
tmpfs  /tmp      tmpfs  defaults  0  0
tmpfs  /var/tmp  tmpfs  defaults  0  0

TRIM не работает. Минт 14. ядро 3.5

Видимо вы что-то сделали не так. Я могу вас интерактивно спрашивать "сделали вы то, сделали вы это", но так мы засорим комментарии. Поэтому опишите все шаги которые вы сделали (только не надо говорить "я сделал всё", не поленитесь и опишите). Ну а есдинственный у меня пока вопрос, вы после изменения fstab перезагружались?

да.много раз перезагружался.
Кроме редактирования файла fstab, делал так:
создал файл /etc/cron.daily/trim
добавил в него строки:

#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG

Потом сделал его исполняемым. Перезагрузил.
Тоже не помогло.
Обновил ядро до 3.8.7. Перезагрузил.

venia / # dd if=/dev/urandom of=testfile count=10 bs=512k oflag=direct
10+0 записей считано
10+0 записей написано
скопировано 5242880 байт (5,2 MB), 0,376923 c, 13,9 MB/c
venia / # hdparm --fibmap testfile

testfile:

 filesystem blocksize 4096, begins at LBA 2048; assuming 512 byte sectors.
 byte_offset  begin_LBA    end_LBA    sectors
           0  168057856  168058879       1024
      524288  168158208  168159231       1024
     1048576  168161280  168163327       2048
     2097152  168237056  168243199       6144


venia / # hdparm --read-sector 168057856 /dev/sdc

/dev/sdc:
reading sector 168057856: succeeded
29e4 f1c5 892f 77af 75eb aa9f 9008 aa92
1948 749a 1f29 39e1 fc72 edc1 170d d407
d697 eb8e c2a9 7e56 5777 3daa a2ae 6c13
b575 0c39 c004 8f2d f339 4cce 612b e579
64f5 e419 179a 9046 e474 941d 6ad8 5630
2803 14db fd8a 34e5 3af2 8d91 63a3 1949
cea3 883f 25c7 5858 4c18 e158 21ec 57d2
2ac4 f348 5b5a 54e6 effd b1f5 6de6 cae7
0f55 7032 a1b0 b520 5262 6980 2753 5a4c
1716 812d d3e1 b961 bb9b 2ef6 9610 a06c
76d7 4d48 a396 3a1c deb7 3a30 21be d0b5
9939 526e 5edd 3cb9 96c4 1326 f94d a198
4679 d21f 567b 1444 4897 e58f 7c41 9155
e979 53e8 9419 c415 793b fe53 9e71 fbb8
99c1 ddd9 5ac1 7e20 6064 fa9c d0a1 9e71
6b7b 02ee 2d91 5e04 75ea acd4 7898 3b26
2427 95e2 f086 6df8 df01 c01d 1795 5b80
6dda dc5a 3d16 05a2 9331 3d6e 5f74 509f
0f6d b4db 4529 efec 598e 4ebd e2f1 9f04
7d7e b658 cde4 b7c3 0b12 ae5a a587 21dc
365e 1e2c cbbc 9698 8470 fa02 2fc2 498c
327c c007 c0ed cda7 3c6b 5518 cf2d 1b0e
b2c2 a225 aad1 f6ab 1502 02fe a3eb fa24
d47b a4ae 1ba2 df05 93c0 2973 485f 4bac
aad7 256c 12e1 7299 e058 9439 add7 b134
94b7 c994 7a79 c4c2 69cb b2bc b83c 88fb
b338 d75f d93d 871f 778e d2be 9ed8 e82b
d6e1 a745 5a96 e3d6 9f9a ae4f ac97 2940
bdc0 141e 2ef0 52e5 9177 b4a8 afb1 9b4a
967d c689 b356 4c4f d650 e7b9 2018 4951
9e3e b198 d063 9bc6 3375 2f95 fca9 f365
ca18 370c 5555 1649 e3c1 22f1 8de1 2d62

venia / # rm testfile
venia / # sync
venia / # hdparm --read-sector 168057856 /dev/sdc

/dev/sdc:
reading sector 168057856: succeeded
29e4 f1c5 892f 77af 75eb aa9f 9008 aa92
1948 749a 1f29 39e1 fc72 edc1 170d d407
d697 eb8e c2a9 7e56 5777 3daa a2ae 6c13
b575 0c39 c004 8f2d f339 4cce 612b e579
64f5 e419 179a 9046 e474 941d 6ad8 5630
2803 14db fd8a 34e5 3af2 8d91 63a3 1949
cea3 883f 25c7 5858 4c18 e158 21ec 57d2
2ac4 f348 5b5a 54e6 effd b1f5 6de6 cae7
0f55 7032 a1b0 b520 5262 6980 2753 5a4c
1716 812d d3e1 b961 bb9b 2ef6 9610 a06c
76d7 4d48 a396 3a1c deb7 3a30 21be d0b5
9939 526e 5edd 3cb9 96c4 1326 f94d a198
4679 d21f 567b 1444 4897 e58f 7c41 9155
e979 53e8 9419 c415 793b fe53 9e71 fbb8
99c1 ddd9 5ac1 7e20 6064 fa9c d0a1 9e71
6b7b 02ee 2d91 5e04 75ea acd4 7898 3b26
2427 95e2 f086 6df8 df01 c01d 1795 5b80
6dda dc5a 3d16 05a2 9331 3d6e 5f74 509f
0f6d b4db 4529 efec 598e 4ebd e2f1 9f04
7d7e b658 cde4 b7c3 0b12 ae5a a587 21dc
365e 1e2c cbbc 9698 8470 fa02 2fc2 498c
327c c007 c0ed cda7 3c6b 5518 cf2d 1b0e
b2c2 a225 aad1 f6ab 1502 02fe a3eb fa24
d47b a4ae 1ba2 df05 93c0 2973 485f 4bac
aad7 256c 12e1 7299 e058 9439 add7 b134
94b7 c994 7a79 c4c2 69cb b2bc b83c 88fb
b338 d75f d93d 871f 778e d2be 9ed8 e82b
d6e1 a745 5a96 e3d6 9f9a ae4f ac97 2940
bdc0 141e 2ef0 52e5 9177 b4a8 afb1 9b4a
967d c689 b356 4c4f d650 e7b9 2018 4951
9e3e b198 d063 9bc6 3375 2f95 fca9 f365
ca18 370c 5555 1649 e3c1 22f1 8de1 2d62

Покажите вывод:

# alias | grep rm
# which rm
# mount
# hdparm -I /dev/sdc
venia ~ # alias | grep rm
venia ~ # which rm
/bin/rm
venia ~ # mount
/dev/sdc1 on / type ext4 (rw,discard,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev,discard)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /tmp type tmpfs (rw)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
tmpfs on /var/tmp type tmpfs (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfsd-fuse on /run/user/gogi/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=gogi)


venia ~ # hdparm -I /dev/sdc

/dev/sdc:

ATA device, with non-removable media
Model Number:       OCZ-VERTEX3 MI                          
Serial Number:      OCZ-4723Z92MO6TPHCY8
Firmware Revision:  2.25    
Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
Used: unknown (minor revision code 0x0110) 
Supported: 8 7 6 5 
Likely used: 8
Configuration:
Logical     max current
cylinders   16383   16383
heads       16  16
sectors/track   63  63
--
CHS current addressable sectors:   16514064
LBA    user addressable sectors:  234441648
LBA48  user addressable sectors:  234441648
Logical  Sector size:                   512 bytes
Physical Sector size:                   512 bytes
Logical Sector-0 offset:                  0 bytes
device size with M = 1024*1024:      114473 MBytes
device size with M = 1000*1000:      120034 MBytes (120 GB)
cache/buffer size  = unknown
Nominal Media Rotation Rate: Solid State Device
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 16  Current = 16
Advanced power management level: 254
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
     Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4 
     Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
Enabled Supported:
        SMART feature set
        Security Mode feature set
   *    Power Management feature set
   *    Write cache
        Look-ahead
   *    Host Protected Area feature set
   *    WRITE_BUFFER command
   *    READ_BUFFER command
   *    NOP cmd
   *    DOWNLOAD_MICROCODE
   *    Advanced Power Management feature set
        Power-Up In Standby feature set
   *    SET_FEATURES required to spinup after power up
   *    48-bit Address feature set
   *    Mandatory FLUSH_CACHE
   *    FLUSH_CACHE_EXT
   *    SMART error logging
   *    SMART self-test
   *    General Purpose Logging feature set
   *    WRITE_{DMA|MULTIPLE}_FUA_EXT
   *    64-bit World wide name
   *    IDLE_IMMEDIATE with UNLOAD
        Write-Read-Verify feature set
   *    {READ,WRITE}_DMA_EXT_GPL commands
   *    Segmented DOWNLOAD_MICROCODE
   *    Gen1 signaling speed (1.5Gb/s)
   *    Gen2 signaling speed (3.0Gb/s)
   *    Gen3 signaling speed (6.0Gb/s)
   *    Native Command Queueing (NCQ)
   *    Host-initiated interface power management
   *    Phy event counters
   *    unknown 76[14]
   *    unknown 76[15]
   *    DMA Setup Auto-Activate optimization
   *    Software settings preservation
   *    SMART Command Transport (SCT) feature set
   *    SCT Data Tables (AC5)
   *    SET MAX SETPASSWORD/UNLOCK DMA commands
   *    Data Set Management TRIM supported (limit 1 block)
   *    Deterministic read data after TRIM
Security: 
Master password revision code = 65534
    supported
not enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
2min for SECURITY ERASE UNIT. 
Logical Unit WWN Device Identifier: 5e83a97526891f6a
NAA     : 5
IEEE OUI    : e83a97
Unique ID   : 526891f6a
Checksum: correct

По поводу скрипта TRIM: тут у вас ошибка.
[>>]- это ведь ни что иное, как [>>].
Замените, пожалуйста. А то эта неправильная копипаста уже прочно осела в Сети.

&_gt HTML сам заменил yf >/;
И да, пардон, скрипт же приведён в коментах.
Почему бы не включить его в текст? Тут мнения же разнятся, что лучше - дискард, или крон.

Жюль,

  1. Я вас не особо понял, но нашел единственный "gt;gt;" в камменте http://adw0rd.com/2012/02/24/ssd-on-linux/#comment-6138 и исправил на ">>". Думаю вы об этом и говорили.
  2. Что я должен включить в текст? Укажите ссылку на то место или скриншот.

adw0rd,
Да, собственно тот скрипт для крона, в котором вы поправили символы. И ссылку уже дали.
Я прошу прощения, немного напортачил, когда поясняющий комент оставлял.

Почему включить в текст? Ну, у меня к примеру, TRIM настроен через вышеозначенный скрипт, а не через дискард.
(хотя, не всё так однозначно, наверно))

И ещё: вот не приведу сейчас ссылок на наши и англоязычные источники, но знающие (надеюсь) люди утверждают, что если SSD достаточно объёмен, то трюк с testfile сразу же после настройки TRIM, скорее всего, не прокатит. Вот у маеня,к примеру, пока ни нулей, ни ffffff не наблюдается. Недавно поставил, пока разбираюсь.

Сделал все по статье, на двух разных системах при проверке на нули, тест не проходит, т.е. остаются те же данные. Что только не пробовал. SSD trim поддерживает 100% Куда копать даже ума не приложу. Свяжитесь со мной если есть минутка.

Дмитрий, читайте комментарии. TL;DR так проверить не всегда получается

Жалко буду думать как проверить, не хотелось бы угробить винт раньше времени :) пока решил вопрос тем, что в cron закинул скрипт на выполнение каждый день "ручками". Надеюсь это тоже поможет :)

Ну, кому хочется ручками каждый раз, - это не проблема:

 # fstrim -v -a

Оставьте свой комментарий

Markdown