Linux下NFS服务器部署

来源:互联网 发布:vua软件 编辑:程序博客网 时间:2024/05/21 06:30

  • NFS的安装和配置
    • NFS介绍
    • NFS的安装
    • NFS的配置
    • 配置示例
  • NFS客户端配置
  • NFS启动在固定端口

NFS的安装和配置

NFS介绍

NFS:Network File System网络文件系统。用于Unix-Like操作系统之间进行文件的共享。通过NFS,客户端可以将服务器端共享出来的目录挂载到本地,就像操作本地文件一样。而NFS在启动之前需要向RPC注册,告诉RPC,相应的服务所使用的端口。NFS可以说是RPC服务的一种。NFS通常情况下启动的端口为2049端口,RPC启动的端口为111端口,而NFS如果要想提供其他的服务,则还要启动不同的端口,这些端口都是随机的,如果不向RPC注册的话,客户端将不知道服务所使用的端口。

NFS的安装

  • 所需软件包
    rpc主程序:rpcbind
    nfs主程序:nfs-utils

  • 软件安装

[root@control ~]# yum install -y rpcbind nfs-utils
  • 设置开机自动启动
[root@control ~]# chkconfig rpcbind on[root@control ~]# chkconfig nfs on[root@control ~]# chkconfig nfslock on[root@control ~]# 

NFS的配置

NFS的配置文件为:/etc/exports

该文件的语法结构为:
A.以#开头的表示注释
B.大小写敏感
C.语法格式为:
共享目录 客户端1(参数1) 客户端2(参数2) ……

  • 共享目录:指定要共享的目录的实际路径。如/opt/test
  • 客户端:指定哪些客户端可以访问共享目录。如果不指定则所有的客户端均可以访问。客户端的匹配条件如下:
    指定单一主机:如192.168.1.1或者是通过FQDN的方式,如nfs.frame.com
    指定网段:如192.168.1.0/255.255.255.0或192.168.1.0/24或192.168.1.*
    指定域名范围:如*.felix.com,则表示客户端的DNS后缀为felix.com的都放行。
    所有主机:*

  • 参数:对满足客户端匹配条件的客户端的权限设置。常用的如下:
    ro:默认选项,以只读的方式共享。
    rw:以读写的方式共享。
    root_squash:压缩root用户的权限为NFS的匿名用户(nfsnobody)。
    no_root_squash:不压缩root用户的权限。客户端如果使用root用户访问,则映射后的权限依然为root。
    all_squash:默认选项,压缩所有用户的权限为nfs匿名用户(nfsnobody)。
    anonuid:指定匿名用户的UID
    anongid:指定匿名用户的GID
    sync:默认选项,保持数据同步,数据写入到硬盘时才提示客户端写入成功。
    async:数据没有写入到硬盘时就提示客户端数据写入成功,此时数据还可能存在于内存中。可以提高性能,但是有可能会引起数据丢失。
    secure:NFS客户端必须使用NFS保留端口(通常是1024以下的端口),默认选项。
    insecure:允许NFS客户端不使用NFS保留端口(通常是1024以上的端口)。

配置示例

  • 配置示例
[root@control ~]# cat /etc/exports/data/ftp/vusers/software  172.17.100.0/24(rw,sync,no_root_squash)[root@control ~]# 
  • 启动服务(先启动rpcbind,然后是nfs,最后是nfslock)
[root@control ~]# /etc/init.d/rpcbind restartStopping rpcbind:                                          [FAILED]Starting rpcbind:                                          [  OK  ][root@control ~]# /etc/init.d/nfs restartShutting down NFS daemon:                                  [FAILED]Shutting down NFS mountd:                                  [FAILED]Shutting down RPC idmapd:                                  [FAILED]Starting NFS services:                                     [  OK  ]Starting NFS mountd: rpc.mountd: svc_tli_create: could not open connection for udp6rpc.mountd: svc_tli_create: could not open connection for tcp6rpc.mountd: svc_tli_create: could not open connection for udp6rpc.mountd: svc_tli_create: could not open connection for tcp6rpc.mountd: svc_tli_create: could not open connection for udp6rpc.mountd: svc_tli_create: could not open connection for tcp6                                                           [  OK  ]Starting NFS daemon: rpc.nfsd: address family inet6 not supported by protocol TCP                                                           [  OK  ]Starting RPC idmapd:                                       [  OK  ][root@control ~]# /etc/init.d/nfslock restartStopping NFS locking:                                      [  OK  ]Stopping NFS statd:                                        [FAILED]Starting NFS statd:                                        [  OK  ][root@control ~]# 
  • 客户端查看服务器端共享出来的内容,并挂载
    客户端可以使用showmount这个命令来查看服务器端的共享目录和权限。(需要安装nfs-utils软件)
[root@vm1 ~]# yum install -y nfs-utils[root@vm1 ~]# showmount -e 172.17.100.250Export list for 172.17.100.250:/data/ftp/vusers/software 172.17.100.0/24[root@vm1 ~]# 客户端mount,需要使用-t指定文件系统类型为nfs[root@vm1 ~]# mkdir -p /data/software[root@vm1 ~]# mount -t nfs 172.17.100.250:/data/ftp/vusers/software /data/software/[root@vm1 ~]# df -hFilesystem                                Size  Used Avail Use% Mounted on/dev/sda3                                  18G  1.1G   16G   7% /tmpfs                                     116M     0  116M   0% /dev/shm/dev/sda1                                 194M   27M  158M  15% /boot172.17.100.250:/data/ftp/vusers/software   18G   13G  4.1G  76% /data/software[root@vm1 ~]# 

NFS客户端配置

  • 手动挂载
格式:mount -t nfs server_ip|fqdn:shared_directory mount_to_local_directory[root@vm1 ~]# df -hFilesystem      Size  Used Avail Use% Mounted on/dev/sda3        18G  1.1G   16G   7% /tmpfs           116M     0  116M   0% /dev/shm/dev/sda1       194M   27M  158M  15% /boot[root@vm1 ~]# [root@vm1 ~]# mount -t nfs nfs.felix.com:/data/ftp/vusers/software /data/software[root@vm1 ~]# df -hFilesystem                               Size  Used Avail Use% Mounted on/dev/sda3                                 18G  1.1G   16G   7% /tmpfs                                    116M     0  116M   0% /dev/shm/dev/sda1                                194M   27M  158M  15% /bootnfs.felix.com:/data/ftp/vusers/software   18G   13G  4.1G  76% /data/software[root@vm1 ~]# 


  • 开机自动挂载

/etc/fstab的语法格式:

需要挂载的设备或远程文件系统 本地挂载点 文件系统类型 挂载选项 是否需要被dump备份(0表示不需要备份) 是否需要被fsck检查(根文件系统需要设置为1,表示优先检查,其他的可以设置为2或者是0)

[root@vm1 ~]# cat /etc/fstab | tail -n 1nfs.felix.com:/data/ftp/vusers/software /data/software  nfs defaults,_netdev    0 0[root@vm1 ~]# 设置完之后,需要使用mount -a进行测试,防止出现开机时出现挂载不了的情况。[root@vm1 ~]# mount -a[root@vm1 ~]# df -hFilesystem                               Size  Used Avail Use% Mounted on/dev/sda3                                 18G  1.1G   16G   7% /tmpfs                                    116M     0  116M   0% /dev/shm/dev/sda1                                194M   27M  158M  15% /bootnfs.felix.com:/data/ftp/vusers/software   18G   13G  4.1G  76% /data/software[root@vm1 ~]# 


  • 需要时自动挂载

自动挂载是使用autofs来实现的,当需要使用该目录的时候,系统会自动挂载,在不需要的时候,系统会自动卸载该目录。
步骤1:安装autofs软件包[root@vm1 ~]# yum install -y autofs步骤2:修改/etc/auto.master文件,增加/-  /etc/auto.nfs修改后的文件内容如下:[root@vm1 ~]# cat /etc/auto.master | grep -vE '^#|^$'/misc   /etc/auto.misc/-  /etc/auto.nfs/net    -hosts+auto.master[root@vm1 ~]# 步骤3:创建auto.nfs文件格式如下:本地挂载点    -fstype=文件系统类型    远程文件系统信息[root@vm1 ~]# cp -a /etc/auto.misc /etc/auto.nfs[root@vm1 ~]# [root@vm1 ~]# cat /etc/auto.nfs## auto mount/data/software  -fstype=nfs nfs.felix.com:/data/ftp/vusers/software[root@vm1 ~]# 步骤4:重启autofs服务,并设置开机自动启动[root@vm1 ~]# /etc/init.d/autofs stopStopping automount:                                        [  OK  ][root@vm1 ~]# /etc/init.d/autofs startLoading autofs4:                                           [  OK  ]Starting automount:                                        [  OK  ][root@vm1 ~]# chkconfig autofs on[root@vm1 ~]# 步骤5:测试,当进入到/data/software目录时,自动挂载[root@vm1 ~]# df -hFilesystem      Size  Used Avail Use% Mounted on/dev/sda3        18G  1.1G   16G   7% /tmpfs           116M     0  116M   0% /dev/shm/dev/sda1       194M   27M  158M  15% /boot[root@vm1 ~]# cd /data/software/[root@vm1 software]# df -hFilesystem                               Size  Used Avail Use% Mounted on/dev/sda3                                 18G  1.1G   16G   7% /tmpfs                                    116M     0  116M   0% /dev/shm/dev/sda1                                194M   27M  158M  15% /bootnfs.felix.com:/data/ftp/vusers/software   18G   13G  4.1G  76% /data/software[root@vm1 software]# 

使用autofs自动挂载的文件系统,默认情况下,如果在5分钟(300s)内没有使用的话,则会被自动的卸载掉,该超时时间是在/etc/sysconfig/autofs中的TIMEOUT参数设置的。

NFS启动在固定端口

NFS主程序使用的端口是2049端口,为了实现不同的功能,需要启用不同的端口,而这些端口需要向RPC注册,但是在配置防火墙时,由于这些端口不是固定的,因此配置起来就比较麻烦,为了方便防火墙的配置,因此需要让NFS启动在固定端口。

修改配置文件:/etc/sysconfig/nfsLOCKD_TCPPORT=3001LOCKD_UDPPORT=3001MOUNTD_PORT=3002STATD_PORT=3003STATD_OUTGOING_PORT=3004将上述几个端口修改为相应的端口。iptables设置(rpcbind所使用的端口是111):[root@control ~]# iptables -A INPUT -i eth0 -p tcp -s 172.17.100.0/24 -d 172.17.100.250 -m multiport --dport 111,2049,3001:3004 -j ACCEPT[root@control ~]# iptables -A INPUT -i eth0 -p udp -s 172.17.100.0/24 -d 172.17.100.250 -m multiport --dport 111,2049,3001:3004 -j ACCEPT[root@control ~]# 
0 0
原创粉丝点击