NFS samba对比 nfs samba 速度比较_NFS samba对比

 

 NFS特点

nfs像windows的网络共享,samba服务

samba服务主要用于办公室的局域网共享服务

NFS发展有30年,代表了一个稳定的网络文件共享系统

samba服务主要用于办公室的局域网共享服务

NFS30年发展历史,代表了一个稳定的网络文件共享系统,中小型企业最佳的文件共享选择

NFS samba对比 nfs samba 速度比较_RPC_02

 

NFS和RPC

NFS samba对比 nfs samba 速度比较_NFS samba对比_03

 

 

 RPC

NFS samba对比 nfs samba 速度比较_客户端_04

 

 

 

 NFS服务器启动的时候,会随机采用若干个端口,并且主动在RPC服务中进行注册

如此一来RPC服务就正确知道所有NFS服务端的端口功能了,RPC服务默认使用linux的111端口

和NFS客户端进行一个交流,并且通过111端口将正确的NFS服务端的端口信息,告知给NFS客户端

NFS samba对比 nfs samba 速度比较_NFS samba对比_05

 

 

 

 

NFS samba对比 nfs samba 速度比较_服务端_06

 

 

exrpotfs  -rv

systemctl reload nfs

 

NFS samba对比 nfs samba 速度比较_客户端_07

 

 安装配置NFS

nfs-utils:nfs服务的主程序,包括了rpc.nfsd  rpc.mountd这2个守护进程,相关的配置文件信息

rpcbind:centos7,是一个RPC服务进程

yum install nfs-utils rpcbind -y

环境变量

NFS是c/s模式,client,server,准备一个NFS服务端,准备一个NFS客户端,两台linux机器

在NFSserver端 创建一个用于共享的文件夹,且设置相应的读写权限

[root@localhost ~]# mkdir /nfsjay

[root@localhost ~]# chmod -Rf 777 /nfsjay/

修改NFS服务的配置文件

 /etc/exports

NFS samba对比 nfs samba 速度比较_服务端_08

 

 nfs语法参数

1.nfs共享目录:是nfs服务器需要共享出去的实际目录,文件夹,必须写绝对路径,且注意目录的读写本地权限

如果你允许客户端读写操作,other有一个读写的权限(user,group,other三个身份)

2.nfs客户端地址,也就是nfs服务器授权可以访问共享目录的地址,可以写主机名,可以写通配符,ip地址

3.权限参数,对NFS授权的客户端,进行权限控制的参数,如下

nfs客户端地址形成

单一客户端   192.168.178.113 用的很少

允许整个网段访问  192.1698.178.0/24,指定局域网网段,用的还是很多的

授权整个域名客户端  nfs.abc.com  用的很少

授权子域名客户端  *.abc.com   用的很少

  nfs客户端的权限参数

ro  只读

rw 读写

root_squash 当nfs客户端以root账号访问Nfs服务端共享目录数据的时候,把该root映射为NFS服务端的一个匿名用户

该用户的UID,GID会变成nfsnobody的信息

no_root_squash  几乎和上面一样,root账户会映射为root账户,非常不安全,禁用

all_squash 所有nfs客户端的用户都映射为匿名用户,很安全,生产环境常用

sync 数据同步写入到内存和磁盘,优点是保证内存数据安全,但是效率太低

async  数据先写入到内存,在持久化到磁盘,效率非常高,但是可能会有数据丢失的隐患

 

启动NFS服务端的文件目录共享

NFS服务都是基于RPC的111通信端口,必须确保先启动了RPC服务

如果RPCBIND服务停止了,111端口也不会挂掉,因为centos7 还提供了一个rpcbind.socket服务运行着

 

nfs服务端部署

1.保证rpcbind服务正确运行

 2.创建nfs服务端共享的目录

mkdir -p /nfsjay

chmod -Rf 777 /nfsjay/  #递归且强制性授权777 

3.在nfs共享目录中创建测试的文件

[root@localhost nfsjay]# touch 一路向北.txt

[root@localhost nfsjay]# chown -R nfsnobody.nfsnobody /nfsjay/  #修改属主属组

修改NFS服务的配置文件,进行客户端授权

NFS samba对比 nfs samba 速度比较_服务端_09

 [root@localhost opt]# cat /var/lib/nfs/etab

/nfsjay *(rw,sync,wdelay,hide,nocrossmnt,insecure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,insecure,root_squash,no_all_squash)

8.此时可以把nfs服务端本地,当做一个客户端,模拟挂载访问试试

[root@localhost opt]# mount -t nfs 127.0.0.1:/nfsjay /mnt   

[root@localhost opt]# mount -l|grep mnt  #查看挂载情况

   [root@localhost /]# cd /mnt/

[root@localhost mnt]# ls
mnt到此一游.txt 一路向北.txt 夜曲.txt

9.如果不用nfs目录共享了,可以直接取消挂载

[root@localhost /]# umount /mnt/ 

 

nfs客户端远程挂载的使用

1准备一个新的linux客户端机器,并且安装nfs相关的软件.

yum install nfs-utils rpcbind -y

2.确保rpcbind服务正常

systemctl status rpcbind

3.可以远程的检查,nfs的共享情况

showmount -e 160.116.208.83
Export list for 160.116.208.83:
/nfsjay *

4.进行以nfs协议的挂载使用

mkdir  -p /jay888

[root@160-116-208-21 ~]# mount -t nfs 160.116.208.83:/nfsjay  /jay888

5.检查nfs客户端本地的挂载情况

# mount -l | tail -1  #tail  -1 显示最后一行
160.116.208.83:/nfsjay on /jay888 type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=160.116.208.21,local_lock=none,addr=160.116.208.83)

6.进入本地挂载的目录,尝试访问远程的NFS服务端的数据

NFS samba对比 nfs samba 速度比较_NFS samba对比_10

 

 7.卸载目录挂载

umount  /jay888

 

如果挂载都失败,检查服务端的配置,以及防火墙是否打开

 

nfs自动挂载服务

配置开机挂载服务,每次开机都能用nfs

1.把挂载命令写入到开机自动挂载文件中

/etc/fstab 文件

160.116.208.83:/nfsjay   /jay888  nfs  defaults 0  0

autofs自动挂载服务

如果开机就强制挂载很多内容,但是又不经常使用,会给服务器造成很大的压力

因此一些具有动态特性的文件系统,可以选择进行动态挂载

 

autofs特点

autofs和mount命令的不同点在于

autofs是一个守护进程,他会在后台检测用户是否要访问某一个还未挂载的文件系统,autofs会自动检测该文件

系统是否存在,如果存在则进行挂载,如果用户过了一段时间没有使用该文件系统,autofs自动将其卸载,节省

人力维护的成本,以及节省服务器资源

缺点:

autofs,当用户请求时候才挂载 文件系统,高并发的业务场景,大量用户并发访问文件系统,

autofs突然进行大量挂载,会给服务器造成很大的压力,因此高并发场景下,宁愿保持持续挂载

也不用autofs

安装autofs

yum  install autofs -y

 修改autofs配置文件

/etc/auto.master

1.打开autofs配置文件,找到第七行,添加代码

 /misc  /etc/auto.misc 

/- /etc/auto.home #添加这里的配置参数

修改自定义的自动挂载配置文件

[root@160-116-208-21 ~]# vim /etc/auto.home
[root@160-116-208-21 ~]# cat /etc/auto.home
/jay888 -rw,soft,intr 160.116.208.83:/nfsjay

  启动autofs

systemctl  start autofs

只要autofs检测到用户,对挂载点,进行读写,比如 ls  cd的操作,aotofs就会自动的进行挂载

当一段时间不操作之后,会自动卸载该设备

 

检查本地文件系统情况