У меня есть IBM x346 с двумя 3,2 ГГц Xeon и 2x36 ГБ 15k SCSI-дисками. Я использую полностью основанную на ZFS установку FreeBSD 8.1.
Я могу настроить BIOS для зеркалирования двух дисков, а затем поместить ZFS на этот «единственный» диск, или я могу зеркально отобразить диски с помощью ZFS и установить на него.
Если я выберу полностью ZFS, я полагаю, у меня будет немного больше свободы в том, как я использую устройства (например, я мог бы настроить быструю нерезервированную полосатую область в дополнение к установке моей зеркальной системы). Получу ли я что-нибудь в отношении исправления ошибок? Восстановить производительность / легкость / время?
Я знаю, что обе конфигурации, вероятно, одинаковы с точностью до ресницы комара, но мне хотелось бы получить второе мнение.
Не знаю о скорости, но я считаю, что запуск ZFS на RAID будет означать следующее:
Вы теряете преимущества атомарной записи, потому что теперь за контроллером RAID остается последнее слово при записи на диск. Это означает, что вы полагаетесь на NVRAM RAID-контроллеров.
ZFS также может быть обманутым, если данные были записаны неправильно. ZFS придется поверить на слово RAID-контроллерам.
Вы также потеряете восстановление файлов, потому что, с точки зрения ZFS, у вас есть единственный диск, и если целостность данных плохая, ZFS не сможет восстановить его, потому что нет второй копии. (при условии, что вы не установили копии = 2)
Если диски RAID не синхронизируются, для синхронизации диска RAID может потребоваться некоторое время, в зависимости от возможности ведения журнала. ZFS будет повторно обновлять данные, которые он считает плохими, и, по крайней мере, некоторые ОС могут периодически запускать resilver для обеспечения целостности. Опять же, поскольку RAID будет отображать только один диск для ZFS, ZFS не может помочь с ремонтом / восстановлением.
Вы сможете расширить RAID (если у него есть такая возможность) и, возможно, восстановить данные ZFS на других дисках. (Для меня не большой плюс, учитывая все минусы.)
Конечно, все функции моментальных снимков ZFS не будут затронуты (при условии, что данные не будут повреждены незаметно).
Аппаратный RAID практически сведет на нет все преимущества ZFS. Лично я бы не рекомендовал использовать что-либо под ZFS, я бы запускал ZFS на голом железе.
Однако, если есть преимущество, которое я не рассматривал, я готов его услышать.
Зеркало ZFS будет намного лучше.
Зеркало - очень простая конфигурация и требует почти нулевых ресурсов ЦП, но, кроме того, вы получаете гораздо лучший контроль пула по сравнению с рейдом hw или псевдо hw.
По моей собственной практике, в современных системах даже наличие raidz лучше, чем hw raid5, производительность всего на 5-10% ниже, но преимущества ZFS полностью покрывают это (и, конечно, вы экономите деньги, потому что вам не нужна карта с поддержкой hw raid5).
Один момент, который я хотел бы рассмотреть:
Что делать, если RAID-контроллер умирает? Совместим ли RAID с другим оборудованием, чтобы можно было легко заменить контроллер?
С ZFS это не проблема. Просто подключите новый контроллер и все.
С тех пор я использую gmirror для UFS и ZFS-RAID для ZFS-систем. Однажды у меня был RAID-контроллер (дешевый, конечно), которому пришлось повторно синхронизировать диски перед загрузкой системы (этап BIOS), который занимал бесконечное количество (диск 1,5 ТБ). В течение этого времени вы не можете пользоваться системой.
Используя ZFS / gmirror, вы перезагружаете систему, и она синхронизируется, пока вы с ней работаете (даже не рекомендуется и замедляет работу системы).
Но я хотел бы подтвердить точку зрения Скотта (даже я бы предпочел, чтобы вы отметили, что есть за, а что против;))
Одним из преимуществ использования аппаратного RAID была бы потенциально более высокая производительность, поскольку вам нужно только один раз записать в контроллер рейда, а не дважды. Вероятно, совсем немного, и только если вы уже исчерпали себя. Я бы сам использовал зеркалирование ZFS по всем уже упомянутым причинам.
re: у зеркального рейда есть проблемы с аппаратной совместимостью, я столкнулся с этим. Проблема заключалась в том, что рейд-контроллеры помещали свои собственные идентификационные данные где-нибудь на диске. Рейдовый контроллер другой марки не знал, как это интерпретировать.