NFS网络文件存储入门

一、NFS介绍

  1. NFS全称Network Files System,中文叫网络文件系统,是1980年由SUN发展出来在UNIX&Linux系统间实现磁盘文件共享的一种方法。
  2. NFS是当前互联网系统架构中最常用的服务之一,特别是中小公司应用频率很高。大公司可能用MFS,GFS,FASTFS分布式系统。
  3. RHEL7在默认情况下支持第四版本的NFS,不过在该版本不可用的情况下自动回退到第三版本NFS或第二版本NFS,第四版本的NFS使用TCP协议进行数据传输,以前的版本可能使用TCP或UDP。
  4. NFS的整个工作模式中分为“服务端”和“客户端”两部分,服务端共享出目录(也就是共享出“完成格式化且挂载好”的目录),然后客户端像挂载本地文件系统一样挂载这个服务端共享出来的目录,然后可以对目录进行操作。

二、NFS提供多种传输网络传输方式

  1. none:可对文件进行匿名访问,对服务器文件的写入(如果能写的话),使用nfsnobody用户的UID和GID进行。
  2. sys:文件访问权限基于UID和GID的标准Linux权限,如未特别指定,这是默认方法
  3. krb5:客户端必须使用Kerberos证明身份,然后使用标准的linux文件权限
  4. krb5i:客户端必须使用Kerberos证明身份,然后使用标准的linux文件权限,对数据请求的过程的数据进行加密,传输过程的数据进行完整性的校验,但传输数据不加密
  5. 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

相关推荐

  1. NFS网络文件存储入门

    2024-06-15 18:12:04       8 阅读
  2. NFS文件共享存储详解与实战

    2024-06-15 18:12:04       37 阅读
  3. NFS网络文件系统)介绍与实践

    2024-06-15 18:12:04       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 18:12:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 18:12:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 18:12:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 18:12:04       18 阅读

热门阅读

  1. 小甲鱼——字典

    2024-06-15 18:12:04       9 阅读
  2. Scrapy与MongoDB的异步数据存储

    2024-06-15 18:12:04       9 阅读
  3. k8s及etcd的每日自动备份及故障时的还原脚本

    2024-06-15 18:12:04       10 阅读
  4. Android中球体碰撞代码分享-kotlin,入门版

    2024-06-15 18:12:04       10 阅读
  5. Non-zero exit code pycharm

    2024-06-15 18:12:04       11 阅读
  6. 电脑常用DOS命令

    2024-06-15 18:12:04       9 阅读
  7. React@16.x(25)useReducer

    2024-06-15 18:12:04       12 阅读
  8. 2024.6.14刷题记录-KMP记录

    2024-06-15 18:12:04       10 阅读
  9. Qt day2

    Qt day2

    2024-06-15 18:12:04      9 阅读
  10. VSCode使用git出现的问题记录--git回退

    2024-06-15 18:12:04       5 阅读
  11. CocosCreator3.x相机实践

    2024-06-15 18:12:04       5 阅读
  12. 在 Python 中创建具有当前日期和时间的文件名

    2024-06-15 18:12:04       8 阅读