NFS
程序员文章站
2024-03-08 18:43:28
...
NFS
nfs特点
- NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。
- 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
- nfs适用于Linux与Unix之间的文件共享,不能和Windows实现共享
- nfs是运行在应用层的协议,监听在2049/tcp和2049/udp套接字上
- nfs服务只能基于IP进行认证,这是它的缺点之一
nfs好处
- 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
- 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
- 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
nfs组成
NFS体系至少有两个主要部分:
一台NFS服务器和若干台客户机,如右图所示。
客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据。
在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数。
nfs应用
- 多个机器共享一台CDROM或者其他设备。这对于在多台机器中安装软件来说更加便宜跟方便。
- 在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。
- 不同客户端可在NFS上观看影视文件,节省本地空间。
- 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下。
- NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不同的计算机或系统上运行。
搭建nfs服务器
@aaa 客户端 IP:192.168.102.128
@bbb 服务端 IP:192.168.102.129
安装nft服务
[root@bbb ~]# yum -y install nfs-utils
启动rpcbind nfs-server两个服务(有111和2049就是启动了)
[root@bbb ~]# systemctl start rpcbind nfs-server
[root@bbb ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:20048 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 64 *:38593 *:*
LISTEN 0 64 *:2049 *:*
LISTEN 0 128 *:58210 *:*
LISTEN 0 128 :::111 :::*
LISTEN 0 128 :::20048 :::*
LISTEN 0 64 :::32787 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 :::43415 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 64 :::2049 :::*
创建一个共享目录
[root@bbb ~]# mkdir -p /nfs/shared
编辑exports文件开放192.168.102.128,重启exportfs
[root@bbb ~]# vim /etc/exports
/nfs/shared 192.168.102.128(ro,sync)
[root@bbb ~]# exportfs -ar
客户端
安装nfs-utils软件包
[root@aaa ~]# yum -y provides nfs-utils
显示指定的nfs服务器上所有输出的共享目录
[root@aaa ~]# showmount -e 192.168.102.129
创建一个目录 将服务端上共享的文件挂载到这个目录
[root@aaa ~]# mount -t nfs 192.168.102.129:/opt/shared /nfs/
[root@aaa ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17811456 1256476 16554980 8% /
devtmpfs 922408 0 922408 0% /dev
tmpfs 933524 0 933524 0% /dev/shm
tmpfs 933524 8848 924676 1% /run
tmpfs 933524 0 933524 0% /sys/fs/cgroup
/dev/sda1 1038336 146024 892312 15% /boot
tmpfs 186708 0 186708 0% /run/user/0
/dev/sr0 3963760 3963760 0 100% /mnt
192.168.102.129:/opt/shared 17811456 1257728 16553728 8% /nfs
效果演示
[root@aaa ~]# cd /nfs/
[root@aaa nfs]# ll
总用量 4
-rw-r--r-- 1 nfsnobody nfsnobody 0 9月 11 16:21 11
-rw-r--r-- 1 nfsnobody nfsnobody 12 9月 11 11:37 aa
drwxr-xr-x 2 nfsnobody nfsnobody 6 9月 11 11:42 bb
[root@aaa nfs]# touch 22
touch: 无法创建"22": 只读文件系统
[root@aaa nfs]# cat aa
hello world
开放/nfs/upload目录为192.168.102.0/24网段的数据上传目录,并将所有用户及所属的用户组都映射为nfs-upload,其UID与GID均为300
创建共享目录
[root@bbb ~]# mkdir -p /nfs/upload
----------
编辑exports,开放给192.168.102.0/24网段的所有用户,将共享目录设为可读可写
[root@bbb nfs]# vim /etc/exports
/nfs/shared 192.168.102.128(ro,sync)
/nfs/upload 192.168.102.0/24(rw,sync)
----------
挂载
[root@aaa nfs]# mount -t nfs 192.168.102.129:/nfs/upload /nfs-upload
mount.nfs: access denied by server while mounting 192.168.102.129:/nfs/upload
客户端
前
[root@aaa nfs-upload]# ll
总用量 0
后
[root@aaa nfs-upload]# touch 11
[root@aaa nfs-upload]# ll
总用量 0
-rw-r--r-- 1 root root 0 9月 11 19:17 11