NFS网络文件共享服务

NFS-网络文件系统,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或目录。

NFS在企业中得应用场景

在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频、图片、附件等静态资源文件(一般把网站用户上传的文件都放到NFS共享里,例如:BBS产品的图片、附件、头像,注意网站BBS程序不要放NFS共享里),NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是中小型网站公司应用频率很高。大公司或门户除了使用NFS外,还可能会使用MFS、GFS、FASTFS,TFS等分布式文件系统。

[[email protected] ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3             7.6G  2.0G  5.2G  28% /

tmpfs                 495M     0  495M   0% /dev/shm

/dev/sda1             190M   27M  153M  15% /boot

192.168.0.113:/data/cms

7.6G  4.2G  3.1G  59% /data/cms/uploads/allimg

192.168.0.113:/data/blog

7.6G  4.2G  3.1G  59% /data/blog/wp-content/uploads

192.168.0.113:/data/bbs

7.6G  4.2G  3.1G  59% /data/bbs/data/attachment/forum

提示:mount 源 目标

mount 192.168.0.113:/data/bbs(远端NFS server IP地址及共享目录) /data/bbs/data/attachment/forum(本地目录)

Centos5.X随机端口为小于1024的,而Centos6.X随机端口都是较大的.

RPC-远程过程调用服务,最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,从而可以确保客户端可以连接到正确的NFS端口上去,达到实现数据传输交互数据的目的.

一、NFS工作原理

1.先开启RPC服务(C5:portmap,C6:rpcbind)

2.向RPC服务注册启动的端口

3.客户端请求NFS服务

4.返回端口给客户端

5.拿着地址端口请求传输数据

二、NFS实战

NFS服务端:

[[email protected] ~]# cat /etc/redhat-release

CentOS release 6.6 (Final)

[[email protected] ~]# uname -r Centos当前系统内核版本号

2.6.32-504.el6.x86_64

[[email protected] ~]# uname -m

x86_64

[[email protected] ~]# uname -n 机器名

backup

[[email protected] ~]# rpm -qa "nfs-utils|rpcbind|portmap"

[[email protected] ~]# yum grouplist

Loaded plugins: fastestmirror, security

Setting up Group Process

Determining fastest mirrors

* base: mirrors.sina.cn

* extras: mirrors.sina.cn

* updates: mirrors.sina.cn

base                        | 3.7 kB     00:00

extras                      | 3.4 kB     00:00

extras/primary_db           |  31 kB     00:00

updates                     | 3.4 kB     00:00

updates/primary_db          | 3.9 MB     00:11

base/group_gz               | 216 kB     00:00

Installed Groups:

Base

Compatibility libraries

Development tools

E-mail server

Graphical Administration Tools

Hardware monitoring utilities

Legacy UNIX compatibility

Networking Tools

Performance Tools

Perl Support

Scientific support

Security Tools

System administration tools

Available Groups:

Additional Development

Backup Client

Backup Server

CIFS file server

Client management tools

Console internet tools

Debugging Tools

Desktop

Desktop Debugging and Performance Tools

Desktop Platform

Desktop Platform Development

Dial-up Networking Support

Directory Client

Directory Server

Eclipse

Emacs

FCoE Storage Client

FTP server

Fonts

General Purpose Desktop

Graphics Creation Tools

Guest Agents

High Availability

High Availability Management

Identity Management Server

Infiniband Support

Input Methods

Internet Applications

Internet Browser

Java Platform

KDE Desktop

Large Systems Performance

Legacy X Window System compatibility

Load Balancer

Mainframe Access

Messaging Client Support

MySQL Database client

MySQL Database server

NFS file server

Network Infrastructure Server

Network Storage Server

Network file system client

Office Suite and Productivity

PHP Support

PostgreSQL Database client

PostgreSQL Database server

Print Server

Printing client

Remote Desktop Clients

Resilient Storage

Ruby Support

SNMP Support

Scalable Filesystems

Server Platform

Server Platform Development

Smart card support

Storage Availability Tools

System Management

TeX support

Technical Writing

TurboGears application framework

Virtualization

Virtualization Client

Virtualization Platform

Virtualization Tools

Web Server

Web Servlet Engine

Web-Based Enterprise Management

X Window System

iSCSI Storage Client

Available Language Groups:

Afrikaans Support [af]

Albanian Support [sq]

Amazigh Support [ber]

Arabic Support [ar]

Armenian Support [hy]

Assamese Support [as]

Azerbaijani Support [az]

Basque Support [eu]

Belarusian Support [be]

Bengali Support [bn]

Bhutanese Support [dz]

Brazilian Portuguese Support [pt_BR]

Breton Support [br]

Bulgarian Support [bg]

Catalan Support [ca]

Chhattisgarhi Support [hne]

Chichewa Support [ny]

Chinese Support [zh]

Coptic Support [cop]

Croatian Support [hr]

Czech Support [cs]

Danish Support [da]

Dutch Support [nl]

English (UK) Support [en_GB]

Esperanto Support [eo]

Estonian Support [et]

Ethiopic Support [am]

Faroese Support [fo]

Fijian Support [fj]

Filipino Support [fil]

Finnish Support [fi]

French Support [fr]

Frisian Support [fy]

Friulian Support [fur]

Gaelic Support [gd]

Galician Support [gl]

Georgian Support [ka]

German Support [de]

Greek Support [el]

Gujarati Support [gu]

Hebrew Support [he]

Hiligaynon Support [hil]

Hindi Support [hi]

Hungarian Support [hu]

Icelandic Support [is]

Indonesian Support [id]

Interlingua Support [ia]

Inuktitut Support [iu]

Irish Support [ga]

Italian Support [it]

Japanese Support [ja]

Kannada Support [kn]

Kashmiri Support [ks]

Kashubian Support [csb]

Kazakh Support [kk]

Khmer Support [km]

Kinyarwanda Support [rw]

Konkani Support [kok]

Korean Support [ko]

Kurdish Support [ku]

Lao Support [lo]

Latin Support [la]

Latvian Support [lv]

Lithuanian Support [lt]

Low Saxon Support [nds]

Luxembourgish Support [lb]

Macedonian Support [mk]

Maithili Support [mai]

Malagasy Support [mg]

Malay Support [ms]

Malayalam Support [ml]

Maltese Support [mt]

Manx Support [gv]

Maori Support [mi]

Marathi Support [mr]

Mongolian Support [mn]

Myanmar (Burmese) Support [my]

Nepali Support [ne]

Northern Sotho Support [nso]

Norwegian Support [nb]

Occitan Support [oc]

Oriya Support [or]

Persian Support [fa]

Polish Support [pl]

Portuguese Support [pt]

Punjabi Support [pa]

Romanian Support [ro]

Russian Support [ru]

Sanskrit Support [sa]

Sardinian Support [sc]

Serbian Support [sr]

Sindhi Support [sd]

Sinhala Support [si]

Slovak Support [sk]

Slovenian Support [sl]

Somali Support [so]

Southern Ndebele Support [nr]

Southern Sotho Support [st]

Spanish Support [es]

Swahili Support [sw]

Swati Support [ss]

Swedish Support [sv]

Tagalog Support [tl]

Tajik Support [tg]

Tamil Support [ta]

Telugu Support [te]

Tetum Support [tet]

Thai Support [th]

Tibetan Support [bo]

Tsonga Support [ts]

Tswana Support [tn]

Turkish Support [tr]

Turkmen Support [tk]

Ukrainian Support [uk]

Upper Sorbian Support [hsb]

Urdu Support [ur]

Uzbek Support [uz]

Venda Support [ve]

Vietnamese Support [vi]

Walloon Support [wa]

Welsh Support [cy]

Xhosa Support [xh]

Zulu Support [zu]

Done

[[email protected] ~]# yum groupinstall "NFS file server" -y  NFS服务端

Loaded plugins: fastestmirror, security

Setting up Group Process

Loading mirror speeds from cached hostfile

* base: mirrors.sina.cn

* extras: mirrors.sina.cn

* updates: mirrors.sina.cn

Resolving Dependencies

--> Running transaction check

---> Package nfs-utils.x86_64 1:1.2.3-54.el6 will be installed

--> Processing Dependency: nfs-utils-lib >= 1.1.0-3 for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: keyutils >= 1.4-4 for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: rpcbind for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libtirpc for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libgssglue.so.1(libgssapi_CITI_2)(64bit) for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libgssglue for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libevent for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libtirpc.so.1()(64bit) for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libnfsidmap.so.0()(64bit) for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libgssglue.so.1()(64bit) for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libevent-1.4.so.2()(64bit) for package: 1:nfs-utils-1.2.3-54.el6.x86_64

---> Package nfs4-acl-tools.x86_64 0:0.3.3-6.el6 will be installed

--> Running transaction check

---> Package keyutils.x86_64 0:1.4-5.el6 will be installed

---> Package libevent.x86_64 0:1.4.13-4.el6 will be installed

---> Package libgssglue.x86_64 0:0.1-11.el6 will be installed

---> Package libtirpc.x86_64 0:0.2.1-10.el6 will be installed

---> Package nfs-utils-lib.x86_64 0:1.1.5-9.el6_6 will be installed

---> Package rpcbind.x86_64 0:0.2.0-11.el6 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

===================================================

Package       Arch   Version        Repository

Size

===================================================

Installing:

nfs-utils     x86_64 1:1.2.3-54.el6 base    326 k

nfs4-acl-tools

x86_64 0.3.3-6.el6    base     43 k

Installing for dependencies:

keyutils      x86_64 1.4-5.el6      base     39 k

libevent      x86_64 1.4.13-4.el6   base     66 k

libgssglue    x86_64 0.1-11.el6     base     23 k

libtirpc      x86_64 0.2.1-10.el6   base     79 k

nfs-utils-lib x86_64 1.1.5-9.el6_6  updates  68 k

rpcbind       x86_64 0.2.0-11.el6   base     51 k

Transaction Summary

===================================================

Install       8 Package(s)

Total download size: 695 k

Installed size: 1.8 M

Is this ok [y/N]: y

Downloading Packages:

(1/8): keyutils-1.4-5.el6.x |  39 kB     00:00

(2/8): libevent-1.4.13-4.el |  66 kB     00:00

(3/8): libgssglue-0.1-11.el |  23 kB     00:00

(4/8): libtirpc-0.2.1-10.el |  79 kB     00:00

(5/8): nfs-utils-1.2.3-54.e | 326 kB     00:00

(6/8): nfs-utils-lib-1.1.5- |  68 kB     00:00

(7/8): nfs4-acl-tools-0.3.3 |  43 kB     00:00

(8/8): rpcbind-0.2.0-11.el6 |  51 kB     00:00

---------------------------------------------------

Total              283 kB/s | 695 kB     00:02

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : libgssglue-0.1-11.el6.x86_64    1/8

Installing : libtirpc-0.2.1-10.el6.x86_64    2/8

Installing : rpcbind-0.2.0-11.el6.x86_64     3/8

Installing : keyutils-1.4-5.el6.x86_64       4/8

Installing : libevent-1.4.13-4.el6.x86_64    5/8

Installing : nfs-utils-lib-1.1.5-9.el6_6.x   6/8

Installing : 1:nfs-utils-1.2.3-54.el6.x86_   7/8

Installing : nfs4-acl-tools-0.3.3-6.el6.x8   8/8

Verifying  : libevent-1.4.13-4.el6.x86_64    1/8

Verifying  : rpcbind-0.2.0-11.el6.x86_64     2/8

Verifying  : keyutils-1.4-5.el6.x86_64       3/8

Verifying  : 1:nfs-utils-1.2.3-54.el6.x86_   4/8

Verifying  : nfs-utils-lib-1.1.5-9.el6_6.x   5/8

Verifying  : libtirpc-0.2.1-10.el6.x86_64    6/8

Verifying  : libgssglue-0.1-11.el6.x86_64    7/8

Verifying  : nfs4-acl-tools-0.3.3-6.el6.x8   8/8

Installed:

nfs-utils.x86_64 1:1.2.3-54.el6

nfs4-acl-tools.x86_64 0:0.3.3-6.el6

Dependency Installed:

keyutils.x86_64 0:1.4-5.el6

libevent.x86_64 0:1.4.13-4.el6

libgssglue.x86_64 0:0.1-11.el6

libtirpc.x86_64 0:0.2.1-10.el6

nfs-utils-lib.x86_64 0:1.1.5-9.el6_6

rpcbind.x86_64 0:0.2.0-11.el6

Complete!

NFS客户端:

[[email protected] ~]#yum install nfs-utils rpcbind -y  NFS客户端

Failed to set locale, defaulting to C

Loaded plugins: fastestmirror, security

Setting up Install Process

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com

* updates: mirrors.aliyun.com

Resolving Dependencies

--> Running transaction check

---> Package nfs-utils.x86_64 1:1.2.3-54.el6 will be installed

--> Processing Dependency: nfs-utils-lib >= 1.1.0-3 for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: keyutils >= 1.4-4 for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libtirpc for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libgssglue.so.1(libgssapi_CITI_2)(64bit) for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libgssglue for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libevent for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libtirpc.so.1()(64bit) for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libnfsidmap.so.0()(64bit) for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libgssglue.so.1()(64bit) for package: 1:nfs-utils-1.2.3-54.el6.x86_64

--> Processing Dependency: libevent-1.4.so.2()(64bit) for package: 1:nfs-utils-1.2.3-54.el6.x86_64

---> Package rpcbind.x86_64 0:0.2.0-11.el6 will be installed

--> Running transaction check

---> Package keyutils.x86_64 0:1.4-5.el6 will be installed

---> Package libevent.x86_64 0:1.4.13-4.el6 will be installed

---> Package libgssglue.x86_64 0:0.1-11.el6 will be installed

---> Package libtirpc.x86_64 0:0.2.1-10.el6 will be installed

---> Package nfs-utils-lib.x86_64 0:1.1.5-9.el6_6 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

===================================================

Package       Arch   Version        Repository

Size

===================================================

Installing:

nfs-utils     x86_64 1:1.2.3-54.el6 base    326 k

rpcbind       x86_64 0.2.0-11.el6   base     51 k

Installing for dependencies:

keyutils      x86_64 1.4-5.el6      base     39 k

libevent      x86_64 1.4.13-4.el6   base     66 k

libgssglue    x86_64 0.1-11.el6     base     23 k

libtirpc      x86_64 0.2.1-10.el6   base     79 k

nfs-utils-lib x86_64 1.1.5-9.el6_6  updates  68 k

Transaction Summary

===================================================

Install       7 Package(s)

Total download size: 652 k

Installed size: 1.7 M

Is this ok [y/N]: y

Downloading Packages:

(1/7): keyutils-1.4-5.el6.x |  39 kB     00:00

(2/7): libevent-1.4.13-4.el |  66 kB     00:00

(3/7): libgssglue-0.1-11.el |  23 kB     00:00

(4/7): libtirpc-0.2.1-10.el |  79 kB     00:00

(5/7): nfs-utils-1.2.3-54.e | 326 kB     00:01

(6/7): nfs-utils-lib-1.1.5- |  68 kB     00:00

(7/7): rpcbind-0.2.0-11.el6 |  51 kB     00:00

---------------------------------------------------

Total              147 kB/s | 652 kB     00:04

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : libgssglue-0.1-11.el6.x86_64    1/7

Installing : libtirpc-0.2.1-10.el6.x86_64    2/7

Installing : rpcbind-0.2.0-11.el6.x86_64     3/7

Installing : keyutils-1.4-5.el6.x86_64       4/7

Installing : libevent-1.4.13-4.el6.x86_64    5/7

Installing : nfs-utils-lib-1.1.5-9.el6_6.x   6/7

Installing : 1:nfs-utils-1.2.3-54.el6.x86_   7/7

Verifying  : libevent-1.4.13-4.el6.x86_64    1/7

Verifying  : rpcbind-0.2.0-11.el6.x86_64     2/7

Verifying  : keyutils-1.4-5.el6.x86_64       3/7

Verifying  : 1:nfs-utils-1.2.3-54.el6.x86_   4/7

Verifying  : nfs-utils-lib-1.1.5-9.el6_6.x   5/7

Verifying  : libtirpc-0.2.1-10.el6.x86_64    6/7

Verifying  : libgssglue-0.1-11.el6.x86_64    7/7

Installed:

nfs-utils.x86_64 1:1.2.3-54.el6

rpcbind.x86_64 0:0.2.0-11.el6

Dependency Installed:

keyutils.x86_64 0:1.4-5.el6

libevent.x86_64 0:1.4.13-4.el6

libgssglue.x86_64 0:0.1-11.el6

libtirpc.x86_64 0:0.2.1-10.el6

nfs-utils-lib.x86_64 0:1.1.5-9.el6_6

Complete!

[[email protected] ~]# rpm -qa "nfs-utils|rpcbind|portmap" NFS服务端

nfs-utils-1.2.3-54.el6.x86_64

nfs-utils-lib-1.1.5-9.el6_6.x86_64

rpcbind-0.2.0-11.el6.x86_64

[[email protected] ~]#rpm -qa "nfs-utils|rpcbind|portmap"  NFS客户端

nfs-utils-lib-1.1.5-9.el6_6.x86_64

rpcbind-0.2.0-11.el6.x86_64

nfs-utils-1.2.3-54.el6.x86_64

NFS服务端:

[[email protected] ~]# /etc/init.d/rpcbind start

Starting rpcbind:                                 [  OK  ]

[[email protected] ~]# ps -ef|grep rpc

rpc       3169     1  0 08:58 ?        00:00:00 rpcbind

root      3173  2900  0 08:58 pts/0    00:00:00 grep rpc

[[email protected] ~]# /etc/init.d/rpcbind status

rpcbind (pid  3169) is running...

[[email protected] ~]# rpcinfo -p localhost

program vers proto   port  service

100000    4   tcp    111  portmapper

100000    3   tcp    111  portmapper

100000    2   tcp    111  portmapper

100000    4   udp    111  portmapper

100000    3   udp    111  portmapper

100000    2   udp    111  portmapper

[[email protected] ~]# /etc/init.d/rpcbind stop

Stopping rpcbind:                                 [  OK  ]

[[email protected] ~]# rpcinfo -p localhost

rpcinfo: can‘t contact portmapper: RPC: Remote system error - Connection refused

[[email protected] ~]# /etc/init.d/rpcbind start

Starting rpcbind:                                 [  OK  ]

[[email protected] ~]# rpcinfo -p localhost

program vers proto   port  service

100000    4   tcp    111  portmapper

100000    3   tcp    111  portmapper

100000    2   tcp    111  portmapper

100000    4   udp    111  portmapper

100000    3   udp    111  portmapper

100000    2   udp    111  portmapper

[[email protected] ~]# /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  ]

[[email protected] ~]# rpcinfo -p localhost

program vers proto   port  service

100000    4   tcp    111  portmapper

100000    3   tcp    111  portmapper

100000    2   tcp    111  portmapper

100000    4   udp    111  portmapper

100000    3   udp    111  portmapper

100000    2   udp    111  portmapper

100011    1   udp    875  rquotad

100011    2   udp    875  rquotad

100011    1   tcp    875  rquotad

100011    2   tcp    875  rquotad

100005    1   udp  32923  mountd

100005    1   tcp  38492  mountd

100005    2   udp  44186  mountd

100005    2   tcp  52464  mountd

100005    3   udp  42052  mountd

100005    3   tcp  37846  mountd

100003    2   tcp   2049  nfs

100003    3   tcp   2049  nfs

100003    4   tcp   2049  nfs

100227    2   tcp   2049  nfs_acl

100227    3   tcp   2049  nfs_acl

100003    2   udp   2049  nfs

100003    3   udp   2049  nfs

100003    4   udp   2049  nfs

100227    2   udp   2049  nfs_acl

100227    3   udp   2049  nfs_acl

100021    1   udp  58384  nlockmgr

100021    3   udp  58384  nlockmgr

100021    4   udp  58384  nlockmgr

100021    1   tcp  49852  nlockmgr

100021    3   tcp  49852  nlockmgr

100021    4   tcp  49852  nlockmgr

[[email protected] ~]# chkconfig rpcbind on

[[email protected] ~]# chkconfig nfs on

[[email protected] ~]# chkconfig --list nfs

nfs             0:off   1:off   2:on    3:on    4:on       5:on    6:off

[[email protected] ~]# chkconfig --list rpcbind

rpcbind         0:off   1:off   2:on    3:on    4:on       5:on    6:off

[[email protected] ~]# more /etc/init.d/rpcbind

#! /bin/sh

#

# rpcbind       Start/Stop RPCbind

#

# chkconfig: 2345 13 87

# description: The rpcbind utility is a server that

converts RPC program \

#              numbers into universal addresses. It

must be running on the \

#              host to be able to make RPC calls on

a server on that machine.

#

[[email protected] ~]# more /etc/init.d/nfs

#!/bin/sh

#

# nfs           This shell script takes care of sta

rting and stopping

#               the NFS services.

#

# chkconfig: - 30 60

# description: NFS is a popular protocol for file s

haring across networks.

#              This service provides NFS server fun

ctionality, which is \

#              configured via the /etc/exports file

通过查看以上两个服务的启动脚本,得出,启动时先启动rpcbind,然后是nfs;关闭时先关闭NFS,然后关闭rpcbind.

NFS客户端:

[[email protected] ~]#/etc/init.d/rpcbind start  客户端只需要启动rpcbind

Starting rpcbind:                                 [  OK  ]

[[email protected] ~]#/etc/init.d/rpcbind status

rpcbind (pid  2924) is running...

[[email protected] ~]#chkconfig rpcbind on

[[email protected] ~]#chkconfig --list rpcbind

rpcbind         0:off   1:off   2:on    3:on    4:on       5:on    6:off

NFS服务端:

[[email protected] ~]# ll /etc/exports

-rw-r--r--. 1 root root 0 Jan 12  2010 /etc/exports

[[email protected] ~]# cat /etc/exports

[[email protected] ~]# vi /etc/exports

#shared backup for bbs by oldboy at 20150711

/backup/NFS 192.168.0.0/24(rw,sync)

~

~

~

~

"/etc/exports" 2L, 81C written

[[email protected] ~]# cat /etc/exports

#shared backup for bbs by oldboy at 20150711

/backup/NFS 192.168.0.0/24(rw,sync)

[[email protected] ~]# /etc/init.d/nfs reload和exportfs -r是等价的  优雅平滑重启NFS服务,不影响服务使用,提升客户体验

[[email protected] ~]# showmount -e localhost 服务端查看共享

Export list for localhost:

/backup/NFS 192.168.0.0/24

[[email protected] ~]#showmount -e 192.168.0.114 客户端查看共享

Export list for 192.168.0.114:

/backup/NFS 192.168.0.0/24

客户端查看不到NFS服务端共享的解决方法:

1.ping 服务端IP

2.telnet 服务端IP 111(rpcbind服务监听端口)

[[email protected] ~]#df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       7.6G  2.2G  5.1G  31% /

tmpfs           495M     0  495M   0% /dev/shm

/dev/sda1       190M   27M  153M  15% /boot

[[email protected] ~]#mount -t nfs 192.168.0.114:/backup/NFS /mnt

[[email protected] ~]#df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3             7.6G  2.2G  5.1G  31% /

tmpfs                 495M     0  495M   0% /dev/shm

/dev/sda1             190M   27M  153M  15% /boot

192.168.0.114:/backup/NFS

7.6G  4.7G  2.6G  65% /mnt

[[email protected] ~]# ll /backup/NFS  NFS服务端共享的目录要给其他用户给“写权限”,以免客户端写数据时出现“无权限”的错误

total 4

drwxrwxrwx 5 nobody nobody 4096 Apr 13 00:00 data

[[email protected] ~]#ll /mnt  NFS客户端

total 4

drwxrwxrwx 5 nobody nobody 4096 Apr 13 00:00 data

[[email protected] ~]# cat /var/lib/nfs/etab

/backup/NFS     192.168.0.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534)

[[email protected] ~]# grep 65534 /etc/passwd

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

提高NFS服务端共享目录的安全性操作

[[email protected] ~]# chmod 755 /backup

[[email protected] ~]# chown -R nfsnobody.nfsnobody /backup

NFS客户端:

[[email protected] mnt]#pwd

/mnt

[[email protected] mnt]#ll

total 4

drwxrwxrwx 5 nfsnobody nfsnobody 4096 Apr 13 00:00 data

[[email protected] mnt]#touch oldboy.log

[[email protected] mnt]#ll

total 4

drwxrwxrwx 5 nfsnobody nfsnobody 4096 Apr 13 00:00 data

-rw-r--r-- 1 nfsnobody nfsnobody    0 Jul 11 10:32 oldboy.log

[[email protected] mnt]#rm -f oldboy.log

[[email protected] mnt]#ll

total 4

drwxrwxrwx 5 nfsnobody nfsnobody 4096 Apr 13 00:00 data

NFS服务端:

[[email protected] ~]# chmod 755 /backup/NFS

[[email protected] ~]# ll /backup

total 16

drwxrwxrwx 3 nfsnobody nfsnobody 4096 Apr  7 00:41 LAMP

drwxrwxrwx 3 nfsnobody nfsnobody 4096 Apr  7 00:39 LNMP

drwxrwxrwx 3 nfsnobody nfsnobody 4096 Apr  7 00:35 mysql

drwxr-xr-x 3 nfsnobody nfsnobody 4096 Jul 11 10:32 NFS

NFS客户端:

[[email protected] mnt]#ll

total 4

drwxrwxrwx 5 nfsnobody nfsnobody 4096 Apr 13 00:00 data

[[email protected] mnt]#touch dd.log

[[email protected] mnt]#ll

total 4

drwxrwxrwx 5 nfsnobody nfsnobody 4096 Apr 13 00:00 data

-rw-r--r-- 1 nfsnobody nfsnobody    0 Jul 11 10:37 dd.log

[[email protected] mnt]#rm -f dd.log

[[email protected] mnt]#ll

total 4

drwxrwxrwx 5 nfsnobody nfsnobody 4096 Apr 13 00:00 data

[[email protected] mnt]#echo "mount -t nfs 192.168.0.114:/backup/NFS /mnt" >>/etc/rc.local  加入开机启动

[[email protected] mnt]#cat /etc/rc.local

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don‘t

# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

/usr/local/nginx/sbin/nginx

/etc/init.d/keepalived start

mount -t nfs 192.168.0.114:/backup/NFS /mnt

三、NFS服务的相关功能组件介绍

NFS服务端:

[[email protected] ~]# /etc/init.d/rpcbind status

rpcbind (pid  3239) is running...

[[email protected] ~]# /etc/init.d/nfs status

rpc.svcgssd is stopped

rpc.mountd (pid 3284) is running...

nfsd (pid 3300 3299 3298 3297 3296 3295 3294 3293) is running...

rpc.rquotad (pid 3279) is running...

[[email protected] ~]# ps -ef|grep -E "rpc|nfs"

rpc    3239    1  0 09:01 ?     00:00:00 rpcbind rpc服务 rpcbind==>portmap(C5.8)远程过程调用服务

root   3270    2  0 09:01 ?     00:00:00 [rpciod/0]

root   3279    1  0 09:01 ?     00:00:00 rpc.rquotad  磁盘配额进程

root   3284    1  0 09:01 ?     00:00:00 rpc.mountd   权限管理进程

root   3291    2  0 09:01 ?     00:00:00 [nfsd4]

root   3292     2  0 09:01 ?    00:00:00 [nfsd4_callbacks]

root   3293     2  0 09:01 ?    00:00:00 [nfsd]       NFS主进程

root   3294     2  0 09:01 ?    00:00:00 [nfsd]

root   3295     2  0 09:01 ?    00:00:00 [nfsd]

root   3296     2  0 09:01 ?    00:00:00 [nfsd]

root   3297     2  0 09:01 ?    00:00:00 [nfsd]       NFS主进程

root   3298     2  0 09:01 ?    00:00:00 [nfsd]

root   3299     2  0 09:01 ?    00:00:00 [nfsd]

root   3300     2  0 09:01 ?    00:00:00 [nfsd]       NFS主进程

root   3327     1  0 09:01 ?    00:00:00 rpc.idmapd

root   9165  6649  0 20:56 pts/1  00:00:00 grep -E rpc|nfs

[[email protected] ~]# /etc/init.d/nfs restart

Shutting down NFS daemon:                         [  OK  ]

Shutting down NFS mountd:                         [  OK  ]

Shutting down NFS quotas:                         [  OK  ]

Shutting down NFS services:                       [  OK  ]

Shutting down RPC idmapd:                         [  OK  ]

Starting NFS services:                            [  OK  ]

Starting NFS quotas:                              [  OK  ]

Starting NFS mountd:                              [  OK  ]

Starting NFS daemon:                              [  OK  ]

Starting RPC idmapd:                                [  OK  ]

[[email protected] ~]# ps -ef|egrep "rpc|nfs"

rpc       3239     1  0 09:01 ?        00:00:00 rpcbind

root      3270     2  0 09:01 ?        00:00:00 [rpciod/0]

root      9268     1  0 20:58 ?        00:00:00 rpc.rquotad

root      9273     1  0 20:58 ?        00:00:00 rpc.mountd

root      9280     2  0 20:58 ?        00:00:00 [nfsd4]

root      9281     2  0 20:58 ?        00:00:00 [nfsd4_callbacks]

root      9282     2  0 20:58 ?        00:00:00 [nfsd]

root      9283     2  0 20:58 ?        00:00:00 [nfsd]

root      9284     2  0 20:58 ?        00:00:00 [nfsd]

root      9285     2  0 20:58 ?        00:00:00 [nfsd]

root      9286     2  0 20:58 ?        00:00:00 [nfsd]

root      9287     2  0 20:58 ?        00:00:00 [nfsd]

root      9288     2  0 20:58 ?        00:00:00 [nfsd]

root      9289     2  0 20:58 ?        00:00:00 [nfsd]

root      9316     1  0 20:58 ?        00:00:00 rpc.idmapd

root      9365  6649  0 21:08 pts/1    00:00:00 egrep rpc|nfs

[[email protected] ~]# cat /var/lib/nfs/etab

/backup/NFS     192.168.0.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534)

NFS客户端:

[[email protected] mnt]#df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3             7.6G  2.2G  5.1G  31% /

tmpfs                 495M     0  495M   0% /dev/shm

/dev/sda1             190M   27M  153M  15% /boot

192.168.0.114:/backup/NFS

7.6G  4.7G  2.6G  65% /mnt

[[email protected] mnt]#mount

/dev/sda3 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)

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

192.168.0.114:/backup/NFS on /mnt type nfs (rw,vers=4,addr=192.168.0.114,clientaddr=192.168.0.131)

[[email protected] ~]# cat /etc/exports

#shared backup for bbs by oldboy at 20150711

/backup/NFS 192.168.0.0/24(rw,sync)

 共享目录  可以访问共享  访问的客

          目录的网段或主 户端权限

          机、域名       以及数据

                        是否从缓

                        存同步到

                        磁盘

四、配置NFS生产重要技巧

1.确保所有服务器对NFS共享目录具备相同的权限

  a.all_squash把所有客户端都压缩成匿名用户

  b.就是anonuid,anongid指定的UID和GID的用户

2.所有的客户端和服务端都需要有一个相同的UID和GID的用户,即nfsnobody(UID必须相同)

时间: 2024-10-11 17:41:50

NFS网络文件共享服务的相关文章

企业级NFS网络文件共享服务

虚拟实验: 操作系统:CentOS release 6.8 (Final) 虚拟机:VMware 任务:NFS网络文件共享服务 默认是没有安装NFS软件包,NFS主要功能是通过网络让不同的主机系统之间可以共享文件或目录.NFS网络文件系统很像Windows系统的网络共享.安全功能.网络驱动映射,而互联网中小型网站集群架构后端常用NFS进行数据共享. NFS服务器IP: 192.168.222.130 NFS客户端IP1: 192.168.222.138 NFS客户端IP2:192.168.222

NFS网络文件共享服务介绍及案例

1.NFS介绍 1.1.NFS概念描述 什么是NFS?NFS是Network File System的缩写,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或者目.NFS客户端(一般为应用服务器,如Web)可以通过挂载(mount)的方式将NFS服务器端共享的数据文件目录挂载到NFS客户端本地系统中(就是某一个挂载点下).从NFS客户端的机器本地上看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上确是远端的服务器目录. 1.2.NFS历史 第一个网络文件系统

NFS网络文件共享服务的配置和排错总结

1.什么是NFS? NFS,全名叫Network File System,中文叫网络文件系统,是Linux.UNIX系统的分布式文件系统的一个组成部分,可实现在不同网络上共享远程文件系统.NFS由Sun公 司开发,目前已经成为文件服务的一种标准之一.其最大的功能就是可以通过网络,让不同操作系统的计算机可以共享数据, 所以可以把NFS看做是一个文件服务器.NFS缺点是其读写性能比本地硬盘要差一些. 2.使用yum安装nfs-utils.rpcbind 实验环境centos 6.6nfs-serve

搭建NFS网络文件共享服务(干货)

先上干货: 以下是配置全过程(客户端和服务端对比)查看NFS软件包[[email protected] ~]# rpm -aq nfs-utils portmap rpcbind#这个命令比(yum grouplist)的更有效率 安装法一:[[email protected] ~]#yum groupinstall "NFS file server"也可以使用法二:[[email protected] ~]# yum install nfs-utils rpcbind -y来安装 客

【集群实战】NFS网络文件共享服务

1. NFS介绍 1.1 什么是NFS? NFS是Network File System的缩写,中文意思是网络文件系统.它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.NFS客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下).从客户端本地看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器的目录. NFS网络文件系统很像

NFS网络文件共享存储服务器

NFS网络文件共享存储服务器 什么是NFS NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样. 在企业集群架构的工作场景中,NFS网络文件系统一般被用来共享存储视频.图片.附件等静态资源文件,通常网站用户上的文件都会存放到NFS共享里.例如bbs产品的图片.附件头像等.然后前段所有的节点访问这些静态资源时都会读取NFS存储上

第二章--(第七单元)--访问网络文件共享服务

一.什么是网络文件共享服务 网络文件系统是由网络附加存储服务器通过网络向多个主机提供的一种文件系统,而不是由快设备提供的.客户端通过特殊的文件系统协议和格式访问远程存储 二.通用网络文件系统 (适合跨系统使用) 1.安装samba服务 yum install samba-client -y 2.登录172.25.254.250服务器 smbclient -L //172.25.254.250 3.进入172.25.254.250服务器的westos1目录 smbclient //172.25.2

Samba网络文件共享服务介绍

Samba网络文件共享服务 一.samba简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件.后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一

第十章 网络文件共享服务之ftp

10.1 ftp介绍 网络文件共享服务主流的主要有三种,分别是ftp.nfs.samba.在上一章中我们已经了解了nfs,本章我们将来说说ftp. FTP是File Transfer Protocol(文件传输协议)的简称,用于internet上的控制文件的双向传输. FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件. 在FTP的使用当中,用户经常遇到两种概念:下载和上传 下载(Download)文件就是从远程主机拷贝文件至自己的计算