LINUX.ORG.RU

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

 ,


1

2

Все вы, наверное, слышали про то, что для долгой службы 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)
Ответ на: комментарий от Vidrele

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

На устройство целиком можно делать Secure Erase. А, если с завода диск перед разметкой не тестировать записью, то он и так должен быть весь trim'нутый.

следить за свободным местом

А ещё надо следить за kB_dscd в выводе iostat. А то, вдруг, trim не работает, и там нули :)

2ТС. Если уж тема «про всё», то можно было упомянуть, что, ЕМНИП, для USB trim по-умолчанию выключен. Его нужно включать отдельно, так как trim over usb считается небезопастным. Это для тех, кто устанавливает ОС на SSD, подключаемый через usb-переходник.

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

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

А я лично видел убитые HDD от Дядюшки Ляо, на которых смарт был скручен в 0.

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

Не покупаешь говно с али, и не пишешь потешные статьи про то, как уберечь мусорные ssd с китайских подвалов.

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

электричество дешевеет

это вранье - до 1992 соило 4 копейки за киловатт, но после развала совка как и все остальное начало дорожать и с тех пор все дороже и дороже и ни разу дешевле не было

с пропаном по всякому бывает

с пропаном как и с остальным - все то же самое

откатилась почти на 10%

ага - вначале подорожало в 2 раза, а потом на 10% откатилось, сие есть маркетинговый ход - расчитаный на полных идиотов.

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

после развала совка как и все остальное начало дорожать

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

mamina_radost
()

Чет я не пойму после комментов - статья шлак или можно верить?

water_closed
()
Ответ на: комментарий от mamina_radost

сколько там стоила пачка подгузников

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

пачка прокладок для дам

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

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

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

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

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

Нет, не более. Проценты от диска надо. И ничего плохого в 50% запасе нет.

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

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

4.2

Более вменяемый я дал выше: свободного места должно быть столько, чтобы всегда были в наличии «очищенные» ячейки.

Это - чтобы диск не начал вообще жёстко тупить. Если же ты, кроме этого, ещё и хочешь чтобы он прослужил подольше - 50% свободного и правда будет лучше чем 10%, и тому даже несколько причин:

1) блоки чистятся не по одному (512/4096) а только страницами, и при большом желании можно сделать так, что у тебя будет 10% свободного и тримнутого места по мнению ОС, но ни одной целиком свободной страницы

2) больший объём диска (а как ещё сделать больше свободного места при том же количестве данных?) при прочих равных означает тупо больший ресурс во столько же

3) если у тебя 80% диска занято и не меняется, а записывается и тримаются оставшиеся 20% - ресурс этих 20% будет в 5 раз меньше ресурса диска целиком, и если ты их испортишь ничего хорошего ожидать не следует

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

Правда есть и ещё один аспект: большинству юзеров достаточно и того ресурса ссд, который будет если на всё это забить.

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

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

Но он пишет не про fstrim а про blkdiscard - она удаляет все сектора раздела целиком вне зависимости от содержимого.

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

Да, я немного не прав. ai:

fstrim оперативно работает на уровне файловой системы, но воздействует на физический уровень SSD. Файловая система (ext4, XFS, Btrfs и т.п.) определяет, какие логические блоки больше не заняты, и через системный вызов ioctl(FITRIM) посылает контроллеру SSD запрос TRIM. Контроллер уже на физическом уровне помечает соответствующие ячейки как готовые к перезаписи. Таким образом, инициатор — файловая система, а эффект — изменения в физическом массиве памяти.

Но опять же, отрезать отдельно кусок и делать на нём раздел без фс и делать на нём blkdiscard - не имеет никакого смысла. Достаточно держать Какой-то там % свободным и этого будет достаточно для trim

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

А ты боишься, что алиса на выхлопе бредогенератора натренируется и будет еще бОльший бред генерировать? :)

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

это вранье - до 1992 соило 4 копейки за киловатт

Что эксивалентно 4 рублся за киловатт сейчас. А оно, собака, 2,97 стоит!

с пропаном как и с остальным - все то же самое

Пиковая цена 15.10.24: 32,95 р/л. То ли атака на крупный завод, то ли просто плановый ремонт. Минимальная цена 15.06.25, это 21,90 р/л. Сейчас 25,49.

Бензин в октябре был 58,93, сейчас уже 53,88.

ага - вначале подорожало в 2 раза, а потом на 10% откатилось

Вот как была ~70 центов за литр, так и сейчас примерно столько же. Только есть небольшой нюанс - эти центы сами по сееб стали чуть подешевле.

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

Ну, фишка в том что у меня как раз занимает! Я просто надеялся что трим уже встроен по умолчанию а не требует отдельного включения.

kirill_rrr ★★★★★
()

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

Вот как-то так для простого домашнего компа.

Так что какая-то странная статья.

papin-aziat ★★★★★
()

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

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

эксивалентно

нет не эквивалентно - тогда мясо должно стоить 200 рублей

2,97 стоит

вранье - стоит 6 с копейками… ты откуда с такими ценами? из москвы что ли?

как была

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

эти центы

какие центы? рубли - мы в россии, где от доллара вообще ничего не зависит, доллар растет - растут рублевые цены, доллар падает - рублевые цены все равно растут.

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

Да ты спроси еще сколько iPhone стоил в 1987, чего уж там.

Подгузники и прокладки тоже в 2008 только создали?

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

тогда мясо должно стоить 200 рублей

Да, нестыковочка, оно где то по 220-240 выходит...

из москвы что ли?

Как раз НЕ из москвы. Там дорого! А нефиг электробусы гонять и освещать улицы как эстраду.

посмотрим сколько будет в этом году - лето еще не пришло

Но у меня то не катер, и я вынужден покупать бензин каждый месяц! Так вот, после летнего пика на фоне бомбардировок НПЗ он действительно перепрыгивал 60, но потом откатился.

рублевые цены все равно растут.

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

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

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

За 220-240 только куриное если. А так около 1000.

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

Вы не о том спорите. «Всё всегда дорожать» и «ничего никогда не дешеветь» не может чисто логически, потому что дорого или дёшево товары, объекты, услуги, даже сами деньги могут быть только относительно друг друга. Если что-то дорожает относительно чего-то, то это что-то неприменно относительно того дешевеет. Так работает математика, бессердечная сука.

Ну и да, большинство товаров, особенно высокотехнологичных, очень и очень быстро дешевеет — и относительно фиатных валют, и относительно золота, и относительно какого-нибудь условного «батона хлеба». Многие услуги, аналогично, в основном дешевеют, особенно те, в которых возможен технологический прогресс (например, такси). При этом большинство фиатных валют дешевеют относительно золота или серебра. А золото и серебро, соответственно, дорожают.

Электричество в вакууме — так себе пример, не стоит за него цепляться. Ну или если уж решили, надо определиться, относительно чего считать. Относительно золота оно дешевеет.

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

Так работает математика, бессердечная сука.

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

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

Да у всех «особая ситуация». Кто то возле электростанции живёт (у меня в городе 4 или 5 штук, я хз есть ли ГЭС на нижней плотине, но на верхней есть, хоть и небольшая, плюс 3 ТЭС/ТЭЦ), кто то в энергодефицитном регионе, кто-то в глуши, но на субсидиях. И кстати, вот у меня в городе неплохо так генерации, но промышленности ещё больше и город энергодефицитный, а из плюсов - нет ночных тарифов, ночная просадка на общем фоне незначительна.

За 220-240 только куриное если. А так около 1000.

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

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

Да у всех «особая ситуация». Кто то возле электростанции живёт, кто то в энергодефицитном регионе

Если не возле электростанции то цена больше 5 р/квтч.

И кстати, вот у меня в городе неплохо так генерации, но промышленности ещё больше и город энергодефицитный

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

Свинина

Мясо, когда оно без уточнений, это говядина. Свинина это дешёвый заменитель.

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

оно где то по 220-240 выходит

где это оно такое выходит? говядина по 650, свинина по 370 и это акционная цена в семишагове - самом дешевом сетевом магазине в нашей округе, правила просты - если сегодня акции на мясо нет, значит сегодня мяса не будет.

но потом откатился

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

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