本文主要是介绍NFS网络文件存储入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、NFS介绍
- NFS全称Network Files System,中文叫网络文件系统,是1980年由SUN发展出来在UNIX&Linux系统间实现磁盘文件共享的一种方法。
- NFS是当前互联网系统架构中最常用的服务之一,特别是中小公司应用频率很高。大公司可能用MFS,GFS,FASTFS分布式系统。
- RHEL7在默认情况下支持第四版本的NFS,不过在该版本不可用的情况下自动回退到第三版本NFS或第二版本NFS,第四版本的NFS使用TCP协议进行数据传输,以前的版本可能使用TCP或UDP。
- NFS的整个工作模式中分为“服务端”和“客户端”两部分,服务端共享出目录(也就是共享出“完成格式化且挂载好”的目录),然后客户端像挂载本地文件系统一样挂载这个服务端共享出来的目录,然后可以对目录进行操作。
二、NFS提供多种传输网络传输方式
- none:可对文件进行匿名访问,对服务器文件的写入(如果能写的话),使用nfsnobody用户的UID和GID进行。
- sys:文件访问权限基于UID和GID的标准Linux权限,如未特别指定,这是默认方法
- krb5:客户端必须使用Kerberos证明身份,然后使用标准的linux文件权限
- krb5i:客户端必须使用Kerberos证明身份,然后使用标准的linux文件权限,对数据请求的过程的数据进行加密,传输过程的数据进行完整性的校验,但传输数据不加密
- krb5p:客户端必须使用Kerberos证明身份,然后使用标准的linux文件权限,对所有传输请求和传输数据进行加密和校验,这个方法虽然安全性最高,但是传输的效率是最低的
三、sys方式设定nfs共享和挂载
这是默认方式,此时数据没有加密传输,也不支持selinux
1、配置服务端server
1.1 配置NFS共享
chown nfsnobody /nfsshare #先确定共享出去的目录,并改共享目录的权限
yum install nfs-utils #安装软件包
systemctl enable nfs-server; systemctl start nfs-server #启动服务
echo '/nfsshare desktop0(rw,sync)' >> /etc/exports #写配置
exportfs -r #让配置生效
配置防火墙
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload
注:rpc-bind/mount端口不开,客户端可以挂载nfs,但客户端showmount会看不到服务端的共享
showmount -e localhost 本地验证
1.2 showmount命令的说明
这个命令在NFS的服务端和客户端都能使用
-a 这个选项是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的客户端机器
-e 这个选项后面跟nfs服务器,用查看nfs服务上共享出的目录
showmount -e localhost 看本机的nfs共享目录,这个命令在nfs服务器上运行
showmount -e server0.example.com或者 showmount -e 172.25.0.11 这个服务一般在客户端上运行,查看sever0.example.com上 和172.25.0.11上 通过nfs共享出来的目录
1.3关于配置文件的说明
- 关于指定谁可以访问这个共享的设定
/nfsshare desk.example.com(rw,sync,no_root_sqush) 表示只有desk.example.com可以使用这个共享
/nfsshare 172.25.0.10(rw,sync,no_root_sqush) 表示只有172.25.0.10可以使用这个共享
/nfsshare *(rw,sync,no_root_sqush) 表示所有客户端都可以使用这个共享
/nfsshare 192.168.0.*(rw,sync,no_root_sqush) 表示只有192.168.0.开头的ip地址能使用这个共享
/nfsshare 192.168.0.0/24(rw,sync,no_root_sqush) 只有192.168.0.0/24网段的ip地址能使用这个共享
/nfsshare *.redhat.com(rw,sync,no_root_sqush) 只有redhat.com这个域名下的所有主机可以使用这个共享
- 关于对共享目录的操作权限
rw
ro
no_root_squash 登入到NFS主机的用户如果是root,该用户即拥有root权限
root_squash 登入NFS主机的用户如果是root,该用户权限将被限定为匿名使用者nobody
all_squash 不管登陆NFS主机的用户是何权限都会被重新设定为匿名使用者nobody
sync 资料同步写入存储器中。
async 资料会先暂时存放在内存中,不会直接写入硬盘
1.4关于exportfs命令的说明
-a :全部mount或者unmount /etc/exports中的内容
exportfs -av 用于输出NFS服务器的所有共享目录
-r :重新mount /etc/exports中分享出来的目录
exportfs -rv 全部重新export一次,修改配置后使用
-u :umount 目录
exportfs -auv 全部都卸载,用于停止当前主机中NFS服务器的所有目录输出
-v :在 export 的时候,将详细的信息输出到屏幕上
exportfs -v 查看当前共享配置
2、客户端desktop
2.1确定本地挂载目录
mkdir /mnt/nfsexport
2.2临时挂载
mount server0:/nfsshare /mnt/nfsexport
2.3永久挂载
echo 'server0:/nfsshare /mnt/nfsexport nfs defaults 0 0' >> /etc/fstab
mount -a
2.4验证
df -hT
cd /mnt/nfsexport
ls
touch 2.txt
这篇关于NFS网络文件存储入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!