Для всіх вас ... ZFS над будь-яким рейдом - це загальна ПІДПРИЄМСТВО і робиться тільки людьми з MAD! ... як, наприклад, використання ZFS з пам'яттю, що не містить ECC.
Зі зразками ви зрозумієте краще:
- ZFS через Raid1, один диск трохи змінився, коли його не вимкнено ... огляньте все, що ви знаєте, ZFS побачить певні пошкодження чи не залежать від того, який диск читається (контролер Raid не бачив, що цей біт змінився, і думаю, що обидва диски в порядку ) ... якщо помилка в частині VDEV ... весь ZPOOL втрачає всі свої дані назавжди.
- ZFS через Raid0, один диск трохи змінився, коли його не вимкнули ... зізнайтеся все, що ви знаєте, (Рейдер-контролер не бачив, що біт змінився і думаю, що обидва диски в порядку) ... ZFS побачить цю шкоду, але якщо Провал у частині VDEV ... весь ZPOOL назавжди втрачає всі свої дані.
Там, де ZFS хороший - це виявлення бітів, які змінювалися, коли диск, де без живлення (RAID-контролери не можуть цього зробити), а також коли щось змінюється без того, щоб просити, і т.д.
Це та сама проблема, що і коли трохи в модулі оперативної пам'яті мимовільно змінюється, не вимагаючи ... якщо пам'ять є ECC, пам'ять виправляє її самостійно; якщо ні, ці дані були змінені, так що дані будуть відправлені на модифіковані диски; дізнайтеся, що зміни не в частині UDEV, якщо помилка є у частині VDEV ... весь ZPOOL втрачає всі свої дані назавжди.
Це слабкість щодо ZFS ... Неможливість VDEV означає, що всі дані втрачаються назавжди.
Hardware Raid та Software Raid не можуть виявити спонтанні зміни бітів, у них немає контрольних сум, найгірше на рівнях Raid1 (дзеркала), вони читають не всі частини та порівнюють їх, вони вважають, що всі частини завжди матимуть однакові дані, ВСЕГО (я кажу це голосно) Raid передбачає, що дані не змінилися жодною іншою річчю / способом ... але диски (як пам'ять) схильні до спонтанних змін бітів.
Ніколи не використовуйте ZFS на оперативній пам'яті, що не стосується ECC, і ніколи не використовуйте ZFS на рейдованих дисках, нехай ZFS бачить усі диски, не додайте шару, який може зруйнувати ваші VDEV та POOL.
Як імітувати такі помилки ... вимкнути ПК, вийняти один диск із цього Raid1 та змінити лише один біт ... відновити і побачити, як контролер Raid не може знати, що змінилося ... ZFS може тому, що всі зчитування перевірені проти контрольної суми, і якщо вона не відповідає, прочитайте форму іншої частини ... Raid ніколи не читайте повторно, тому що вийшов з ладу (за винятком апаратного неможливого читання) ... якщо Raid може прочитати, він вважає, що дані в порядку (але це не в таких випадках ) ... Raid намагайтеся читати лише з іншого диска, якщо там, де він читає, сказано: "ей, я не можу прочитати звідти, апаратне забезпечення не вдається" ... ZFS читає з іншого диска, якщо контрольна сума не відповідає так само, як ніби там, де він читає каже "ей, я не можу прочитати звідти, апаратне забезпечення вийшло з ладу".
Сподіваюсь, я дозвольте це зрозуміти ... ZFS за будь-який рівень рейду - це великий біль і загальний ризик для ваших даних! а також ZFS для пам'яті, що не стосується ECC.
Але те, що ніхто не каже (крім мене):
- Не використовуйте диски з внутрішнім кешем (не тільки ті SHDD, але й ті, які мають 8Mib до 32MiB кеш тощо) ... деякі з них використовують не-ECC пам'ять для такого кешу
- Не використовуйте SATA NCQ (спосіб запису в чергу), оскільки це може зруйнувати ZFS, якщо живлення втрачається
То які диски використовувати?
- Будь-який диск із внутрішнім акумулятором, що забезпечує всю чергу, буде записаний на диск у випадках відключення живлення та використовує всередині нього пам’ять ECC (вибачте, є дуже маленькі з усім цим і коштують дорого).
Але, ей, більшість людей не знає всього цього і ніколи не виникала проблем ... Я їм кажу: вау, як вам пощастило, купіть кілька лотерейних квитків, перш ніж везе щастя.
Ризики існують ... такі збої можуть виникати ... тому краща відповідь:
- Намагайтеся не розміщувати жодного шару між ZFS та там, де дані дійсно зберігаються (RAM, Raid, NCQ, внутрішній кеш-диск тощо) ... стільки, скільки ви можете собі дозволити.
Що я особисто роблю?
- Покладіть кілька шарів більше ... я використовую кожен 2,5-дюймовий диск SATA III 7200 об / хв на корпусі USB 3.1 Gen2 типу C, я підключаю кілька корпусів до USB 3.1 Gen 2 типу A концентратор, який я підключаю до ПК; інший до іншого концентратора що я підключаюся до іншого кореневого порту на ПК тощо.
- Для системи я використовую внутрішні роз'єми sata на рівні ZFS (Raid0), тому що я використовую інтуїтивну систему (як LiveCD) Linux, кожне завантаження однакового вмісту на внутрішніх дисках ... і у мене є зображення клону системи, яку я можу відновити (менше 1GiB системи) ... також я використовую трюк, щоб мати систему, що міститься у файлі, і використовувати накопичувач RAM, де я клоную її під час завантаження, тому після завантаження всієї системи працює в оперативній пам'яті ... ставимо такий файл на DVD я також можу завантажуватись так само, тому в разі виходу з ладу внутрішніх дисків, я просто завантажуюся з DVD та системою знову в мережі ... подібний трюк до SystemRescueCD, але трохи складніший, бо ISO файл може бути на внутрішній ZFS або просто бути справжнім DVD, і я не хочу двох різних версій.
Сподіваюся, що я міг би дати трохи світла на ZFS проти Raid, це справді біль, коли справи йдуть не так!