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端口上去,达到实现数据传输交互的目地。
CentOS7关于NFS的初学
练习:
1、开启两台虚拟机,一台为NFSserver,一台为NFSclient。
2、安装NFS
[root@NFSserver ~]# yum install nfs-utils rpcbind -y
3、开启rpcbind服务
[root@NFSserver ~]# systemctl start rpcbind
[root@NFSserver ~]# systemctl status rpcbind
[root@NFSserver ~]# 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服务
[root@NFSserver ~]# systemctl start nfs
[root@NFSserver ~]# 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服务
[root@NFSserver ~]# systemctl enable rpcbind
[root@NFSserver ~]# systemctl enable nfs
6、检查服务是都开启
[root@NFSserver ~]# systemctl list-dependencies nfs
[root@NFSserver ~]# systemctl list-dependencies rpcbind
7、创建共享目录/data ,/data/a.txt,/data/b.txt。
[root@NFSserver ~]# mkdir /data
[root@NFSserver data]# touch a.txt
[root@NFSserver data]# touch b.txt
8、编辑nfs配置文件/etc/exports
[root@NFSserver ~]# 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服务
[root@NFSserver ~]# systemctl reload nfs #reload平滑重启,正在执行的服务不会停止,拒绝新的服务请求
10、检查本机是否可以共享
[root@NFSserver ~]# showmount -e localhost
Export list for localhost:
/data 192.168.142.0/24
11、客户端检查
[root@NFSclient ~]# showmount -e 192.168.146.142
Export list for 192.168.146.142:
/data 192.168.146.0/24 #如果没有,检查网络通不通,防火墙是否关闭。
12、挂载
[root@NFSclient ~]# mount -t nfs 192.168.146.142:/data /mnt
13、查看本地目录
[root@NFSclient ~]# 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 #挂载成功
[root@NFSclient ~]# cd /mnt
[root@NFSclient ~]# ls
a.txt b.txt
14、验证读写权限
NFSclient 客户端:
[root@NFSclient ~]# cd /mnt
[root@NFSclient mnt]# ls
a.txt b.txt
[root@NFSclient mnt]# touch c.txt
touch: cannot touch ‘c.txt’: Permission denied #服务器本地权限不够
NFSserver服务器:
[root@NFSserver ~]# ls -ld /data
drwxr-xr-x. 2 root root 32 May 30 12:13 /data
[root@NFSserver ~]# chmod 757 /data #更改服务器本地权限
[root@NFSserver ~]# ls -ld /data
drwxr-xrwx. 2 root root 32 May 30 12:13 /data
NFSclient 客户端:
[root@NFSclient mnt]# touch c.txt
[root@NFSclient mnt]# ls
a.txt b.txt c.txt
15、如果想开机之后自动挂载
[root@ycz-computer mnt]# echo 'mount -t nfs 192.168.146.142:/data /mnt'>>/etc/rc.local
注意:NFS共享目录要用绝对路径。注意共享目录的本地权限。

猜你喜欢

转载自blog.51cto.com/13701875/2122332