CentOS release 6.6 (Final)
[root@NFS-server ~]# uname -r #查看系统内核版本
2.6.32-504.el6.x86_64
[root@NFS-server ~]# uname -m #查看系统是否64位
x86_64
二、NFS服务端所需的软件列表
nfs-utils:这个是NFS服务主程序(包含rpc.nfsd、rpc.mountd、daemons)
rpcbind:这个是CentOS6.X的RPC主程序(CentOS5.X的为portmap)
三、检查软件是否安装
[root@NFS-server ~]# rpm -qa nfs-utils rpcbind #检查安装的软件包
rpcbind-0.2.0-12.el6.x86_64
nfs-utils-1.2.3-70.el6_8.2.x86_64
<如果没有安装在系统中通过yum 命令进行安装以上两个包>
[root@NFS-server ~]# yum install -y nfs-utils rpcbind #安装上述所需的两个软件包
四、启动NFS服务端相关服务
---开启rpcbind服务
[root@NFS-server ~]# /etc/init.d/rpcbind status #查询rpcbind服务状态并启动
rpcbind (pid 1281) is running...
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rpcbind 1281 rpc 6u IPv4 10766 0t0 UDP *:sunrpc
rpcbind 1281 rpc 8u IPv4 10769 0t0 TCP *:sunrpc (LISTEN)
rpcbind 1281 rpc 9u IPv6 10771 0t0 UDP *:sunrpc
rpcbind 1281 rpc 11u IPv6 10774 0t0 TCP *:sunrpc (LISTEN)
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1281/rpcbind
tcp 0 0 :::111 :::* LISTEN 1281/rpcbind
udp 0 0 0.0.0.0:608 0.0.0.0:* 1281/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 1281/rpcbind
udp 0 0 :::608 :::* 1281/rpcbind
udp 0 0 :::111 :::* 1281/rpcbind
[root@NFS-server ~]# chkconfig --list rpcbind #检查rpcbind自启动情况
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@NFS-server ~]# rpcinfo -p localhost #查看NFS服务项rpc服务器注册的端口信
[root@NFS-server ~]# /etc/init.d/nfs status #查看NFS服务并启动
rpc.svcgssd is stopped
rpc.mountd is stopped
nfsd is stopped
rpc.rquotad is stopped
[root@NFS-server ~]# /etc/init.d/nfs start
Starting NFS services: [ OK ]Starting NFS quotas: [ OK ]Starting NFS mountd: [ OK ]Starting NFS daemon: [ OK ]Starting RPC idmapd: [ OK ]
[root@NFS-server ~]# lsof -i :2049 #查看NFS端口启动(NFS默认端口为2049)
[root@NFS-server ~]# netstat -lntup|grep 2049 #查看NFS端口启动(NFS默认端口为2049)
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 :::2049 :::* LISTEN -
udp 0 0 0.0.0.0:2049 0.0.0.0:* -
udp 0 0 :::2049 :::* -
[root@NFS-server ~]# rpcinfo -p localhost #启动NFS过后rpcbind服务已经启用了对NFS的端口映射

[root@NFS-server ~]# chkconfig --list nfs #查看nfs的开机自启动情况
nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@NFS-server ~]# chkconfig nfs on #让NFS开机自启动
由于在NFS服务过程中,必须先启动rpcbind,再启动nfs,这样才能让NFS在rpcbind上注册成功
[root@NFS-server ~]# less /etc/init.d/rpcbind #查看rpcbind服务启动详情
[root@NFS-server ~]# less /etc/init.d/nfs
[root@NFS-server ~]# vi /etc/rc.local

rpcuser 1303 1 0 Nov22 ? 00:00:00 rpc.statd #检查文件一致性
root 1512 2 0 Nov22 ? 00:00:00 [rpciod/0]
rpc 2723 1 0 02:43 ? 00:00:00 rpcbind
root 2896 1 0 02:56 ? 00:00:00 rpc.rquotad #磁盘配额进程
root 2901 1 0 02:56 ? 00:00:00 rpc.mountd #权限管理验证等
root 2908 2 0 02:56 ? 00:00:00 [nfsd4]
root 2909 2 0 02:56 ? 00:00:00 [nfsd4_callbacks]
root 2910 2 0 02:56 ? 00:00:00 [nfsd]
root 2911 2 0 02:56 ? 00:00:00 [nfsd]
root 2912 2 0 02:56 ? 00:00:00 [nfsd]
root 2913 2 0 02:56 ? 00:00:00 [nfsd] #NFS主进程,管理登入,身份判定
root 2914 2 0 02:56 ? 00:00:00 [nfsd]
root 2915 2 0 02:56 ? 00:00:00 [nfsd]
root 2916 2 0 02:56 ? 00:00:00 [nfsd]
root 2917 2 0 02:56 ? 00:00:00 [nfsd]
root 2948 1 0 02:56 ? 00:00:00 rpc.idmapd #名称映射
<如果对上述进程不明白可以 用man命令查阅帮助信息,如 “man rpc.statd”>
五、配置NFS服务端 前面介绍了NFS的启动,接下来我们配置NFS服务端的配置 /etc/exports 是NFS程序的配置文件。并且默认为空 /etc/exports文件的配置格式为: NFS共享目录 NFS客户端地址1(参数1,参数2,参数3......) 客户端地址2(参数1,参数2,参数3......) NFS共享目录 NFS客户端地址(参数1,参数2,参数3......)

[root@NFS-server ~]# /etc/init.d/nfs reload
[root@NFS-server ~]# exportfs -r
[root@NFS-server ~]# showmount -e 127.0.0.1 #查看本机挂载情况
<必须先启动rpcbinc 再启动nfs才会显示正确>

[root@NFS-server ~]# mount -t nfs 192.168.1.5:/data /mnt #在本机测试挂载


[root@NFS-server ~]# cat /var/lib/nfs/etab #查看一条配置的详细信息

[root@master ~]# vi /etc/ha.d/haresources
master IPaddr::172.16.87.199/24/eth1 drbddisk::web Filesystem::/dev/drbd0::/drbd-data::ext4 killnfsd
注:该文件内IPaddr,Filesystem等脚本存放路径在/etc/ha.d/resource.d/下,也可在该目录下存放服务启动脚本(例如:mysql,www),将相同脚本名称添加到/etc/ha.d/haresources内容中,从而跟随heartbeat启动而启动该脚本。# vi /etc/ha.d/resource.d/killnfsd
killall -9 nfsd; /etc/init.d/nfs restart;exit 0# chmod 755 /etc/ha.d/resource.d/killnfsd
IPaddr::172.16.87.199/24/eth1:用IPaddr脚本配置对外服务的浮动虚拟IP
drbddisk::r0:用drbddisk脚本实现DRBD主从节点资源组的挂载和卸载
Filesystem::/dev/drbd0::/drbd-data::ext4 killnfsd 文件系统,目录及格式,后跟nfs资源脚本
2、nfs客户端挂载至heartbeat提供的虚拟vip上 mount -t nfs VIP:/drbd-data /testdata1
3、测试高可用 主服务器上关闭heartbeat服务---》VIP释放---》drbd资源是释放---》查看从服务器的各项状态
查看vip的切换 #ip add 查看drbd的主从状态 #cat /proc/drbd 查看nfs挂载情况 #df -h
通过一台测试机,挂载到虚地址,当故障切换时,nfs无间断提供服务,提供完美冗余。