NFS简介

一,NFS简介

1
2
3
NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。
 
NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS,ceph

 

 

二,NFS应用

1
2
3
4
5
6
1.用户访问NFS客户端,将请求转化为函数
2.NFS通过TCP/IP连接服务端
3.NFS服务端接收请求,会先调用portmap进程进行端口映射
4.Rpc.nfsd进程用于判断NFS客户端能否连接服务端;
5.Rpc.mount进程用于判断客户端对服务端的操作权限
6.如果通过权限验证,可以对服务端进行操作,修改或读取

 

 

三,NFS实践

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
服务端
    1,安装NFS和rpcbind
        [root@nfs ~]# yum install nfs-utils rpcbind -y
 
    2,创建挂载点
        [root@nfs ~]# mkdir /web/nfs{1..9}
 
    3,配置挂载点
        [root@nfs ~]# vim /etc/exports
        格式:
        [挂载点] [可以访问的IP]  ([权限])
 
    4,关闭selinux和防火墙
        [root@nfs ~]# setenforce 0
        [root@nfs ~]# systemctl disable --now firewalld
 
    5,启动NFS和rpcbind服务
        [root@nfs ~]# systemctl start nfs-server
        [root@nfs ~]# systemctl start rpcbind
 
    6,检查服务端是否正常
        [root@nfs ~]# showmount -e
        Export list for nfs:
        /web/nfsv1 172.16.1.0/20
        [root@nfs ~]# showmount -e 172.16.1.31
        Export list for 172.16.1.31:
        /web/nfsv1 172.16.1.0/20   
 
    7,给挂载点授权
        [root@nfs ~]# chown -R nfsnobody.nfsnobody /web

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
客户端
    1.安装nfs
        [root@web01 opt]# yum install -y nfs-utils
     
    2.创建目录
        [root@web01 opt]# mkdir  /opt/nfs/
     
    3.挂载NFS
        [root@web01 opt]# mount -t nfs 172.16.1.31:/web/nfs1  /opt/nfs/
 
    4.测试NFS文件同步功能
        [root@web01 opt]# touch nfs/{1..9}.txt
 
     

 

 

四、NFS配置详解

nfs共享参数参数作用
rw 读写权限 (常用)
ro 只读权限 (不常用)
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 (不常用)
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 (不常用)
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 (常用)
no_all_squash 无论NFS客户端使用什么账户访问,都不进行压缩 (不常用)
sync 同时将数据写入到内存与硬盘中,保证不丢失数据 (常用)
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 (不常用)
anonuid 配置all_squash使用,指定NFS的用户UID,必须存在系统 (常用)
anongid 配置all_squash使用,指定NFS的用户GID,必须存在系统 (常用)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1,控制读写
    rw ,ro
 
2,控制文件权限
    root_squash
    no_root_sqash
    all_squash
    no_all_squash
 
3,控制写模式
    sync
    async
 
4,控制用户
    anonuid
    anongid

 

 

  

五,搭建考试系统

1
2
3
4
5
6
7
8
9
10
11
12
统一用户:
    1.创建用户(服务端和客户端都需要)
        [root@nfs nfs1]# groupadd www -g 666
        [root@nfs nfs1]# useradd www -u 666 -g 666 -M -r -s /sbin/nologin
        [root@nfs nfs1]# vim /etc/exports
        /web/nfs1  172.16.1.0/20(rw,sync,all_squash,anonuid=666, anongid=666)
        [root@nfs ~]# systemctl restart nfs-server rpcbind
 
    2.修改挂载点权限
        [root@nfs ~]# chown -R www.www /web/
 
    3.使用

搭建WEB服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1,安装web软件
    [root@web01 opt]# yum install httpd php php-devel -y
 
2,将代码放置于网站的根目录
    [root@web01 opt]# cd /var/www/html
 
    # 上传代码
 
3,授权
    [root@web01 html]# chown -R www.www /var/www/html
 
 
4、关闭selinux和防火墙
    [root@nfs ~]# setenforce 0
    [root@nfs ~]# systemctl disable --now firewalld
 
4.1,启动web软件
    [root@web01 html]# systemctl start httpd
 
5,修改web软件的用户
    [root@web01 html]# vim /etc/httpd/conf/httpd.conf
 
6,启动web软件
    [root@web01 html]# systemctl start httpd
 
7,测试

配合NFS实现文件共享

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1、修改NFS配置文件
[root@nfs nfs1]# vim /etc/exports
/web/upload  172.16.1.0/20(rw,sync,all_squash,anonuid=666,anongid=666)
 
2、创建挂载点
[root@nfs nfs1]# mkdir /web/upload
[root@nfs nfs1]# chown www.www /web/upload
 
3、重启NFS
[root@nfs nfs1]# systemctl restart nfs-server rpcbind
 
4、客户端安装NFS软件
[root@web01 html]# yum install nfs-utils -y
[root@web02 html]# yum install nfs-utils -y
[root@web03 html]# yum install nfs-utils -y
 
5、挂载
[root@web01 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload
[root@web02 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload
[root@web03 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload
 
6、测试
用web2上传,web3查看

  

 

posted @   殷国敏  阅读(493)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示