【kubernetes/k8s概念】 nfs 概念与原理

1. NFS 原理

    NFS是Network File System的简写,即网络文件系统。NFS基于RPC(Remote Procedure Call)远程过程调用实现。由操作系统的内核,将 NFS 文件系统的调用请求通过 TCP/IP 发送至服务端的 NFS 服务。NFS服务器执行相关的操作,并将操作结果返回给客户端

 

【kubernetes/k8s概念】 nfs 概念与原理_第1张图片

  • rpc.nfsd:主要的NFS进程,管理客户端是否可登录
  • rpc.mountd:挂载和卸载NFS文件系统,包括权限管理
  • rpc.lockd:非必要,管理文件锁,避免同时写出错
  • rpc.statd:非必要,检查文件一致性,可修复文件

 

    1.1 配置文件/etc/exports

        每条配置记录由NFS共享目录、NFS客户端地址和参数这3部分组成

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

        /nfs/data *(rw,no_root_squash,sync)

  • root_squash:客户端使用root访问,服务器映射为服务器本地的匿名账号
  • no_root_squash:客户端连接服务端时使用的是root,拥有服务端分享的目录的root权限
  • sync:同步写操作,数据写入存储设备后返回成功信息(默认)
  • async:异步写操作,数据在未完全写入存储设备前就返回成功信息,实际还在内存

  

2. nfs服务端配置

    首先,需要安装nfs和rpcbind服务

    接着,需要创建使用共享目录的用户

    然后,需要对共享目录进行配置

    最后,需要启动rpcbind和nfs服务

    2.1 安装nfs服务和rpcbind服务

    # yum -y install nfs-utils rpcbind

检查nfs服务是否正常安装

  #  rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100024    1   udp  51776  status
    100024    1   tcp  52797  status
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  46824  nlockmgr
    100021    3   udp  46824  nlockmgr
    100021    4   udp  46824  nlockmgr
    100021    1   tcp  45418  nlockmgr
    100021    3   tcp  45418  nlockmgr
    100021    4   tcp  45418  nlockmgr   

    2.2 创建nfs共享目录

      为NFS服务其添加用户,可以使直接使用root

 

    # mkdir -p /nfs/data

    # chmod a+w /nfs/data

    2.3 配置文件 /etc/exports

    # echo "/nfs/data *(rw,no_root_squash,sync)" >> /etc/exports

    配置生效执行 exportfs -r 

    2.4 启动服务

     先启动rpcbind服务,再启动nfs服务,让nfs服务在rpcbind服务上注册

  # systemctl start rpcbind && systemctl enable rpcbind

  # systemctl start nfs && systemctl enable nfs

    2.5 检查nfs服务是否正常启动

   # showmount -e localhost
   Export list for localhost:
   /nfs/data *

    

 

你可能感兴趣的:(kubernetes,CSI,存储)