Дисково-хранильное

Для кого-то нижеизложенное станет очевидным капитанством. Но для меня вот оно стало неким открытием.
Допустим, нам для чего-то нужно овердохрена терабайт дискового пространства при существенно ограниченном бюджете. В моём случае возникла потребность где-то хранить логи-бэкапы. Но если поверх этого хранилища "до кучи" вдруг можно будет запустить виртуалочку-другую, то это будет только "в плюс".
Самый прямой путь: SAN и/или СХД. Всё бы хорошо, но есть два существенных недостатка.
- Дорого. Очень дорого.
- Vendor Lock. Абы какие диски туда уже не запихнуть.
Поэтому смотрим в сторону DAS (Direct Attached Storage), благо существуют всякие AIC-и которые по сравнению с "именитыми" брендами стоят какие-то копейки, а набить дисками их можно душевно и "под завязку". Но при этом возникает два вопроса.
- Надёжность. В самой полке ломаться особо нечему, из дисков можно собрать RAID, а вот что делать с тем устройством, в которое она будет втыкаться?
- Если мы из соображений той самой надежности решим подключить к полке два разных физических сервера, как организовать failover между ними? Т.е., грубо говоря, как их заставить не драться друг с другом за доступ на запись к дискам?
Как выяснилось, в мире Linux / Opensource рабочих вариантов не то чтобы прям сильно много. И один хуже другого.
- Бывают в природе такие штуки как LSI
Synchro. Дорого, медленно, костыльно. Непонятно что делать в
случае выхода из строя одного такого контроллера в
комплекте.
- Mdadm / MDRaid в кластерном режиме. Умеет только в RAID1 и чуть-чуть
в RAID10. Требует затаскивать в решение механизм распределенных
блокировок (DLM). Спасибо, мне уже страшно.
- ZFS. Причем, есть известные истории
успеха. Но эту ZFS ещё нужно уметь правильно готовить.
- Терминировать полку на "транзитный" сервер, с которого уже
раздавать по NFS / iSCSI / Samba / FTP / whatever. Но тогда
тот самый "транзитный" сервер становится единой точкой
отказа.
"Шо то херня, шо это херня". ©
Так что пока приходит в голову только такая идея. Втыкаем полку в два сервака традиционным SAS-ом, на обоих отключаем автостарт mdadm. Запускаем оный строго руками и бдительно следим, чтобы он не активировался на двух ящиках одновременно. Такой себе HA получается, но по крайней мере можно "переехать" на соседний хост удалённо без визита ногами в ЦОД, пусть и с каким-то небольшим простоем.
Нет счастья в жизни, нет его и в IT.
|
</> |