Jump to content

Question

Posted

Удалось заставить работать TRIM на внешнем диске WD MyPassport 5Tb (как знаете, сейчас большинство больших HDD стали с черепичной записью, из-за чего они поддерживают TRIM - чтобы не было проблем с быстродействием по мере заполнения диска). По идее это должно работать и на SSD.

 Настраивается все через OPKG, сам внешний диск/контроллер должны поддерживать TRIM. Файловая система EXT4.

- Устанавливаем необходимые пакеты

# opkg install fstrim

# opkg install lsblk

Во всех командах прописываете пути до своего диска и точки монтирования, у меня это

/dev/sda

/tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2

- Проверяем, что сейчас TRIM не работает

# fstrim -v /tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2

fstrim: /tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2: the discard operation is not supported

 

# cat /sys/block/sda/device/scsi_disk/0\:0\:0\:0/provisioning_mode

disabled

 

# lsblk --discard /dev/sda

NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO

sda        0     4K        0B         0

sda1       0     4K        0B         0

sda2       0     4K        0B         0

здесь DISC-MAX - по нулям

- Включаем поддержку TRIM

# echo -n unmap > /sys/block/sda/device/scsi_disk/0\:0\:0\:0/provisioning_mode

- Проверяем что включение поддержки сработало

# cat /sys/block/sda/device/scsi_disk/0\:0\:0\:0/provisioning_mode
unmap

Должен сохраниться unmap

 

# lsblk --discard /dev/sda

NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO

sda         0       4K       4G         0

sda1        0       4K       4G         0

sda2        0       4K       4G         0

здесь  DISC-MAX теперь ненулевой - 4Gb

- Запускаем TRIM

# fstrim -v /tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2

/tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2: 4.5 TiB (4920666669056 bytes) trimmed

По выводу команды видно, что TRIM сработал, после удаления файлов тоже срабатывает как надо:

# fstrim -v /tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2
/tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2: 121.7 MiB (127647744 bytes) trimmed


Кому надо, для автоматизации могут добавить соответствующие команды в cron и т.д.

  • Thanks 1

18 answers to this question

Recommended Posts

  • 0
Posted (edited)
1 час назад, redarmy сказал:

как знаете, сейчас большинство больших HDD стали с черепичной записью,

Так а зачем же вы покупаете мусор? Берите нормальные жесткие диски с CMR .....если интересуют hdd фирмы WD то это серии: WD RED PRO, WD BLACK , WD GOLD .

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

Использовать под nas диски с SMR записью ни в коем случае нельзя....

Edited by krass
  • 0
Posted
1 час назад, redarmy сказал:

чтобы не было проблем с быстродействием по мере заполнения диска

И там важна проблема другая.....с черепичной записью по мере заполнения вы теряете данные...и TRIM от этого не спасет....ну и в RAID такие диски нельзя ставить

1 час назад, redarmy сказал:

По идее это должно работать и на SSD.

Про SSD: надежны только SLC, 2-bit MLC.....все остальные непригодны....( pSLC, 3-bit MLC, TLC,QLC,PLC итд итп) , к сожалению потребители покупают не глядя.....

  • 0
Posted
8 минут назад, krass сказал:

Про SSD: надежны только SLC, 2-bit MLC.....все остальные непригодны....( pSLC, 3-bit MLC, TLC,QLC,PLC итд итп) , к сожалению потребители покупают не глядя.....

Мифы не имеющие ничего общего с практикой. 

  • Upvote 2
  • 0
Posted
17 минут назад, keenet07 сказал:

Мифы не имеющие ничего общего с практикой. 

Смотря под какие цели применения.....вставьте в NAS и посмотрите как долго прослужат эти ssd....или для работы MSSQLS

  • 0
Posted
11 минуту назад, krass сказал:

Смотря под какие цели применения.....вставьте в NAS и посмотрите как долго прослужат эти ssd

В общем случае в NAS особой перезаписи и нет. Лежат файлопомои годами и никого не трогают. Разве что злоупотребление торрентами может подгрызть ресурс ssd. Мучить ssd торрентами или нет каждый решает сам. Износ ssd преимущественно прерогатива рабочих дисков, но в случае домашнего сценария запаса даже tlc хватает надолго.

  • Thanks 2
  • 0
Posted (edited)
5 минут назад, Кинетиковод сказал:

о в случае домашнего сценария запаса даже tlc хватает надолго.

Если под домашним сценарием вы имеете ввиду соцсети, ютуб, фильмы и прочее развлекалово с торрентами.....то,возможно, так оно и есть....

А вот для тех,  кто занимается, например, видеомонтажом, долгосрочным ! хранением данных итд итп...такие диски уже непригодны....я же больше про расширенное применение... надежность....были ssd c гарантией 10 лет....сейчас их убрали т.к. люди берут и с 3х летней гарантией...

P.S. давали бы гарантию 10 лет как было ранее и проблем бы не было.....хоть на OctaLC делайте ну и ресурс по записи как на MLC

Edited by krass
  • 0
Posted
3 минуты назад, krass сказал:

А вот для тех,  кто занимается видеомонтажом, долгосрочным

Это уже профзадачи. Монтажники вон Макбуки берут за очень дорого и на ssd деньги найдут.

4 минуты назад, krass сказал:

были ssd c гарантией 10 лет....сейчас их убрали т.к. люди берут и с 3х летней гарантией...

SLC конечно найти трудно, но MLC ещё есть в продаже. Думаю профессионалов MLC вполне устроит. А вот для простого люда TLC предпочтительней, т.к. они заметно дешевле и их ресурс для дома достаточен.

  • Thanks 1
  • 0
Posted
Только что, Кинетиковод сказал:

Это уже профзадачи. Монтажники вон Макбуки берут за очень дорого и на ssd деньги найдут.

SLC конечно найти трудно, но MLC ещё есть в продаже. Думаю профессионалов MLC вполне устроит. А вот для простого люда TLC предпочтительней, т.к. они заметно дешевле и их ресурс для дома достаточен.

Есть нюанс -- теперь вместо честных 2-bit MLC стали ставить 3-bit MLC ( это на самом деле TLC) .....( в обзорах одна начинка у ssd и контроллер, а потом раз и производитель меняет и начинку и контроллер, ухудшая параметры и надежность без объявления войны  на своем офиц. сайте )

Мне тенденция не нравится.....подождите 2-3 года и мы уже и TLC не увидим.....будут QLC/PLC, а ресурс записи всё ниже и ниже.....и гарантия всё меньше и меньше...

Очень много обмана по дискам, как пример серия black у wd --- если для 3.5 дисков они сохранили CMR, то та же серия, но для 2.5 уже на SMR -- вот что это? кроме как пакость и слова другого нет....в итоге под ноутбуки HDD пригодных нет ни у одной фирмы....приходится брать ssd 2-bit MLC ....пока они еще есть в продаже.....

  • 0
Posted
22 минуты назад, krass сказал:

Есть нюанс -- теперь вместо честных 2-bit MLC стали ставить 3-bit MLC ( это на самом деле TLC) .....( в обзорах одна начинка у ssd и контроллер, а потом раз и производитель меняет и начинку и контроллер, ухудшая параметры и надежность без объявления войны  на своем офиц. сайте )

Мне тенденция не нравится.....подождите 2-3 года и мы уже и TLC не увидим.....будут QLC/PLC, а ресурс записи всё ниже и ниже.....и гарантия всё меньше и меньше...

Очень много обмана по дискам, как пример серия black у wd --- если для 3.5 дисков они сохранили CMR, то та же серия, но для 2.5 уже на SMR -- вот что это? кроме как пакость и слова другого нет....в итоге под ноутбуки HDD пригодных нет ни у одной фирмы....приходится брать ssd 2-bit MLC ....пока они еще есть в продаже.....

Как будто бы это всё они делают просто так или из вредности. А ёмкость SSD за счёт чего растет? При этом не увеличивая его стоимость кратно? С ростом ёмкости уменьшается и нагрузка и износ конкретных ячеек памяти. Всё за счёт технологии выравнивания износа, которая сейчас практически в любом SSD присутствует. 

 

  • 0
Posted
В 24.01.2022 в 15:22, redarmy сказал:

Кому надо, для автоматизации могут добавить соответствующие команды в cron и т.д.

Давайте кончно.

И еще неплохо бы в инструкции добавить команду как посмотреть точки монтирования, я например смотрю по

mount | grep sd
  • 0
Posted

а в таком варианте поддержка трим на ntfs разделах есть?

в сравнении с инструкцией в первом посте у меня имеются некоторые отличия.

~ # cat /sys/block/sda/device/scsi_disk/0\:0\:0\:0/provisioning_mode
full
~ # lsblk --discard /dev/sda
NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda           0        0B       0B         0
├─sda1        0        0B       0B         0
├─sda2        0        0B       0B         0
├─sda3        0        0B       0B         0
└─sda4        0        0B       0B         0

после unmap стало:

~ # cat /sys/block/sda/device/scsi_disk/0\:0\:0\:0/provisioning_mode
unmap
~ # lsblk --discard /dev/sda
NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda           0      512B       4G         0
├─sda1        0      512B       4G         0
├─sda2        0      512B       4G         0
├─sda3        0      512B       4G         0
└─sda4        0      512B       4G         0

и по итогу:

~ # fstrim -v /tmp/mnt/C2064E47064E3CA3
fstrim: /tmp/mnt/C2064E47064E3CA3: the discard operation is not supported

спасибо.

  • 0
Posted

 

В 12.07.2023 в 15:24, z_mashine сказал:

поддержка трим на ntfs разделах есть

C NTFS может и не работать - тут все зависит от драйвера NTFS-3G, который в кинетике используется, в нем может быть и отключена возможности trim'a (по крайней мере раньше на линуксах было упоминание о возможных проблемах trim'a с ним).

Еще зависит от того, как диск подключен, есть дешевые китайские переходники sata-usb, которые просто физически команду trim не пропускают, и с ними это никогда не заработает.

 

  • 0
Posted
2 hours ago, redarmy said:

Еще зависит от того, как диск подключен, есть дешевые китайские переходники sata-usb, которые просто физически команду trim не пропускают, и с ними это никогда не заработает.

Коробка от Orico на Jmicron JMS567. Трим точно умеет.

  • 0
Posted
3 часа назад, redarmy сказал:

тут все зависит от драйвера NTFS-3G, который в кинетике используется, в нем может быть и отключена возможности trim'a

В KeeneticOS используется коммерческий драйвер NTFS от Tuxera.

  • 0
Posted (edited)
В 24.01.2022 в 15:22, redarmy сказал:

Кому надо, для автоматизации могут добавить соответствующие команды в cron и т.д.

Спасибо за инструкцию. Всё сделал и добавил в cron ежедневное задание. Работает как часы. Только вот потом подумал, что эта команда:

В 24.01.2022 в 15:22, redarmy сказал:

- Включаем поддержку TRIM

# echo -n unmap > /sys/block/sda/device/scsi_disk/0\:0\:0\:0/provisioning_mode

При добавлении её в cron, производит каждый раз запись на внутренний накопитель, что не очень хорошо судя по статье от разработчика. Причем именно в одну и ту же ячейку, т. к. тут простейший транслятор, а не SSD. И, если не ошибаюсь (поправьте), пишется на внутренний накопитель даже независимо от того, куда установлен entware, т. к. путь монтирования /sys/block. А если не добавлять это в cron, то, понятно, слетает после переподключения накопителя или перезагрузки роутера и fstrim уже не будет работать.

Решил это через проверку состояния if-then-fi - если provisioning_mode уже unmap, то не пишем. Но, может, как-то можно сделать, чтобы папка /sys/block/sda вообще не удалялась после отключения накопителя или так нереально сделать?

Edited by DzmitryK
  • 0
Posted
23 часа назад, DzmitryK сказал:

производит каждый раз запись на внутренний накопитель, что не очень хорошо судя по статье от разработчика. Причем именно в одну и ту же ячейку, т. к. тут простейший транслятор, а не SSD. И, если не ошибаюсь (поправьте), пишется на внутренний накопитель даже независимо от того, куда установлен entware, т. к. путь монтирования /sys/block.

А откуда такая  информация? Вроде не должно такого быть, путь /sys/ - это виртуальная файловая система sysfs, она полностью находится в оперативной памяти (фактически это доступ к текущим настройкам ОС, просто он сделан так, как будто это доступ к файлам, поэтому после отключения диска нужная папка исчезает). Т.е. ни на внутреннюю память, ни на диск ничего не должно писаться.

Я у себя сделал, чтобы только при старте роутера unmap выставлялся, т.к. диск никогда не отключаю.   С if-then-fi решение нормальное.

  • 0
Posted
1 минуту назад, redarmy сказал:

А откуда такая  информация?

Методом исключения) Т. к. и у внутренней памяти и у подключенного накопителя - другие пути монтирования. Но да, тоже думал может быть в ОЗУ (на это намекало удаление настроек после перезапуска роутера), а не в память, пишет. Поэтому и написал, чтобы поправили)

2 минуты назад, redarmy сказал:

Я у себя сделал, чтобы только при старте роутера unmap выставлялся

Подскажите, пожалуйста, каким образом?

3 минуты назад, redarmy сказал:

С if-then-fi решение нормальное.

Выложу тогда, мало ли кому понадобится)

if [ $(cat /sys/block/sda/device/scsi_disk/0\:0\:0\:0/provisioning_mode) != unmap ]; then echo -n unmap > /sys/block/sda/device/scsi_disk/0\:0\:0\:0/provisioning_mode; fi; fstrim -v /tmp/mnt/путь_монтирования

Если кто будет делать, учтите, что для cron нужно код именно так писать, в одну строку, по-другому он почему-то не понимает...

  • 0
Posted
33 минуты назад, DzmitryK сказал:
40 минут назад, redarmy сказал:

Я у себя сделал, чтобы только при старте роутера unmap выставлялся

Подскажите, пожалуйста, каким образом?

В   /opt/etc/init.d/ положил скрипт 'S99drivesetup', в котором выставляется unmap. Скрипт в аттаче (плюс не забыть сделать его исполняемым - chmod +x ./S99drivesetup), 

S99drivesetup

  • Thanks 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.