您的位置:首页 > 运维架构 > Linux

Linux NFS文件服务器安装与配置

2017-03-30 16:27 573 查看
1. 场景
某单位需要配置 NFS 服务器,为同步图片文件。
主机名:nfs.local,test.local
IP地址:192.168.3.15、192.168.3.18

2. 实验环境
2.1. 操作系统
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)
# uname -a
Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 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.3.15
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
修改主机名
# vi /etc/sysconfig/network
NETWORKING=yes
#HOSTNAME=localhost.localdomain
HOSTNAME=nfs.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或init 6

3. NFS服务器安装与配置
3.1. 安装NFS服务器组件
3.1.1.通过YUM来进行安装
通过 YUM 来解决包的相关性。

# yum -y install nfs-utils
很方便地就安装完毕了

3.2. 启动NFS服务
NFS 依赖rpcbind服务,设置为其自动启动
# chkconfig rpcbind on
# chkconfig nfs on
# service rpcbind start
# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
在日志文件/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

3.3. 配置NFS服务器(192.168.3.15)
查看当前共享的 NFS 信息
# showmount -e localhost
Export list for localhost: 空白无输出

配置 export 文件
# vi /etc/exports
添加如下内容,注意选项中逗号之间没有空格!
/home/tomcat/image/webapps/static/resources *(rw,no_root_squash,no_all_squash,sync)

保存退出
exportfs -r //重新挂载/etc/exports中的设置
service rpcbind restart
service nfs restart

3.3.1. 服务端验证NFS共享:
[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/home/tomcat/image/webapps/static/resources *

注:正常能显示出上面设置的共享目录,如果报如下错误:

clnt_create: RPC: Program not registered
说明 rpcbind服务与NFS服务 启动顺序不对,把他俩都停了,重新启动,先启动rpcbind服务再启动nfs服务;

3.4. 配置NFS客户机(192.168.3.18)
NFS 客户机也需要安装 nfs-utils 包。
# yum -y install nfs-utils
[root@localhost ~]# showmount -e 192.168.3.15Export list for 192.168.3.15:/home/tomcat/image/webapps/static/resources *

3.5. 客户端基本配置修改 IP 地址。(注意:根据您的实现环境进行配置)# vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=192.168.3.18NETMASK=255.255.255.0GATEWAY=192.168.3.1修改主机名# vi /etc/sysconfig/networkNETWORKING=yes#HOSTNAME=localhost.localdomainHOSTNAME=test.local# service network restart
为了方便实验,将防火墙、selinux关闭。
3.6. 启动服务启动rpcbind服务,设置为其自动启动# chkconfig rpcbind on# service rpcbind start客户端rpcbind服务一定要启动,nfs可以不用启动

3.7. 设置启动自动挂载(192.168.3.18)
[root@localhost ~]# vi /etc/fstab
新增
192.168.3.15:/home/tomcat/image/webapps/static/resources /home/tomcat/image/webapps/static/resources           nfs     defaults        0 0


#
# /etc/fstab
# Created by anaconda on Fri Dec 16 15:54:15 2016
#
# 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/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=78193f8b-3efc-4c29-bbaf-2d0b1613d69f /boot                   ext4    defaults        1 2
/dev/mapper/VolGroup-lv_home /home                   ext4    defaults        1 2
/dev/mapper/VolGroup-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.3.15:/home/tomcat/image/webapps/static/resources /home/tomcat/image/webapps/static/resources           nfs     defaults        0 0


四.知识扩展

exports命令:

参数说明如下。
(1)-a:全部挂载(或卸载)/etc/exports文件内的设定。
(2)-r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。
(3)-u:卸载某一目录。
(4)-v:在export时将共享的目录显示在屏幕上。

/etc/exports文件内容格式:

<共享目录> [客户端1 选项(访问权限,用户映射,其他)]

用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

no_all_squash:与all_squash取反(默认设置);

root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);

no_root_squash:与rootsquash取反;

anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

insecure:允许客户端从大于1024的tcp/ip端口连接服务器;

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async:将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

no_wdelay:若有写操作则立即执行,应与sync配合使用;

subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 文件 NFS