HP Gen8 Storage Cache & ssacli
Налаштування дискового кешу, різниця між споживчими та серверними SSD, управління RAID-контролером HP P420i через ssacli.
Теорія: Споживчі vs Серверні SSD
Споживчі SSD (Consumer):
Критично залежать від свого внутрішнього кешу (DWC - Drive Write Cache) та SLC-буфера. Якщо серверний контролер примусово вимикає їхній кеш, при великому потоковому записі швидкість падає до 30-40 МБ/с. Сервер може зависнути (помилка task blocked for more than 120 seconds), очікуючи на відповідь від дисків.
Серверні SSD (Enterprise): Мають стабільну швидкість запису по всьому об'єму та вбудовані конденсатори (PLP - Power Loss Protection). Для них апаратний кеш диска зазвичай вимикають заради безпеки, покладаючись виключно на кеш RAID-контролера.
Встановлення HP ssacli (Debian/Ubuntu/Proxmox)
Офіційна утиліта від Hewlett Packard Enterprise для керування Smart Array контролерами з консолі Linux.
wget -O - [https://downloads.linux.hpe.com/SDR/hpePublicKey2048_key1.pub](https://downloads.linux.hpe.com/SDR/hpePublicKey2048_key1.pub) | apt-key add -
echo "deb [http://downloads.linux.hpe.com/SDR/repo/mcp](http://downloads.linux.hpe.com/SDR/repo/mcp) bookworm/current non-free" > /etc/apt/sources.list.d/mcp.list
apt update
apt install ssacli -y
Діагностика RAID-контролера
Перегляд конфігурації масивів
Показує всі логічні/фізичні диски та літери масивів (Array A, Array B тощо):
ssacli ctrl all show config
Перевірка статусу батарейки та кешу
Перевіряє, чи жива батарейка/конденсатори контролера та в якому співвідношенні працює кеш (Read/Write):
ssacli ctrl slot=[slot_num] show detail | grep -iE "Cache|Battery|Status"
⚠️ Важливо: Якщо
Battery/Capacitor Statusмає статусFailed, контролер автоматично вимкне кеш на запис для захисту даних. Диски без нього працюватимуть вкрай повільно.
Налаштування кешування (HP P420i) для Споживчих SSD
Щоб масиви зі звичайними SSD (наприклад, Samsung EVO/QVO) не "вішали" сервер під час великих записів (наприклад, pull Docker образів), необхідно виконати три кроки:
1. Вимкнення HP SSD Smart Path
Smart Path вимикає апаратний кеш контролера і пише дані напряму на диски. Для споживчих SSD це потрібно вимкнути, щоб задіяти оперативну пам'ять контролера як буфер для Linux:
ssacli ctrl slot=[slot_num] array [array_letter] modify ssdsmartpath=disable
2. Розподіл кешу контролера (Cache Ratio)
Для віртуалізації та активного запису рекомендується віддати більшу частину (наприклад, 90%) апаратного кешу під запис:
ssacli ctrl slot=[slot_num] modify cacheratio=10/[write_ratio]
3. Увімкнення кешу самого накопичувача (DWC)
Критично необхідно для споживчих SSD. Дозволяє диску використовувати власну оперативну пам'ять для сортування даних:
ssacli ctrl slot=[slot_num] modify dwc=enable
⚠️ Попередження щодо DWC: Увімкнення Drive Write Cache на дисках без використання безперебійника (UPS) несе мінімальний ризик втрати або пошкодження даних саме того файлу, який записувався в точну мить знеструмлення. Масив при цьому не руйнується. Для Home Lab цей ризик цілком виправданий порівняно з постійними зависаннями системи.
Корисні команди
Блимання діодом на конкретному диску (для пошуку в корзині)
Увімкнути ідентифікацію диска:
ssacli ctrl slot=[slot_num] pd [pd_address] modify led=on
Вимкнути ідентифікацію:
ssacli ctrl slot=[slot_num] pd [pd_address] modify led=off
Перевірка статусу конкретного логічного диска
Перевірка швидкості страйпу, статусу Caching та Smart Path для конкретного логічного тому:
ssacli ctrl slot=[slot_num] logicaldrive 1 show