FreeBSD + HAST + ZFS или Linux + Ceph + <хз_что>? Нужны советы людей с практическим опытом?

Добрый день!


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


Итак, есть огромное желание сделать отказоустойчивый кластер-хранилище (HA storage), но денег на это много тратить не хочется (их особо нет, да и смысла особого тоже нет на текущих задачах). Для начала хочется поставить рядом две consumer-level железки (по сути, недорогие серверы\системные блоки) с некоторым количеством винтов внутри, объединенных в софтовый RAID, и синхронизировать информацию на накопителях (master-slave, master-master — роли не играет). Софт, конечно же, открытый.


Разведка гуглом, а так же ранее встреченные упоминания принесли сведения о двух вариантах, которые используются сегодня open source-сообществом. Нужно сразу отметить, что обе системы часть людей называет еще сырыми и не готовыми к production, другая же часть описывает реальные проекты, работающие на каждой из связок.


1. FreeBSD + HAST + ZFS. Очень интересная мне связка, потому что: а) дает все преимущества ZFS, ибо в одном флаконе дает как RAID, так и файловую систему, что очень гибко, надежно и удобно — в том числе и за счет того, что это copy-on-write файловая система, имеет функционал снапшотов на уровне файловой системы, что существенно упрощает резервное копирование, имеет динамический размер сектора; б) лично мне FreeBSD кажется удобнее в администрировании (но это личные предпочтения, не советую обсуждать этот пункт — это как спорить о том, вкуснее апельсиновый или грейпфрутовый сок; в парке у меня присутствуют и Linux, и FreeBSD-системы).


1. Linux + Ceph. Ceph — распределенное хранилище объектов, задачу решает. Но вылазит другая проблема — в этом случае не всё так гладко с уровнем RAID-массива и файловой системы. btrfs еще сырая, как недопеченный бисквит, xfs может убить данные при неожиданном выключении питания и т.д. Ну, и они на уровне RAID не работают.


В принципе, в первую очередь меня интересует сравнение HAST vs Ceph. Кто сталкивался, поделитесь мнением? Особенно если есть практический опыт и с тем, и с другим.


Спасибо!
  • Вопрос задан
  • 8786 просмотров
Решения вопроса 1
heathen
@heathen Автор вопроса
В результате эволюционно пришли к OpenStack + CEPH. ceph перед всем* остальным имеет ряд преимуществ:
- поддержка кластеризации за любом уровне - от диска -> до ноды -> до стойки -> до зала -> до датацентра -> до региона. Т.е. правилами можно настроить репликацию данных так, чтобы копии располагались как минимум один раз на любом необходимом уровне абстракции.
- устройства хранения в ceph можно добавлять подисково. Т.е. вам не нужно иметь RAID на каждом физическом хранилище, можно в любом момент добавить диск или его удалить, при этом данные автоматически ререплицируются для поддержания выбранной стратегии хранения. Само собой, RAID использовать можно, но это лучше делать для увеличения скорости, нежели для увеличения надежности. Скажем, если у вас SATA-диски, их можно запихнуть в RAID0 (stripe), и это, конечно, даст прирост производительности.
- в любой момент можно одной командой изменить минимальное количество распределенных копий данных для каждого отдельного пула (так называется аналог шары в ceph; т.е. всё хранилище данных разделено на пулы, доступ к которым может контролироваться отдельно), перестроение начинается немедленно; конечно, рекомендуется выставлять нечетное количество копий.
- у систем виртуализации присутствует программный интерфейс для доступа к RBD ceph, т.е. файловая система не должна поддерживать репликацию. в частности, мы сейчас используем openstack с kvm, у которого есть прямая поддержка rbd ceph.
- программные ноды и ноды хранения могут быть объединены; при этом, конечно, нужно иметь ввиду, что каждый object storage daemon (osd) требует 1GB памяти, и один физический диск - это один osd.

При этом, конечно, есть и минусы, и главный из них - это производительность. Хочется верить, что её оптимизируют со временем. Но надежность при этом гораздо выше, чем любые костыли из традиционных односерверных файловых систем и попыток организовать репликацию данные между ними.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
merlin-vrn
@merlin-vrn
Делать HA на сырых недотестированных софтовых решениях — странная идея.

Почему вы не рассматриваете магистральные энтерпрайзные провереные варианты, вроде DRBD+cLVM+GFS?
Ответ написан
@rPman
Если речь о сделать дешево, то попробуйте рассмотреть схему, используемую в частности гуглом, резервирование железом, а не жесткими дисками.

Ставите две/три обычные железки (рядом не рекомендуется, кстати), в т.ч.можно тупо десктоп, а уже между ними организуете сетевое зеркалирование RAID-1 (в простом варианте самим клиентом, подключая диски NBD/AOE/iSCSI, в посложнее — DRBD+LVM+чтоугодно)
Ответ написан
@Gumlokt
web developer
Интересно, какое решение, в конце концов, вы приняли? Я бы выбрал FreeBSD + HAST + ZFS, т. к. с фрей мне работать привычней (так сказать, личное предпочтение), но больше всего из-за того, что прильщают вкусности ZFS (которые вы отметили).
Ответ написан
@constyk
Здравствуйте!
А не возникали ли у Вас проблемы при инсталляции Ceph, в частности мониторы?
Столкнулся с неприятной проблемой, не могу победить.
Ответ написан
@vjjvr
Хабр уже 3 года использует ZFS - и доволен.
FreeBSD и ZFS

Но HAST - это иное.

Насчет кластерных файловых систем есть хорошие тексты
https://habrahabr.ru/company/oleg-bunin/blog/313330/
https://habrahabr.ru/company/oleg-bunin/blog/313364/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы