Chinaunix首页 | 论坛 | 博客
  • 博客访问: 173992
  • 博文数量: 56
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 550
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-17 16:14
文章分类

全部博文(56)

文章存档

2015年(24)

2014年(32)

我的朋友

分类: LINUX

2015-01-20 18:04:54

NFS概述

网络文件系统(Network File System,NFS),一种使用于分散式文件系统的协议,由升阳公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在Unix系统间实现磁盘文件共享的一种方法。
NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

NFS 提供了以下的服务:

1)在目录(directory)中查找文件
2)列出目录中的文件
3)管理目录
4)取得各文件的属性(file attribute)
5)文件的读/写

NFS服务端(NFS-Server)

环境说明

NFS-Server: 192.168.1.189 (Centos 6.3)
NFS-Client: 192.168.1.193 (Centos 6.3)

NFS-Server安装


[root@centos189 ~]# yum install nfs-utils rpcbind

注:若是在centos 5上安装,使用yum install nfs-utils portmap

NFS-Server配置

创建共享目录(设置读写权限):


[root@centos189 ~]# mkdir -p /data/nfs_storage
[root@centos189 ~]# chmod 755 /data/nfs_storage/

导出共享目录设置:


[root@centos189 ~]# vi /etc/exports 
[root@centos189 ~]# cat /etc/exports 
/data/nfs_storage 192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)

注:NFS共享目录为:/data/nfs_storage
192.168.1.0/24表示192.168.1.0-192.168.1.254区间的IP都可以访问
rw表示允许客户端有读写权限(如只允许只读,可使用ro)
sync表示当有新的文件/文件夹的时候即同步共享目录
no_root_squash表示允许root权限(用户可以读/写/删除共享目录中的文件)
no_all_squash表示允许用户的权限

iptables防火墙设置

设置nfs相关端口:


[root@centos189 ~]# vi /etc/sysconfig/nfs 
[root@centos189 ~]# cat /etc/sysconfig/nfs 
#
# Define which protocol versions mountd 
# will advertise. The values are "no" or "yes"
# with yes being the default
#MOUNTD_NFS_V2="no"
#MOUNTD_NFS_V3="no"
#
# Path to remote quota server. See rquotad(8)
#RQUOTAD="/usr/sbin/rpc.rquotad"
# Port rquotad should listen on.
RQUOTAD_PORT=875
# Optinal options passed to rquotad
#RPCRQUOTADOPTS=""
#
# Optional arguments passed to in-kernel lockd
#LOCKDARG=
# TCP port rpc.lockd should listen on.
LOCKD_TCPPORT=32803
# UDP port rpc.lockd should listen on.
LOCKD_UDPPORT=32769
#
# Optional arguments passed to rpc.nfsd. See rpc.nfsd(8)
# Turn off v2 and v3 protocol support
#RPCNFSDARGS="-N 2 -N 3"
# Turn off v4 protocol support
#RPCNFSDARGS="-N 4"
# Number of nfs server processes to be started.
# The default is 8. 
#RPCNFSDCOUNT=8
# Stop the nfsd module from being pre-loaded
#NFSD_MODULE="noload"
# Set V4 grace period in seconds
#NFSD_V4_GRACE=90
#
# Optional arguments passed to rpc.mountd. See rpc.mountd(8)
#RPCMOUNTDOPTS=""
# Port rpc.mountd should listen on.
MOUNTD_PORT=892
#
# Optional arguments passed to rpc.statd. See rpc.statd(8)
#STATDARG=""
# Port rpc.statd should listen on.
STATD_PORT=662
# Outgoing port statd should used. The default is port
# is random
STATD_OUTGOING_PORT=2020
# Specify callout program 
#STATD_HA_CALLOUT="/usr/local/bin/foo"
#
# Optional arguments passed to rpc.idmapd. See rpc.idmapd(8)
#RPCIDMAPDARGS=""
#
# Set to turn on Secure NFS mounts. 
#SECURE_NFS="yes"
# Optional arguments passed to rpc.gssd. See rpc.gssd(8)
#RPCGSSDARGS=""
# Optional arguments passed to rpc.svcgssd. See rpc.svcgssd(8)
#RPCSVCGSSDARGS=""
#
# To enable RDMA support on the server by setting this to
# the port the server should listen on
#RDMA_PORT=20049

重启NFS:


[root@centos189 ~]# /etc/init.d/nfs restart

添加iptables规则:


[root@centos189 data]# vi /etc/sysconfig/iptables
[root@centos189 data]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
-A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 32769 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 32803 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 662 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 662 -j ACCEPT

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 11300:11301 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4730:4731 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 3999:4000 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

重启iptables:


[root@centos189 data]# service iptables restart

NFS启动


[root@centos189 ~]# chkconfig rpcbind on
[root@centos189 ~]# chkconfig nfs on
[root@centos189 ~]# service rpcbind start
[root@centos189 ~]# service nfs start

检查配置是否成功:


[root@centos189 ~]# exportfs
/data/nfs_storage
		192.168.1.0/24

NFS客户端

NFS-Client安装


[root@centos193 ~]# yum install nfs-utils rpcbind

注:若是在centos 5上安装,使用yum install nfs-utils portmap

NFS-Client启动


[root@centos193 ~]# chkconfig rpcbind on
[root@centos193 ~]# chkconfig nfs on
[root@centos193 ~]# service rpcbind start
[root@centos193 ~]# service nfs start

NFS-Client挂载共享目录
创建挂载点:


[root@centos193 ~]# mkdir -p /data/nfs_shared

查看nfs能否访问:


[root@centos193 ~]# showmount -e 192.168.1.189
Export list for 192.168.1.189:
/data/nsf_storage 192.168.1.0/24

挂载NFS-Server的共享目录:


[root@centos193 ~]# mount -t nfs 192.168.1.189:/data/nfs_storage /data/nfs_shared

查看是否挂载成功:
[root@centos193 data]# mount
/dev/mapper/vg_centos6-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)
/dev/mapper/vg_centos6-lv_home on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.1.189:/data/nfs_storage on /data/nfs_shared type nfs (rw,vers=4,addr=192.168.1.189,clientaddr=192.168.1.193)

配置开机自动挂载
编辑/etc/fstab文件,末尾添加如下蓝色字部分内容:


[root@centos193 ~]# vi /etc/fstab 
[root@centos193 ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Fri Nov 23 20:21:40 2012
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_centos6-lv_root /                       ext4    defaults        1 1
UUID=edfaf4cd-ee8b-42c9-a45c-07339b42cc1c /boot                   ext4    defaults        1 2
/dev/mapper/vg_centos6-lv_home /home                   ext4    defaults        1 2
/dev/mapper/vg_centos6-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

192.168.1.189:/data/nfs_storage /data/nfs_shared nfs rw,sync,hard,intr 0 0

测试NFS

客户端:


[root@centos193 nfs_shared]# mkdir testdir
[root@centos193 nfs_shared]# touch testfile1 testfile2

服务端:


[root@centos189 ~]# cd /data/nfs_storage/
[root@centos189 nfs_storage]# ls
testdir testfile1 testfile2
阅读(1218) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~