如何从零开始用CentOS搭建一台私有云NAS存储?

将一台闲置的服务器或性能强劲的计算机转变为功能强大的网络附加存储(NAS),是提升数据管理效率和家庭/办公网络体验的绝佳方式,CentOS 以其卓越的稳定性和企业级特性,成为构建自制 NAS 系统的理想操作系统,本教程将引导您在 CentOS 系统上,一步步搭建一个基础但功能完备的 NAS。

如何从零开始用CentOS搭建一台私有云NAS存储?

准备工作

在开始之前,请确保您已具备以下条件:

  • 一台已安装 CentOS 7/8 Stream 系统的计算机。
  • 至少一块专用于存储数据的硬盘(假设为 /dev/sdb)。
  • 稳定的网络连接。
  • 具有 sudo 权限的用户账户。

磁盘识别、分区与挂载

这是构建 NAS 的基石,我们需要将数据盘正确地接入系统。

  1. 识别新硬盘
    使用 lsblk 命令查看系统已识别的磁盘,您应该能看到系统盘(如 /dev/sda)和您准备的数据盘(如 /dev/sdb)。

    lsblk
  2. 创建分区
    我们使用 fdisk 工具对 /dev/sdb 进行分区。

    sudo fdisk /dev/sdb

    fdisk 交互界面中,依次输入以下指令:

    • n:创建新分区。
    • p:选择主分区类型。
    • 1:分区编号。
    • 按两次回车:使用默认的起始和结束扇区,将整个磁盘划为一个区。
    • w:保存并退出。
  3. 格式化分区
    CentOS 默认推荐使用 XFS 文件系统,它对大文件处理和高并发读写性能优异。

    sudo mkfs.xfs /dev/sdb1
  4. 挂载与开机自动挂载
    创建挂载点,并将分区挂载上去,为了确保重启后挂载依然有效,需要编辑 /etc/fstab 文件。

    # 创建挂载目录
    sudo mkdir /data
    # 临时挂载
    sudo mount /dev/sdb1 /data
    # 获取分区 UUID,用于 fstab 配置,更稳定
    sudo blkid /dev/sdb1
    # 编辑 fstab 文件
    sudo vi /etc/fstab

    fstab 文件末尾添加一行(请将 UUID="your-uuid" 替换为上一步获取的实际 UUID):
    UUID="your-uuid" /data xfs defaults 0 0

    保存并退出后,执行 sudo mount -a 验证配置无误。

    如何从零开始用CentOS搭建一台私有云NAS存储?

配置 Samba 服务(用于 Windows/macOS 访问)

Samba 是实现跨平台文件共享的标准协议。

  1. 安装 Samba

    sudo yum install -y samba samba-common
  2. 配置共享目录
    备份并编辑主配置文件 /etc/samba/smb.conf

    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
    sudo vi /etc/samba/smb.conf

    在文件末尾添加以下共享定义:

    [NAS_Data]
        comment = My CentOS NAS Share
        path = /data
        browseable = yes
        writable = yes
        guest ok = no
        valid users = @smbusers
  3. 创建 Samba 用户
    Samba 用户需要是系统已存在的用户,我们先创建一个系统用户,再为其设置 Samba 密码。

    sudo useradd smbuser
    sudo smbpasswd -a smbuser

    根据提示设置 Samba 访问密码。

  4. 启动服务并配置防火墙

    # 启动并设置开机自启
    sudo systemctl enable smb nmb
    sudo systemctl start smb nmb
    # 放行防火墙端口
    sudo firewall-cmd --permanent --add-service=samba
    sudo firewall-cmd --reload

    您可以在 Windows 或 macOS 的网络中找到您的 CentOS NAS,并使用 smbuser 账户登录访问。

配置 NFS 服务(用于 Linux 访问)

NFS 为 Linux 客户端提供了更高效、原生的文件共享方式。

如何从零开始用CentOS搭建一台私有云NAS存储?

  1. 安装 NFS 工具

    sudo yum install -y nfs-utils
  2. 配置导出目录
    编辑 /etc/exports 文件,定义哪些目录可以被哪些客户端以何种权限访问。

    sudo vi /etc/exports

    添加以下行,允许 168.1.0/24 网段内的所有客户端读写访问 /data 目录:
    /data 192.168.1.0/24(rw,sync,no_subtree_check)

  3. 启动服务并配置防火墙

    # 使配置生效
    sudo exportfs -a
    # 启动并设置开机自启
    sudo systemctl enable nfs-server
    sudo systemctl start nfs-server
    # 放行防火墙
    sudo firewall-cmd --permanent --add-service=nfs
    sudo firewall-cmd --reload

    在 Linux 客户端上,您可以使用 mount -t nfs <server-ip>:/data /mnt/nas 命令来挂载此 NFS 共享。


相关问答FAQs

问题1:为什么我无法从 Windows 访问 Samba 共享,提示权限不足或找不到网络路径?
解答:这是一个常见问题,通常由以下几个原因导致:

  • 防火墙:确保 CentOS 的防火墙已放行 Samba 服务(firewall-cmd --list-all 查看)。
  • SELinux:CentOS 的 SELinux 安全机制可能会阻止访问,可以临时关闭测试(setenforce 0),若成功,则需正确设置 SELinux 上下文,如 sudo setsebool -P samba_export_all_rw on
  • 用户权限:确保您在 Samba 配置中指定的 valid users 存在,并且已通过 smbpasswd -a 设置了密码。
  • 网络连通性:使用 ping 命令确保客户端与 CentOS 服务器之间网络通畅。

问题2:Samba 和 NFS 我应该选择哪个?它们有什么区别?
解答:选择哪个取决于您的客户端环境和使用场景,下表清晰地对比了两者:

特性 Samba (SMB/CIFS) NFS (Network File System)
适用平台 跨平台,完美支持 Windows, macOS, Linux 主要为 Unix/Linux 系统设计,Windows 支持需额外配置
性能 在混合环境中性能良好,纯 Linux 环境下略逊于 NFS 在 Linux-to-Linux 环境中性能更高,延迟更低
配置复杂度 配置相对直观,用户管理集成在 Samba 中 配置简洁,但客户端和服务器端的 UID/GID 需要统一
推荐场景 家庭或办公室混合环境(Windows/Mac 用户多) 数据中心、服务器集群、纯 Linux 开发/运维环境

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-03 03:43
下一篇 2025-10-03 03:46

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信