среда, 13 марта 2013 г.

RAID-5 write hole и ZFS

У Raid-5 есть достаточно серьёзная проблема, которая называется write hole - при записи данных и отключении питания может получиться, что на дисках данные отличаются.

"RAID-5 (and other data/parity schemes such as RAID-4, RAID-6, even-odd, and Row Diagonal Parity) never quite delivered on the RAID promise -- and can't -- due to a fatal flaw known as the RAID-5 write hole. Whenever you update the data in a RAID stripe you must also update the parity, so that all disks XOR to zero -- it's that equation that allows you to reconstruct data when a disk fails. The problem is that there's no way to update two or more disks atomically, so RAID stripes can become damaged during a crash or power outage."
https://blogs.oracle.com/bonwick/entry/raid_z

У zfs этой проблемы нет, поскольку там совсем другие принципы - Copy-on-Write и данные не перезаписываются, плюс встроенное версионирование. Да, иногда и у ZFS бывают проблемы, но они гораздо реже, а за счёт того, что все данные имеют чексумму, система автоматически может обнаружить и зачастую исправить сбой в данных. Это особенно актуально на бытовом железе.

И ещё немного про raid-z
https://blogs.oracle.com/ahl/entry/what_is_raid_z
http://www.stableit.ru/2010/08/raid-z.html

Основные недостатки ZFS -- требуется больше памяти и дикое падение производительности при заполнении пула более чем на 50-85%, смотря какой объём пула.

4 комментария:

  1. Ну и всё таки оно может покрашится и тогда это почти 100% потеря всего пула, так что про резервные копии лучше не забывать, благо оно там делается элементарно :)

    Если не сложно отключите пожалуйста качпу, толк от неё стремится к 0, а вот геморою добавляет

    ОтветитьУдалить
    Ответы
    1. ну бэкапы необходимы всегда, это да.
      Раньше было ручное восстановление пула с откатом на более младшую версию состояния, и у меня вроде была копия той заметки.
      В последних версиях zfs есть штатно ключик для этого.

      Вообще, капча у меня только для неавторизованных стояла, но посмотрю настройки.

      Удалить
    2. Не, ну откат пула актуален пожалуй только при его обновлении, да и то оно там вроде не всегда работает, ибо есть необратимые апдейты.
      Я скорее о том, что иногда пул всё же падает, по тем или иным причинам, и вот тогда кроме бекапа практически ничто не спасёт. Хотя есть умельцы которые при некоторых видах краха, всё же вынимают что то из небытия :)

      Удалить
    3. для начала, http://dragonflybsd.blogspot.ru/2011/06/zfs.html
      Есть именно откат транзакций
      "Поддержка команды "zpool import -F", позволяющей перемотать поврежденный пул к состоянию, соответствующему более ранней группе транзакций;"
      http://www.opennet.ru/opennews/art.shtml?num=27828

      Удалить