У меня есть два сервера, которые я планирую использовать для хранения. К каждому из них напрямую подключено несколько дисков SATA. Я хочу, чтобы хранилище было доступно, даже если один из серверов хранилища вышел из строя (желательно, чтобы клиенты даже не заметили переключения при отказе, хотя я не уверен, возможно ли это). Клиенты могут получить доступ к хранилищу через NFS и самбу, но это не обязательно; При необходимости я мог бы использовать что-нибудь еще.
Я нашел это руководство, Установка и настройка Openfiler с DRBD и Heartbeat, который, по-видимому, делает то, что я хочу. Он основан на трех компонентах: Openfiler, DRBD и Heartbeat, и все три из них необходимо настраивать отдельно. Мне интересно, есть ли более простые решения?
Является ли использование DRBD + Heartbeat лучшей практикой для такой ситуации, как моя? Мне также интересно узнать, есть ли альтернативы, которые не зависят от DRBD.
Другой вариант - GlusterFS: http://www.gluster.org/ Gluster изначально разрабатывался как распределенная файловая система.
Windows Server имеет эту функциональность с помощью функции, называемой DFS - Распределенная файловая система. По сути, вы создаете пространство имен внутри своего домена и получаете к нему доступ, как к традиционному общему ресурсу.
Например, \\domain.local\ShareName\
Вы помещаете свои серверы в пространство имен и настраиваете репликацию DFS между ними. Затем, если один хост выходит из строя, его данные по-прежнему присутствуют на других хостах, и переход осуществляется без проблем для конечных пользователей, поскольку они просто продолжают получать доступ к пространству имен, а не к отдельным серверам.
Вот другая идея. Вы можете попробовать FreeBSD / FreeNAS / Solaris (если осмелитесь) и использовать файловую систему ZFS. Возможно использование zpool на нескольких серверах. Теперь, если вы настроили хранилище как zpool, оно должно быть относительно безопасным и высокодоступным.
Вы можете проверить Google или эти сообщения, чтобы начать: