九天猎人 发表于 2025-2-26 04:11:06

简单的linux nas 服务安装

简单的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 体系服务,并且设置开机自启动
yum install -y nfs-utils rpcbind

systemctl enable nfs
systemctl enable rpcbind
设置自定义的共享文件的目次信息,并且设置权限为 777
mkdir -p /usr/local/share
chmod 777 /usr/local/share/
修改
vim /etc/exports
# 具体配置内容
# 将 /usr/local/share 目录共享给 IP 地址范围为 192.168.138.0/24 的客户端,并且这些客户端拥有读写权限 (rw),所有写入操作都会立即同步到磁盘 (sync),同时远程主机上的 root 用户不会被压缩权限 (no_root_squash)。
/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:
寄义:自动挂载子目次。
作用:如果共享目次中有其他挂载点,客户端可以透明地访问这些子目次而不需要额外配置。


启动服务
systemctl start rpcbind
systemctl start nfs
查看进程发现进程已经正常存在
netstat -natp | grep rpcbind
https://i-blog.csdnimg.cn/direct/3fccc568e31b48beaf69fa966ee6475f.png
我们再次确定已经共享目次信息是否包罗本身配置的目次信息,如果得到如下提示则表示已经正常共享此目次
showmount -e
https://i-blog.csdnimg.cn/direct/b02f7cee92254b018f91a7ba3b79bfbd.png
2.2 客户端配置

客户端配置与服务端类似,首先都需要添加RPC以及NFS体系组件
yum install -y nfs-utils rpcbind
添加客户端的RPC服务自启动
systemctl enable rpcbind --now
创建挂载点,我们则使用与服务端相同目次信息
mkdir /usr/local/share
挂载目次我们可以设置为手动挂载以及自动挂载,手动挂载如下:
mount 192.168.138.129:/usr/local/share /usr/local/share
挂载之后我们可以在server端新增文件,然后查看挂载端是否也同样生成文件
touch jack.txt
touch jack2.txt
https://i-blog.csdnimg.cn/direct/c8b76aa04aa14e79bd12c1c953f66e2a.png
我们再docker2客户端服务器查看,发现文件已经生成了,并且可以进行操作
https://i-blog.csdnimg.cn/direct/39e354ae17c3437f9fa144021aa9a952.png
设置永世挂载
vim /etc/fstab

# 添加内容
192.168.138.129:/usr/local/share /usr/local/share nfs defaults,timeo=600,retry=2 0 0

# 挂载所有/etc/fstab下未挂载的文件系统
mount -a

# 查看挂载点
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 表示不备份)
如果不需要共享了,我们需要卸载目次
umount -lf /usr/local/share
   留意:NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现实行 df -h 命令卡死的现象。这个时候直接使用 umount 命令是无法直接卸载的,需要加上-If 选项才气卸载。

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