CentOS7关于NFS的初学

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7关于NFS的初学相关的知识,希望对你有一定的参考价值。

NFS(network file system)网络文件系统
NFS的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或目录。
和普通的挂载类似,NFS也是通过挂载,使得用户在访问远端的数据就像访问本地目录下数据一样。mount x.x.x.x:/dir /dir 将远端目录通过IP和端口挂载到本地。
本地访问远端NFS的数据是基于端口的,而且NFS的端口不确定,因此需要一个类似与中间人的工具来记录每次访问的端口。RPC(remote procedure call)协议。
RPC服务最主要的功能就是能够记录每个NFS功能所对应的端口号,并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,从而可以确保客户端可以连接到正确的NFS端口上去,达到实现数据传输交互的目地。
技术分享图片
练习:
1、开启两台虚拟机,一台为NFSserver,一台为NFSclient。
2、安装NFS
[[email protected] ~]# yum install nfs-utils rpcbind -y
3、开启rpcbind服务
[[email protected] ~]# systemctl start rpcbind
[[email protected] ~]# systemctl status rpcbind
[[email protected] ~]# rpcinfo -p localhost #查看本地默认端口
program vers proto port service
100000 4 tcp 111 portmapper #对外默认111端口
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper #在没有开启NFS之前没有可用端口
4、开启NFS服务
[[email protected] ~]# systemctl start nfs
[[email protected] ~]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100024 1 udp 51552 status
100024 1 tcp 44185 status
100005 1 udp 20048 mountd #可用端口
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 50086 nlockmgr
100021 3 udp 50086 nlockmgr
.............
5、NFSserver将nfs和rpc设置为开机自启动 NFSclient开启rpcbind服务
[[email protected] ~]# systemctl enable rpcbind
[[email protected] ~]# systemctl enable nfs
6、检查服务是都开启
[[email protected] ~]# systemctl list-dependencies nfs
[[email protected] ~]# systemctl list-dependencies rpcbind
7、创建共享目录/data ,/data/a.txt,/data/b.txt。
[[email protected] ~]# mkdir /data
[[email protected] data]# touch a.txt
[[email protected] data]# touch b.txt
8、编辑nfs配置文件/etc/exports
[[email protected] ~]# vi /etc/exports
#shareed /data/a.text to client 192.168.142.0/24 表示该网段可以访问
/data 192.168.142.0/24(rw,sync) #rw读写 ro只读 sync写入磁盘 async写入内存
9、重启NFS服务
[[email protected] ~]# systemctl reload nfs #reload平滑重启,正在执行的服务不会停止,拒绝新的服务请求
10、检查本机是否可以共享
[[email protected] ~]# showmount -e localhost
Export list for localhost:
/data 192.168.142.0/24
11、客户端检查
[[email protected] ~]# showmount -e 192.168.146.142
Export list for 192.168.146.142:
/data 192.168.146.0/24 #如果没有,检查网络通不通,防火墙是否关闭。
12、挂载
[[email protected] ~]# mount -t nfs 192.168.146.142:/data /mnt
13、查看本地目录
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 26G 1.6G 25G 6% /
devtmpfs 903M 0 903M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 197M 109M 88M 56% /boot
tmpfs 183M 0 183M 0% /run/user/0
192.168.146.142:/data 26G 1.6G 25G 6% /mnt #挂载成功
[[email protected] ~]# cd /mnt
[[email protected] ~]# ls
a.txt b.txt
14、验证读写权限
NFSclient 客户端:
[[email protected] ~]# cd /mnt
[[email protected] mnt]# ls
a.txt b.txt
[[email protected] mnt]# touch c.txt
touch: cannot touch ‘c.txt’: Permission denied #服务器本地权限不够
NFSserver服务器:
[[email protected] ~]# ls -ld /data
drwxr-xr-x. 2 root root 32 May 30 12:13 /data
[[email protected] ~]# chmod 757 /data #更改服务器本地权限
[[email protected] ~]# ls -ld /data
drwxr-xrwx. 2 root root 32 May 30 12:13 /data
NFSclient 客户端:
[[email protected] mnt]# touch c.txt
[[email protected] mnt]# ls
a.txt b.txt c.txt
15、如果想开机之后自动挂载
[[email protected] mnt]# echo ‘mount -t nfs 192.168.146.142:/data /mnt‘>>/etc/rc.local
注意:NFS共享目录要用绝对路径。注意共享目录的本地权限。

以上是关于CentOS7关于NFS的初学的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7挂载NFS

centos7部署nginx+haproyx+nfs

CentOS7部署NFS

centos7架设NFS时一个有趣现象

centOS7搭建NFS服务器

centos7.1安装nfs