概念
NFS:Network File Service,网络文件服务,在多个Linux主机间共享文件夹,可以将远程主机(称为NFS服务器)上的文件系统挂载到本地主机。
配置NFS服务器
启动NFS相关服务
# service rpcbind status 查询rpcbind服务是否运行
# service nfs status 查询nfs服务是否运行
# service rpcbind start
# service nfs start
# service nfslock start 启动数据一致性服务
查询RPC中NFS注册情况
# rpcinfo -p localhost | grep nfs
特定配置服务器NFS导出的目录即共享的目录的权限,例如目录/home/nfs
# vi /etc/exports
/home/nfs 192.168.100.0/24(rw,no_root_squash)
.....
重新读取配置:
# exportfs -arv 全部重新挂载
# exportfs -auv 全部卸载
或者重启 service nfs restart
客户端与当前NFS系统连接的信息记录在/var/lib/nfs/xtab文件;
导出目录的默认参数记录:/var/lib/nfs/etab文件中;
配置NFS客户机
NFS客户机操作很简单,只需要挂载目录就可以本地操作。
查找指定主机可供共享导出的NFS目录
# showmount -e nfs_server_ip
挂载NFS共享目录
mount -t nfs nfs_server_ip:/var/ftp/pub /mnt/pub
mount命令遇到hostname:directory的设备名称,自动识别nfs类型,因此省略nfs类型
mount nfs_server_iip:/var/ftp/pub /mnt/pub
卸载
umount /mnt/pub
开机自动挂载
# vi /etc/fstab 添加一行:
# nfs_server_ip:/var/ftp/pub /mnt/pub nfs ro 0 0
预定义挂载选项,但不自动执行:
# vi /etc/fstab添加一行,并注明moauto参数:
# nfs_server_ip:/var/ftp/pub /mnt/pub ro,noauto,user 0 0
# mount /mnt/pub
注意:user选项表明所有用户都可以通过命令挂载,否则只有root用户可以挂载。
客户机挂载类型
客户机操作远程的NFS目录,NFS服务器由于网络等原因导致客户机进程访问会出错,客户机根据挂载类型,作出不同的处理。
硬NFS挂载(默认类型)
客户机读取NFS服务器目录,如果服务器未成功响应,客户机进程进入不可中断睡眠状态,此时客户机无法用信号杀死进程,只能等待服务器做出响应。
可中断的NFS挂载:当NFS服务器不可用时,客户机可以杀死相关访问NFS的进程。
# mount -o intr nfs_server:/var/ftp/pub /mnt/pub/
软NFS挂载:NFS服务器不可用时进程挂起,30秒以后显示操作超时信息。
# mount -o soft nfs_server:/var/ftp/pub /mnt/pub/
恰当的选项:
读写操作对文件系统的操作和影响不一样,写操作应该等待文件系统的明确的回复。
ro,soft: 读取不可用文件,进程超时出错提醒。
rw,hard,intr:写入不可用的文件时,进程一直中断等待。可以通过人为干预,发送信号,杀死进程。
NFS与用户ID
NFS服务器导出文件,文件的所有属性(文件的权限、用户所有权、修改时间)一并导出,但Linux内核只跟踪用户的ID和组ID,因此导出时,如果两台机器的用户名和ID不一致,会导致文件的属性发生变化;
管理员需要整个NFS挂载目录在本机保持一致的所有权和权限,客户机和服务器上的用户ID必须同步,可通过绑定NIS服务器实现;
自动挂载器autofs
自动挂载器是一个监视目录的守护进程,并在目标子目录被引用时,自动执行预定义的NFS挂载。
automount守护进程名称,autofs服务脚本,/etc/auto.master配置文件,/etc/auto.misc二级配置文件
自动挂载器安装:autfo软件包
查看配置文件:
rpm -ql autofs | grep etc
客户端主机编辑/etc/auto.master,配置监视目录/misc,配置在60秒不使用后自动卸载NFS,
这里指定特定目录的配置文件,一般以auto.dir_name命名
# vi /etc/auto.master
/misc /etc/auto.misc --timeout=60
客户端主机编辑特定目录配置文件/etc/auto.misc,配置自动挂载的NFS目录,将nfs_server的/var/ftp/pub挂载到/misc/pub
# vi /etc/auto.misc
pub -soft nfs_server:/var/ftp/pub
启动autofs服务:
# service autofs restart
验证:
# ls /misc 目录下无任何文件
# ls /misc/pub 显示挂载目录下的所有文件,自动挂载
# df 查看是否已挂载
配置autofs开机启动:
# chkconfig autofs on