Linux NFS共享服务
导图
1.NFS(Network File System 网络文件服务)
NFS 它是文件系统,是操作系统内核来管理的
[root@localhost ~]#ls /lib/modules/3.10.0-693.el7.x86_64/kernel/fs/ binfmt_misc.ko.xz ceph dlm fat gfs2 lockd nfs_common overlayfs udf btrfs cifs exofs fscache isofs mbcache.ko.xz nfsd pstore xfs cachefiles cramfs ext4 fuse jbd2 nfs nls squashfs
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。(远端过程调用:自己没有这种功能,调用别人的功能) NFS 也是 NAS 存储 设备必然支持的一种协议 以完成远 程到本地的映射过程。在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务, 前者用于 NFS 共享发布和访问,后者用于 RPC 支持。 手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。
特点:
- 采用TCP/IP传输网络文件
- 安全性低
- 简单易操作
2.NFS原理
3.
软件包:nfs-utils(包括服务器端和客户端)
相关软件包:rpcbind(必须),tcp_wappers
nfs端口号2049 RPC端口号111
NFS服务主要进程:
-
rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
-
rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
-
rpc.lockd 非必要,管理文件锁,避免同时写出错
-
配置文件: /etc/exports 配置文件格式 /dir 主机1(opt1,opt2) 主机2(opt1,opt2)... #共享路径 共享给谁 /share * #共享给任何主机 *代表任意(注意此时未给权限) 主机: 通配符:表示使用*通配所有客户端 单个主机:ipv4,ipv6,FQDN 192.168.61.100 网段:两种掩码格式均支持 172.18.0.0/255.255.0.0 172.18.0.0/16 内网 wildcards:主机名通配,例如:*.kgc.com,IP不可以 netgroups:NIS域的主机组,@group_name 默认选项:(ro,sync,root_squash,no_all_squash) ro,rw 只读和读写 async 异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性 低 sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高 root_squash (默认)远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS 7以前的版本为nfsnobody no_root_squash 远程root映射成NFS服务器的root用户 all_squash 所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody no_all_squash (默认)保留共享文件的UID和GID anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使 用 #查看当前共享信息 exportfs -v [root@localhost ~]#exportfs -r #重新加载服务配置 exportfs: No options for /share *: suggest *(sync) to avoid warning ###客户机上如何查看共享 [root@localhost yum.repos.d]#showmount -e 192.168.61.100 # Export list for 192.168.61.100: /share * [root@localhost yum.repos.d]#mount 192.168.91.100:/share /mnt/nfs1/ # 对方地址 共享文件夹 挂载点 [root@localhost yum.repos.d]#df [root@localhost nfs1]#ll #变成nobody 由root_squash(压缩缩小) 决定 总用量 4 -rw-r--r--. 1 nfsnobody nfsnobody 0 3月 21 01:17 111.txt -rwxrwxrwx. 1 root root 2259 3月 21 01:12 passwd #普通用户不压榨 由 no_all_squash决定 /share *(rw,no_root_squash)
4.NFS共享存储服务配置的过程
4.1服务端
4.1.1安装,开启服务
4.1.2创建共享目录,修改权限
4.1.3创建用户,查看uid与gid
4.1.4编辑nfs配置文件
不重启服务,刷新nfs配置文件命令 exportfs -r
4.1.5关闭防火墙和selinux
4.2客户端
4.1.1查看nfs服务端挂载目录,写入永久挂载
4.1.2测试nfs服务
5.总结
1、NFS的概念及作用:是一种基于TCP/IP传输的网络文件系统协议;可以实现客户机访问远程服务器中的共享资源
2、NFS的缺点:安全性差
3、NFS的使用要求:需要安装nfs-utils(共享发布和访问)、rpcbind(远程过程调用)
4、NFS的配置文件:/etc/exports
5、配置NFS共享存储的步骤:
服务器端
第一步:安装nfs-utils和rpcbind软件,并关闭防火墙和增强安全功能
第二步:设置共享目录并把共享目录的权限设为777
第三步:修改NFS的配置文件(格式为:共享的目录名称 客户机地址(权限))
第四步:启动NFS服务(先启动rpcbind,再启动nfs),并设置开机自启动
第五步:发布NFS共享目录,并查看
客户端
第一步:安装nfs-utils和rpcbind软件,并关闭防火墙和增强安全功能
第二步:查看服务器端的共享目录,并将其挂载到新建目录上(可手动或自动挂载)