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