一、nfs解释
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
以下是NFS最显而易见的好处:
1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
我主要是为了节省本地存储空间。
二、nfs安装
服务器:10.201.82.6
客户端:10.201.82.10
1、服务器端:
[root@nfs-server ~]# yum -y install nfs-utils rpcbind
把该目录共享给客户端82.10,可读可写,还同步,来访的root用户保持root帐号权限(可能会不安全)
[root@nfs-server ~]# vi /etc/exports
/var/log/shterm/2016/ 10.201.82.10(rw,sync,no_root_squash)
使配置生效
[root@nfs-server ~]# exportfs -rv
exporting 10.201.82.10:/var/log/shterm/2016
启动服务
[root@nfs-server ~]# /etc/init.d/rpcbind start
[root@nfs-server ~]# /etc/init.d/nfs start
设置开机自动启动nfs服务
chkconfig rpcbind on
chkconfig nfs on
2、客户端:
[root@nfs-bljbak ~]# yum -y install nfs-utils
创建挂载目录
[root@nfs-bljbak ~]# mkdir /home/shterm
查看共享状态
[root@nfs-bljbak ~]# showmount -e 10.201.82.6
Export list for 10.201.82.6:
/var/log/shterm/2016 10.201.82.10
-t nfs :表示挂载文件的文件系统格式,也可以省略
[root@nfs-bljbak ~]# mount -t nfs 10.201.82.6:/var/log/shterm/2016 /home/shterm/
挂载成功之后,可以用df -h命令查看
设置开机自动挂载
[root@nfs-bljbak ~]# vi /etc/fstab
10.201.82.6:/var/log/shterm/2016 /home/shterm/ nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0,nolock 0 0
mount命令
mount -a 的意思是将/etc/fstab的所有内容重新加载。
mount 是显示/etc/fstab的内容。
三、命令参数
1、重启nfs或者使用exportfs命令使nfs配置生效
service nfs restart 或者 exportfs -rv
#exportfs用法
-a :全部mount或者unmount /etc/exports中的内容
-r :重新mount /etc/exports中分享出来的目录
-u :umount 目录
-v :将详细的信息输出到屏幕上
2、nfs参数:
ro 该主机对该共享目录有只读权限
rw 该主机对该共享目录有读写权限
root_squash (默认)客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
no_root_squash 客户机用root访问该共享文件夹时,不映射root用户
all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户
no_all_squash (默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组
anonuid 将客户机上的用户映射成指定的本地用户ID的用户。匿名用户的UID值, 通常是nobody或nfsnobody,可以在此处自行设定
anongid 将客户机上的用户映射成属于指定的本地用户组ID。匿名用户的GID值
sync 资料同步写入到内存与硬盘中,适用在通信比较频繁且实时性比较高的场合
async 资料会先暂存于内存中,稍候再写入硬盘,性能较好(速度快), 适合超大或者超多文件的写入,但有数据丢失的风险,比如突然断电等情况
insecure 允许从这台机器过来的非授权访问
secure (默认):限制客户端只能从小于1024的tcp/ip端口连接服务器
insecure 允许客户端从大于1024的tcp/ip端口连接服务器
3、showmount命令
这是另一个重要的nfs指令。exportfs是用于在nfs server端进行设置,查询的。而showmount则主要用于Client端,用于查看NFS分享出来的目录资源。
-e 显示导出服务器上的所有文件系统。
-a 显示每个已安装在服务器上的所有网络文件系统 (NFS) 客户端和目录。
-d 显示当前装载 NFS 客户端的服务器上的所有目录。
4、客户端报错解决
(1) df: `/home/shterm': Stale file handle
[root@nfs-bljbak ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_nfsbljbak-lv_root
50G 814M 46G 2% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 485M 32M 428M 7% /boot
/dev/mapper/vg_nfsbljbak-lv_home
3.0T 593M 2.8T 1% /home
df: `/home/shterm': Stale file handle
卸载目录,重新挂载即可
[root@nfs-bljbak ~]# umount -lf /home/shterm
[root@nfs-bljbak ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_nfsbljbak-lv_root
50G 814M 46G 2% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 485M 32M 428M 7% /boot
/dev/mapper/vg_nfsbljbak-lv_home
3.0T 593M 2.8T 1% /home
(2) umount.nfs: /home/shterm: device is busy
[root@nfs-bljbak ~]# umount -lf /home/shterm
[root@nfs-bljbak ~]# mount -t nfs 10.201.82.6:/var/log/shterm/ /home/shterm/
[root@nfs-bljbak ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_nfsbljbakserver-lv_root
50G 859M 46G 2% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 485M 32M 428M 7% /boot
/dev/mapper/vg_nfsbljbakserver-lv_home
3.0T 1.8T 1.1T 64% /home
10.201.82.6:/var/log/shterm/
1.8T 358G 1.4T 21% /home/shterm