Centos7配置nfs

NFS

NFS 就是 Network FileSystem ,此系统可以让不同操作系统、不同主机通过网络彼此分享文件,可以将其视为一个文件服务器。使用NFS可以将远程NFS服务器的分享目录挂载到本地主机上,本地主机访问共享目录就是访问远程的NFS服务器。本地主机被称为客户端。

NFS使用远程过程调用协议(Remote Procedure Call)来实现文件的传输

实验时,至少要开启2个虚拟机,一个充当 **服务器**,一个充当**客户端**。我的两个虚拟机都是用root用户登录的。普通用户登录应该也可以,有兴趣的可以试一下。
服务器端和客户端都需要进行配置

step1、配置服务器 端

开启一个虚拟机,充当服务器,打开终端,进行如下配置。

  1. 安装nfs服务

    yum -y install rpcbind nfs-utils
    
  2. 在服务器上创建共享目录,并设置权限。

    可以创建多个共享目录,这只演示一个。

    mkdir -p /data/share/       (这个目录随意)
    chmod 755 -R /data/share/   (目录权限根据需求设置即可)
    
  3. 配置nfs的配置文件

    nfs的配置文件是 /etc/exports ,如果 你没有这个文件,可以手动创建一个。

    exports翻译为 出口、输出,它就是用来配置 哪个或哪些主机能访问 服务器端的哪个共享目录。

    使用 vim /etc/exports ,然后按 i 进入编辑模式,在文件里输入

    /data/share/ *(rw,no_root_squash,no_all_squash,sync)   #(*代表任何ip都可以访问/data/share目录)
    

    编辑完成后,按Esc键,然后敲 :wq 保存并退出。

    补充:

    括号里的内容是权限参数.

    rw 表示设置目录可读写。

    sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。

    no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。

    no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。

    如果有多个共享目录配置,则使用多行,一行一个配置。保存好配置文件后,需要执行以下命令使配置立即生效:

    exportfs -r
    
  4. 防火墙设置

    博主采用直接关闭服务器端防火墙的方式。

    systemctl stop firewalld
    

    若不想关闭,请自行百度详细配置方式。

  5. 启动服务

    按顺序启动rpcbind和nfs服务:

    systemctl start rpcbind
    systemctl start nfs
    

    加入开机启动:

    systemctl enable rpcbind
    systemctl enable nfs
    

step2、配置客户 端

启动另一个虚拟机,这个虚拟机充当客户端。进行如下配置:

(注:我两台虚拟机都是用root登录的)

  1. 安装rpcbind

    客户端只需要安装rpcbind服务即可,无需安装nfs或开启nfs服务。

    yum -y install rpcbind
    
  2. 挂载远程nfs文件系统

    查看服务器端已共享的目录:使用 showmount -e 服务器的ip

    例如:192.168.10.128是nfs服务器的ip

    showmount -e 192.168.10.128
    

在这里插入图片描述

建立挂载目录(即挂载点),执行挂载命令:

 mkdir /mnt/nfsshare     (这个挂载目录随意创建)
 mount -t nfs 192.168.10.128:/data/share /mnt/nfsshare/ -o nolock,nfsvers=3,vers=3

如果不加 -onolock,nfsvers=3 则在挂载目录下的文件属主和组都是nobody,如果指定nfsvers=3则显示root。

-t nfs 表示这个设备(即nfs服务器上的share目录)使用的是nfs文件系统,

如果要解除挂载,可执行命令:umount 挂载点比如umount /mnt/nfsshare

  1. 设置开机自动挂载

    由于mount命令是临时挂载,所以,下一次开启虚拟机后,这个/mnt/nfsshare挂载目录就不能用了。所以我们要设置开机自动挂载。

    我们不要把挂载项写到/etc/fstab文件中,因为开机时先挂载本机磁盘再启动网络,而NFS是需要网络启动后才能挂载的,所以我们把挂载命令写入到/etc/rc.d/rc.local文件中即可。

    vim /etc/rc.d/rc.local
    按i进入编辑模式,然后在文件最后添加一行:
    mount -t nfs 192.168.10.128:/data/share /mnt/nfsshare/ -o nolock,nfsvers=3,vers=3
    然后Esc,敲:wq  退出并 保存
    

step3、测试

客户端输入命令:df -h

df -h
(功能描述:disk free 列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况。借助这个命令,我们能看到下面)

Centos7配置nfs_第1张图片
出现最后一行,恭喜你,挂载成功
以后在客户端访问 挂载目录/mnt/nfsshare ,其实就是访问远程的nfs服务器里的/data/share下的东西

接下来就可以在客户端上进入挂载目录/mnt/nfsshare下,新建/删除文件,然后在服务端的目录/data/share查看是不是有效果了。具体演示如下:
①在客户端的/mnt/nfsshare下创建一个a.txt
Centos7配置nfs_第2张图片Centos7配置nfs_第3张图片

同理,在服务器端创建一个文件b.txt,客户端也是可以读取.

Centos7配置nfs_第4张图片

Centos7配置nfs_第5张图片

你可能感兴趣的:(Linux,服务器,运维,linux)