Я столкнулся с интересной проблемой при настройке кластера файловой системы высокой доступности на EC2. Идея установки проста: 2 узла GlusterFS находятся в двух отдельных зонах доступности, синхронизируя данные между собой. Я могу без проблем смонтировать любой из этих двух серверов на любых других экземплярах EC2.
Однако в интересах распределения вещей, а также миграции с плохих узлов, я хочу оставить это позади Load Balancer. Проблема казалась достаточно простой, я открыл порты на балансировщике нагрузки, а затем установил хост на балансировщик нагрузки вместо отдельного узла glusterFS, однако он настаивает на том, что не может установить соединение. Я подумал, что это может быть проблема с брандмауэром, и, чтобы исключить это, я открыл порты 1024-65535. Ужасная идея, но мне нужно было это исключить.
Вот что написано в журналах:
[2013-04-24 21:51:03.581564] I [glusterfsd.c:1666:main] 0-/usr/sbin/glusterfs: Started running /usr/sbin/glusterfs version 3.3.1
[2013-04-24 21:51:03.608884] W [socket.c:1512:__socket_proto_state_machine] 0-glusterfs: reading from socket failed. Error (Transport endpoint is not connected), peer (1.2.3.4:24007)
Странно то, что я могу подключиться к этому IP через telnet на том же порту.
Кто-нибудь делал это раньше или есть какие-либо идеи относительно того, как я могу это обойти?
Спасибо!
Судя по звукам, вы пытаетесь сбалансировать нагрузку при первоначальном опросе, который клиенты проводят для обнаружения инфраструктуры Gluster.
mount -t glusterfs loadbalancer:Your_VOL /usr/local/specialhome
Это только для первоначального подключения. После того, как клиент успешно выберет топологию для интересующего его тома, он подключится напрямую к кирпичикам, которые ему нужны. В этот момент LB не в цепи.
Гластеру это не нравится, как вы учитесь.
В соответствии с принятой практикой Gluster есть несколько способов решить эту проблему:
Round-Robin - это не балансировка нагрузки эту фразу вы здесь часто слышите, но в данном случае она не так уж и плоха. Вы используете его только для первоначального подключения, и все.
Вариант крепления:
mount -t glusterfs -o backupvolfile-server=rrdns-02 rrdns-01:Your_VOL /usr/local/specialhome
В backupvolfile-server
опция указывает монтированию использовать другое имя в случае, если имя, указанное в параметре монтирования, не отвечает напрямую. Использование этих двух методов в сочетании позволит вам справиться с временно неработающими узлами.