8.2. 高可用性クラスターでの Samba の設定
Pacemaker クラスターで Samba サービスを設定するには、クラスター内のすべてのノードでサービスを設定します。
前提条件
- 高可用性クラスターでの Samba サービス用の GFS2 ファイルシステムの設定 で説明したように、GFS2 ファイルシステムで設定された 2 ノードの Red Hat High Availability クラスター。
-
Samba 共有に使用するために GFS2 ファイルシステム上に作成されたパブリックディレクトリー。この例では、ディレクトリーは
/srv/samba/share1です。 - このクラスターによってエクスポートされた Samba 共有へのアクセスに使用できるパブリック仮想 IP アドレス。
手順
クラスター内の両方のノードで、Samba サービスを設定し、共有定義をセットアップします。
Samba および CTDB パッケージをインストールします。
dnf -y install samba ctdb cifs-utils samba-winbind
# dnf -y install samba ctdb cifs-utils samba-winbindCopy to Clipboard Copied! Toggle word wrap Toggle overflow ctdb、smb、nmb、およびwinbindサービスが実行されておらず、起動時に開始されていないことを確認してください。systemctl disable --now ctdb smb nmb winbind
# systemctl disable --now ctdb smb nmb winbindCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/samba/smb.confファイルで、Samba サービスを設定し、1 つの共有を持つスタンドアロンサーバーの次の例のように、共有定義をセットアップします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/samba/smb.confファイルを検証します。testparm
# testparmCopy to Clipboard Copied! Toggle word wrap Toggle overflow
クラスター内の両方のノードで、CTDB を設定します。
/etc/ctdb/nodesファイルを作成し、このノードファイルの例のように、クラスターノードの IP アドレスを追加します。192.0.2.11 192.0.2.12
192.0.2.11 192.0.2.12Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/ctdb/public_addressesファイルを作成し、クラスターのパブリックインターフェイスの IP アドレスとネットワークデバイス名をファイルに追加します。public_addressesファイルで IP アドレスを割り当てる場合は、これらのアドレスが使用されていないこと、および目的のクライアントからルーティング可能であることを確認してください。/etc/ctdb/public_addressesファイルの各エントリーの 2 番目のフィールドは、対応するパブリックアドレスのクラスターマシンで使用するインターフェイスです。この例のpublic_addressesファイルでは、インターフェイスenp1s0がすべてのパブリックアドレスに使用されます。192.0.2.201/24 enp1s0 192.0.2.202/24 enp1s0
192.0.2.201/24 enp1s0 192.0.2.202/24 enp1s0Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターのパブリックインターフェイスは、クライアントがネットワークから Samba にアクセスするために使用するインターフェイスです。負荷分散のために、クラスターの各パブリック IP アドレスの A レコードを DNS ゾーンに追加します。これらの各レコードは、同じホスト名に解決される必要があります。クライアントはホスト名を使用して Samba にアクセスし、DNS はクライアントをクラスターのさまざまなノードに分散します。
firewalldサービスを実行している場合は、ctdbおよびsambaサービスに必要なポートを有効にします。firewall-cmd --add-service=ctdb --add-service=samba --permanent firewall-cmd --reload
# firewall-cmd --add-service=ctdb --add-service=samba --permanent # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
クラスター内の 1 つのノードで、SELinux コンテキストを更新します。
GFS2 共有上の SELinux コンテキストを更新します。
semanage fcontext -at ctdbd_var_run_t -s system_u "/mnt/ctdb(/.)?" restorecon -Rv /mnt/ctdb
[root@z1 ~]# semanage fcontext -at ctdbd_var_run_t -s system_u "/mnt/ctdb(/.)?" [root@z1 ~]# restorecon -Rv /mnt/ctdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow Samba で共有されているディレクトリーの SELinux コンテキストを更新します。
semanage fcontext -at samba_share_t -s system_u "/srv/samba/share1(/.)?" restorecon -Rv /srv/samba/share1
[root@z1 ~]# semanage fcontext -at samba_share_t -s system_u "/srv/samba/share1(/.)?" [root@z1 ~]# restorecon -Rv /srv/samba/share1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- この例のように、Samba をスタンドアロンサーバーとして設定する方法の詳細については、さまざまな種類のサーバーのデプロイメント の章 Samba をサーバーとして使用する を参照してください。
- BIND プライマリーサーバーでの正引きゾーンの設定。