LINUX.ORG.RU

SSD выход из строя или когда контроллер ssd перешел в чтение

 , ssd ro, ssd умер


0

1

Решил подделиться тут продолжая комментарий: vm.swappiness. Так ли нужен? (комментарий) чтобы если у кого-то случится подобное потратили меньше времени, чем я чтобы восстановить/скопировать данные

Значит есть у меня один SSD на 2Tb XPG SX8200 Pro PCIe Gen3x4 M.2 2280, прожил 2 года и 3 месяца (думать много это или мало, решать вам, по мне нормально) после того как SSD «умирает» его контроллер переходит в режим только чтение. Причем случиться это может неожиданно, а это значит что данные с него вы скопировать сможете, но целостность фс при этом не гарантирована, а прогнать fsck сверху вы не сможете, так как устроиство только ro. Если для раздела нужен fsck, то вполне возможно, что если вы захотите просто смонтировать ssd, то на на копировании определенных данных устроиство ssd просто исчезнет у вас из ОС и даже с UEFI, до полного цикла выключение/включение, как это было у меня.

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

Что надобится:

Устройство как минимум в два раза большее по объему (в моем случае таким устройством выступил новый 4Tb SSD).

Желательно отдельный компьютер на который вы сможете установить новый и старый SSD. В моем случае я затупил и использовал тот же самый ноутбук. Если бы я копировал на другом компьютере, было бы быстрее.

Процесс:

  1. Вы подключили новый SSD, в моем случае новый 4Tb SSD с ext4. Далее нужно установить gddrescue (ddrescue) и запустить копирование нужного раздела (в моем случае один / ext4 со всем) в файл на 4Tb SSD.

ddrescue /dev/nvme0n1p2 /mnt/test/backup.raw ~/log_file --try-again --force --verbose

Выглядит так

  1. После вам нужно натравить fsck (-y) на файл созданный ddrescue и это возможно будет не быстро.

fsck.ext4 -fyv backup.raw

  1. После того как fsck прогонится над файлом, можно монтировать и копировать файлы.

Так что если вы монтируйте и копируйте на один и тот же SSD, то понадобится x2 места (в моем случае) 1906GB и скопировал я данных еще на 1800GB

mount backup.raw /mnt/new_endpoint/

Потенциальные ответы на вопросы:

  1. Покажи smart:
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-51-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF SMART DATA SECTION ===
SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        26 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    21%
Data Units Read:                    1,154,348,897 [591 TB]
Data Units Written:                 959,579,774 [491 TB]
Host Read Commands:                 9,440,358,764
Host Write Commands:                4,773,001,703
Controller Busy Time:               58,280
Power Cycles:                       410
Power On Hours:                     20,944
Unsafe Shutdowns:                   139
Media and Data Integrity Errors:    153,054
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Thermal Temp. 1 Transition Count:   2561
Thermal Temp. 2 Transition Count:   48
Thermal Temp. 1 Total Time:         46102
Thermal Temp. 2 Total Time:         240
  1. На диск гарантия 5 лет, у тебя же проработал меньше?

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

  1. Как использовал?

Я больше гоню на пересборку фронтенда размером 2GB по несколько раз в день. Да еще chia плотил на нем и swap на нем был в 20Gb, ну и еще нода блокчейна локальная на 900гб, несколько subgraph’ов которые приходилось на сотни гб, которые иногда приходилось синхронизировать по несколько раз в день. Но в общем я отношу это к обычному использованию.

  1. Экзотическая фс

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

  1. TBW ssd?

1280 TBW. По факту записано только 491 TB

★★★★★

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

Скорее всего, контроллер умрёт так, что диск даже в BIOS определяться не будет. Так что, ваш вариант - это счастливое исключение.

tiinn ★★★★★
()

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

[жж] словил сбойные сектора на nvme ssd
наткнулся на сбойные сектора на очередном nvme ssd

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

anonymous
()

прогнать fsck сверху вы не сможете, так как устроиство только ro

На основе ro-устройства можно сделать rw при помощи dm-clone

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

вот поэтому я и не беру накопители больше 1TB.

Если используешь компьютер в основном для посиделок в Интернете, работы в текстовом редакторе и для пары-тройки игрушек вечерком, то в принципе одного терабайта более чем достаточно. Но, если ты, например, занимаешься монтажом видео и/или любитель погонять вечерком по Найт Сити/Лос-Сантосу, то терабайтным SSD-шником тут врядли отделаешься. Просто надо регулярно делать бэкапы нужных/важных данных на разные накопители + желательно использовать какой-нибудь облачное хранилище, чтобы т.с. не класть все яйца в одну корзину.

basilic ★★
()

Зачем копировать с помощью dd в файл, а не на раздел?

И сколько свободного места было на ФС? Как я понимаю, раздел был на весь SSD, никих 10-20% в неразмеченную область?

случиться это может неожиданно

Media and Data Integrity Errors: 153,054

Что, все эти 153 тыс. ошибок появились разом?

mky ★★★★★
()

делать dd/ddrescue со сбойного диска довольно раскованно - есть немалый шанс, что диск умрет окончательно. если fs еще жива, то лучше начать с копирования важных данных. если сломана, то лучше сделать snapshot с записью данных на отдельный диск и уже с ним экспериментировать. в этом случае места на другом диске понадобится немного.

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

Ну как-бы очевидно, что ddrescue был сделан на другой новый ssd в файл. И потом уже работал с образом ddrescue подмонтированым. ФС же требовала fsck, а для важных данных и так есть бэкап.

@mky

И сколько свободного места было на ФС?

Менее 100гб, но ddrescue копирует весь раздел

Зачем копировать с помощью dd в файл, а не на раздел?

Так удобнее, мне копия раздела не нужна, плюс не нужен геммор с увеличение раздела с 2Tb до 4Tb, и копия системы мне не нужна была.

Media and Data Integrity Errors: 153,054

По моему на этот показатель никто внимание не обращает, и вполне возможно что у кого-то он больше, на исправном SSD меньшего размера. Все смотрят только Percentage Used и Data Units Written

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

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

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

принципе одного терабайта более чем достаточно

N шт. накопителей, каждый не более 1TB.

Если нужна ФС размером более 1TB, то можно через LVM объединить. Но тут опять будет проблема с восстановлением - чтобы собрать volume group придется найти место под все phys vol.

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

на мой взгляд тут проблема в том, что атрибуты SMART на всех дисках называются и интерпретируются по разному. Не поймешь, по какому параметру оценивать состояние диска вообще и TBW в частности :-((

MirandaUser2
()
Ответ на: комментарий от anonymous_sama

Про свободное место, как раз, ИМХО и ответ, почему всего 2 года и 3 месяца, плюс месяц на ddrescue и 15 дней на написание поста на ЛОР (20944 часов).

никто внимание не обращает

Ну у меня пока везде 0 это media_errors (NVME мне проще воспринимать в вводе ″nvme smart-log″, чем ″smartctl″), поэтому не знаю, какие его значения нормальные. Но, главное, ИМХО, смотреть за динамикой показателей SMART, чем на конечные цифры. Но, как я понмаю, раз в сутки SMART никуда не сохранялся?

геммор с увеличение раздела с 2Tb до 4Tb

ИМХО, при таких объёмах лучше изначально разбить на разделы какого-то разумного размера, чтобы потом было проще восстанавливать. Ну будет свободное место размазано по разделам, но SSD хоршо, когда много свободного места (если TRIM работает), зато раздел с системными файлами, логами, кешами и не восстанавливаем.

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

А к NVME это тоже относится, там, разве, не однозначнее в стандарте прописано? У ATA, да, куча определённых разработчиком параметров и не поймёшь где что, а у NVME, вроде, выхлопы похожи.

Ну, а TBW, вобще попугаи. Как я понимаю, TBW берут по гарантированому производителем колчичеству перезаписей флеш-памяти и получают для идеального случая последовательно записи всего объёма накопителя. А в реальности, с одной стороны, флеш память может быть лучше, чем заявляет производитель, а с другой стороны при случайной записи возникает «усиление записи» из-за выравнивания износа или группировки занятых блоков, для освобождения блока стирания.

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

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

rtxtxtrx ★★★
()

С помощью dmsetup можно сделать снапшот блочного устройства с перенаправлением записи изменений в другое блочное устройство.

Т.е. механика будет такая:

  • у тебя есть диск, который читается, но писать нельзя
  • создаёшь файл размером в несколько гигабайт с помощью dd
  • посредством losetup создаёшь /dev/loopX на файл
  • посредством dmsetup создаёшь новое блочное устройство, указывая, что твой диск источник данных, а запись должна идти в /dev/loopX
  • выполняешь проверку файловой системы на созданном виртуальном блочном устройстве.
  • после окончания проверки монтируешь ранее созданное блочное устройство, копируешь данные.

Размер созданного файлы должен быть достаточен для записи изменений, которые произойдут при fsck.

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

А к NVME это тоже относится, там, разве, не однозначнее в стандарте прописано?

не знаю, надо бы поискать детали по тому, что там в NVMe..

У ATA, да, куча определённых разработчиком параметров и не поймёшь где что, а у NVME, вроде, выхлопы похожи.

ну даже если так, то HDD, SSD, NVMe - уже вариантов хватает..

Ну, а TBW, вобще попугаи.

но именно в этих попугаях указывается гарантия. Т.е. нужно уметь извлекать из SMART эти значения.

а с другой стороны при случайной записи возникает «усиление записи»

как минимум на одном из моих SSD был отдельные атрибуты для объема записи с амплификацией и без.

MirandaUser2
()
Ответ на: комментарий от rtxtxtrx

Почему одного замеса? Как раз батоны разных замесов, техпроцесс по мере производства отлаживается, меньше брака, больше «идеальных» чипов. А производитель в даташите какое число дал, такое и остаётся.

А касательно радиатора, то либо у ТС датчик температуры врёт, либо радиатор/обдув и так есть, 26 градусов весьма низко, обычно в корпусе воздух на несколько градусов выше снаружи, а чипы ещё горячее, даже в простое.

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

Наверное, это был ATA накопитель, там много разных непонятно как считаемых параметров было. А ещё был «песок», у которого этот параметр имел смысл, так как сжатие.

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

Не скопировал менее чем за 10 часов и в фоне (у меня очень много мелких файлов npm, кэши, нода, плюс 2 часа это сам ddrescue), точно не 15 дней. Дольше ждал нового SSD, плюс мне надо было работать одновременно. Косяк в том, что не сделал это на отдельной машине, а думал сейчас вот «быстро все сделаю».

Просили именно smartctl, но они одинаковые

critical_warning			: 0
temperature				: 27 °C (300 K)
available_spare				: 100%
available_spare_threshold		: 10%
percentage_used				: 21%
endurance group critical warning summary: 0
Data Units Read				: 1154348897 (591.03 TB)
Data Units Written			: 959579774 (491.30 TB)
host_read_commands			: 9440358764
host_write_commands			: 4773001703
controller_busy_time			: 58280
power_cycles				: 410
power_on_hours				: 20932
unsafe_shutdowns			: 139
media_errors				: 153054
num_err_log_entries			: 0
Warning Temperature Time		: 0
Critical Composite Temperature Time	: 0
Thermal Management T1 Trans Count	: 2561
Thermal Management T2 Trans Count	: 48
Thermal Management T1 Total Time	: 46102
Thermal Management T2 Total Time	: 240
anonymous_sama ★★★★★
() автор топика
Ответ на: комментарий от anonymous_sama

Да, одно и то же, просто в выводе smartctl для ATA и nvme-cli для NVME параметры называются без пробелов, а smartctl для NVME почему-то называет параметры с пробелами.

Но, странно, почему у вас power_on_hours меняется, да ещё и в меньшую сторону. Или он после каждого включения начинает счёт с 20932.

Касательно месяц на ddrescue, то это была шутка. Просто 20944/24/365 = 2 года и 142 дня, это никак не 3 месяца, стало любопытно, либо в SSD настолько неточные часы, либо они продолжают считать и в режиме RO.

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

Я примерно назвал 3 месяца, уже зная данные с вывода. По мне так прожил два года, так как он не всегда был даже в работе, пару месяцев просто стоял в сборке на стационарном компьютере отключеным без питания, когда уже плотинг чиа перестал быть актуальным. Только потом я уже переставил себе в рабочий лаптоп.

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