Samba/Cluster/FreeIPA
Кластеризованный вариант сервера Samba в домене FreeIPA
Описываемая конфигурация
Предлагаемая конфигурация состоит из следующих компонентов
- Сервер(ы) FreeIPA, предоставляющие услугу аутентификации по протоколу kerberos, а также услуги dns-сервера
- dns1.example.conf
- dns2.example.conf
- Серверы Samba, располагающие разделяемым общим дисковым пространством и предоставляющие услуги отказоустойчивого файлсервера
- smb1.example.conf
- smb2.example.conf
Сеть
Сеть должна быть настроена так, чтобы
- оба сервера samba должны быть в одной подсети
- "плавающий" ip адрес сервиса cifs должен быть доступен по роутингу из клиентских машин и назначаем на любую из серверных машин
- для защиты от выхода из строя ethernet можно использовать по две карты ethernet на каждом узле smb и использовать bonding.
Настройка кластера
Способ выделения разделяемого дискового пространства может быть различным - scsi, iscsi, vmware разделямый диск и т.п. и не является описанным в данном документе. Предполагается, что при выходе любого из узлов из строя оставшийся сможет читать и писать на разделяемый диск.
- Устройства изолирования "неисправных" узлов кластера указаны в следующем списке (опакечено в сизифе). Можно использовать любой из них, кроме meatware - его можно использовать только в отладочных целях.
fence-agents-alom - Fence agent for SUN ALOM fence-agents-amt - Fence agent for Intel AMT devices fence-agents-apc - Fence agent for APC devices fence-agents-apc-snmp - Fence agent for APC devices (SNMP) fence-agents-bladecenter - Fence agent for IBM BladeCenter fence-agents-brocade - Fence agent for Brocade switches fence-agents-cisco-mds - Fence agent for Cisco MDS 9000 series fence-agents-cisco-ucs - Fence agent for Cisco UCS series fence-agents-common - Common utilities for fence agents fence-agents-compute - Fence agent for Nova compute nodes fence-agents-docker - Fence agent for Docker fence-agents-drac - Fence agent for Dell DRAC fence-agents-drac5 - Fence agent for Dell DRAC 5 fence-agents-eaton-snmp - Fence agent for Eaton network power switches fence-agents-emerson - Fence agent for Emerson devices (SNMP) fence-agents-eps - Fence agent for ePowerSwitch 8M+ power switches fence-agents-hds-cb - Fence agent for Hitachi Compute Blade systems fence-agents-hpblade - Fence agent for HP BladeSystem devices fence-agents-ibmblade - Fence agent for IBM BladeCenter fence-agents-ifmib - Fence agent for devices with IF-MIB interfaces fence-agents-ilo-moonshot - Fence agent for HP iLO Moonshot devices fence-agents-ilo-mp - Fence agent for HP iLO MP devices fence-agents-ilo-ssh - Fence agent for HP iLO devices over SSH fence-agents-ilo2 - Fence agent for HP iLO2 devices fence-agents-intelmodular - Fence agent for devices with Intel Modular interfaces fence-agents-ipdu - Fence agent for IBM iPDU network power switches fence-agents-ipmilan - Fence agent for devices with IPMI interface fence-agents-ldom - Fence agent for Sun LDom virtual machines fence-agents-lpar - Fence agent for IBM LPAR fence-agents-mpath - Fence agent for reservations over Device Mapper Multipath fence-agents-netio - Fence agent for Koukaam NETIO devices fence-agents-ovh - Fence agent for OVH provider fence-agents-pve - Fence agent for PVE fence-agents-raritan - Fence agent for Raritan Dominion PX fence-agents-rcd-serial - Fence agent for RCD serial fence-agents-rhevm - Fence agent for RHEV-M fence-agents-rsa - Fence agent for IBM RSA II fence-agents-rsb - Fence agent for Fujitsu RSB fence-agents-sanbox2 - Fence agent for QLogic SANBox2 FC switches fence-agents-scsi - Fence agent for SCSI persisent reservations fence-agents-vbox - Fence agent for VirtualBox fence-agents-virsh - Fence agent for virtual machines based on libvirt fence-agents-vmware - Fence agent for VMWare with VI Perl Toolkit or vmrun fence-agents-vmware-soap - Fence agent for VMWare with SOAP API v4.1+ fence-agents-wti - Fence agent for WTI Network power switches fence-agents-xenapi - Fence agent for Citrix XenServer ov
в случае использования кластера из двух узлов при потере связи между узлами будет происходить "гонка" устройств изолирования - каждый из узлов будет пытаться выключить другой. Выживает первый, кому это удалось. В случае неверного срабатывания устройства изолирования возможно выключение кластера полностью. Для предотвращения подобной гонки желательно делать кластер более чем из двух узлов.
- Клиентская машина, потребляющая разделяемый ресурс. Она должна быть заведена в домен FreeIPA.
Настройка FreeIPA
- Машины smb* и клиенты должны быть заведены в домен FreeIPA при помощи команды ipa-client-install и должно быть проверено при помощи kinit admin подключение к kerberos.
- дополнительный адрес должен иметь некоторое доменное имя, в данном случае fs.example.conf
- должна быть заведена cерверная запись через gui (во вкладке Service) или cli для cifs/fs.example.conf@EXAMPLE.CONF
- на одной из машин smb например smb1 после этого надо выполнить команды
kinit admin и ipa-getkeytab, указав cifs/fs.example.conf@EXAMPLE.CONF в качестве сервиса.
Полученный keytab надо положить в /etc/samba/cifs.keytab, раздав его по кластеру командой
сrm cluster copy /etc/samba/cifs.keytab
и отредактровать /etc/samba/smb.conf добавив туда строчки
dedicated keytab file=/etc/samba/cifs.keytab kerberos method=dedicated keytab
cкопировать на кластер:
crm cluster copy /etc/samba/smb.conf
настройка Samba
Клиент
Ситуация выхода из строя машины кластера
- fencing
- Восстановление CTDB