本文目录:
- 1、nfs是什么系统?
- 2、nfs文件系统无法响应,进程处于d状态
- 3、什么是NFS文件系统
- 4、NFS网络文件系统配置
nfs是什么系统?
NFS是网络文件系统。
网络文件系统(NFS)是文件系统之上的一个网络抽象,来允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问。虽然 NFS 不是第一个此类系统,但是它已经发展并演变成 UNIX系统中最强大最广泛使用的网络文件系统。NFS 允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需的存储空间。
NFS的工作原理
NFS的工作原理是使用客户端/服务器架构,由一个客户端程序和服务器程序组成。服务器程序向其他计算机提供对文件系统的访问,其过程称为输出。NFS客户端程序对共享文件系统进行访问时,把它们从NFS服务器中“输送”出来。文件通常以块为单位进行传输。其大小是8KB(虽然它可能会将操作分成更小尺寸的分片)。NFS传输协议用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程地访问保存在存储设备上的数据。
nfs文件系统无法响应,进程处于d状态
NFS文件系统无法响应,进程处于D状态,往往是由于I/O资源得不到满足而引发等待。
举个例子,当NFS服务端关闭之时,若未事先umount相关目录,在NFS客户端执行df就会挂住整个登录会话,按Ctrl+C、Ctrl+Z都无济于事。断开连接再登录,执行ps axf则看到刚才的df进程状态位已变成了D,kill-9无法杀灭。
正确的处理方式,是马上恢复NFS服务端,再度提供服务,刚才挂起的df进程发现了其苦苦等待的资源,便完成任务,自动消亡。若 NFS 服务端无法恢复服务,在reboot之前也应将 /etc/mtab里的相关NFS mount项删除,以免reboot过程例行调用netfs stop时再次发生等待资源,导致系统重启过程挂起。
存在的意义
D(TASK_UNINTERRUPTIBLE)状态存在的意义就在于内核的某些处理流程是不能被打断的。如果响应异步信号,程序的执行流程中就会被插入一段用于处理异步信号的流程(这个插入的流程可能只存在于内核态,也可能延伸到用户态),于是原有的流程就被中断了。
在进程对某些硬件进行操作时(比如进程调用read这个系统调用对某个设备文件进行读操作,而read系统调用最终执行到对应设备驱动的代码,并与对应的物理设备进行交互),可能需要使用TASK_UNINTERRUPTIBLE状态对进程进行保护,以避免进程与设备交互的过程被打断,造成设备陷入不可控的状态。
这种情况下的TASK_UNINTERRUPTIBLE状态总是非常短暂的,通过ps命令基本上不可能捕捉到。
什么是NFS文件系统
NFS是Network
File
System的缩写,即网络文件系统。
它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。NFS客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下)。从NFS客户端的机器本地看,NFS服务端共享的目录就好像是客户自己的磁盘分区或者目录一样,而实际上确是远端的NFS服务端的目录。
NFS网络文件系统类似windows系统的网络共享、安全功能、网络驱动器映射,这也和linux系统里的samba服务类似。应用于互联网中小型集群架构后端作为数据共享,如果是大型网站,那么有可能还会用到更复杂的分布式文件系统,例如Moosefs(mfs)、glusterfs、FastDFS。
NFS网络文件系统配置
配置流程适用于Debian\Ubuntu等的衍生发行版
Server:Armbian\192.168.2.225
Client:Deepin\192.168.2.222
增添一行
将 /root/share 共享给192.168.2.222 ,客户端权限rw
其中共享对象可以用通配符,比如 * 代表所有地址。
rw: 读写
ro :只读
fsid=0 : 指定/root/share为nfs的根目录
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:是大数据时使用,是先写到缓存区,必要时再写到磁盘里。
all_squash:所有访问用户都映射为匿名用户或用户组;
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
root_squash(默认):将来访的root用户映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root帐号权限;
wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree_check :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
no_subtree_check(默认):即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
看到最后有 192.168.2.225:/ 15G 9.3G 5.2G 65% /mnt
不能写入,没有密码
【nfs文件系统】的内容来源于互联网,如引用不当,请联系我们修改。
网友留言: