Отказоустойчивость CTDB Samba не является высокодоступной

TL; DR

Отказ узла в кластере ctdb + samba при взаимодействии с разделяемым ресурсом прерываний связь.

  • здесь и здесь заявляют, что ведется работа, чтобы сделать это возможным
  • здесь заявляет, что это уже возможно с Samba 3.0 (в настоящее время используется 4.7)

My Setup

3 узла под управлением ceph + cephfs
2 из этих узлов под управлением CTDB и Samba 1 клиент (не один из 3 серверов)

Это лабораторная установка, поэтому только один nic на сервер = узел, одна подсеть, а также все компоненты Ceph плюс Samba на тех же серверах. Я понимаю, что это не выход.

Проблема

Я хочу разместить кластерный файловый ресурс Samba поверх Ceph с помощью ctdb. Я следил за документацией CTDB ( https://wiki.samba.org/index.php/CTDB_and_Clustered_Samba#Configuring_Clusters_with_CTDB ) и частями этого: https://wiki.samba.org/index. php / Samba_CTDB_GPFS_Cluster_HowTo . Кластер работает, и общий ресурс доступен, доступен для чтения и записи на обоих узлах, мой файл smb.conf выглядит следующим образом:

[global]
netbios name = CEPHFS
workgroup = SIMPLE
clustering = yes
idmap config * : backend = autorid
idmap config * : range = 1000000-1999999
log file = /var/log/samba/smb.log

# Set files creation permissions
create mask = 664
force create mode = 664

# Set directory creation mask
directory mask = 2775
force directory mode = 2775

[public]
comment = public share
path = /mnt/mycephfs/testshare
public = yes
writeable = yes
only guest = yes
ea support = yes

CTDB управляет Samba и сообщает обоим узлам как ОК.

Но когда я читаю или записываю на один из узлов через общедоступный IP-адрес и позволяю ему выйти из строя (перезапуск ctdb), чтение или запись завершаются ошибкой. Вторая попытка записи завершается успешно (публичный IP-адрес успешно занят другим хостом).

Но CTDB должен иметь возможность сделать это согласно https://ctdb.samba.org/ -> IP Takeover? У меня есть tcpdump нового сервера (тот взяв на себя общедоступный IP-адрес), отправив tcp RST моему клиенту после того, как клиент отправил повторные передачи на сервер.

Есть идеи, в чем может быть проблема?

PS: Я более чем счастлив предоставить вам дополнительную информацию (файл конфигурации ctdb, конфигурация брандмауэра, pcap, что угодно;)), но этого достаточно .. ..

Изменить:

Также протестировано с GlusterFS в качестве серверной части хранилища в виртуализированной среде и на клиенте Windows 10. Требуется режим общего доступа ядра = Нет , с использованием gluster vfs.

3
задан 17 January 2018 в 18:46
1 ответ

Проблема в том, что версия Samba еще не поддерживает постоянные дескрипторы , следующий репозиторий поддерживает ее, но не готов к созданию стабильной версии в официальном репозитории Samba. См. YouTube для полного объяснения этой реализации.

Устойчивые дескрипторы поддерживаются Samba, поэтому сбои сети на узле будут устранены, но сбои, когда CTDB выполняет подмену IP, потребуют SMB клиент для переподключения. Приложение / программа Windows должна управлять ошибкой, перехватывать ее и повторять попытку, например xcopy в Windows имеет флаг / Z (см. параметры ), который восстанавливает соединение при захвате IP-адреса на новый узел .

0
ответ дан 3 December 2019 в 07:50

Теги

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