当前位置:首页 > Ubuntu > 正文

Ubuntu文件共享集群部署(手把手教你搭建高可用Samba文件共享集群)

在企业或团队环境中,稳定、高效的文件共享服务至关重要。本文将详细讲解如何在 Ubuntu 系统上部署一个高可用的 Ubuntu文件共享集群,使用 Samba 实现跨平台文件共享,并通过 Keepalived + NFS 实现主备高可用架构。即使你是 Linux 新手,也能轻松跟着本教程完成部署。

Ubuntu文件共享集群部署(手把手教你搭建高可用Samba文件共享集群) Ubuntu文件共享集群  Samba共享配置 高可用文件服务器 Linux集群部署 第1张

一、环境准备

我们需要两台 Ubuntu 22.04 LTS 服务器(也可以是虚拟机),分别作为主节点(node1)和备节点(node2):

  • node1:IP 192.168.1.101
  • node2:IP 192.168.1.102
  • 虚拟IP(VIP):192.168.1.100(用于客户端访问)

确保两台服务器网络互通,并已安装 openssh-server 以便远程管理。

二、部署共享存储(NFS)

为了实现数据同步,我们使用 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 文件共享服务

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 实现高可用

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.100smb://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集群部署 方案都能提供稳定可靠的文件共享体验。

提示:生产环境中建议增加防火墙规则、用户认证、日志监控等安全措施。