运维进阶-----NFS网络文件系统

1.NFS介绍NFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不...

运维进阶-----NFS网络文件系统
1.NFS介绍

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样

NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不同的计算机或系统上运行。

以下是NFS最显而易见的好处:

  • 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。

  • 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。

  • 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。

  • 2.NFS服务器的搭建

    实验环境
    重置两个虚拟机,配置网络,设置主机名,分别为client.westos.com和server.westos.com,配置yum源,完成本地解析,
    在这里插入图片描述
    在这里插入图片描述

    在server虚拟机

    vim /etc/hosts172.25.254.113 server.westos.com

    在这里插入图片描述
    在client虚拟机

    vim /etc/hosts172.25.254.213 client.westos.com

    在这里插入图片描述
    完成后关闭图形界面,用主机ssh去连接两个虚拟机

    文件系统

    nfs
    在server下载 nfs-utils

    vim /etc/exports/mnt 172.25.254.0/24(ro,async)async表示不同步,速率块,可靠性不高,sync速率慢,可靠性高

    在这里插入图片描述

    systemctl start nfs-utils.service开启服务exports -rv 刷新

    关闭火墙
    在这里插入图片描述
    在客户端

    showmount -e 172.25.254.113

    查看共享

    [root@client ~]# showmount -e 172.25.254.113Export list for 172.25.254.113:/mnt 172.25.254.0/24

    将共享出来的目录挂载

    [root@client ~]# mount 172.25.254.113:/mnt/ /mnt/[root@client ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/vda110473900 31443807329520  31% /devtmpfs469332 0 4693320% /devtmpfs484920  140 4847801% /dev/shmtmpfs48492012696 4722243% /runtmpfs484920 0 4849200% /sys/fs/cgroup172.25.254.113:/mnt  10473984 32376327236352  31% /mnt

    在这里插入图片描述

    cd /mnttouch file 不能建立,因为之前写的配置文件,分享的/mnt是只读的

    在这里插入图片描述
    在server

    vim /etc/exports/mnt 172.25.254.0/24(rw,async) 

    在这里插入图片描述

    exportfs -rv刷新

    在这里插入图片描述
    在客户端
    /mnt目录下

    [root@client mnt]# touch filetouch: cannot touch ‘file’: Permission denied

    在这里插入图片描述
    建立文件,显示被禁止,说明是权限的问题

    在server端,

    chmod 777 /mnt

    在client端再次建立,便可以

    [root@client mnt]# touch file[root@client mnt]# lsfile

    在这里插入图片描述
    在这里插入图片描述

    [root@client mnt]# lltotal 0-rw-r--r--. 1 nfsnobody nfsnobody 0 May 24 22:28 file

    在这里插入图片描述
    显示使用的用户为nfsnobody

    用户的管理

    vim /eyt/exports/mnt 172.25.254.0/24(rw,async,anonuid=1001,anongid=1001)  指定用户为1001

    在这里插入图片描述

    exportfs -rv

    在client端建立文件

    [root@client mnt]# touch file1[root@client mnt]# lltotal 0-rw-r--r--. 1 nfsnobody nfsnobody 0 May 24 22:28 file-rw-r--r--. 110011001 0 May 24 22:29 file1

    在这里插入图片描述
    服务端

    [root@server mnt]# lltotal 0-rw-r--r-- 1 nfsnobody nfsnobody 0 May 24 22:28 file-rw-r--r-- 110011001 0 May 24 22:29 file1

    在这里插入图片描述
    no_root_squash服务端沿用客户端的用户

    vim /etc/exports/mnt 172.25.254.0/24(rw,async,anonuid=1001,anongid=1001,no_root_squash)exportfs -rv

    在这里插入图片描述
    客户端

    [root@client mnt]# useradd westos[root@client mnt]# chmod 777 /mnt

    在这里插入图片描述

    [root@client mnt]# su - westos[westos@client ~]$ cd /mnt[westos@client mnt]$ touch file2[westos@client mnt]$ lltotal 0-rw-r--r--. 1 nfsnobody nfsnobody 0 May 24 22:28 file-rw-r--r--. 1 westos westos 0 May 24 22:29 file1-rw-rw-r--. 1 westos westos 0 May 24 22:32 file2

    在这里插入图片描述
    服务端

    [root@server mnt]# lltotal 0-rw-r--r-- 1 nfsnobody nfsnobody 0 May 24 22:28 file-rw-r--r-- 110011001 0 May 24 22:29 file1-rw-rw-r-- 110011001 0 May 24 22:32 file2

    在这里插入图片描述
    服务端沿用客户端的用户,因为服务端没有westos用户,所以就将id直接裸露出来了
    在这里插入图片描述

    /mnt 172.25.254.0/24(rw,async,anonuid=1001,anongid=1001,all_squash,no_root_squash)
    客户端用户身份为服务器指定的用户,若没有指定,则为匿名用户,与客户端用户无关
    服务端
    在这里插入图片描述

    exportfs -rv

    客户端
    在这里插入图片描述
    切换到student用户在/mnt下建立file3,查看,发现还是文件的用户身份还是westos
    这是因为服务器指定的是1001用户,而在客户端1001即为westos用户,所以显示为(影射为客户端的westos)westos
    在这里插入图片描述
    在服务端查看
    在这里插入图片描述

    客户端自动挂载卸载
    yum install autofs
    在这里插入图片描述
    在这里插入图片描述
    下载后启动软件
    将之前做的挂载,卸载掉
    在这里插入图片描述
    cd /net/172.25.254.113/mnt
    然后df发现已经挂载,cd退出目录,5分钟后自动卸载
    在这里插入图片描述
    如何修改它的默认时间呢

    不同版本的软件配置文件不同,实际情况
    rpm -qc autofs
    查看配置文件
    在这里插入图片描述
    Vim /ect/autofs.conf
    在这里插入图片描述
    修改 timeout=10单位为秒
    在这里插入图片描述
    Systemctl restart autos

    cd /net/172.25.254.113/mnt
    df 查看,已挂载
    在这里插入图片描述
    cd 退出目录 ,10秒后再df查看
    在这里插入图片描述
    发现已经自动卸载

    修改默认挂载目录
    在客户端的autofs的主配置文件
    vim /etc/auto.master
    添加
    /mnt/etc/auto.nfs这个文件是自定义名称
    在这里插入图片描述
    然后配置这个文件

    Vim /etc/auto.nfswestos172.25.254.113:/mnt

    在这里插入图片描述

    systemctl restart autofs

    测试

    [root@client ~]# cd /mnt/westos[root@client westos]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/vda110473900 31540807319820  31% /devtmpfs469332 0 4693320% /devtmpfs484920  140 4847801% /dev/shmtmpfs48492012708 4722123% /runtmpfs484920 0 4849200% /sys/fs/cgroup172.25.254.113:/mnt  10473984 32368647237120  31% /mnt/westos

    在这里插入图片描述
    如何使/mnt下的子目录用哪个就挂载哪个
    一。先在server的/mnt下建立三个目录
    建好后刷新exportfs -rv
    在这里插入图片描述
    在这里插入图片描述
    二。配置client的/etc/auto.nfs文件

    vim /etc/auto.nfs

    添加

    *172.25.254.113:/mnt/&

    在这里插入图片描述
    systemctl restart autofs
    测试

    [root@client ~]# cd /mnt/westos1[root@client westos1]# dfFilesystem1K-blocks Used Available Use% Mounted on/dev/vda1  10473900 31541407319760  31% /devtmpfs  469332 0 4693320% /devtmpfs  484920  140 4847801% /dev/shmtmpfs  48492012708 4722123% /runtmpfs  484920 0 4849200% /sys/fs/cgroup172.25.254.113:/mnt/westos1  10473984 32373767236608  31% /mnt/westos1

    在这里插入图片描述
    [root@client westos1]# cd10s后自动卸载后再做下一步操作

    [root@client ~]# cd /mnt/westos2[root@client westos2]# dfFilesystem1K-blocks Used Available Use% Mounted on/dev/vda1  10473900 31541207319780  31% /devtmpfs  469332 0 4693320% /devtmpfs  484920  140 4847801% /dev/shmtmpfs  48492012708 4722123% /runtmpfs  484920 0 4849200% /sys/fs/cgroup172.25.254.113:/mnt/westos2  10473984 32373767236608  31% /mnt/westos2

    在这里插入图片描述
    用mount命令来查看

    172.25.254.113:/mnt/westos2 on /mnt/westos2 type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.25.254.213,local_lock=none,addr=172.25.254.113)

    在这里插入图片描述
    可以看到自动挂载时,不能像用mount命令可以设置挂载的权限
    那么自动挂载如何操作呢

    vim /etc/auto.nfs* -ro,vers=3172.25.254.113:/mnt/&

    在这里插入图片描述
    systemctl restart autofs

    测试

    cd /mnt/westos2mount

    172.25.254.113:/mnt/westos2 on /mnt/westos2 type nfs (ro,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=172.25.254.113,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=172.25.254.113)

    与上面对比发现,操作生效
    在这里插入图片描述

    源文地址:https://www.guoxiongfei.cn/csdn/4622.html