У меня есть контроллер-сервер и два 24 массива файловых серверов SAS. Каждый массив файловых серверов настроен как пул ZFS с 4 виртуальными устройствами RAIDZ2 с 6 дисками в каждом.
В конечном итоге я хочу иметь возможность использовать сервер контроллера в качестве единой точки монтирования для двух файловых серверов. Основная идея заключается в том, что мои конечные пользователи должны получить доступ только к одному серверу контроллера и одной точке монтирования, чтобы получить доступ / выполнить резервное копирование своих данных на объединенной емкости хранения двух серверов. Я думал использовать для этого glusterfs, но информация, которую мне удалось найти до сих пор, похоже, предназначена для создания резервных пулов хранения. В этом приложении gluster используется в качестве распределенного зеркала RAID1, что не совсем соответствует моим потребностям, так как создает еще один уровень ненужной избыточности.
Как вы посоветуете создать распределенную файловую систему без избыточности из двух пулов ZFS, размещенных на разных компьютерах? Есть ли способ добиться этого с помощью gluster, или есть другой NFS, который лучше подходит для этого? Я тоже рассматривал самбу, но не уверен, что она будет достаточно безопасной. Мне искренне понравилась перспектива публичного размещения на контроллере только ssh со строгой аутентификацией 2FA.
Вам нужно будет сделать выбор, хотите ли вы распределенный или чередующийся том.
Распределенные тома просты и будут хэшировать любые файлы, записанные на каждый узел, максимально сбалансированным образом. Он ничего не делает с самими файлами, и вы увидите неповрежденные файлы на своем «кирпичике» ZFS. Чередующиеся тома будут разрезать ваши файлы и распределять их между узлами в виде блоков. Это желательная конфигурация, если ваш контент - это почти исключительно большие файлы (например, видео, образы дисков и резервные копии).
Пока вы почти на ходу, поскольку команда для создания такого распределенного тома так же проста, как вы сказали:
gluster volume create test-volume server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
А полосатый объем создается так:
gluster volume create test-volume stripe 4 server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
ОДНАКО четыре полосы могут вызвать большие накладные расходы при захвате файла. Это можно было бы сделать, только если бы они работали с действительно большими файлами. В качестве хорошего компромисса, который по-прежнему будет работать для больших образов дисков и т.п., я бы предложил распределенный чередующийся том:
gluster volume create test-volume stripe 2 server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
Этот том будет распределяться по двум узлам и распределять чередующиеся наборы по другим двум узлам.