4.3. Samba の設定
以下の手順では、Samba 環境を初期化し、クラスターノードで Samba を設定します。
- クラスターの両方のノードで、以下の手順を実行します。
samba、ctdb、cifs-utilsをインストールします。# yum install samba ctdb cifs-utils- firewalld デーモンを実行している場合は、以下のコマンドを実行して、
ctdbとsambaサービスに必要なポートを有効にします。# firewall-cmd --add-service=ctdb --permanent # firewall-cmd --add-service=samba --permanent # firewall-cmd --reload - 以下のコマンドを実行して、ctdb や samba サービスが動作しておらず、ブート時に起動しないようにします。これら 2 つのサービスがお使いのシステムに存在して動作しているわけではないことに注意してください。
# systemctl disable ctdb # systemctl disable smb # systemctl disable nmb # systemctl disable winbind # systemctl stop ctdb # systemctl stop smb # systemctl stop nmb # systemctl stop winbind /etc/samba/smb.confファイルでは、Samba サーバーを設定して[public]共有定義を設定します。以下に例を示します。# cat << END > /etc/samba/smb.conf [global] netbios name = linuxserver workgroup = WORKGROUP server string = Public File Server security = user map to guest = bad user guest account = smbguest clustering = yes ctdbd socket = /tmp/ctdb.socket [public] path = /mnt/gfs2share/public guest ok = yes read only = no ENDこの例で見られるように Samba をスタンドアローンサーバーとして設定する方法や、testparm ユーティリティーでsmb.confファイルを検証する方法は、『システム管理者のガイド』の ファイルとプリントサーバーを参照してください。- クラスターノードの IP アドレスを
/etc/ctdb/nodesファイルに追加します。# cat << END > /etc/ctdb/nodes 192.168.1.151 192.168.1.152 END - クラスターのノード間における負荷分散は、このクラスターによってエクスポートされた Samba 共有へのアクセスに使用できる 2 つ以上の IP アドレスを
/etc/ctdb/public_addressesファイルに追加できます。この IP は、Samba サーバーの名前の DNS で設定する必要があるアドレスで、SMB クライアントが接続するアドレスです。複数の IP アドレスで 1 つのタイプ A の DNS レコードとして Samba サーバーの名前を設定し、ラウンドロビンがクラスターのノードにわたりクライアントを分散できるようにします。この例では、DNS エントリーlinuxserver.example.comが、/etc/ctdb/public_addressesファイル下にリストされている両方のアドレスで定義されています。これにより、DNS によって、ラウンドロビン方式でクラスターノードにわたり Samba クライアントが分散されます。この操作を行う際、DNS エントリーがニーズに一致する必要があります。このクラスターによってエクスポートされた Samba 共有へのアクセスに使用できる IP アドレスを/etc/ctdb/public_addressesファイルに追加します。# cat << END > /etc/ctdb/public_addresses 192.168.1.201/24 eth0 192.168.1.202/24 eth0 END - Samba グループを作成し、パブリックテスト共有ディレクトリーのローカルユーザーを追加して、以前に作成したグループをプライマリーグループとして設定します。
# groupadd smbguest # adduser smbguest -g smbguest - CTDB 関連のディレクトリーで SELinux コンテキストが 正しいことを確認してください。
# mkdir /var/ctdb/ # chcon -Rv -u system_u -r object_r -t ctdbd_var_lib_t /var/ctdb/ changing security context of ‘/var/ctdb/’ # chcon -Rv -u system_u -r object_r -t ctdbd_var_lib_t /var/lib/ctdb/ changing security context of ‘/var/lib/ctdb/’
- クラスターの 1 つのノードで、以下の手順に従います。
- CTDB ロックファイルとパブリック共有のディレクトリーを設定します。
[root@z1 ~]# mkdir -p /mnt/gfs2share/ctdb/ [root@z1 ~]# mkdir -p /mnt/gfs2share/public/ - GFS2 共有上の SELinux コンテキストを更新します。
[root@z1 ~]# chown smbguest:smbguest /mnt/gfs2share/public/ [root@z1 ~]# chmod 755 /mnt/gfs2share/public/ [root@z1 ~]# chcon -Rv -t ctdbd_var_run_t /mnt/gfs2share/ctdb/ changing security context of ‘/mnt/gfs2share/ctdb/’ [root@z1 ~]# chcon -Rv -u system_u -r object_r -t samba_share_t /mnt/gfs2share/public/ changing security context of ‘/mnt/gfs2share/public’