RedHat搭建NFS服务器

首先说一下什么是NFS,其实就是Network File System的缩写,是sun公司开发的。能够实现不同的机器,不同的操作系统乐意彼此共享文件。在我前面的文章中有提到Samba,它也是一种文件共享服务器。不同的是,NFS实现的是linux客户机之间的文件共享,而Samba主要是为了实现windows和linux之间的文件共享,前者相对简单,后者相对复杂,但是复杂必然有复杂的道理。

下面我介绍下如何搭建NFS服务器,以及客户机如何能够实现文件共享:

  1. 场景

某单位需要配置 NFS 服务器, 为另外一台运行 Oracle 数据库的 Linux 服务器提供备份存储。

主机名               IP 地址

nfs1.abc.local    192.168.1.241

db1.abc.local     192.168.1.242

2. 实验环境

2.1. 操作系统安装

# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 6.4 (Santiago)

# uname -a

Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29

11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

2.2. 服务器基本配置

修改 IP 地址。 (注意:根据您的实现环境进行配置)

# vi /etc/sysconfig/network-scripts/ifcfg-eth0 

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.1.241

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

修改主机名

# vi /etc/sysconfig/network

NETWORKING=yes

#HOSTNAME=localhost.localdomain

HOSTNAME=nfs1.abc.local

# service network restart 

为了方便实验,将防火墙关闭。

# service iptables stop 

# chkconfig iptables off 

同时关闭 selinux。


# vi /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

#SELINUX=enforcing

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

重新启动以便生效。

# reboot

3. NFS 服务器安装与配置

3.1. 安装 NFS 服务器组件

3.1.1. 方法 1:通过 RPM 来进行安装

# mkdir /mnt/cdrom 
# mount /dev/cdrom /mnt/cdrom/ 
mount: block device /dev/sr0 is write-protected, mounting read-only 
# cd /mnt/cdrom/Packages/  
# ls nfs* 
nfs4-acl-tools-0.3.3-6.el6.x86_64.rpm  
nfs-utils-1.2.3-36.el6.x86_64.rpm  
nfs-utils-lib-1.1.5-6.el6.i686.rpm  
nfs-utils-lib-1.1.5-6.el6.x86_64.rpm 
# rpm -ivh nfs-utils-1.2.3-36.el6.x86_64.rpm  
error: Failed dependencies: 
        keyutils >= 1.4-4 is needed by nfs-utils-1:1.2.3-36.el6.x86_64 
        libevent is needed by nfs-utils-1:1.2.3-36.el6.x86_64 
        libevent-1.4.so.2()(64bit) is needed by nfs-utils-1:1.2.3-36.el6.x86_64 
        libgssglue is needed by nfs-utils-1:1.2.3-36.el6.x86_64 
        libgssglue.so.1()(64bit) is needed by nfs-utils-1:1.2.3-36.el6.x86_64 
        libgssglue.so.1(libgssapi_CITI_2)(64bit) is needed by nfs-utils-1:1.2.3-36.el6.x86_64 
        libnfsidmap.so.0()(64bit) is needed by nfs-utils-1:1.2.3-36.el6.x86_64 
        libtirpc is needed by nfs-utils-1:1.2.3-36.el6.x86_64 
        libtirpc.so.1()(64bit) is needed by nfs-utils-1:1.2.3-36.el6.x86_64 
        nfs-utils-lib >= 1.1.0-3 is needed by nfs-utils-1:1.2.3-36.el6.x86_64 
        rpcbind is needed by nfs-utils-1:1.2.3-36.el6.x86_64 
解决包的依赖性 
# rpm -ivh nfs-utils-1.2.3-36.el6.x86_64.rpm \ 
nfs-utils-lib-1.1.5-6.el6.x86_64.rpm \ 
rpcbind-0.2.0-11.el6.x86_64.rpm keyutils-1.4-4.el6.x86_64.rpm  \ 
libevent-1.4.13-4.el6.x86_64.rpm \ 
libgssglue-0.1-11.el6.x86_64.rpm  \ 
libtirpc-0.2.1-5.el6.x86_64.rpm  
Preparing...                ########################################### [100%] 
   1:libgssglue             ########################################### [ 14%] 
   2:libtirpc               ########################################### [ 29%] 
   3:rpcbind                ########################################### [ 43%] 
   4:libevent               ########################################### [ 57%] 
   5:keyutils               ########################################### [ 71%] 
   6:nfs-utils-lib          ########################################### [ 86%] 
   7:nfs-utils              ########################################### [100%]

3.1.2. 方法 2:通过 YUM 来进行安装

通过 YUM 来解决包的相关性,需要配置yum源

# mkdir /mnt/cdrom 
# mount /dev/cdrom /mnt/cdrom/ 
mount: block device /dev/sr0 is write-protected, mounting read-only  
# vi /etc/yum.repos.d/rhel-dvd.repo 
创建新的文件,添加如下内容: 
[rhel-dvd] 
name=Red Hat Enterprise Linux $releasever - $basearch - DVD 
baseurl=file:///mnt/cdrom/Server/ 
enabled=1 
gpgcheck=1 
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release 
# yum list | grep nfs 
nfs-utils.x86_64           1:1.2.3-36.el6  rhel-dvd  
nfs-utils-lib.i686         1.1.5-6.el6     rhel-dvd  
nfs-utils-lib.x86_64       1.1.5-6.el6     rhel-dvd  
nfs4-acl-tools.x86_64      0.3.3-6.el6     rhel-dvd  
sblim-cmpi-nfsv3.i686      1.1.1-1.el6     rhel-dvd  
sblim-cmpi-nfsv3.x86_64    1.1.1-1.el6     rhel-dvd  
sblim-cmpi-nfsv4.i686      1.1.0-1.el6     rhel-dvd  
sblim-cmpi-nfsv4.x86_64    1.1.0-1.el6     rhel-dvd   
# yum -y install nfs-utils

很方便地就安装完毕了

3.2. 启动 NFS 服务

NFS 依赖 rpcbind 服务,设置为其自动启动

由于nfs服务依赖于rpc(远程过程调用)服务,所以在启动nfs服务之前,需要先启动rpc服务

# chkconfig rpcbind on 
# service rpcbind start 
# service nfs start 
Starting NFS services:                                     [  OK  ] 
Starting NFS quotas:                                       [  OK  ] 
Starting NFS mountd:                                       [  OK  ] 
Starting NFS daemon:                                       [  OK  ] 
# tail /var/log/messages 中 
rpc.mountd[1797]: Version 1.2.3 starting 
kernel: NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state 
recovery directory 
kernel: NFSD: starting 90-second grace period 
# chkconfig nfs on

3.3. 配置 NFS 服务器

查看当前共享的 NFS 信息

# showmount -e localhost

Export list for localhost: 空白无输出

下面,做一个最基础的测试。创建 export 目录,分配权限

# mkdir /nfsdata

# ll /nfsdata/ -d

drwxr-xr-x 2 root root 4096 Jul 31 15:16 /nfsdata/

# chmod a+w /nfsdata/ 

# ll /nfsdata/ -d

drwxrwxrwx 2 root root 4096 Jul 31 15:16 /nfsdata/

配置 export 文件

# vi /etc/exports

添加如下内容,注意选项中逗号之间没有空格!

/nfsdata *(rw,root_squash,no_all_squash,sync)

这里的意思是说,需要共享/nfsdata这个目录,对所有客户端(*)都是可读写的(rw),并且是异步方式来访问。 因为不设置其他参数, 客户端创建文件或目录时默认的属主和组就是nfsnobody,即使客户端使用的账号是root。

# exportfs -r

Tip: -r Reexport all directories, synchronizing /var/lib/nfs/etab with /etc/exports. This option

removes entries in /var/lib/nfs/etab which have been deleted from /etc/exports, and removes

any entries from the kernel export table which are no longer valid.

# showmount -e localhost

Export list for localhost:

/nfsdata *

自己连接一下自己,测试一下。

# mkdir /mnt/nfs

# mount 127.0.0.1:/nfsdata/ /mnt/nfs

查看 mount 的信息

# mount

/dev/mapper/VolGroup-lv_root on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sr0 on /mnt/cdrom type iso9660 (ro)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

nfsd on /proc/fs/nfsd type nfsd (rw)

127.0.0.1:/nfsdata/ on /mnt/nfs type nfs (rw,vers=4,addr=127.0.0.1,clientaddr=127.0.0.1)

检查目录是否可以写入。

# touch /mnt/nfs/testfile1.txt

# ll /mnt/nfs/testfile1.txt

-rw-r--r-- 1 nfsnobody nfsnobody 0 Jul 31 15:28 /mnt/nfs/testfile1.txt

注:如果以后直接在服务器上的共享目录创建文件或目录,要记得将属主和组设置为nfsnobody。否则客户端在访问时会出现“Permission denied”。

3.4. 配置 NFS 客户机

NFS 客户机也需要安装 nfs-utils 包。

# showmount -e 192.168.1.241

Export list for 192.168.1.241:

/nfsdata *

[[email protected] ~]# mount 192.168.1.241:/nfsdata /mnt/nfs/ 

[[email protected] ~]# ls /mnt/nfs/ -l

total 0

-rw-r--r-- 1 nfsnobody nfsnobody 0 Jul 31 15:28 testfile1.txt

[[email protected] ~]# echo test >> /mnt/nfs/testfile1.txt

[[email protected] ~]# ls /mnt/nfs/testfile1.txt

/mnt/nfs/testfile1.txt

[[email protected] ~]# ls /mnt/nfs/testfile1.txt  -l

-rw-r--r-- 1 nfsnobody nfsnobody 5 Jul 31 15:47 /mnt/nfs/testfile1.txt

4.排错

4.1 启动NFS服务时出错

原因可能是rpcbind没有启动

# service rpcbind start

# service nfs start

4.2 权限出错

是文件系统的权限不足

# chmod a+w /nfsdata

时间: 2024-08-06 21:21:46

RedHat搭建NFS服务器的相关文章

Centos6.4搭建NFS 服务器实例(四)

Centos6.4搭建NFS 服务器实例: 服务器系统 角色 IP CentOS-64-121-server1 NFS服务器端 192.168.1.121 CentOS-64-129-client NFS客户端 192.168.1.129 共享CentOS-64-121-server1中/data/bbs目录,使192.168.1.1 IP段所有主机都可以访问 配置服务端: 首先创建实验环境目录 [[email protected] ~]# mkdir /data/bbs –p [[email 

Centos5.8搭建NFS 服务器实例(三)

Centos5.8搭建NFS 服务器实例: 服务器系统 角色 IP CentOS-5.8-111-server1 NFS服务器端 192.168.1.111 CentOS-5.8-119-client NFS客户端 192.168.1.119 共享CentOS-5.8-111-server1中/data/bbs目录,使192.168.1.1 IP段所有主机都可以访问 配置服务端: 首先创建实验环境目录 [[email protected] ~]# mkdir /data/bbs –p [[ema

基于NFS v4版本搭建NFS服务器

基于NFS  v4版本搭建NFS服务器 1资源规划 作用 IP 版本 NFS服务端 192.168.78.1 Centos6.5 64位 NFS客户端 192.168.78.1 Centos6.5 64位 2 NFS服务端安装配置 2.1 安装rpm包 yum install  nfs-utils  nfs-utils-lib  nfs4-acl-tools rpcbind 2.2 新建要导出的目录 mkdir  -pv  /home/data/ mkdir  -pv  /home/nfs/ 2

Win7系统下搭建NFS服务器

Win7系统下搭建NFS服务器 采用Linux系统的服务器管理员都知道linux系统中能用NFS网络文件系统这套程序实现linux和unix系统之间的文件共享.那么能否在windows系统中采用NFS功能实现文件共享,让Linux系统来访问呢?答案是可以实现.但是必须在windows系统中安装一个实现NFS功能的第3方软件haneWin.本文在win7旗舰版系统中安装和配置NFS软件.然后在win7.Linux的客户端挂载我电脑共享的文件夹就可以实现了. 第1步,安装haneWin软件.下载地址

AIX系统搭建NFS服务器

本文使用场景:aix6.1升级到aix7.1之后,需要打补丁aix7.1 TL4的补丁,补丁文件有将近10G,当多个系统都升级时,此时搭建nfs服务器,只需要一次上传,其余需升级系统作为客户端只需通过挂载就可访问. 服务器端配置: 通过命令: mknfs -B 或者 startsrc -g nfs 启动nfs服务, 通过命令: lssrc -g nfs 查看服务是否启动,除了nfsrgyd(nfsv4使用)和gssd(安全相关服务)不需要,其余服务均需要,如果未启动通过命令启动: startsr

Ubentu搭建nfs服务器

搭建nfs服务    功能:完成在线调试程序,远程挂载,在线调试    NFS(Network FileSystem,网络文件系统)是由SUN公司发展,并于1984年推出的技术,用于不同机器,不同操作系统之间通过网络互相分享各自的文件.    过程:1.安装nfs-kernel-server            命令:apt-get install nfs-kernel-server          2.设置NFS-Server目录.修改/etc/exports文件,可以在其中增设NFS服务

Ubuntu下搭建nfs服务器

搭建环境 Ubuntu12.04, Zynq 1.在PC机的Ubuntu系统安装nfs服务器 # sudo apt-get install nfs-kernel-server 2.修改nfs配置文件 # sudo vi /etc/exports 在最后一行添加/home/share *(rw,sync,no_subtree_check),其中/home/share是你需要分享的文件夹(该文件夹自己定义). 3.修改配置后,启动或重启nfs # /etc/init.d/nfs-kernel-ser

centos7搭建nfs服务器与客户端连接

最近学习PVE,需要用到NFS,遂学习NFS服务器的搭建,记录如下: 一,服务器端搭建1.服务器环境:用PVE安装centos7,最小化安装,然后安装常用工具 yum install -y net-tools vim wget IP:192.168.41.179 2.因为centos7自带了rpcbind,所以只需要安装nfs服务端就可以了 yum -y install nfs-utils 查看是否安装成功 rpm -qa nfs-utils 3.创建共享目录并设置权限 mkdir /data/

Linux搭建 nfs 服务器

使用linux进行嵌入式开发的时候,为了方便开发,通常是将开发板挂载到宿主机的文件系统上,然后将代码放到共享给开发板的目录中,再通过开发板运行. 首先查看是否安装了 nfs 软件包,yum list installed | grep nfs.如果安装,则可进行下面设置. nfs 服务器端配置: 1.首先建立共享目录:在根目录下建立share目录.执行 mkdir /share 2.然后对 exports 文件进行编辑:vim /etc/exports 如果之前没有通过 nfs 共享过目录,该文件