Уявіть собі: у вашому NAS є кілька жорстких дисків, що дзижчать у відсіках, а десь усередині є один або два порожні слоти M.2. Це був мій Synology DS1621xs+ протягом багатьох років, оскільки в технічних характеристиках зазначено, що ці слоти призначені для кешу, і я прочитав достатньо тем форуму, щоб вирішити, що мені не потрібно турбуватися про кешування SSD у моєму NAS.
Тож я нарешті перевірив його з тими самими дисками на трьох інсталяціях. Один із них не робив абсолютно нічого для реального навантаження, незважаючи на відсоток попадань, який здавався чудовим. Інший зробив мою базу даних утричі швидшою. У своїх останніх моделях Synology все ще не дозволяє використовувати диски сторонніх виробників для кешування SSD, що є ганьбою для деяких із найкращих пристроїв NAS, які можна купити.
Кеші лише для читання та кеші для читання та запису — це різні тварини
І лише один із них підтримує домашній NAS
Кеш лише для читання копіює блоки, які ви часто читаєте, на SSD, тому наступне читання обходить жорсткі диски. У документації Synology про кеш-пам’ять SSD сказано, що він лише прискорює випадкові передачі вводу-виводу, а не великі послідовні передачі, як-от потокове відео. Це також допомагає лише інформація, яку ви прочитали принаймні один раз, що рідше, ніж ви думаєте вдома.
Кеш читання та запису також фіксує записи та перевіряє їх, коли вони потрапляють на флеш-пам’ять, а потім скидає їх на жорсткі диски. Тут є справжній виграш, оскільки бази даних і контейнери безперервно записують і чекають кожного запису. Проблема полягає в тому, що йому потрібні два віддзеркалених ідентичних SSD, оскільки дані, що зберігаються в кеші, ще не потрапили на ваші жорсткі диски, і незаписаний промах кешу може забрати ці дані з собою.
Я спробував обидва на своїй власній Synology, і 64% результатів не дали результату
Мій DS1621xs+ працює з одним дзеркалом RAID 1 двох дисків Seagate Exos ємністю 20 ТБ у DSM 7.4.1, тому кожне маленьке читання на обертових пластинах очікуване. Я тричі проводив ті самі тести: у пулі жорстких дисків із парою модулів Intel Optane M10 на 16 ГБ як кеш-пам’ять лише для читання та з їх перебудованим як кеш-пам’ять для читання й запису. Optane має набагато нижчу затримку, ніж типовий диск NVMe, тому вважайте їх найкращими результатами кешу.
|
Тест |
Тільки HDD |
Читати кеш |
Кеш читання-запису |
|---|---|---|---|
|
fio 4K випадкове читання, QD32, другий прохід (IOPS) |
822 |
3,542 |
4250 |
|
fio 4K випадкове читання, QD1 (середній період, мс) |
5,97 |
0,23 |
0,18 |
|
fio 4K випадковий запис, QD32 (IOPS) * |
27,643 |
33,918 |
33 879 |
|
Холодний запуск контейнера Postgres |
33.1 |
35.1 |
7.2 |
|
pgbench, 8 клієнтів (TPS) |
109 |
110 |
366 |
|
Екстракт вихідного коду ядра Linux, 81 703 файл(и) |
17.9 |
19.0 |
19.1 |
|
Обробити холодний каталог цього файлу(ів) |
2.1 |
5.2 |
1.2 |
* Ні, два жорсткі диски не можуть виконувати 27 000 випадкових записів за секунду. Btrfs — це копіювання під час запису, тому він перетворює розрізнені записи на здебільшого послідовні, а DSM буферизує решту в оперативній пам’яті, що робить це трюком сторони файлової системи, а не розміром дисків.
Кеш лише для читання чудово виглядає в синтетичних тестах із затримкою читання, яка впала приблизно з 6 мс до чверті мілісекунди. Керівник складу також повідомив про 64% страйків після цього. Але кожне реальне робоче навантаження виконується так само або повільніше, тому що ініціалізація контейнера, база даних і вилучення файлів — це здебільшого записи та читання вперше, які кеш-пам’ять лише для читання ніколи не бачить.
Кеш читання та запису – це інша історія. Postgres перейшов від холодного запуску з 33 секунд до 7 секунд, а пропускна здатність бази даних зросла більш ніж утричі, зі 109 до 366 транзакцій на секунду. Великі послідовні роботи, такі як вилучення ядра, не вдалися, але все, що очікувалося в дрібному шрифті, вилетіло.
Іншим варіантом є розмір ваших програм
Чого Synology справді не хоче, щоб ви мали
Замість кешу ви можете використовувати диск NVMe: зробіть його власним томом і розмістіть на ньому диски Docker, віртуальні машини та бази даних, а носій залишатиметься на жорстких дисках. Ви втрачаєте автоматичне розділення, але також втрачаєте ризик запису, а непрацюючий SSD не забере з собою ваш основний пул. Ось як я запускаю свій сервер Proxmox із контейнерами у виділеному пулі NVMe.
Синологія ускладнює це. DSM 7.4.1 із задоволенням створив мій кеш із модулів Optane і просто відобразив їх помаранчевим із позначкою «Цей диск не підтримує використання кешу SSD». Пули зберігання жорсткіші. Мій DS1621xs+ починався лише з кеш-слотів і отримав пул зберігання даних M.2 близько DSM 7.2, але лише з SSD-накопичувачами, сертифікованими Synology, і він категорично відмовився від Optane: «Цей накопичувач не було перевірено чи сертифіковано для пулів зберігання даних M.2 SSD».
Сценарій спільноти Synology_HDD_db вирішує цю проблему, додаючи ваш диск до списку сумісності DSM, і він працював на 7.4.1 після перезавантаження та очікування кількох хвилин. Потім DSM змонтував свою систему та розділи підкачки на обох модулях, з’ївши приблизно 10 ГБ кожного, залишивши мені 3,2 ГБ пулу, який був занадто малим, щоб утримувати. З накопичувачем на 16 ГБ це кінець шляху, тому слід провести належне тестування обсягу з диском на 1 ТБ.
Інші платформи NAS набагато менше
Більшість із них очікують від вас цього
UGREEN дозволяє вибрати окремий кеш SSD або пул безпосередньо в майстрі зберігання UGOS Pro без підтримки сумісності. QNAP додає третю опцію з Qtier, яка переміщує дані між рівнями залежно від того, як часто до них звертаються, тому SSD зараховується до вашої ємності, а не стоїть перед ним.
TrueNAS має найбільше можливостей і найшвидші межі. L2ARC — це кеш для читання, з якого ви можете будь-коли отримати доступ, але спеціальний vdev зберігає метадані вашого пулу, а втрата виділеного vdev означає втрату всього пулу. Unraid в основному припускає, що ви це робите: дані додатків живуть у швидкому пулі, а Mover переміщує все інше в масив.
Перш ніж купувати цей диск, переконайтеся, що ви купили два
Якщо ви йдете за маршрутом читання-запису, використовуйте два диски, пауза. Один том диска залишиться активним, якщо ви скопіюєте його в пул жорсткого диска, але знімки на тому самому диску не вважатимуться резервними копіями. Вибирайте накопичувачі з DRAM і надійними показниками довговічності та пропустіть найдешевші моделі QLC DRAM для всього, що ви пишете.
Не переборщіть для швидкості. Біг lspci через SSH показує, що кожен слот M.2 на DS1621xs+ отримує власне з’єднання PCIe 3.0 x4, яке Synology не публікує, і більшість слотів пристрою також є Gen3. Накопичувач Gen5 не досягне цього швидше, тому запасіться терпінням.
Цей порожній слот є найдешевшою швидкістю оновлення для вашого NAS
Якщо у вас є запасний диск NVMe у вашому ящику, слот є безкоштовним оновленням, але те, що ви в нього вставите, важливіше, ніж сам диск. Кеш лише для читання дав мені вражаючі контрольні показники та нульовий приріст у реальному світі, тоді як дзеркальний кеш для читання та запису збільшив пропускну здатність моєї бази даних більш ніж утричі та скоротив час запуску контейнера приблизно на 80%. Надалі хочу з’ясувати, чи зможе об’єм спеціальної програми це подолати.