简单的linux nas 服务安装

打印 上一主题 下一主题

主题 873|帖子 873|积分 2619

简单的linux nas 服务安装

1. Linux NAS 简介

网络附加存储(Network Attached Storage,简称 NAS)是一种专用的文件存储设备,它通过网络毗连到计算机体系,并为用户提供文件级别的数据存储和共享服务。NAS 设备通常运行定制的操作体系,专注于提供高效的文件访问和管理功能。


  • 重要特点
    集中存储:将多个用户的文件集中存储在一个地方,便于管理和备份。
    易于共享:支持多台设备和用户同时访问相同的文件资源。
    跨平台兼容性:可以与 Windows、macOS 和 Linux 等差别操作体系无缝协作。
    可扩展性:根据需求增加硬盘或更换更大容量的硬盘以扩展存储空间。
    内置功能:许多 NAS 设备提供了额外的功能,如媒体服务器、下载机、云同步等。
  • 在 Linux 上搭建 NAS
    在 Linux 体系上搭建 NAS 有多种方式,以下是几种常见的方案如下:

    • 使用现成的 NAS 发行版
      OpenMediaVault:基于 Debian 的 NAS 操作体系,界面友好,适合初学者。
      FreeNAS / TrueNAS CORE:功能强大且稳定的开源 NAS 办理方案,支持 ZFS 文件体系。
    • 自定义安装
      Samba:用于在 Linux 和 Windows 之间共享文件的服务。
      NFS (Network File System):实用于 Unix/Linux 环境下的文件共享协议。
      iSCSI:提供块级数据传输,可用于创建虚拟磁盘。
      Docker 容器化摆设

  • 利用 Docker 摆设
    NAS 应用程序和服务,如 Nextcloud、Plex Media Server 等,方便管理和维护。
我们本次是使用自定义安装,我们使用的是 NFS (Network File System) 协议进行自定义安装摆设,具体实现步调如下
2. 安装步调

整体安装包罗客户端以及服务端,具体的安装步调如下
2.1 服务端配置

首先添加 NFS 以及 RPC 体系服务,并且设置开机自启动
  1. yum install -y nfs-utils rpcbind
  2. systemctl enable nfs
  3. systemctl enable rpcbind
复制代码
设置自定义的共享文件的目次信息,并且设置权限为 777
  1. mkdir -p /usr/local/share
  2. chmod 777 /usr/local/share/
复制代码
修改
  1. vim /etc/exports
  2. # 具体配置内容
  3. # 将 /usr/local/share 目录共享给 IP 地址范围为 192.168.138.0/24 的客户端,并且这些客户端拥有读写权限 (rw),所有写入操作都会立即同步到磁盘 (sync),同时远程主机上的 root 用户不会被压缩权限 (no_root_squash)。
  4. /usr/local/share 192.168.138.0/24(rw,sync,no_root_squash)
复制代码
参数表明信息如下:

  • 路径部分
    /usr/local/share:这是要共享的目次路径,表示将 /usr/local/share 目次及其子目次通过 NFS 共享出去。
  • 客户端网络段
    192.168.138.0/24:指定允许访问该共享目次的客户端 IP 地点范围。这里的 192.168.138.0/24 表示所有以 192.168.138.x 开头的 IP 地点(即 192.168.138.0 到 192.168.138.255),都可以访问这个共享目次。
  • 参数部分

    • rw:
      寄义:读写权限。
      作用:允许客户端对该共享目次进行读取和写入操作。如果设置为 ro,则只允许读取,不允许写入。
    • sync:
      寄义:同步模式。
      作用:确保每次写入操作都立刻同步到磁盘上,而不是缓存在内存中。这可以进步数据的安全性,但可能会轻微降低性能。
    • no_root_squash:
      寄义:不压缩 root 用户权限。
      作用:默认环境下,NFS 会将远程主机上的 root 用户映射为匿名用户(通常是 nobody),以防止 root 用户在服务器上有过高权限。而 no_root_squash 参数则取消了这种限制,允许远程主机上的 root 用户拥有与本地 root 用户相同的权限。这在某些特殊场景下可能需要,但也存在安全隐患,因此应谨慎使用。

  • 其他参数

    • 权限相干

      • ro:
        寄义:只读权限。
        作用:客户端只能读取共享目次中的文件,不能进行写入或修改操作。
      • root_squash(默认):
        寄义:压缩 root 用户权限。
        作用:将远程主机上的 root 用户映射为匿名用户(通常是 nobody),以防止 root 用户在服务器上有过高权限。这是默认行为,与 no_root_squash 相反。
      • all_squash:
        寄义:所有效户都压缩为匿名用户。
        作用:无论远程用户是谁,都将被映射为匿名用户(通常是 nobody)。实用于完全公开的共享。
      • anonuid 和 anongid:
        寄义:指定匿名用户的 UID 和 GID。
        作用:当使用 all_squash 或 root_squash 时,可以指定具体的 UID 和 GID 而不是默认的 nobody 用户。

    • 性能相干

      • async:
        寄义:异步模式。
        作用:允许写入操作先缓存到内存中,而不是立刻同步到磁盘。这可以进步性能,但可能会导致数据丢失的风险。
      • wsize 和 rsize:
        寄义:设置写入块大小和读取块大小。
        作用:调解每次读写操作的数据块大小,默认值通常为 1024 字节。增大这些值可以在某些环境下进步传输服从。

    • 安全性和访问控制

      • secure(默认):
        寄义:限制端口范围。
        作用:要求所有的 NFS 请求必须来自小于 1024 的特权端口。这对于安全性有一定帮助,但在某些环境中可能需要禁用。
      • insecure:
        寄义:不限制端口范围。
        作用:允许来自任何端口的 NFS 请求,包括大于 1024 的非特权端口。适合某些特殊环境下的需求。
      • subtree_check(默认):
        寄义:子树查抄。
        作用:确保请求的文件确实位于共享目次内。虽然增加了安全性,但也可能导致性能下降。
      • no_subtree_check:
        寄义:不进行子树查抄。
        作用:关闭子树查抄,进步性能,但会降低安全性。

    • 其他

      • fsid:
        寄义:文件体系 ID。
        作用:用于标识特定的 NFS 导出路径,特别是在根导出的环境下非常有效。
      • crossmnt:
        寄义:自动挂载子目次。
        作用:如果共享目次中有其他挂载点,客户端可以透明地访问这些子目次而不需要额外配置。


启动服务
  1. systemctl start rpcbind
  2. systemctl start nfs
复制代码
查看进程发现进程已经正常存在
  1. netstat -natp | grep rpcbind
复制代码

我们再次确定已经共享目次信息是否包罗本身配置的目次信息,如果得到如下提示则表示已经正常共享此目次
  1. showmount -e
复制代码

2.2 客户端配置

客户端配置与服务端类似,首先都需要添加RPC以及NFS体系组件
  1. yum install -y nfs-utils rpcbind
复制代码
添加客户端的RPC服务自启动
  1. systemctl enable rpcbind --now
复制代码
创建挂载点,我们则使用与服务端相同目次信息
  1. mkdir /usr/local/share
复制代码
挂载目次我们可以设置为手动挂载以及自动挂载,手动挂载如下:
  1. mount 192.168.138.129:/usr/local/share /usr/local/share
复制代码
挂载之后我们可以在server端新增文件,然后查看挂载端是否也同样生成文件
  1. touch jack.txt
  2. touch jack2.txt
复制代码

我们再docker2客户端服务器查看,发现文件已经生成了,并且可以进行操作

设置永世挂载
  1. vim /etc/fstab
  2. # 添加内容
  3. 192.168.138.129:/usr/local/share /usr/local/share nfs defaults,timeo=600,retry=2 0 0
  4. # 挂载所有/etc/fstab下未挂载的文件系统
  5. mount -a
  6. # 查看挂载点
  7. df -hT
复制代码
参数表明如下:


  • 192.168.138.129:/usr/local/share:NFS 服务器 IP 地点和共享路径。
  • /usr/local/share:本地挂载点。
  • nfs:文件体系类型为 NFS。
  • defaults:使用默认选项(等同于 rw,sync,nosuid,nodev,exec,auto,nouser,async)。
  • timeo=600:设置超时时间为 600 秒,防止网络中断时长时间等候。
  • retry=2:设置重试次数为 2 次,如果挂载失败会尝试重新挂载。
  • 0 和 0:第一个 0 表示是否在启动时进行备份查抄(0 表示不查抄),第二个 0 表示是否由 dump 命令备份(0 表示不备份)
如果不需要共享了,我们需要卸载目次
  1. umount -lf /usr/local/share
复制代码
  留意:NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现实行 df -h 命令卡死的现象。这个时候直接使用 umount 命令是无法直接卸载的,需要加上-If 选项才气卸载。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表