Майнерські версії: найкращі та найгірші ідеї, які постачала індустрія

Було корисно?

«Майнерські версії» обладнання мають певний відтінок: індустріальний, цілеспрямований, ймовірно дешевший за роздрібний та можливо проклятий. Якщо ви експлуатуєте накопичувачі або парки пристроїв, ви бачили цю закономірність. На ваш стіл потрапляє угода з закупівлі: «Нова партія дисків/SSD/GPU — майнерські версії — гарна ціна». Потім ваша черга заявок заповнюється помилками контрольних сум, тривогами про тротлінг і таким видом періодичних відмов, що змушують сумніватися у фізиці.

Це не моральна лекція про криптоіндустрію. Це оповідь про експлуатацію: що відбувається, коли індустрія оптимізує обладнання під одне робоче навантаження в рамках жорсткої економіки, а потім це обладнання потрапляє в універсальні середовища. Деякі ідеї були справді розумні. Інші — повільно розгортальний звіт про інциденти.

Що насправді означають «майнерські версії» (і чому вони існують)

«Майнерська версія» — це не один клас продукту. Це маркетинговий покрив для набору проєктних рішень, прийнятих, коли покупцем є майнер: чутливий до ціни, одержимий пропускною здатністю на ват, і не зацікавлений у п’ятирічному сервісному контракті. Майнерські версії проявляються у вигляді GPU з меншою кількістю відеовиходів, материнських плат з більшою кількістю PCIe-слотів, блоків живлення, розрахованих на безперервне навантаження, і — менш часто — накопичувачів, що продаються як «оптимізовані» для інтенсивних операцій запису.

Дві речі роблять майнерські версії цікаими для експлуатації:

  • Налаштування під одне навантаження: Ріг для майнінгу може бути стабільним і при цьому жахливим для загального використання. Ви можете видалити функції, зменшити обсяг перевірок і все одно «пройти», якщо єдиний робочий процес — хешування.
  • Інверсія життєвого циклу: Роздрібне обладнання проектується під цикли споживача (переривчасте використання, багато простоїв, часом ігри). Майнерське обладнання використовується як вузол невеликого датацентру: висока завантаженість, постійне тепло, вібрація, постійне споживання енергії. Потім його перепродують тим, хто вважає, що «вживане» означає «легко використовуване».

Майнерські версії були раціональною відповіддю на сплески попиту. Вендори бачили передбачувані оптові замовлення і створювали SKU, які дешевше виготовляти й простіше розподіляти. Проблема — що відбувається далі: ці SKU потрапляють в середовища з іншими припущеннями — ваше середовище.

Корисна рамка: майнерські версії не «погані». Вони вузькі. Вузькість — це нормально в контрольованій системі з правильними контролями. Вузькість — мінне поле в змішаному парку, де ваш моніторинг побудований на уявленні, що «диск — це диск».

Факти та історичний контекст (те, що люди забувають)

  1. Попит з боку майнерів багаторазово змінював ланцюги постачання GPU. Великі дефіцити наприкінці 2010-х і на початку 2020-х спонукали вендорів створювати окремі майнерські SKU, щоб захистити лінійки для геймерів і робочих станцій — принаймні на папері.
  2. Деякі майнерські GPU постачалися з меншою кількістю або без відеовиходів. Це було не лише економія; зменшення кількості роз’ємів знижувало точки відмов і ускладнювало перепродаж у геймерський канал.
  3. «Майнерська прошивка» не завжди була про швидкість. У кількох випадках прошивка орієнтувалася на ліміти потужності, криві вентиляторів або стабільність на фіксованих тактових частотах, а не на пікову продуктивність.
  4. Фази Chia та інші proof-of-space тимчасово перетворювали SSD на витратні матеріали. Інтенсивні тривалі записи швидко вигорали споживчий NAND, і «здоров’я диска» стало аргументом при перепродажі.
  5. Функції enterprise-дисків важливіші під безперервним навантаженням. Такі речі, як TLER/ERC (ліміти відновлення помилок) і стійкість до вібрації, визначають різницю між «повільно» і «колапсом пулу» під час відновлення RAID/ZFS.
  6. Ринки відновленого обладнання різко виросли після спадів майнінгу. Це створило вторинну екосистему релейблінгу, скидання SMART (так, таке трапляється) і «пересертифікованих» пристроїв з неясним походженням.
  7. Шаблони термічного циклу змінилися. Споживчі пристрої часто вмирають через повторні цикли нагрів-охолодження; майнерські — через тривале теплове навантаження і зношення вентиляторів.
  8. Умови гарантії часто навмисно були непривабливими. Короткі гарантійні терміни або обмежене покриття — це не ознака недбальства вендора; це цінова модель, розрахована на покупця, який очікує швидко амортизувати витрати.

Найкращі ідеї, які приносили майнерські версії

1) Чесне таргетування робочого навантаження (коли це було реально чесно)

Найкращі продукти «майнерських версій» визнавали своє призначення: спрощене обладнання, оптимізоване для тривалої роботи. Видалення відеовиходів на GPU не було злом. Це зменшувало BOM-вартість, знижувало шанси пошкодження роз’ємів і спрощувало підтримку. Якщо ви розгортаєте прискорювачі лише для обчислень, DisplayPort часто — декоративний елемент і досить поширена поломка в полі.

Де це працює у продакшні: вузли під конкретне призначення. CI-runner’и для обчислень на GPU. Рендеберні ферми. ML-поди для навчання, де вивід — це мережна задача, а не проблема DisplayPort.

Рішення: якщо SKU справді лише для обчислень, ставтеся до нього як до обчислювального пристрою. Не змішуйте його з парком робочих станцій і не скаржтеся, що це не робоча станція.

2) Енергоефективність як пріоритет

Майнери змусили вендорів і спільноти піклуватися про продуктивність на ват. Це прагнення принесло кращі практики undervolting, доступнішу телеметрію потужності і культуру «працюй стабільно, а не героїчно». В термінах SRE: майнерська культура нормалізувала запуск обладнання в консервативній точці кривої — нижча потужність, менше тепла, менше відмов.

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

3) Більша щільність слотів та «нудна» підключеність

Майнерські материнські плати й райзери спочатку були хаосом, але тиск «більше ліній, більше слотів» дав цікаві конструкції. Навіть поза майнингом, цінність мають плати, які віддають перевагу розширюваності й зрозумілій топології PCIe.

Хороша реалізація цієї ідеї — «просто і прозоро». Плата з чистим шарингом ліній і менше декоративних функцій може бути простішою в експлуатації, ніж ігрова плата з набором всього підряд.

4) Ставлення до вентиляторів як до витратних матеріалів (нарешті)

Майнерські риги навчили багатьох очевидної істини: вентилятори виходять з ладу. Вони зношуються механічно, забиваються й стають гучними перед тим, як зламатися. Якщо вендор проектує легку заміну вентиляторів — або якщо ваша операційна практика припускає їх регулярну заміну — час роботи підвищується.

У світі накопичувачів аналогія — заміна засувок у салазках, очищення фільтрів і ставлення до повітряного потоку як частини системи. Майнерські версії не винайшли аерацію, але змусили її помітити.

5) Економічна ясність: коротка амортизація змушує чесно планувати ємність

Економіка майнінгу жорстка й негайна. Такий підхід може бути корисним в IT: перестаньте вважати, що обладнання служить вічно, і почніть моделювати продуктивність та відмови як функцію використання й середовища.

Коли команда це усвідомлює, вона перестає купувати найдешевше, що «працює», і починає купувати найдешевше, що дійсно функціонує. Це різні рядки в бюджеті.

Найгірші ідеї, які приносили майнерські версії

1) Видалення функцій, що не були «прикрашенням»

Погані майнерські версії видаляли не лише порти. Вони вирізали стійкість. На GPU це могло означати урізані VRM, вентилятори нижчої якості або плати, налаштовані на один напругово-частотний режим з малою надлишком. Для накопичувачів еквівалент — прошивка, що дивно поводиться під час відновлення помилок або теплового стресу, або пристрої, які не дають передбачуваної телеметрії.

Майнерські навантаження дивно толерантні до певних дефектів. GPU може видавати іноді обчислювальні помилки, і майнер цього не помітить — або прийме як незначну втрату ефективності. Ваше виробниче навантаження може бути не таким поблажливим.

2) Гарантія як післядумка (або навмисний «нефічер»)

Короткі гарантії та обмежені RMA-умови — це не просто «дратує». Вони змінюють вашу модель надійності. Якщо ваш парк розраховує на швидке RMA, майнерські версії ламають це припущення. Тепер ваша стратегія запасів — це гарантія.

Якщо ви купуєте майнерські версії без плану на запчастини, ви не економите. Ви делегуєте вашу реакцію на інциденти удачі.

3) Термальний дизайн, що розрахований на open-air рами

Багато майнерських ригів працюють у відкритих рамах з великою кількістю навколишнього повітря та терпимістю до шуму. Помістіть таке обладнання в шасі з очікуванням фронт-зад повітряного потоку — і отримаєте гарячі зони, рециркуляцію і тротлінг. Пристрій не «поганий». Інтеграція — погана.

А коли GPU тротлить, він не завжди робить це акуратно. Ви побачите «джиттер», стрибки латентності і найгірший вид продуктивності: продуктивність, що здається нормальною, поки не стане критичною.

4) «Refurbished» як маркетинг, а не процес

Тут інженери зі зберігання починають терти скроні. Постмайнінгові ринки створили стимули для недбалого відновлення: релейблінг дисків, заміна плат, очищення логів, мішання партій і продаж «протестованих» одиниць, які тестували лише стільки, щоб завантажитися.

Більшість цього не має злого умислу. Це економіка. Тестування коштує грошей, а покупець ганяється за ціною.

Жарт #1: Купити «легко використаний майнерський SSD» — це як усиновити колишнього гоночного коня для дитячих свят. Інколи все гаразд. Інколи він зносить ваш паркан.

5) Надмірна оптимізація під послідовну витривалість запису

Деякі «майнерські оптимізовані» продукти для зберігання сильно покладалися на показники витривалості, які не відповідали змішаним робочим навантаженням. Числа витривалості можуть бути технічно коректними і при цьому вводити в оману. Записи не рівні: глибина черги, локальність, write amplification, поведінка garbage collection і температура — все це має значення.

Для операторів режим відмови передбачуваний: ви купуєте «високовитривалі» диски, ставите їх під інший патерн записів, ніж той, під який їх оптимізували, і бачите, як латентність перетворюється на пилообразний графік.

Режими відмов: що ламається першим і як це виглядає в продакшні

Майнерські GPU: повільна смерть охолодження та подачі живлення

Майнерські GPU проводять життя у високих температурах. Типові відмови не містять загадок:

  • Зношення вентиляторів: підшипники деградують, RPM падає, GPU досягає теплових лімітів, такти падають.
  • Деградація термопасти/падів: температури на мікросхемах пам’яті зростають першими, особливо на платах епохи GDDR6X.
  • Стрес VRM: тривале навантаження плюс тепло старять компоненти; нестабільність проявляється як скидання драйверів, ECC-помилки (якщо підтримуються) або зависання.

У змішаних навантаженнях це проявляється як періодичні відмови завдань і «джиттер» продуктивності, що здається «програмним», поки ви не зв’яжете це з телеметрією температури й потужності.

Майнерські SSD: витривалість — лише половина історії

Плоттінг (proof-of-space) може швидко «їсти» NAND. Вживаний диск може виглядати «здоровим», якщо ви лише глянете на один відсоток SMART. Тим часом він може мати:

  • Високі індикатори зносу медіа і зменшені резервні блоки, що призводить до раптових крахів.
  • Шаблони теплового тротлінгу, які вбивають хвостову латентність.
  • Непослідовну поведінку прошивки під час тривалих записів у шасі з поганим повітряним потоком.

Оператори повинні ставитися до вживаних SSD з майнінгового ринку підозріло, якщо ви не можете перевірити індикатори зносу і прогнати тривалі тести запису при робочій температурі.

Майнерські HDD: рідко, але коли трапляється — жахливо

HDD зазвичай не є «майнерськими» для proof-of-work, але proof-of-space створював випадки, коли великі масиви HDD використовували й перепродавали. HDD ненавидять вібрацію й тепло. Якщо розмістити достатньо дисків поруч без толерантності до вібрації, отримаєте:

  • Помилки читання під навантаженням, що запускають тривалі цикли відновлення помилок.
  • Таймаути RAID/ZFS, що виглядають як проблеми контролера.
  • Шторм відновлень: один маргінальний диск спричиняє відновлення; відновлення напружує решту; тепер ви в турнірі на виживання дисків.

Одна цитата, щоб лишатися чесним

Werner Vogels (CTO Amazon) сказав: «Everything fails, all the time.»

Швидкий план діагностики: що перевірити першим/другим/третім, щоб швидко знайти вузьке місце

Коли «майнерський» пристрій працює гірше або відмовляє, люди схильні сперечатися про якість. Не варто. Діагностуйте як завжди: спостерігайте, ізолюйте, підтверджуйте.

Перше: підтвердьте, що це апаратний збій (не планувальник, не мережа, не конфіг)

  • Перевірте навантаження на хості, тротлінг і помилки ядра.
  • Підтвердьте, що проблема слідує за пристроєм при переміщенні (якщо можливо) або зберігається після перезавантаження (якщо безпечно).
  • Шукайте теплові/енергетичні події навколо часу інциденту.

Друге: ідентифікуйте підсистему-обмежувач (потужність, тепло, PCIe, медіа, прошивка)

  • Потужність: занижена напруга, насичення рельсу PSU, транзієнти.
  • Тепло: тривалі високі температури, що викликають падіння частот або тротлінг медіа.
  • PCIe: downtraining лінків, AER-помилки, нестабільність райзера.
  • Медіа: SMART-знос, перерозподіли, повтори читання, незаправлені помилки.
  • Прошивка: дивні таймаути, непослідовна обробка помилок, відсутня телеметрія.

Третє: вирішіть, реабілітувати чи карантинувати

Деякі проблеми можна виправити (вентилятори, паста, повітряний потік, ліміти потужності). Деякі — ні (знос NAND, деградація голівок, хронічні помилки PCIe). Рішення — економічне й операційне:

  • Якщо пристрій недостатньо детермінований, помістіть його в карантин. Недетерміновані відмови марнують час інженерів і отруюють довіру.
  • Якщо пристрій відмовляє під теплом, виправте повітряний потік і повторно протестуйте. Якщо проблема лишається — карантин.
  • Якщо SMART показує деградацію медіа, не ведіться на компроміси. Замініть.

Практичні завдання: команди, виводи та рішення

Нижче — практичні завдання, які ви можете виконати на Linux-хостах. Кожне містить реалістичну команду, приклад виводу та рішення. Це не «бенчмарки для забави». Це інструменти тріажу.

Завдання 1: Ідентифікуйте точну модель і прошивку пристрою

cr0x@server:~$ lsblk -d -o NAME,MODEL,SERIAL,FWREV,SIZE,ROTA,TYPE
NAME MODEL              SERIAL          FWREV  SIZE ROTA TYPE
sda  SAMSUNG_MZ7L31T9   S6Z1NX0R123456  GDC5  1.8T    0 disk
sdb  ST8000NM000A-2KE1  ZA1ABCDEF       SN03  7.3T    1 disk

Що це означає: Ви підтверджуєте, що не отримали «сусідню» модель з іншою витривалістю/поведінкою і фіксуєте ревізію прошивки для відомих особливостей.

Рішення: Якщо ревізії прошивки сильно різняться в партії, зупиніться і стандартизуйте перед розгортанням. Змішування прошивок у пулі зберігання — шлях до непередбачуваних таймаутів.

Завдання 2: Перевірка NVMe SMART / індикаторів зносу

cr0x@server:~$ sudo nvme smart-log /dev/nvme0n1
Smart Log for NVME device:nvme0n1 namespace-id:ffffffff
critical_warning                    : 0x00
temperature                         : 62 C
available_spare                     : 98%
available_spare_threshold           : 10%
percentage_used                     : 41%
data_units_written                  : 189,345,221
media_errors                        : 0
num_err_log_entries                 : 12

Що це означає: percentage_used визначається вендором, але загалом корелює зі споживанням витривалості. Записи помилок в журналі вказують, що диск мав проблеми, навіть якщо вони не стали помилками медіа.

Рішення: Якщо percentage_used високий для «нових» дисків — ставтеся до партії як до вживаної. Якщо температура висока в режимі idle — виправте повітряний потік перед довірою до будь-яких бенчмарків.

Завдання 3: Перевірка основ SMART для SATA/SAS

cr0x@server:~$ sudo smartctl -a /dev/sdb | sed -n '1,25p'
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.5.0] (local build)
=== START OF INFORMATION SECTION ===
Device Model:     ST8000NM000A-2KE1
Serial Number:    ZA1ABCDEF
Firmware Version: SN03
User Capacity:    8,001,563,222,016 bytes [8.00 TB]
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Що це означає: Перевірте, що SMART увімкнено і доступне. Деякі сумнівні контролери/мости брешуть або приховують SMART.

Рішення: Якщо SMART недоступний, не розгортайте в парку, яким очікуєте оперувати. «Нема телеметрії» — запах ненадійності.

Завдання 4: Шукайте перерозподілені та очікуючі сектори (HDD)

cr0x@server:~$ sudo smartctl -A /dev/sdb | egrep 'Reallocated_Sector_Ct|Current_Pending_Sector|Offline_Uncorrectable'
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       2
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       1

Що це означає: Pending та uncorrectable sectors — червоні прапорці. Reallocated sectors можуть бути пережитими, якщо стабільні, але pending sectors — активна проблема.

Рішення: Будь-які pending sectors у диска, що йде в RAID/ZFS? Карантин. Відновлення перетворить маргінальне медіа на зброю масового руйнування.

Завдання 5: Перевірка годин роботи (щоб помітити «новий», який не новий)

cr0x@server:~$ sudo smartctl -A /dev/sdb | egrep 'Power_On_Hours|Start_Stop_Count'
  9 Power_On_Hours          0x0032   088   088   000    Old_age   Always       -       54781
  4 Start_Stop_Count        0x0032   099   099   000    Old_age   Always       -       32

Що це означає: 54k годин — це роки безперервної роботи. Невелика кількість циклів старт-стоп свідчить «завжди в мережі», що відповідає майнінговому або датацентрному використанню.

Рішення: Не змішуйте такі диски з «новими» у пулі. Якщо мусите використовувати — ізолюйте за віком і плануйте більше запасів.

Завдання 6: Запустіть короткий SMART self-test (швидкий триаж)

cr0x@server:~$ sudo smartctl -t short /dev/sdb
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.

Що це означає: Короткий тест виявляє очевидні відмови без годин простою.

Рішення: Якщо короткі тести падають при отриманні, зупиніть розгортання. Це не «дитяча смертність», це ознака постачальника.

Завдання 7: Прочитайте журнал self-test (підтвердіть відмови)

cr0x@server:~$ sudo smartctl -l selftest /dev/sdb | tail -n +1
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed: read failure       10%     54782         123456789
# 2  Short offline       Completed without error       00%     54780         -

Що це означає: Помилка читання з вказаним LBA вказує на реальну проблему медіа, а не просто проблеми з кабелем (хоча кабелі теж можуть бути причиною).

Рішення: Якщо помилки відтворювані — замініть диск. Якщо помилки зникають після перепідключення кабелів або переносу в інший порт — підозрілийте бекплейн/контролер.

Завдання 8: Виявлення проблем PCIe та AER (поширено з райзерами)

cr0x@server:~$ sudo dmesg -T | egrep -i 'AER|pcie.*error|nvme.*reset|link down' | tail -n 8
[Mon Jan 13 10:21:44 2026] pcieport 0000:00:1c.0: AER: Corrected error received: 0000:03:00.0
[Mon Jan 13 10:21:44 2026] nvme 0000:03:00.0: AER: can't recover (no error_detected callback)
[Mon Jan 13 10:21:45 2026] nvme nvme0: controller reset, status: 0x371
[Mon Jan 13 10:21:47 2026] nvme nvme0: I/O 123 QID 6 timeout, reset controller

Що це означає: Corrected AER помилки разом з NVMe ресетами часто означають проблеми цілісності сигналу: райзери, маргінальні слоти або проблеми з живленням.

Рішення: Якщо це шасі з майнерською історією та райзерами — зніміть райзер і повторно протестуйте. Якщо помилки зникають — забороніть цю модель райзера в продакшні.

Завдання 9: Підтвердьте події теплового тротлінгу NVMe

cr0x@server:~$ sudo nvme get-feature /dev/nvme0n1 -f 0x10
get-feature:0x10 (Temperature Threshold), Current value:0x014b

Що це означає: Функція 0x10 стосується порогів температури. Потрібно зв’язати це з реальними температурами та падіннями продуктивності.

Рішення: Якщо пристрій досягає порогів під нормальним навантаженням — додайте охолодження або радіатори. Якщо його не вдається охолодити, не використовуйте там, де важлива латентність.

Завдання 10: Спостерігайте реальну I/O латентність (тріаж вузького місця зберігання)

cr0x@server:~$ iostat -xz 1 3
Linux 6.5.0 (server) 	01/13/2026 	_x86_64_	(32 CPU)

avg-cpu:  %user %nice %system %iowait  %steal   %idle
          12.10  0.00    4.15    8.22    0.00   75.53

Device            r/s     w/s   rMB/s   wMB/s  avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
nvme0n1        120.0   980.0    12.5   110.2    246.0     8.40    7.90    2.10    8.60   0.38  42.0
sdb              3.0    60.0     0.1     4.2    142.0     2.10   48.2    4.20   50.1    4.10  28.5

Що це означає: await показує латентність запиту. Латентність HDD ~50ms при записі може бути відносно нормальною, але стане проблемою, якщо ваш застосунок очікує швидких синхронних записів.

Рішення: Якщо mined/used диск показує високі стрибки латентності порівняно з сусідами — виведіть його з пулу, перш ніж він стане «диском, що зіпсує всім день».

Завдання 11: Виявлення таймаутів файлової системи або блочного шару

cr0x@server:~$ sudo journalctl -k --since "1 hour ago" | egrep -i 'timeout|reset|I/O error|blk_update_request' | tail -n 10
Jan 13 10:11:02 server kernel: blk_update_request: I/O error, dev sdb, sector 90234112 op 0x1:(WRITE) flags 0x0 phys_seg 8 prio class 0
Jan 13 10:11:02 server kernel: sd 2:0:0:0: [sdb] tag#19 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Jan 13 10:11:02 server kernel: sd 2:0:0:0: [sdb] Sense Key : Medium Error [current]

Що це означає: Medium errors — диск визнає, що не може надійно записати/прочитати частини медіа.

Рішення: Замініть диск. Не «моніторьте уважно». Моніторинг не ремонтує магнітні домени.

Завдання 12: Перевірка стану пулу ZFS і лічильників помилок

cr0x@server:~$ sudo zpool status -v
  pool: tank
 state: DEGRADED
status: One or more devices has experienced an error resulting in data corruption.
action: Replace the device and restore the pool from backup.
  scan: scrub repaired 0B in 01:22:14 with 2 errors on Mon Jan 13 09:55:01 2026
config:

        NAME                        STATE     READ WRITE CKSUM
        tank                        DEGRADED     0     0     0
          raidz1-0                  DEGRADED     0     0     0
            ata-ST8000NM000A_ZA1A   ONLINE       0     0     0
            ata-ST8000NM000A_ZA1B   ONLINE       0     0     0
            ata-ST8000NM000A_ZA1C   ONLINE       0     0     2
            ata-ST8000NM000A_ZA1D   ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:
        /tank/db/pg_wal/0000000100000000000000A3

Що це означає: ZFS checksum errors означають, що диск (або шлях) повернув неправильні дані. Це не просто повільний диск; це пошкодження цілісності даних.

Рішення: Замініть пристрій з CKSUM-помилками і перевірте кабелювання/бекплейн. Також відновіть постраждалі дані з бекапу або вищого рівня реплікації.

Завдання 13: Перевірка деградації mdraid і швидкості відновлення (Linux RAID)

cr0x@server:~$ cat /proc/mdstat
Personalities : [raid1] [raid10] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0] sdc1[1]
      976630336 blocks super 1.2 [2/2] [UU]

md1 : active raid5 sdb1[0] sdd1[1] sde1[2]
      15627534336 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
      [>....................]  recovery =  4.2% (328463360/7813767168) finish=982.3min speed=127890K/sec

Що це означає: Деградований RAID5 живе в небезпеці. Швидкість відновлення каже, як довго ви будете під загрозою.

Рішення: Якщо швидкість відновлення аномально низька — перевірте наявність повільного/нестабільного диска. Замініть першим відстаючий диск; шторм відновлень вбиває масиви.

Завдання 14: Перевірка тривалої поведінки запису (виявлення тротлінгу)

cr0x@server:~$ fio --name=steadywrite --filename=/dev/nvme0n1 --direct=1 --rw=write --bs=256k --iodepth=16 --numjobs=1 --runtime=60 --time_based=1 --group_reporting
steadywrite: (g=0): rw=write, bs=(R) 256KiB-256KiB, (W) 256KiB-256KiB, ioengine=psync, iodepth=16
fio-3.35
steadywrite: (groupid=0, jobs=1): err= 0: pid=18022: Mon Jan 13 10:33:29 2026
  write: IOPS=820, BW=205MiB/s (215MB/s)(12.0GiB/60001msec)
    clat (usec): min=350, max=88000, avg=2400.12, stdev=5200.31

Що це означає: Слідкуйте за максимумами латентності (тут 88ms) і спадом пропускної здатності з часом. Тротлінг часто виглядає як періодичні стрибки латентності.

Рішення: Якщо продуктивність падає через 30–60 секунд — не звинувачуйте застосунок. Виправте охолодження або уникайте цього пристрою для робочих навантажень з тривалим записом.

Завдання 15: Перевірка тротлінгу тактових частот GPU та температур

cr0x@server:~$ nvidia-smi --query-gpu=name,temperature.gpu,clocks.sm,clocks.mem,power.draw,pstate --format=csv
name, temperature.gpu, clocks.sm, clocks.mem, power.draw, pstate
NVIDIA GeForce RTX 3080, 86, 1110, 9251, 229.45, P2

Що це означає: Висока температура плюс низький SM clock при певному споживанні потужності вказують на теплове обмеження або консервативну політику потужності. P-state показує рівень продуктивності.

Рішення: Якщо такти нестабільні під навантаженням — перевірте вентилятори/пасту/пади. Якщо це майнерська карта, розраховуйте на обслуговування перед використанням у продакшні.

Жарт #2: Тепловий тротлінг — це спосіб GPU сказати: «Я не лінивий, я просто страйкую.»

Три корпоративні міні-історії (анонімізовані, але болісно реальні)

Міні-історія №1: Інцидент через хибне припущення

Середня SaaS-компанія купила багато «enterprise-grade» SSD через реселера під час дефіциту. Диски прибули в чистій упаковці, з етикетками, що виглядали правильно, і ціною, від якої фінанси відчували себе героями. Їх розгорнули в шарі кешування БД — навантаження з інтенсивними записами й чутливість до латентності, типовий випадок, де ви платите за надійність, купуючи менше гострих рішень.

Хибне припущення було простим: «Якщо він ідентифікується як та сама модель, він поводиться як та сама модель». Ніхто не перевірив прошивку, тип NAND або навіть чи диски з однієї серії виробництва. Інвентар виглядав однорідним, тож в експлуатації їх теж так і сприймали.

Через три тижні під час пікових годин латентність почала стрибати. Не постійно висока — а стрибки. Тип, який перетворюється на тайм-аути для користувачів, тоді як ваші дашборди чемно усереднюють їх у посередність. Логи ядра показували час від часу NVMe ресети. Команда звинуватила недавнє оновлення ядра, відкатила його і побачила… менше стрибків. Чудово, але це був збіг.

Справжня проблема була в тепловій поведінці. Диски були в порядку на відкритих тестових стендах і при низьких ступенях навантаження. У щільному шасі під стійким записом вони досягали теплових порогів і починали агресивно тротлити. Гірше — вони не всі тротлили однаково; підмножина здійснювала ресети під теплом. Пізніший огляд підказував, що партія була змішаною — деякі диски ймовірно вже були інтенсивно використані.

Виправлення не було героїчним. Вони стандартизували прошивки де можливо, покращили аерацію і — найважливіше — перестали змішувати недовірені пристрої в латентно-чутливі шари. Частина дисків була переведена на некритичні робочі навантаження. Інцидент закрили з уроком, який варто написати на кожній формі закупівлі: «та сама модель» ≠ «та сама поведінка».

Міні-історія №2: Оптимізація, що дала дуплет

Медіа-компанія, що займається транскодингом, купила партію вживаних майнерських GPU зі знижкою й вирішила «оптимізувати» їх для економії. План: агресивно undervolt-ити, щоб зменшити потужність і тепло, а потім умістити більше карт на хост. На папері виглядало геніально: менше ват, нижча температура, більша щільність, задоволений CFO.

У стейджингу все проходило. Завдання завершувалися. Споживання знизилося. Всім аплодували. Помилка була в тому, що робочі навантаження продакшну були варіативнішими: різні кодеки, різні резолюції, іноді стрибки у пропускній здатності пам’яті, і планувальник, що створював бурхливі патерни.

Під час цих сплесків undervolted карти почали поводитися дивно. Не одразу. Періодично. Декілька робіт падали з ресетами драйверів, хост відновлювався, потім знову падіння. Інженери топталися при пошуку «поганих контейнерів», «поганих драйверів» і «гонок у пайплайні». Тим часом справжня причина — занадто мала маржа undervolt для хвостів розподілу навантаження.

Наслідок оптимізації: зменшення середнього споживання, але збільшення варіації і частоти відмов. Вирішення: визначати стабільність як «без ресетів під найгірше навантаження при робочій температурі», а не «проходить швидкий тест». Вони відкотили undervolt, прийняли трохи більше споживання і зменшили щільність карт на хості. Менше карт — менше інцидентів, вищий загальний пропуск через тиждень.

Мораль: оптимізації, що зменшують маржу, — це борг. Можна взяти кредит, але продакшн збере відсотки.

Міні-історія №3: Нудна, але правильна практика, що врятувала день

Фінтех-компанія дотримувалася суворої практики для будь-якого накопичувача, який входив у ZFS-пул: burn-in тести, базування SMART і графік scrub, пов’язаний з алертингом. Це не було гламурно. Це була такий процес, під який люди питали, чи ви не «занадто обережні». Вони також мали документовані запаси і відмовлялися розгортати диски, які не могли надати надійну SMART-телеметрію.

Під час спадів ринку закупівля запропонувала купити відновлені «майнерські версії» HDD для великого аналітичного кластера. Команда стореджу не сперечалася філософськи. Вони застосували процес. Кожен диск отримав запис годин роботи, короткий і довгий self-test і був підданий write/read soak-тесту при цільовій робочій температурі.

Результат був незручний, але корисний: немала частина дисків не пройшла burn-in або показала тривожні SMART-атрибути (pending sectors, read failures у self-test, нестабільні журнали помилок). Оскільки процес існував, команда мала чисті докази, щоб повернути диски і переглянути умови партії.

Кластер потім розгорнули з меншим набором верифікованих дисків і більшим пулом запасних. Коли через місяці один диск почав накопичувати checksum-помилки, регулярні scrubs виявили це рано, і заміна пройшла рутинно. Ніяких all-hands. Ніякого впливу на клієнтів. Просто тикет, заміна і закриття.

Це та частина, яку ніхто не хоче чути: найкраща робота з надійності — повторювана. Вона врятувала їх, бо перетворила «майнерські версії» з лотереї у контрольовану змінну.

Типові помилки: симптом → корінна причина → виправлення

1) Симптом: випадкові NVMe ресети під навантаженням

Корінна причина: проблеми цілісності сигналу PCIe (райзер, маргінальний слот), транзієнти живлення або тротлінг контролера від тепла.

Виправлення: Видаліть райзери, перепідключіть, зафіксуйте покоління PCIe в BIOS при необхідності, покращіть охолодження, перевірте запас потужності PSU і повторно протестуйте під тривалим навантаженням.

2) Симптом: скарги «диск повільний» під час відновлень/scrub

Корінна причина: один слабкий диск спричиняє повтори; відновлення RAID/ZFS підсилює навантаження і доводить маргінальні диски до відмови.

Виправлення: Знайдіть викидака через iostat/zpool status, замініть раніше і не змішуйте старі/невідомі диски з новими в одному vdev/масиві.

3) Симптом: ZFS checksum errors, а потім паніка

Корінна причина: поганий диск, поганий кабель/бекплейн або проблеми контролера, що повертають пошкоджені дані.

Виправлення: Замініть дефектний пристрій/шлях; запустіть scrubs; відновіть уражені дані. Також проведіть аудит кабелів і прошивки HBA.

4) Симптом: продуктивність GPU нормальна годину, а потім колапс

Корінна причина: теплове тротлінг або перегрів пам’яті (зношені паста/пади, зношені вентилятори).

Виправлення: Обслуговування охолодження (вентилятори, пади, паста), покращення аерації шасі і встановлення розумних лімітів потужності замість гонитви за піковими тактовими частотами.

5) Симптом: «нові» диски показують високий знос з першого дня

Корінна причина: вживане обладнання в новій упаковці, маніпуляції зі SMART або непорозуміння метрик зносу вендора.

Виправлення: Перевіряйте Power_On_Hours і журнали SMART при прийманні; відмовляйтеся від невідповідних партій; вимагайте походження або купуйте через канали з дійсними умовами повернення.

6) Симптом: латентні стрибки, що не відображаються в середніх значеннях

Корінна причина: тротлінг, garbage collection, відновлення помилок або паузи прошивки.

Виправлення: Вимірюйте хвостову латентність (p99/p999), запускайте тривалі тести і корелюйте з температурою та логами ядра. Уникайте таких пристроїв у латентно-чутливих шарах.

7) Симптом: в логах ядра medium errors на HDD

Корінна причина: реальна деградація медіа, часто прискорена вібрацією і тривалим теплом.

Виправлення: Негайна заміна диска, потім перегляд вібрації/аерації шасі і перевірка сусідніх дисків на ознаки деградації.

8) Симптом: пристрої зникають і з’являються при завантаженні

Корінна причина: нестабільність PSU, непружні роз’єми, перевантажені рельси або проблеми бекплейну.

Виправлення: Перевірте бюджет потужності, замініть сумнівні кабелі, валідуйте бекплейн і уникайте дешевих розгалужувачів/адаптерів.

Чеклісти / покроковий план

Чекліст при отриманні (перед будь-яким виходом у продакшн)

  1. Ідентичність інвентарю: модель, серійник, прошивка, ємність, інтерфейс. Відмовляйтеся від змішаних прошивок, якщо у вас немає плану.
  2. Перевірка телеметрії: переконайтеся, що SMART/NVMe журнали читаються без вендорських хитрощів.
  3. Перевірка віку: зафіксуйте Power_On_Hours / кількість запусків; відмітьте аутлаєри.
  4. Швидкі тести здоров’я: короткий self-test при отриманні; відмовляйтеся від тих, що падають.
  5. Burn-in soak: тривалі read/write тести при реальній робочій температурі.
  6. Теплова поведінка: підтвердіть температури під навантаженням у шасі, де плануєте використовувати.
  7. Ізоляція партії: маркуйте пристрої за джерелом і віком; не змішуйте їх у критичних vdev/масивах.

План розгортання (як не створити інцидент)

  1. Починайте з некритичних навантажень: перше розгортання трактуйте як канарку.
  2. Увімкніть алертинг на правильні сигнали: помилки I/O ядра, NVMe ресети, ZFS checksum errors, тротлінг GPU.
  3. Встановіть SLO продуктивності: p99 латентність і рівень помилок, а не середні значення.
  4. Тримайте запаси на місці: гарантія — не план операцій.
  5. Документуйте відомі особливості: версії прошивок, потрібні налаштування BIOS, ліміти потужності, вимоги по охолодженню.
  6. Визначте правило карантину: пороги, що автоматично виводять зі служби.

Операційна гігієна, яка платить рахунки щомісяця

  1. Регулярні scrubs/parity checks: знаходьте мовчазну корупцію рано.
  2. Трендуйте SMART-атрибути: спостерігайте темпи зміни, а не лише абсолютні значення.
  3. Теплове обслуговування: фільтри, повітряний потік, цикли заміни вентиляторів.
  4. Дисципліна прошивок: контрольовані оновлення, а не випадковий дрейф.

Питання та відповіді

1) Чи завжди «майнерські версії» продукція нижчої якості?

Ні. Вони оптимізовані під вужчий випадок використання і зазвичай мають коротший очікуваний термін служби. Якість залежить від вендора й покоління. Ваше завдання — перевіряти, а не стереотипізувати.

2) Чи вживаний майнерський GPU автоматично ризиковий для продакшн-обчислень?

Він більш ризиковий, ніж легко використовуваний робочий GPU, бо ймовірно працював гарячо й постійно. Ризик можна контролювати: обслуговування охолодження, перевірка стабільності під найгіршими навантаженнями і моніторинг тротлінгу та ресетів.

3) Який найпомітніший червоний прапорець при купівлі вживаних накопичувачів?

Невідповідна або відсутня телеметрія: недоступний SMART, надто «чисті» журнали або партії з дуже різними Power_On_Hours і прошивками під однією моделлю.

4) Чи можна підробити або скинути SMART-дані?

Так, у деяких випадках. Не кожен атрибут легко підробити, і не всі вендори поводяться однаково. Тому burn-in під навантаженням і при температурі — це частина процесу, а не опція.

5) Чи можна змішувати mined/used диски з новими у тому самому RAID/ZFS vdev?

Уникайте цього. Масиви падають, коли найслабший учасник піддається стресу, а відновлення навантажує всіх. Якщо мусите — сегрегуйте за віком і джерелом і збільшіть запаси.

6) Як найшвидше зрозуміти, що SSD буде тротлити?

Запустіть тривалий тест запису принаймні на 60 секунд (часто довше), всередині фактичного шасі, і спостерігайте пропускну здатність і хвостову латентність під час відстеження температури.

7) Якщо GPU стабільний на нижчому ліміті потужності, чи завжди його варто обмежити?

Часто так, але не ганяйтесь за мінімумом. Оберіть консервативний ліміт потужності, що зберігає маржу під бурстові робочі навантаження і змінні температури навколишнього середовища.

8) Чому майнерські версії спричиняють так багато «періодичних» проблем?

Бо багато з них працюють на межі специфікацій: маргінальне охолодження, подача живлення або цілісність сигналу, які в порядку доти, доки температура не підвищиться або шина не завантажиться. Періодичність — це вигляд роботи на межі специфікацій.

9) Чи завжди enterprise-диски безпечніші за споживчі в таких випадках?

Здебільшого безпечніші для масивів під безперервним навантаженням через прогнозовану поведінку відновлення помилок і стійкість до вібрації. Але «enterprise» на етикетці не гарантує походження; перевіряйте все одно.

10) Що робити, якщо procurement вже купив партію?

Не впадайте в істерику. Заблокуйте її burn-in-ом, ізолюйте в некритичні шари спочатку і встановіть жорсткі правила карантину. Зробіть ризик видимим і вимірюваним.

Наступні кроки, які ви можете зробити цього тижня

Майнерські версії — це не анекдот; це стрес-тест для вашої операційної зрілості. Якщо ваше середовище не може терпіти невідоме походження, змішані прошивки і тісні теплові маржі, то у вас не проблема майнерських версій. У вас проблема прийому і валідації обладнання.

Зробіть ось що цього тижня:

  1. Напишіть односторінковий стандарт прийому для накопичувачів і GPU: ідентичність, телеметрія, burn-in і критерії прийняття.
  2. Встановіть правила карантину, що не потребують дебатів о 2-й ранку: pending sectors, checksum errors, NVMe ресети, повторювані AER-події.
  3. Інструментуйте хвостову латентність і теплові сигнали. Середні — це те місце, куди йдуть інциденти ховатися.
  4. Сегрегуйте за партіями і віком. Однорідні домени відмов простіше аналізувати, ніж змішані сюрпризи.
  5. Тримайте запаси. Якщо гарантія слабка — запаси ваша гарантія.

Коли ви ставитеся до майнерських версій як до того, чим вони є — спеціалізоване обладнання з певною історією — ви можете витягти з них реальну цінність, не перетворюючи on-call у фольклорний архів.

← Попередня
Компресія ZFS lz4: коли вона «безкоштовна», а коли ні
Наступна →
Debian 13: правила nftables «не працюють» — порядок завантаження й конфлікти, виправлено назавжди

Залишити коментар