• linuxnfs服务安装与配置实践


    目录

    一.NFS服务

    二.NFS和RPC的概念

    三.什么是RPC

    四.工具

    五.安装配置NFS环境

    1.查看一下是否有nfs-utils和rpcbind软件包的安装rpm包

    2.安装nfs-utils 、rpcbind

    3.环境配置

    1.nfs配置文件需要遵守如下规则:

    2.nfs语法参数解释:

    3.nfs客户端地址形式

    4.nfs客户端权限参数

    七、nfs服务端的文件目录共享实践

    1.前提

    2.nfs服务端部署

    3.修改nfs服务端的配置文件,进行客户端授权

    4.挂载


    一.NFS服务

    专用于linux和linux之间的专门的文件共享服务(NFS)服务,network filesystem网络文件系统

    NFS服务可以把远程linux机器上面的文件目录数据,通过挂载的形式,映射到用户本地机器

    本地/mnt ------------- 远方的一台服务器/sharedir

    二.NFS和RPC的概念

    NFS通过port传输数据,NFS服务在传输数据的时候,端口是随机选择的(自己重启NFS服务,查看端口是否在变化)

    但是因为NFS的端口是随机的,既然端口不确定,客户端是无法链接NFS服务的

    所以我们就需要一个另外的服务,进行NFS的端口注册,并且告知客户端NFS的工作端口是哪一个,以此让客户端能连接到服务器的NFS服务

    三.什么是RPC

    RPC(远程过程调用)

    linux使用NFS服务必须启动2个服务

    • NFS服务
    • RPC服务

    NFS服务通过RPC注册自己的端口功能

    RPC服务功能就是记录每个NFS服务对应的端口号,并且RPC保证了NFS客户端发出请求的时候,把该功能对应的端口信息告知NFS客户端,保证客户端能够正确连接到NFS服务端的端口,达到数据传输目的

    0c31c0eecac5455588167404f3ceeeac.png

    四.工具

    • nfs-utils:NFS服务的主程序,包括了rpc.nfsd rpc.mountd这两个守护进程,相关配置文件信息
    • RPCBIND:

    RPC在centos7系统平台下,实现的软件RPCBIND服务

    NFS服务的配置,必须要先运行好RPCBIND服务才可以

    如果RPCBIND服务重启了,原本注册的NFS服务端的信息也失效了,你还得再重启NFS服务端,重新注册信息才可以

    如果仅仅修改了NFS配置文件,不需要重启NFS服务端,因为重启后,端口的信息就更新了,还得重新注册。

    五.安装配置NFS环境

    1.查看一下是否有nfs-utils和rpcbind软件包的安装rpm包

    1. [root@localhost virtual_user_dir]# rpm -qa nfs-utils rpcbind
    2. nfs-utils-1.3.0-0.68.el7.x86_64
    3. rpcbind-0.2.0-49.el7.x86_64

    66c9acac9d5b4a04b4ac38cd98b5a99a.png

    2.安装nfs-utils 、rpcbind

    yum install nfs-utils

    31ddec9741c948269652a6387b19ac52.png

    yum install rpcbind

    82be20580af74c40858edbb5ee78e0c8.png

    3.环境配置

    NFS是c/s模式,准备一个nfs服务端,准备一个nfs客户端,两台linux机器

    再nfsserver端创建一个 用于共享的文件夹,且设置相应的读写权限

    1. mkdir /sharenfs
    2. chmod -Rf 777 /sharenfs/

    六、nfs的配置文件

    vim /etc/exports

    1.nfs配置文件需要遵守如下规则:

    nfs共享目录 nfs客户端地址(参数1,参数2……) NFS客户端地址2(参数1,参数2……)

    例如:

    #把nfs服务端的根目录共享出去,且允许两个主机名为client1,client2的机器,可以进行rw读写权限 / client1(rw) client2(rw)

    #允许任意的客户端,都能够挂载到此nfs /public *(rw)

    #只允许指定的ip地址的服务器,能够挂载此NFS服务端的/home/nfsfile文件夹且是只读的 /home/nfsfile 101.1.16.61(ro)

    2.nfs语法参数解释:

    nfs共享目录是绝对路径

    nfs客户端地址,也就是nfs服务器授权可以访问共享目录的地址,可以写主机名,可以写通配符,ip地址

    权限参数对nfs授权的客户端,进行权限控制的参数

    3.nfs客户端地址形式

    单一客户端 10.1.1.1 ---用的很少

    允许整个网段访问 10.1.1.0/24 ---局域网,用的较多

    授权整个域名客户端 nfs.baidu.cn ---用的很少

    授权子域名客户端 *.baidu.cn ---用的少

    4.nfs客户端权限参数

    ro ---只读

    rw ---读写

    root_squash ---当nfs客户端以root账号访问nfs服务端共享目录数据的时候,把该root映射为nfs服务端的一个匿名用户,该用户的uid,gid会变成nfsnobody的信息

    no_root_squash ---几乎和上面一样,但是不安全,因为会映射成root账户

    all_squash ---所有nfs客户端的用户都映射为匿名用户,很安全,生产环境常用

    sync ---数据同步写入到内存和磁盘,有点是保证内存数据安全,但效率太低

    async ---数据先写入内存,再写入到磁盘,但是内存是易失性存储,所以掉电可能会出问题

    七、nfs服务端的文件目录共享实践

    1.前提

    nfs服务是基于rpc的111通信端口,必须要先确保已经启动了rpc服务

    如果rpcbind服务停止了,111端口也不会挂掉,因为centos7还提供了rpcbind.socket服务运行着

    其实也就是保证rpcbind服务正常运行

    1. [root@localhost virtual_user_dir]# systemctl restart rpcbind
    2. [root@localhost virtual_user_dir]# systemctl status rpcbind

    b0de97f1803e4fa0be3e2554f3c041b7.png

    [root@localhost virtual_user_dir]# netstat -tunlp|grep 111

    92ad4806b7884f84bc673b969bfbe5ce.png

    2.nfs服务端部署

    前面已经确保了rpcbind服务正确启动

    现在需要创建nfs服务端共享的目录

    1. mkdir -p /sharenfs
    2. chmod -Rf 777 /sharenfs/

    我们再创建两个文件

    1. touch /sharenfs/file1
    2. touch /sharenfs/file2

    33f128a99f1f40e4b09d84d14bd73ed9.png

    防止出现权限问题,把目录所有人调整为nfsnobody

    chown -R nfsnobody.nfsnobody /sharenfs/
    

    3.修改nfs服务端的配置文件,进行客户端授权

    1. vim /etc/exports
    2. /sharenfs *(insecure,rw,sync:)

    a2e6d931affb45459f848741bc39bb26.png

    4.挂载

    1. [root@localhost sharenfs]# mount -t nfs 127.0.0.1:/sharenfs /mnt
    2. [root@localhost sharenfs]# df -h
    3. Filesystem Size Used Avail Use% Mounted on
    4. devtmpfs 3.6G 0 3.6G 0% /dev
    5. tmpfs 3.6G 20M 3.6G 1% /dev/shm
    6. tmpfs 3.6G 13M 3.6G 1% /run
    7. tmpfs 3.6G 0 3.6G 0% /sys/fs/cgroup
    8. /dev/mapper/centos-root 47G 8.0G 40G 17% /
    9. /dev/sda1 1014M 185M 830M 19% /boot
    10. tmpfs 727M 36K 727M 1% /run/user/1000
    11. /dev/sr0 4.4G 4.4G 0 100% /run/media/o/CentOS 7 x86_64
    12. 127.0.0.1:/sharenfs 47G 8.0G 40G 17% /mnt
    13. [root@localhost sharenfs]# cd /mnt/
    14. [root@localhost mnt]# ls
    15. file1 file2
    16. [root@localhost mnt]#

    9a76ebcaef854e5cb981e57dd57b0ba7.png

  • 相关阅读:
    golang singleflight资料整理
    多边形外的点到多边形边界最近点的坐标
    Element UI的介绍
    Android设备搭建http服务器AndServer
    Hard negtive node(硬负样本节点)与 Easy negative nodes(简单样本节点)
    网络编程 day02 (linux) send recv bing listen accept 函数的 知识
    sql注入的数据提交方式和查询方式
    六、鼎捷T100生产管理之生产入库管理篇
    代码随想录34|62.不同路径,63. 不同路径 II,343. 整数拆分
    想当领导,有哪些能力是需要培训的?
  • 原文地址:https://blog.csdn.net/bmxch/article/details/134045373