在企业或团队环境中,稳定、高效的文件共享服务至关重要。本文将详细讲解如何在 Ubuntu 系统上部署一个高可用的 Ubuntu文件共享集群,使用 Samba 实现跨平台文件共享,并通过 Keepalived + NFS 实现主备高可用架构。即使你是 Linux 新手,也能轻松跟着本教程完成部署。
我们需要两台 Ubuntu 22.04 LTS 服务器(也可以是虚拟机),分别作为主节点(node1)和备节点(node2):
确保两台服务器网络互通,并已安装 openssh-server 以便远程管理。
为了实现数据同步,我们使用 NFS 共享存储。你也可以使用 GlusterFS 或 Ceph,但本教程以简单易用的 NFS 为例。
在 node1 上安装并配置 NFS 服务:
sudo apt updatesudo apt install -y nfs-kernel-serversudo mkdir -p /shared/datasudo chmod 777 /shared/dataecho "/shared/data 192.168.1.0/24(rw,sync,no_subtree_check)" | sudo tee -a /etc/exportssudo exportfs -asudo systemctl restart nfs-kernel-server
在 node2 上挂载 NFS 共享目录:
sudo apt install -y nfs-commonsudo mkdir -p /shared/datasudo mount 192.168.1.101:/shared/data /shared/data# 开机自动挂载echo "192.168.1.101:/shared/data /shared/data nfs defaults 0 0" | sudo tee -a /etc/fstab
Samba 是 Linux 下实现 Windows 兼容文件共享的核心工具。我们在两台节点上都安装 Samba。
sudo apt install -y samba 编辑 Samba 配置文件(两台节点配置相同):
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.baksudo tee /etc/samba/smb.conf <<EOF[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = ubuntu-samba security = user map to guest = bad user dns proxy = no[shared] path = /shared/data browsable = yes writable = yes guest ok = yes read only = no create mask = 0777 directory mask = 0777EOFsudo systemctl restart smbd nmbdsudo systemctl enable smbd nmbd
此时,任意一台服务器单独运行时,都能通过 IP 访问共享文件夹。但我们要的是高可用文件服务器,所以继续下一步。
Keepalived 可以在主节点故障时,自动将虚拟 IP(VIP)漂移到备节点,实现无缝切换。
在两台服务器上安装 Keepalived:
sudo apt install -y keepalived 配置 node1(主节点):
sudo tee /etc/keepalived/keepalived.conf <<EOFvrrp_script chk_samba { script "/usr/bin/pgrep smbd" interval 2 weight 2}vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100 } track_script { chk_samba }}EOFsudo systemctl restart keepalivedsudo systemctl enable keepalived
配置 node2(备节点):
sudo tee /etc/keepalived/keepalived.conf <<EOFvrrp_script chk_samba { script "/usr/bin/pgrep smbd" interval 2 weight 2}vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100 } track_script { chk_samba }}EOFsudo systemctl restart keepalivedsudo systemctl enable keepalived
1. 在客户端(Windows/Linux/Mac)上访问 \\192.168.1.100 或 smb://192.168.1.100,应能正常看到 shared 共享文件夹。
2. 手动关闭 node1 的 Samba 服务:sudo systemctl stop smbd,观察 VIP 是否自动漂移到 node2(可通过 ip addr show 查看)。
3. 恢复 node1 后,VIP 应自动切回(取决于配置,也可设置为不抢占)。
通过本教程,你已经成功搭建了一个基于 Ubuntu文件共享集群 的高可用 Samba 服务。该方案结合了 Samba共享配置、NFS 数据同步和 Keepalived 故障转移,实现了 高可用文件服务器 的核心功能。无论是小型办公室还是开发团队,这套 Linux集群部署 方案都能提供稳定可靠的文件共享体验。
提示:生产环境中建议增加防火墙规则、用户认证、日志监控等安全措施。
本文由主机测评网于2025-12-19发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025129905.html