Апаратне забезпечення
фізичні складники комп'ютера
Що це таке
Апаратне забезпечення — це частина обчислювальної системи, зроблена з речовини, а не з коду: процесор, що виконує інструкції, оперативна пам’ять, що тримає поточну роботу, диски чи флеш-пам’ять, що зберігають дані, коли живлення вимкнене, мережевий адаптер, блок живлення й плата, яка все це з’єднує. Сюди ж належать екрани, клавіатури, кабелі, комутатори й маршрутизатори. Розмовно його називають залізом, а фізичний сервер без шару віртуалізації між ним і його операційною системою часто називають bare metal.
Глосарій NIST визначає апаратне забезпечення як матеріальні фізичні складники системи й відсилає читача до програмного забезпечення та мікропрограм, бо ці три поняття визначаються одне через одне. Програмне забезпечення в тому самому глосарії — це програми й дані, які можна записувати або змінювати під час виконання. Мікропрограма (firmware) — це програми й дані, збережені в апаратурі, зазвичай у постійній або програмованій постійній пам’яті, так що їх не можна динамічно записувати чи змінювати під час виконання. Саме мікропрограма запускає машину ще до завантаження будь-якої операційної системи, а менші її частини працюють усередині дисків, мережевих карт і контролерів акумуляторів. Настанови NIST щодо мікропрограм платформи розглядають апаратуру й мікропрограми, потрібні для завантаження й роботи системи, як одне ціле й називають його платформою.
Кожна частина має місткість, яку програми можуть використати добре чи погано, але підняти її не можуть. Процесор виконує фіксований обсяг роботи за секунду, і його ділить усе, що працює. Оперативна пам’ять швидка, обмежена й очищується, коли зникає живлення. Сховище повільніше й більше, зберігає вміст після вимкнення живлення і зношується від використання. Мережевий адаптер передає фіксовану кількість бітів за секунду. Система працює так швидко, як дозволяє та частина, що першою вичерпується для даної роботи.
Більшість серверів сьогодні працює на залізі, якого ніхто в компанії не бачив. Віртуальна машина, орендована в хмарного провайдера, — це частка фізичної машини в його дата-центрі: гіпервізор ділить процесори, пам’ять і диски цієї машини між розміщеними на ній віртуальними машинами й тримає кожну в межах її частки. Клієнт вибирає розміри з прайс-листа, а провайдер бере на себе кабелі, запчастини й заміну.
Чому це важливо
Апаратне забезпечення задає стелю. Програми вирішують, яка частка місткості машини перетвориться на корисну роботу, але жодне налаштування не дасть машині більше пам’яті, ніж у неї є. Знання того, яка частина заповнена, — процесор, пам’ять, диск чи мережа, — підказує, що змінювати, і часто відповідь полягає в програмах.
Залізо змінювати найповільніше й найдорожче. Програму можна перевстановити за кілька хвилин. Деталь треба вибрати, замовити, встановити й оплатити, а більша орендована машина коштує дорожче щомісяця, поки вона працює. Тому залізо — останній засіб для продуктивності, хоч його часто пропонують першим.
Апаратне забезпечення — це місце, де речі фізично зношуються. Вентилятори, акумулятори, петлі, роз’єми й сховище мають свій робочий ресурс. Усе, що вище за них, можна відтворити з резервної копії та письмового опису; самі деталі доводиться замінювати.
І залізо тримає дані після того, як програми їх відпустили. Видалення файлу зазвичай прибирає запис файлової системи про те, де лежить вміст, а не сам вміст. Диск, який залишає будівлю, — проданий, повернений за гарантією чи викинутий, — може нести багато з того, що на нього колись записували.
Як це виглядає на практиці
Робота з апаратним забезпеченням у портфоліо починається за ремонтним столом. Розповідь про те, як вдалося діагностувати й відремонтувати апаратну частину ноутбуків, охоплює екрани, петлі, клавіатури, трекпади, материнські плати й живлення, а також програмну частину в Linux, Windows і Mac. Вона бачить майстерність у діагностиці: якщо ноутбук не вмикається, винним може бути зарядний пристрій, плата чи акумулятор, і ремонт вартий рівно стільки, наскільки точною була здогадка про те, що насправді зламалося. Тож найбільше зусиль ішло на пошук справжньої причини, перш ніж щось чіпати.
Цей сайт працює на залізі з протилежного краю, на машині, якої він ніколи не торкався. Сторінка подяк описує одну маленьку машину, що робить усе це: одноядерний сервер DigitalOcean з 512 МБ пам’яті та диском на 10 ГБ, розташований у Торонто, Канада. Та сама сторінка каже, що Ansible описує цей сервер як код, щоб його можна було відтворити, а restic робить резервні копії й зберігає їх поза сервером. Коли залізо належить комусь іншому, ці два рядки й становлять ремонтний набір.
А нотатка про те, щоб оптимізувати базу даних, перш ніж її шардувати, здебільшого пояснює, коли не варто тягтися по залізо. Розкидання даних по більшій кількості серверів розкидає повільні інструкції по більшій кількості заліза, не роблячи жодну з них дешевшою. Рядки, що стоять у черзі за блокуванням, чекають одне на одного, а не на залізо, і більша машина не скоротить очікування на заблокований рядок. Коли активних сеансів у багато разів більше, ніж ядер, пул з’єднань виправить це раніше, ніж будь-яке залізо. Критерій нотатки для поділу — машина, повністю завантажена корисною роботою, а не чеканням.
Де виникають проблеми
Залізо купують для програмної проблеми. Повільна система виглядає як мала. Перш ніж платити за більшу машину, з’ясуйте, яка частина заповнена. У Linux перша відповідь — це три команди: скільки процесорів може використати система, скільки пам’яті зайнято й доступно, і п’ять вимірів по одній секунді того, куди йде процесорний час.
nproc
free -h
vmstat 1 5
У виводі vmstat поля us і sy — це час у програмах і в ядрі, id — час
бездіяльності, а wa — час очікування сховища. Процесор, що здебільшого
простоює, поки запити чекають, означає, що очікування десь в іншому місці: у
блокуванні, повільному запиті, віддаленому виклику чи надто великій кількості
одночасних з’єднань. Більше заліза залишає все це там, де воно було.
Замінюють не ту деталь. Симптом вказує на місце, а не на причину. Машина, що не запускається, може мати проблему з живленням, платою чи акумулятором; повільний диск може бути заповненим, несправним або зайнятим. Міняти деталі, доки несправність не зникне, коштує грошей і приховує, яка деталь була винна, тож несправність повертається. Спершу перевіряйте найдешевше пояснення, змінюйте одну річ за раз і підтверджуйте виправлення, повторивши те, що показало несправність.
Віртуальний процесор сприймають як фізичне ядро. Вибір розміру орендованої машини за кількістю віртуальних CPU передбачає, що кожен із них — ядро. Документація DigitalOcean, наприклад, визначає vCPU як один гіперпотік на ядрі процесора. На тарифах зі спільним CPU цей гіперпотік можуть ділити інші віртуальні машини на тому самому фізичному хості, і коли вони зайняті, машина може отримувати лише частки одного, тоді як пам’ять, диск і пропускна здатність мережі лишаються виділеними. Вимірюйте під тим навантаженням, якого очікуєте в пік, і переходьте на виділені процесори, коли час виконання коливається більше, ніж робота може витримати.
Дані йдуть разом із диском. Після видалення файлів чи форматування диска його вміст може лишатися доступним для будь-кого зі звичайними засобами відновлення. Настанови NIST щодо очищення носіїв, переглянуті у вересні 2025 року, визначають очищення як процес, що робить доступ до даних на носії нездійсненним за заданого рівня зусиль, і добирають техніку за чутливістю інформації. Вирішіть, як очищуватимете кожен диск, ще до його купівлі, і ведіть запис, коли він іде.
Мікропрограми лишаються поза оновленнями. Оновлення операційної системи зазвичай залишають мікропрограми в платі, дисках і мережевій карті такими, як були. Настанови NIST щодо мікропрограм платформи застерігають, що успішна атака на ці мікропрограми може зробити систему непрацездатною, можливо, назавжди, і будують свої поради на захисті від несанкціонованих змін, виявленні змін, що відбулися, і швидкому відновленні. Встановлюйте оновлення мікропрограм від виробника за розкладом, так само як оновлюється решта системи.
Що почитати далі
- hardware — NIST CSRC Glossary — коротке визначення з посиланнями на програмне забезпечення й мікропрограми.
- DigitalOcean: Choosing the Right CPU Droplet Plan — що таке віртуальний CPU в провайдера, на якому працює цей сайт, і коли спільних процесорів достатньо.
- NIST SP 800-88 Rev. 2, Guidelines for Media Sanitization — як зробити дані на диску недосяжними, перш ніж диск піде.
- NIST SP 800-193, Platform Firmware Resiliency Guidelines — захист, виявлення й відновлення мікропрограм, з яких завантажується машина.