• Liunx下NFS服务器的搭建与配置


    一、NFS简介

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

    NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本NFS数据传输基于RPC(Remote Procedure Call)协议。

    NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

    NFS在文件传送或信息传送过程中依赖于RPC协议。RPC (远程过程调用) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。

    简单来说:NFS可以透过网络,让不同的主机、不同的操作系统实现共享存储。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

    二、NFS搭建

    2.1 NFS服务端所需的软件列表
    nfs-utils: 这个是NFS服务主程序(包含rpc.nfsd、rpc.mountd、daemons)
    rpcbind: 这个是CentOS6.X的RPC主程序(CentOS5.X的为portmap)

    2.2 检查软件是否安装

    cat /etc/redhat-release #查看系统版本
    uname -r #查看系统内核版本
    uname -m #查看系统是否64位
    rpm -qa nfs-utils rpcbind #检查安装的软件包

    2.3 如果 nfs-utils 和 rpcbind 没有安装,可以使用 yum 命令进行安装

    yum install -y nfs-utils rpcbind

    2.4 启动NFS服务端相关服务 (CentOS7.4)

    /bin/systemctl start rpcbind.service
    /bin/systemctl start nfs.service

    如果是CentOS 6.x,执行以下脚本

    service rpcbind start
    service nfs start

    三、 配置NFS服务端

    3.1 创建共享目录,例如是 /data/nfs_share

    mkdir -p /data/nfs_share

    3.2 给目录添加权限

    chown -R nfsnobody /data/nfs_share

    3.2 编辑配置文件

    vi /etc/exports

    3.3 添加配置 (例如共享网段为 192.168.1.*)

    /data/nfs_share 192.168.1.0/24(rw,sync)

    3.4 使配置生效

    exportfs -r

    3.5 重启服务

    /bin/systemctl restart rpcbind.service
    /bin/systemctl restart nfs.service

    如果是CentOS 6.x

    service rpcbind start
    service nfs start

    3.6 查询NFS服务器

    showmount -e localhost

    如果正确,会打印 /data/nfs_share 192.168.1.0/24

    四、 配置NFS客户端

    4.1 客户端也需要安装rpcbind和nfs-utils软件,并且设置开机自启动。(只需要启动rpcbind即可)

    systemctl enable rpcbind.service  

    ( CentOS 6.x 的命令是 chkconfig rpcbind on )

    4.2 查看可以挂载目录 (这里假设NFS服务器IP是 192.168.1.1)

    showmount -e 192.168.1.1

    会打印出可以挂载的目录信息

    4.3 创建挂载目录(目录路径根据实际情况创建)

    mkdir /mnt/nfs_share 

    4.3 挂载目录

    mount -t nfs 192.168.1.1:/data/nfs_share/  /mnt/nfs_share -o proto=tcp -o nolock

    4.4 如果需要开机自动挂载目录,需要将挂载命令放在rc.local里面

    五、 配置Windows NFS客户端

    如果客户端是Windows,我们需要在程序和功能里面启用 NFS客户端。

    控制面板 -> 程序 -> 程序和功能 --> 勾选 NFS服务,NFS客户端,确定。

    之后可以在命令行使用mount命令挂载远程目录 (比如挂载到 Z 盘)

    mount ip:/192.168.1.1/ /data/nfs_share/ z:

    另外也可以在我的电脑(计算机) 中,创建映射网络驱动器,来挂载远程目录。

    如果Windows版本不支持NFS服务,那么需要安装  Windows Services for UNIX ,然后在Korn Shell (开始菜单 -> 程序 ->  Windows Services for UNIX -> Korn Shell) 中执行 mount命令。

    六、 配置防火墙

    如果网络环境中需要开启防火墙,那么需要在防火墙上打开如下端口:

    1. portmap 端口 111 udp/tcp;
    2. nfsd 端口 2049 udp/tcp;
    3. mountd 端口 "随机(32768-65535)" udp/tcp


    防火墙常用命令

    #启动防火墙
    systemctl start firewalld.service
    #关闭防火墙
    systemctl stop firewalld.service
    #重新载入
    systemctl restart firewalld.service
    #查看配置结果
    firewall-cmd --list-all
    #添加规则(指定端口,--permanent永久生效,没有此参数重启后失效)
    firewall-cmd --zone=public --add-port=8080/tcp --permanent #添加规则(指定IP与端口) firewall
    -cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.2" port protocol="tcp" port="8080" accept" #删除规则 firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.2" port protocol="tcp" port="8080" accept" #添加规则(端口段) firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.2" port protocol="tcp" port="8000-9000" accept"
  • 相关阅读:
    IOS开发中实现UITableView按照首字母将集合进行检索分组
    IOS开发中设置导航栏主题
    IOS中使用.xib文件封装一个自定义View
    IOS中将字典转成模型对象
    WindowsPhone8中LongListSelector的扩展解决其不能绑定SelectdeItem的问题
    WindowsPhone8.1 开发-- 二维码扫描
    tomcat 开机自启
    redis ubuntu 开机自启
    webStorm 中使用 supervisor 调试
    ubuntu 14.04 tab失效问题
  • 原文地址:https://www.cnblogs.com/relucent/p/10088785.html
Copyright © 2020-2023  润新知