Я нещодавно читав про кешування записів, NCQ, помилки вбудованого програмного забезпечення, бар'єри тощо щодо накопичувачів SATA, і не знаю, який найкращий параметр, який би зробив мої дані безпечними у разі відключення живлення.
З того, що я розумію, NCQ дозволяє накопичувачеві переупорядкувати записи, щоб оптимізувати продуктивність, зберігаючи ядро в курсі, про які запити були написані фізично.
Кеш запису робить накопичувач набагато швидше обслуговувати запит, оскільки він не чекає, коли дані будуть записані на фізичний диск.
Я не впевнений, як кеш NCQ і Write змішується тут ...
Файлові системи, спеціально опубліковані в журналі, повинні бути впевнені, коли певний запит був записаний. Також процес користувальницького простору використовує fsync (), щоб примусити флеш певного файлу. Цей виклик fsync () не повинен повертатися, поки файлова система не переконається, що дані записуються на диск.
Є функція (FUA, Force Unit Access), яку я бачив лише на дисках SAS, яка змушує диск обходити кеш і записувати безпосередньо на диск. Для всього іншого є бар'єри для запису, це механізм, який надає ядро, яке може викликати помилку кешу на диску. Це змушує записувати весь кеш, а не лише критичні дані, тим самим уповільнюючи всю систему при зловживанні, наприклад, за допомогою fsync ().
Потім з'являються накопичувачі з помилками вбудованого програмного забезпечення або навмисно брешуть, коли дані фізично записані.
Сказавши це .. Є кілька способів налаштування накопичувачів / файлових систем: A) NCQ і кеш запису вимкнено B) Просто включений NCQ C) Просто ввімкнено кеш запису D) Увімкнено кеш запису і кеш запису
Я вважаю, що бар'єри включені .. До речі, як перевірити, чи вони фактично включені?
У разі втрати живлення, під час активного запису на диск, я здогадуюсь, що варіант B (NCQ, без кеша) безпечний як для журналу файлової системи, так і для даних. Може бути пені за виконання.
Варіант D (кеш-пам'ять NCQ +), якщо використовується бар'єр або FUA, буде безпечним для журналу файлової системи та додатків, які використовують fsync (). Це було б погано для даних, які чекали в кеш-пам'яті, і файлова система залежить від її виявлення (контрольна сума), і принаймні файлова система не буде (сподіваємось) у нестабільному стані. Виконання продуктивності, воно повинно бути кращим.
Однак моє запитання стоїть ... Я чогось не пропускаю? Чи варто враховувати якусь іншу змінну? Чи є інструмент, який міг би це підтвердити, і що мої диски поводяться як слід?