В дальнейшем используя интернет страницу cloudhosting.lv, вы соглашаетесь с правилами пользования Куки. Узнай больше. Согласен
Использование инструментов командной строки NVMe для проверки работоспособности флэш-памяти NVMe
В этом сообщении блога я рассмотрю типы информации о состоянии флэш-памяти NVMe, которую вы можете получить с помощью инструментов командной строки NVMe.
Проверить работоспособность диска SATA очень просто. Будь то твердотельный накопитель или более старый вращающийся накопитель, вы можете использовать команду smartctl, чтобы получить обширную информацию о производительности и состоянии устройства. В качестве примера:
root@blinky:/var/lib/mysql# smartctl -A /dev/sda smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-62-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 100 100 000 Pre-fail Always - 0 5 Reallocated_Sector_Ct 0x0032 100 100 010 Old_age Always - 0 9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 41 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 2 171 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0 172 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0 173 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 1 174 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0 183 Runtime_Bad_Block 0x0032 100 100 000 Old_age Always - 0 184 End-to-End_Error 0x0032 100 100 000 Old_age Always - 0 187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0 194 Temperature_Celsius 0x0022 065 059 000 Old_age Always - 35 (Min/Max 21/41) 196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0 197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0032 100 100 000 Old_age Always - 0 202 Unknown_SSD_Attribute 0x0030 100 100 001 Old_age Offline - 0 206 Unknown_SSD_Attribute 0x000e 100 100 000 Old_age Always - 0 246 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 145599393 247 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 4550280 248 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 582524 180 Unused_Rsvd_Blk_Cnt_Tot 0x0033 000 000 000 Pre-fail Always - 1260 210 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0
Хотя smartctl может не знать всех интеллектуальных значений, зависящих от поставщика, обычно вы можете Google модель диска вместе с «интеллектуальными атрибутами» и найти такие документы, как this , чтобы получить дополнительные сведения.
Проверка работоспособности флэш-памяти NVMe
Если вы перейдете на флеш-хранилище нового поколения на базе NVMe, smartctl больше не будет работать - по крайней мере, он не будет работать для пакетов, доступных для Ubuntu 16.04 (то, что я использую). Похоже, скоро появится поддержка NVMe в Smartmontools , и было бы здорово получить единый инструмент, поддерживающий как SATA, так и NVMe флеш-хранилище.
А пока вы можете использовать инструмент nvme , доступный в пакете nvme-cli. Он предоставляет некоторую базовую информацию для устройств NVMe.
Чтобы получить информацию об установленных устройствах NVMe:
root@alex:~# nvme list Node SN Model Version Namespace Usage Format FW Rev ---------------- -------------------- ---------------------------------------- -------- --------- -------------------------- ---------------- -------- /dev/nvme0n1 S3EVNCAHB01861F Samsung SSD 960 PRO 1TB 1.2 1 689.63 GB / 1.02 TB 512 B + 0 B 1B6QCXP7
Чтобы получить информацию SMART:
root@alex:~# nvme smart-log /dev/nvme0 Smart Log for NVME device:nvme0 namespace-id:ffffffff critical_warning : 0 temperature : 34 C available_spare : 100% available_spare_threshold : 10% percentage_used : 0% data_units_read : 3,465,389 data_units_written : 9,014,689 host_read_commands : 89,719,366 host_write_commands : 134,671,295 controller_busy_time : 310 power_cycles : 11 power_on_hours : 21 unsafe_shutdowns : 8 media_errors : 0 num_err_log_entries : 1 Warning Temperature Time : 0 Critical Composite Temperature Time : 0 Temperature Sensor 1 : 34 C Temperature Sensor 2 : 47 C Temperature Sensor 3 : 0 C Temperature Sensor 4 : 0 C Temperature Sensor 5 : 0 C Temperature Sensor 6 : 0 C
Для получения дополнительной информации SMART (не все устройства ее поддерживают):
root@ts140i:/home/pz/workloads/1m# nvme smart-log-add /dev/nvme0 Additional Smart Log for NVME device:nvme0 namespace-id:ffffffff key normalized raw program_fail_count : 100% 0 erase_fail_count : 100% 0 wear_leveling : 62% min: 1114, max: 1161, avg: 1134 end_to_end_error_detection_count: 100% 0 crc_error_count : 100% 0 timed_workload_media_wear : 100% 37.941% timed_workload_host_reads : 100% 51% timed_workload_timer : 100% 446008 min thermal_throttle_status : 100% 0%, cnt: 0 retry_buffer_overflow_count : 100% 0 pll_lock_loss_count : 100% 0 nand_bytes_written : 100% sectors: 16185227 host_bytes_written : 100% sectors: 6405605
Часть этой информации говорит сама за себя, а часть - нет. Посмотрев документ спецификации NVMe, я прочитал некоторые данные:
Доступные запасные части —Содержит нормализованный процент (от 0 до 100%) оставшейся доступной свободной емкости.
Доступный запасной порог — Когда доступная резервная мощность падает ниже порога, указанного в этом поле, может произойти асинхронное завершение события. Значение указывается в виде нормализованного процента (от 0 до 100%). (Примечание: я не совсем уверен, в чем практический смысл «асинхронного завершения события», но похоже, что этого следует избегать!)
Используемый процент — Содержит определенную поставщиком оценку процента срока службы подсистемы NVM, основанную на фактическом использовании и прогнозах производителя относительно срока службы NVM. (Примечание: число может быть больше 100%, если вы используете хранилище дольше запланированного срока.)
Считанные единицы данных / Записанные единицы данных — Это количество 512-байтовых блоков данных, которые читаются / записываются, но измеряется необычным способом. Первое значение соответствует 1000 из 512-байтовых блоков. Таким образом, вы можете умножить это значение на 512000, чтобы получить значение в байтах. Он не включает доступ к метаданным.
Команды чтения / записи хоста — Количество выданных команд соответствующего типа. Используя это значение, а также значение ниже, вы можете вычислить средний размер ввода-вывода для «физических» операций чтения и записи..
Время загрузки контроллера — Время в минутах, когда контроллер был занят обслуживанием команд. Это можно использовать для измерения долгосрочных тенденций загрузки хранилища..
Небезопасные выключения — Сколько раз произошло отключение питания без отправки уведомления об отключении. В зависимости от используемого устройства NVMe небезопасное завершение работы может привести к повреждению пользовательских данных..
Время предупреждения о температуре / Время критической температуры — Время в минутах, когда устройство сработало при превышении допустимой или критической температуры. Должны быть нули.
Wear_Leveling — Это показывает, сколько из расчетного срока службы ячейки было использовано, а также минимальное / максимальное / среднее количество записей для разных ячеек. В этом случае, похоже, что ячейки рассчитаны на 1800 операций записи, и в среднем было использовано около 1100
Изнашивание носителя при временной нагрузке — Носитель изнашивается текущей «рабочей нагрузкой». Это устройство позволяет измерять некоторую статистику с момента их сброса (так называемая «рабочая нагрузка») в дополнение к отображению значений срока службы устройства..
Узел синхронизированной рабочей нагрузки читает — Процент операций ввода-вывода, которые были прочитаны (с момента сброса таймера рабочей нагрузки).
Состояние теплового дросселя — Это показывает, было ли дросселирование устройства из-за перегрева, и когда в прошлом были события дросселирования.
Записано байтов NAND — Байты, записанные в ячейки NAND. Для этого устройства единица измерения отображается в значениях 32 МБ. Для других устройств может быть иначе.
Записано байтов хоста — Байты, записанные в хранилище NVMe из системы. Это устройство также имеет размер 32 МБ. Масштаб этих значений не очень важен, поскольку они наиболее полезны для определения увеличения записи вашей рабочей нагрузки. Это соотношение измеряется при записи в NAND и записи в HOST. В этом примере коэффициент усиления записи (WAF) равен 16185227/6405605 = 2,53 .
Как видите, инструменты командной строки NVMe предоставляют много полезной информации для понимания состояния и производительности устройств NVMe. Вам не нужно использовать инструменты, зависящие от поставщика (например, isdct).