LINUX.ORG.RU

Trim / Over Provisioning: Всё, что мне известно про SSD в Linux

 ,


1

1

Все вы, наверное, слышали про то, что для долгой службы SSD на нём следует держать 10%-20% свободного места; и почти все слышали, что самый эффективный метод — держать на SSD неразмеченное пространство. — Данный метод называется «Over Provisioning» (что-то вроде «Сверх Обеспечение»). Но Овер-Провиз. одним только оставлением свободного пространства — чаще всего не заведётся, так как для этого требуется Discard ячеек. Я очень подробно распишу всё ниже.

Сейчас лишь добавлю, что и про Trim напишу.

Критическое замечание про SSD

Если у вас примонтирован виндовый SSD через NTFS-3G, то fstrim.timer будет вешать в ОС всю дисковую подсистему на 10-15 минут в состояние паузы/ожидания. Ни за что не жмите кнопку «RESET» — смотрите на индикатор работы дисков на вашем системнике, и просто подождите, пока ОС «отлипнет».

Over Provisioning

Что очень интересно, что двумя кликами включить Овер-Провиз. можно только под виндой и для винды, с помощью фирменных приложений вендоров. Но этот софт не работает для линуксовых SSD.

Линуксовые-же мануалы, предлагают зачастую использовать blkdiscard с байтовыми диапазонами (позиция начала неразмеченного пространства и длина). — НИКОГДА НЕ ДЕЛАЙТЕ НИЧЕГО ПО ЭТИМ МАНАМ, т.к. вы можете запороть последнюю запись GUID Partition Table и/или хвост Swap (или другого последнего своего раздела).

Я придумал более простой, универсальный, надёжный и безопасный метод. Всё очень просто: создаём с помощью GParted раздел БЕЗ ФС во всей неразмеченной области (Нам не нужны там иноды, экстенты, журналы, FAT или MFT). СОХРАНЯЕМ. Теперь натравливаем на этот раздел sudo blkdiscard /dev/sdXY … таким образом, ячейки находящиеся в пределах раздела обнулились и об этом был оповещён контроллер, — МЫ ПОДАРИЛИ МНОГО СВОБОДНОГО МЕСТА КОНТРОЛЛЕРУ, ДЛЯ РОТАЦИИ.

Чем хорош этот метод??? — ОН ВЕНДОРО-НЕЗАВИСИМ, идеально работает в линукс, нет шанса напортачить.

Trim

Вы всё знаете про fstrim.timer, который выполняется раз в неделю. Но не факт, что вы знаете про Swap-Trim…

Swap-Trim

Свопу в /etc/fstab нужно вписать одну из этих опций:

  1. discard=once — Срабатывает однажды при загрузке. Нет оверхэда записи свопа. Не подходит для машин с большим ап-таймом.
  2. discard=pages — Обрабатывает на лету. Подходит для машин с большим аптаймом, но вызывает оверхэд на свопе.
  3. discard — (без опции) объединяет в себе эти 2 режима. Я выбрал это, потому что я шланг.

Зачем это нужно в Свопе??!! — Всё дело в том, что если нет дискарда для свопа, то мусолятся одни и те-же ячейки без ротации, пока в них не протрётся дыра. Согласитесь, если в свопе протереть дырку — стабильность системы упадёт.

ИТОГ

Вот вы и узнали достаточно про эксплуатацию SSD в Linux. Даже при самых пессимистичных прогнозах, — диск в теории прослужит не меньше 15 лет.

Надеюсь, мои мысли вам помогли. Have Fun!!!

ЗЫ: ДОМОРОЩЕННЫЙ КОМПЬЮТЕРНЫЙ КЛУБ!

★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 13)

Хорошая статья, хотя основательная редактура не помешала бы.

Сам я предпочитаю вручную следить за свободным местом и время от времени расчищать Авгиевы конюшни.

За blkdiscard спасибо. Думаю, его можно заранее натравить на устройство целиком. Заодно свежесозданные ФС будут сверкать обнуленными блоками.

За триммирование свопа тоже спасибо. Как-то не задумывался об этом.

По поводу exfat я бы не был столь категоричен, и 15 лет гарантии я бы тоже не давал.

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

За blkdiscard спасибо. Думаю, его можно заранее натравить на устройство целиком.

Стой!!! — blkdiscard уничтожает данные! Это не fstrim

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

и 15 лет гарантии я бы тоже не давал

Логика была крайне простая: на 2ТБ ССД самсунгом сказано, что можно записать 2000ТБ данных перед выходом из строя…

…и да, я ненормальный — отдал 300ГБ места

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

Стой!!! — blkdiscard уничтожает данные! Это не fstrim

На новом накопителе, конечно. А если на старом откусывать кусок от раздела, то я знаю человека, который так данные потерял безо всяких дискардов (и обвинял Linux). Подозреваю, что из-за криворукости, но всё же.

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

А если на старом откусывать кусок от раздела

Тебе нужно создать раздел без фс, и на него натравливать…

…И больше никогда этот раздел не трогать

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

Логика была крайне простая: на 2ТБ ССД самсунгом сказано, что можно записать 2000ТБ данных перед выходом из строя…

SSD может сломаться задолго до исчерпания TBW, а может и спокойно работать после многократного превышения.

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

ну, у меня ссд стоит за вентилятором. ФС Ext4. Все меры по обеспечению долговечности приняты.

Температура диска 27 Цельсиев, прежде чем что-то записать — думаю.

Папки Загрузки, Видео и Музыка — симлинки на ШДД.

Set440 ★★
() автор топика

Ни в коем случае не форматируйте SSD в exFAT — данная ФС не умеет работать с многопотоком, и ей не хватает множества адекватных фич. Вы столкнётесь с тем, что через месяц ваш SSD сгорит от интенсивного чтения, причём сгорает всегда именно контроллер.

Вот с таким карго-культом статья сразу улетает на уровень «ниже плинтуса» и не подтверждается.

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

Я сжёг так 3 ссдшника на 60 гиб…

Если ты имеешь мысль как написать «с осторожностью», «вероятно что», «по статистике автора», «но не факт», — то смело замени.

(Я сегодня ебш на заводе, мне трудно после работы подобрать здесь нужные слова, глаза закрываются.)

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

Какие-то малоизвестные с алика, которые покупал мой дядя.

Он мне дарил их в б/ушном виде, а я их бодро жёг. (все ячейки целые, но сгорел у всех контроллер)

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

Какие-то малоизвестные с алика, которые покупал мой дядя.

дарил их в б/ушном виде

Но убил их, конечно, именно exFAT?

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

S.M.A.R.T говорил, что состояние «хорошее», четвёрека с минусом.

А я их взял и уничтожил за неделю каждый.

Я тогда ничего не знал про трим, и овер-провиз. (возможно, на эхфате-ссд венда не делает трим) Да и хакинтошил я очень много (бесполезное занятие).

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

Ну окей. А у меня новый 870evo на 512 гигов с exFAT в режиме внешнего постоянно подключенного диска прожил пару лет и до сих пор вон тарабанит в компе стоит. ЧЯДНТ?

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

IDK…

Я лишь выразил слишком смелое предположение, основываясь на собственном опыте.

Я вот сейчас не претендую на правоту, и собсна, не спорю.

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

Я сжёг так 3 ссдшника на 60 гиб…

«после» != «вследствие»

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

Какие-то малоизвестные с алика

Он мне дарил их в б/ушном виде

Комбо!

P.S. Мой дружбан как-то купил печально известный ssd goldenfir с алика, так он у него умер через 15 минут после первого включения, наверняка тоже exfat виноват, который на соседнем компе был (но это неточно)

Dimez ★★★★★
()

Советую прочесть:

Вся правда о резервной области SSD, и нужна ли она вообще

https://habr.com/ru/companies/ocz/articles/393131/

Плюс чтение «со звёдочкой»:

Повышение живучести SSD за счёт его превращения из QLC в SLC

https://habr.com/ru/companies/ruvds/articles/816463/

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

В первой статье в итоге сказано: «Оставляйте 15% свободного места, дети, аллилуйя!»

Вторая статья — довольно сложная, и не-оч безопасная.

Но всё-равно, — Спасибо!!!

Set440 ★★
() автор топика

держать 10%-20% свободного места

лучше держать такого места более 50% - я всегда так делаю и ни один ssd еще не вышел из строя - даже 60-и гиговые которым по 13 лет.

Swap

от этого то же лучше отказаться - сейчас памяти у всех дофига.

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

У меня всего 16гб рам, современные игры жрут память, потому своп нужен… а если поставить 32гб рам, то своп почти не будет использоваться, так что вопрос спорный.

так у меня и остаётся 50%, я написал про другое свободное место — ЖЁСТКО ЗАРЕЗЕРВИРОВАННОЕ.

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

Присоединяюсь к хору использующих exfat на ssd. Собственно, любая современная камера пишет на Cfexpress в exfat, брат жив.

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

Привет! «Базовые рекомендации» бы тоже убрать, во-первых, они не по теме, во-вторых, это субъективщина.

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

Я не против убрать, и не хочу спорить…

…но чем это субъективщина?? — Если юзер пишет экран через обс (папка Видео), или качает торренты (папка Загрузки) — ресурс ведь, очевидно, стирается. ??..

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

Ресурс ssd гарантированно будет «стираться» ещё меньше, если остаться на hdd.

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)

Всё дело в том, что если нет дискарда для свопа, то мусолятся одни и те-же ячейки без ротации

4.2

firkax ★★★★★
()
13 января 2026 г.

Trim

Вы всё знаете про fstrim.timer, который выполняется раз в неделю.

# tune2fs -l /dev/sda1 |grep options
Default mount options:    user_xattr acl discard

Разве опции монтирования discard не достаточно, чтобы работал trim?

ogion ★★★
()

discard=once — Срабатывает однажды при загрузке. Нет оверхэда записи свопа. Не подходит для машин с большим ап-таймом.

А что не так? Ну допустим у меня аптайм +/- месяц, месяц-другой помусолит одни и те же ячейки, потом затримит и перейдёт на другие. Вроде не говённые QLC, он и так уже 6-7 лет пашет.

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

Ваши данные устарели - в мире острый дефицит памяти! Настолько острый, что цены на ссд улетели в космос просто потому что оперативка может на них свопиться достаточно быстро.

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

лучше держать такого места более 50% - я всегда так делаю и ни один ssd еще не вышел из строя - даже 60-и гиговые которым по 13 лет.

Логика уровня «я всегда плясал вокруг костра, чтоб меня крокодил не съел, и до сих пор ни один не съел. Все пляшите вокруг костра».

На деле и 10–20% вполне достаточно. А более правильно вообще не в процентах это считать, а «в несколько раз больше места, чем у тебя записывается данных на SSD в период от одного fstrim до другого».

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

потому что оперативка может на них свопиться

потому что пока цена не зафиксирована она продолжит расти - ибо нет предела жадности и алчности человеческой.

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

Логика уровня

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

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

это не логика

Ну что с логикой проблемы, я уже понял.

типа предлагаешь дельный совет и зла не желаешь

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

а ты стало быть получется всем советуешь всякое говно какое сам не используешь - очень красиво.

Нет, не получается. Хотя, если отключить логику совсем, то можно делать любые случайные выводы из любых случайных данных, спасибо за демонстрацию, как это работает.

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

Это всё не работает при отсутствии взрывного спроса при недостатке предложения. Харды кстати тоже дорожают, т.к. кое-где способны заменить ссд.

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

я уже понял

нифига ты не понял это вранье… если я что то советую - значит так сделано у меня и значит это наилучший вариант, а ты в говно лезешь и других за собой тянешь, говорю еще раз - чем свободного места больше - тем лучше, в идеале свободным должно быть больше 50%, у меня напрмер так вообще 90% и еще все выше сказаное относится только к satа и не касается m2 - оно помрет от перегрева так и не выработав свой ресурс, у меня нет ни одного такого носителя и покупать не собираюсь - даже не приму в дар.

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

Это всё не работает при отсутствии взрывного спроса

это работает всегда - мы живем в мире где все только дорожает и не дешевеет никогда - глупо отрицать реальность.

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

если я что то советую - значит так сделано у меня

Это я тоже понял. Поэтому и рекомендую остальным воздержаться от следования таким горе-советам.

и значит это наилучший вариант

Нет, не значит. Логика сломана.

в иделае свободным должно быть больше 50%

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

а ты в говно лезешь и других за собой тянешь

Я просто предостерегаю чителей от глупых советов и фейковых данных. Не всегда у всех хватает компетенции или внимательности, чтобы отличить балабола от знающего, особенно, когда он пишет очень уверенно.

и еще все выше сказаное относится только к satа и не касается m2

Ага. Дополню ещё, что это справедливо только для стрельцов и скорпионов. Для овнов надо делать +5% поправку, для водолеев -2.3%, а каждую третью пятницу чётного месяца освобождать на 1% больше. /s

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

мы живем в мире где все только дорожает и не дешевеет никогда

Чушь, не имеющая отношения к реальноми миру.

глупо отрицать реальность.

Так не отрицай…

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

не значит. Логика сломана

так что же получектся действую себе во вред если следовать твоей логике?

это просто цифра от балды

балда ты, а цифра край - означает не желательно что бы свободного мекста меньше было, а лучше конечно же больше - чем больше тем лучше

предостерегаю чителей от глупых советов

по твоему не захломлять винт это глупый совет?

Дополню ещё

даже в дар не приму это то же край, а не от балды - так что добавлять уже не чего

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

так что же получектся действую себе во вред если следовать твоей логике?

Нет, не получается. Логика по прежнему сломана напрочь.

балда ты

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

а цифра край - означает не желательно что бы свободного мекста меньше было, а лучше конечно же больше - чем больше тем лучше

Зачем ты это повторяешь третий раз? То, что предлагается держать свободным не «ровно столько», а «не меньше», ровно никак не отменяет того факта, что цифра взята с потолка.

по твоему не захломлять винт это глупый совет?

Нет. Логика снова сломана.

По-моему не захлАмлять винт — это нормальный совет. Держать «не менее 50% свободными», просто потому что кто-то на ЛОРе так решил от балды — вот это плохой совет.

Более вменяемый я дал выше: свободного места должно быть столько, чтобы всегда были в наличии «очищенные» ячейки. Желательно с запасом. Предположим, у юзера раз в неделю запускается fstrim по крону или сервисом системд, или ещё как. Тогда следует проследить, сколько в среднем (или максимально) данных пишется на носитель в неделю. Допустим, это у юзера 10 ГБ. Это число имеет смысл умножить хотя бы на 2, лучше на 3, а ещё а лучше на 5. Да, это тоже число от балды, но здесь мы исходим из объективных данных, и «множитель» можно выбирать в соответствии с уровнем паранойи. Соответственно, такому юзеру будет разумно на таком носителе держать свободными около 50 ГБ. Это будет 50%, если это SSD на 100 ГБ, или 2.5%, если это двухтерабайтник. При этом у него всегда будут свободные «очищенные» ячейки в избытке, что позволит избежать износа и снижения скорости. Ровно настолько же, насколько и большее количество.

От того, что их будет больше, ничего не изменится. «Чем больше, тем лучше» здесь не работает на увеличение срока службы или ещё на что-то. Разве что на то, что чем больше, тем с меньшей вероятностью окажется, что все свободные ячейки исчерпались, когда ты внезапно решил поставить записать в разы больше данных, чем обычно.

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

Странно, электричество дешевеет, с пропаном по всякому бывает, солярка спустя 2 года откатилась почти на 10% вниз даже если без пересчёта инфляции. А какие нибудь роботы-пылесосы ещё ни разу не дорожали за всю свою историю.

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

От того, что их будет больше, ничего не изменится. «Чем больше, тем лучше» здесь не работает на увеличение срока службы или ещё на что-то.

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

kirill_rrr ★★★★★
()

Всё очень просто: создаём с помощью GParted раздел БЕЗ ФС во всей неразмеченной области (Нам не нужны там иноды, экстенты, журналы, FAT или MFT). СОХРАНЯЕМ. Теперь натравливаем на этот раздел sudo blkdiscard /dev/sdXY … таким образом, ячейки находящиеся в пределах раздела обнулились и об этом был оповещён контроллер, — МЫ ПОДАРИЛИ МНОГО СВОБОДНОГО МЕСТА КОНТРОЛЛЕРУ, ДЛЯ РОТАЦИИ.

А можно нескромный вопрос? Как fstrim определяет, пустая ячейка является частью фс или не является частью фс?

Это я про то, что fstrim работает на физическом уровне, а не на уровне ФС. А если так, то создание раздела без ФС - не имеет никакого смысла, как и все остальные действия в этой статье

bryak ★★★★
()
Последнее исправление: bryak (всего исправлений: 1)

для долгой службы SSD

Придумали F2FS…

Я придумал

Экономить на спичках, ведь кто реально беспокоится за свой накопитель, в жизни не будет на нём размещать своп.

jjjjxtx
()

держать на SSD неразмеченное пространство. — Данный метод называется «Over Provisioning»

Слышал звон, да не знаешь, где он. Это вообще не связанные стратегии. Overprivisioning наоборот предполагает использование больше пространства, чем есть. Как правило, на СХД и в системах виртуализации. Неуд, на пересдачу

Линуксовые-же мануалы, предлагают зачастую использовать blkdiscard с байтовыми диапазонами

Где ты нашел такой бред?

Я придумал более простой, универсальный, надёжный и безопасный метод. Всё очень просто: создаём с помощью GParted раздел БЕЗ ФС во всей неразмеченной области (Нам не нужны там иноды, экстенты, журналы, FAT или MFT). СОХРАНЯЕМ. Теперь натравливаем на этот раздел sudo blkdiscard /dev/sdXY

Ты придумал? Упырь свой мел. Этот способ используется с момента появления blkdiscard и как раз рекомендуется во многих howto

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

https://habr.com/ru/companies/ocz/articles/393131/

Ну там автор тоже местами неадекватен:

Как правило, резервная область составляет около 7 % общей емкости NAND. Для расчета реальной емкости SSD в ГиБ необходимо поделить емкость в гигабайтах на 1,073741824. В случае с накопителем на 256 ГБ это будет 238,4 ГиБ

Он перепутал GB и GiB и пытается из своей каши делать вывод о наличии резерва. На самом деле, наличие резерва блоков (и его размер) зависит только от доброй воли вендора. В промышленных ssd резерв есть, в домашних, особенно безымянных и с али - чаще нет или как повезет

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.