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
- 输入以下命令以确保这些守护进程没有运行且不会在引导时启动。请注意,不是所有这些守护进程都可能存在或者在您的系统中运行。
#
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
文件的详情,请参考 系统管理员指南中的 File and Print Servers 部分。 - 将集群节点的 IP 地址添加到
/etc/ctdb/nodes
文件中。#
cat << END > /etc/ctdb/nodes
192.168.1.151
192.168.1.152
END
- 要在集群节点之间进行负载平衡,您可以将两个或者多个 IP 地址添加到
/etc/ctdb/public_addresses
文件中,可用于访问此集群导出的 Samba 共享。这些是在 DNS 中为 Samba 服务器的名称配置的 IP 地址,也是 SMB 客户端要连接的地址。将 Samba 服务器的名称配置为具有多个 IP 地址的 DNS 类型 A 记录,并允许轮询 DNS 在集群节点中分发客户端。在本例中,DNS 条目linuxserver.example.com
是由/etc/ctdb/public_addresses
文件中列出的地址定义的。在这个版本中,DNS 会以轮循(round-robin)方式在集群节点中分发 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/’
- 在集群的一个节点上执行以下步骤:
- 为 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’