LINUX.ORG.RU

Trim не работает? O-o

 , ,


1

2

ssd ocz vertex4

suse 12.2

linux-3.4.3

Использовал вот этот замечательный трим-тест, который выдал такое:

# ./test_trim.sh test1 6 /dev/sdc
1+0 записей считано
1+0 записей написано
 скопировано 6291456 байт (6,3 MB), 0,714876 c, 8,8 MB/c

test1:
 filesystem blocksize 4096, begins at LBA 110639104; assuming 512 byte sectors.
 byte_offset  begin_LBA    end_LBA    sectors
           0  110958592  110966783       8192
     4194304  111040512  111044607       4096

/dev/sdc:
reading sector 111040512: succeeded
ffff ffff ffff ffff ffff ffff ffff ffff
...

потом такое:

This is a sector of the file. It should have been successfully read
and show a bunch of random data.

Press any key to continue... 
File deleted. Sleeping for 120 seconds before re-reading the sector.
If TRIM is working, you should see all 0s now.

/dev/sdc:
reading sector 111040512: succeeded
ffff ffff ffff ffff ffff ffff ffff ffff
...
If the sector isn't filled with 0s, something is wrong with your
configuration. Try googling for "TRIM SSD Linux".
Означает ли это, что трим не пашет или же в данном случае f-тот же ноль и это какая-то особенность железа/чего-то ещё? Журналирование writeback

★★★★★

Ответ на: комментарий от soko1

Не понял вашего умозаключения. Почему «поэтому»?

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

Поэтому в тестах пишут 50Мб.

Так у вас прошивка какая-то совсем старая.

И что? Поведение комманды TRIM, драйвера файловой системы и контроллера SATA от этого не меняются.

ArtSh ★★★
()
Ответ на: комментарий от soko1

Проверьте вот тут:

Специально для Вас обновил пошивку (Device Model:M4-CT064M4SSD2; Firmware Version: 070H) Потом примонтировал раздел etx4 с опциями по умолчанию (/dev/sdc2 on /mnt/temp type ext4 (rw)) Записал файл со случайными данными (dd if=/dev/urandom of=/mnt/temp/tempfile1 count=100 bs=512k oflag=direct) Нашёл блоки и прочитал их

# hdparm --fibmap /mnt/temp/tempfile1

/mnt/temp/tempfile1:
 filesystem blocksize 4096, begins at LBA 104038400; assuming 512 byte sectors.
 byte_offset  begin_LBA    end_LBA    sectors
           0  104306688  104409087     102400
# hdparm --read-sector 104306755 /dev/sdc

/dev/sdc:
reading sector 104306755: succeeded
1262 5919 32c5 acb5 5db4 f74a 1266 6697
...

Удалил файл, сделал sync, прочитал, данные остались. Отправил команду TRIM (hdparm --please-destroy-my-drive --trim-sector-ranges 104306688:65535 /dev/sdc) данные обнулились. (hdparm --read-sector 104306755 /dev/sdc /dev/sdc: reading sector 104306755: succeeded 0000 0000 0000 0000 0000 0000 0000 0000...)

Отмонтировал. Подмонтировал с опцией discard (/dev/sdc2 on /mnt/temp type ext4 (rw,discard)). Создал файл, нашёл (он оказался по тем же адресам), удалил, выполнил sync. И о чудо, прочитались сразу же одни нули! Так что выпрямляйте руки, всё прекрасно работает.

ArtSh ★★★
()
Ответ на: комментарий от ArtSh

И что? Поведение комманды TRIM, драйвера файловой системы и контроллера SATA от этого не меняются.

От версии прошивки-то не меняется? Вы наверное просто недооцениваете роль прошивки твердотельного накопителя , раз так говорите. Именно в ней закладываются самые низкоуровневые операции, которые могут быть даже не доступны через драйверы ФС, если производители того пожелают. Поправьте кто нибудь, если я не прав.

Специально для Вас обновил пошивку

Прошу заметить, что не только для меня. Оно полезно и необходимо и для вашего SSD в том числе. В обновлениях фиксятся важные баги, которые влияют на срок службы, надёжность и скорость чтения. Но всё равно благодарю)

Руки мои не при чём, я же не полный идиот, чтобы не суметь дописать discard при монтировании и выполнить тест в 3 строчки кода, которые необходимо скопировать и вставить в консоль.

Я даже с чистого livecd пробовал - те же результаты. Оно обнуляется, но не сразу а через никому не известное время (при чём не всегда). И такая проблема не у меня одного, в интернете полно такого, только ответа на эту особенность я нигде так и не нашёл.

soko1 ★★★★★
()
Последнее исправление: soko1 (всего исправлений: 3)
Ответ на: комментарий от soko1

В обновлениях фиксятся важные баги, которые влияют на срок службы, надёжность и скорость чтения.

А также добавляются новые. Кроме того, бывают деструктивные обновления. Так что прошивка это то место, кторое полностю пдчиняется правилу: работает — не трожь.

Оно обнуляется, но не сразу а через никому не известное время

Даже после hdparm --please-destroy-my-drive --trim-sector-ranges [ADDRESS]:[COUNT] /dev/sdX ?

ArtSh ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.