Ubuntu 使用NFS共享存储
服务端和客户端系统:Ubuntu
服务端IP:192.168.128.1
客户端IP:192.168.128.130
NFS:网络文件系统(Network File System),能够直接访问其计算机的文件
服务端安装和配置:
1. 安装nfs-kernel-server
sudo apt install -y nfs-kernel-server
2. 配置参数
2.1 打开配置文件
sudo vim /etc/exports
2.2 在/etc/exports最后一行添加以下内容
/home/xqs/xian 192.168.128.130(rw,sync,no_root_squash,no_subtree_check)
TIPS:
指定方式: 可以IP,也可以是子网所有的IP,也可以是域名,或者所有的主机
IP:192.168.128.130
子网所有的IP:192.168.0.0/24
域名:www.baidu.com
所有主机:*
参数:
ro 该主机对该共享目录有只读权限
rw 该主机对该共享目录有读写权限
root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
no_root_squash 客户机用root访问该共享文件夹时,不映射root用户
all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户(nfsnobody)
no_all_squash 与all_squash取反(默认设置)
anonuid=XXX 将客户机上的用户映射成指定的本地用户ID的用户(UID=xxx)
anongid=XXX 将客户机上的用户映射成属于指定的本地用户组ID (GID=xxx)
sync 资料同步写入到内存与硬盘中,效率低,但可以保证数据的一致性
async 资料会先暂存于内存中,而非直接写入硬盘
insecure 允许从这台机器过来的非授权访问
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
wdelay 检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。若有写操作则立即执行,应与sync配合使用
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
3. 重启NFS服务
在终端重启输入指令重新启动
sudo systemctl stop nfs-kernel-server
sudo systemctl start nfs-kernel-server
客户端安装配置:
1. 安装客户端
sudo apt install -y nfs-common
2. 查看服务端所共享的文件目录
showmount -e 192.168.128.1
3. 挂载共享目录到客户端指定目录下
3.1 临时挂载(重启电脑需要重新挂载)
sudo mount -t nfs 192.168.128.1:/home/xqs/xian /home/xian/works
3.2 永久挂载(重启电脑不用重新挂载)
打开/etc/fstab在最后一行加入以下内容:
192.168.128.1:/home/xqs/xian /home/xian/works nfs defaults 1 1
3.3 在终端执行执行指令,让fstab添加参数生效(注意:一定是root用户)
mount -a
3.4 查看以下是否成功
4. 取消挂载
umount /home/xian/works
或删除/etc/fstab中步骤3.2添加的一行代码
5. 注意NFS服务没有密码验证,安全性一般,最好内网使用