NFS服务器搭建全攻略

如何制作nfs服务器

时间:2024-11-15 13:28


如何制作NFS服务器 NFS(Network File System)是一种网络文件系统协议,它允许不同计算机、不同操作系统之间共享文件

    NFS最早由Sun公司在1984年开发,目的是让不同计算机之间可以方便地共享文件和操作系统资源

    由于NFS使用起来非常方便,因此很快得到了大多数UNIX/Linux系统的支持,并被IETF(国际互联网工程组)制定为RFC1904、RFC1813和RFC3010标准

    本文将详细介绍如何制作NFS服务器,涵盖从环境配置到客户端挂载的全过程

     一、NFS的由来与功能 NFS的核心功能是允许网络中的不同机器共享文件

    通过NFS,用户可以将网络中的NFS服务器的共享目录挂载到本地端的文件系统中,就像操作本地磁盘分区一样方便

    NFS的端口通常开在2049,但由于文件系统非常复杂,NFS还会启动其他额外的端口,这些端口默认是随机的,但小于1024

     RPC(Remote Procedure Call,远程过程调用)是NFS的重要组成部分

    RPC的主要功能是指定每个NFS功能所对应的端口号,并通知给客户端,让客户端可以连接到正确的端口

    当服务器启动NFS时,会随机选取数个端口,并主动向RPC注册,因此RPC可以知道每个端口对应的NFS功能

     二、环境配置 在制作NFS服务器之前,需要确保服务器和客户端的网络环境配置正确,包括IP地址、DNS等

    此外,还需要关闭防火墙和SELinux,以避免它们对NFS服务的干扰

     关闭防火墙 systemctl stop firewalld systemctl disable firewalld 关闭SELinux setenforce 0 三、NFS服务器端配置 1. 安装NFS和RPC服务 在Ubuntu和CentOS系统上,安装NFS和RPC服务的命令略有不同

     Ubuntu: sudo apt-get update sudo apt-get install nfs-kernel-server CentOS: sudo yum update sudo yum install nfs-utils rpcbind 2. 创建共享目录 接下来,需要创建一个目录作为NFS的共享目录

    例如,可以创建一个名为`/mnt/nfs`的目录

     sudo mkdir -p /mnt/nfs 然后,设置该目录的权限

    在生产环境中,建议按照最小权限进行设置,以避免安全隐患

    但在这里,为了演示方便,我们将权限设置为777

     sudo chmod -R 777 /mnt/nfs 3. 修改NFS配置文件 NFS的主要配置文件是`/etc/exports`

    该文件用于设置NFS服务器的共享目录及其访问权限

     使用`vi`或`nano`等文本编辑器打开`/etc/exports`文件,并添加以下内容: sudo vi /etc/exports 添加以下内容,表示允许所有客户端以读写权限访问共享目录,并同步写入数据

     /mnt/nfs(rw,sync,no_subtree_check,no_root_squash) 这里的配置参数解释如下: - `rw`:表示目录读写权限

     - `sync`:数据写入磁盘模式,同步写入可以保证数据一致性

     - `no_subtree_check`:即使输出目录是一个子目录,NFS服务器也不检查其父目录的权限,以提高效率

     - `no_root_squash`:表示当客户机以root身份访问时赋予本地root权限(注意:这有安全风险,通常建议使用`root_squash`)

     4. 启动RPC和NFS服务 在启动NFS服务之前,需要先启动RPC服务

    因为NFS需要向RPC服务器注册,所以RPC服务必须优先于NFS服务启动

     启动RPC服务: sudo systemctl start rpcbind sudo systemctl enable rpcbind 启动NFS服务: Ubuntu: sudo systemctl start nfs-kernel-server sudo systemctl enable nfs-kernel-server CentOS: sudo systemctl start nfs-server sudo systemctl enable nfs-server 5. 加载exports配置 使用`exportfs`命令加载`/etc/exports`配置

     sudo exportfs -arv 或者,也可以重启NFS服务器来加载配置

     Ubuntu: sudo systemctl restart nfs-kernel-server CentOS: sudo systemctl restart nfs-server 6. 查看export列表 使用`showmount`命令查看NFS服务器导出的共享目录列表

     showmount -e localhost 四、NFS客户端配置 1. 安装客户端软件 在客户端机器上,需要安装NFS客户端软件`nfs-utils`

     Ubuntu: sudo apt-get install nfs-common CentOS: sudo yum install nfs-utils 2. 查看服务端可共享的目录 使用`showmount`命令查看NFS服务端提供的共享目录列表

     showmount -e NFS服务器IP 3. 挂载服务端共享目录 在客户端上创建一个挂载点目录,例如`/mnt/nfs_client`,然后使用`mount`命令挂载NFS服务器的共享目录

     sudo mkdir -p /mnt/nfs_client sudo mount -t nfs NFS服务器IP:/mnt/nfs /mnt/nfs_client 此时,客户端就可以像访问本地文件一样访问NFS服务器的共享目录了

     4. 卸载NFS目录挂载 如果不再需要访问NFS服务器的共享目录,可以使用`umount`命令卸载挂载点

     sudo umount /mnt/nfs_client 五、性能优化与监控 为了确保NFS服务器的性能始终保持在最佳状态,需要定期监控和优化NFS的性能指标

    以下是一些性能优化的建议: 1.使用最新版本的NFS:以获得最新的性能优化和bug修复

     2.配置合适的RPC和NFS参数:根据系统需求,调