Linux基础服务下NFS文件服务器实战必备
Posted Python编程学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础服务下NFS文件服务器实战必备相关的知识,希望对你有一定的参考价值。
NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS在文件传送或信息传送过程中依赖于RPC协议,RPC远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制,NFS本身是没有提供信息传输的协议和功能的。
NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS、GFS等等分布式文件系统。
NFS(网络文件系统):让网络上的不同linux/unix系统机器实现文件共享 nfs本身只是一种文件系统,没有提供文件传递的功能,但却能让我们进行文件的共享,原因在于 NFS 使用RPC服务,用到NFS的地方都需要启动RPC服务,无论是NFS客户端还是服务端 nfs和rpc的关系:nfs是一个文件系统,负责管理分享的目录;rpc负责文件的传递 nfs启动时至少有rpc.nfsd和rpc.mountd2个daemon rpc.nfsd主要是管理客户机登陆nfs服务器时,判断改客户机是否能登陆,和客户机ID信息。 Rpc.mountd主要是管理nfs的文件系统。当客户机顺利登陆nfs服务器时,会去读/etc/exports文件中的配置,然后去对比客户机的权限。 协议使用端口: RPC:111 tcp/udp nfsd: 2049 tcp/udp mountd:RPC服务在 nfs服务启动时默认会为 mountd动态选取一个随机端口(32768--65535)来进行通讯 ,可以在/etc/nfsmount.conf文件中指定mountd的端口 |
yum install nfs* -y 如下图,安装成功即可。
NFS安装完毕,需要创建共享目录,共享目录在vi /etc/exports文件里面配置,可配置参数如下:
/data/ *(rw,no_root_squash,no_all_squash,sync)
配置文件中添加如上一行,然后重启Portmap,NFS服务即可
service portmap restart ;service nfs restart
第一列/data/表示需要共享的目录。
IP表示允许哪个客户端访问。
IP后括号里的设置表示对该共享文件的权限。
n ro 只读访问;
n rw 读写访问;
n sync 所有数据在请求时写入共享;
n all_squash 共享文件的UID和GID映射匿名用户anonymous;
n no_all_squash 保留共享文件的UID和GID(默认) ;
n root_squash root用户的所有请求映射成如anonymous用户一样的权限;
n no_root_squash root用户具有根目录的完全管理访问权限。
Linux客户端,如何想使用这个NFS文件系统,需要在客户端挂载,挂载命令为:
mount –t nfs 192.168.1.103:/data/ /mnt 即可。
如果有报错根据错误信息排查。常见问题有rpc服务没有启动、防火墙没关闭、selinux未关闭等问题。(拓展* 有兴趣的童鞋可以研究MFS(分布式文件系统)。
Linux系统各种软件和服务,存在于系统,必然会占用系统各种资源,系统资源是如何分配及调度的呢,本节将给读者展示系统进程、资源及调度相关的内容。
进程(Process)是计算机中的软件程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
在早期面向进程设计的计算机结构中,进程是程序的基本执行实体,在当代面向线程设计的计算机结构中,进程是线程的容器。软件程序是对指令、数据及其组织形式的描述,而进程是程序的实体,通常而言,把运行在系统中的软件程序称之为进程。
除了进程,读者通常会听到线程的概念,线程也被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。
线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有操作系统资源,但是该线程可与同属进程的其它线程共享该进程所拥有的全部资源。
程序、进程、线程三者区别如下:
q 程序:程序并不能单独执行,是静止的,只有将程序加载到内存中,系统为其分配资源后才能够执行;
q 进程:程序对一个数据集的动态执行过程,一个进程包含一个或者更多的线程,一个线程同时只能被一个进程所拥有,进程是分配资源的基本单位。进程拥有独立的内存单元,而多个线程共享内存,从而提高了应用程序的运行效率。
q 线程:线程是进程内的基本调度单位,线程的划分尺度小于进程,并发性更高,线程本身不拥有系统资源, 但是该线程可与同属进程的其它线程共享该进程所拥有的全部资源。每一个独立的线程,都有一个程序运行的入口、顺序执行序列、和程序的出口。
如图8-1所示,程序、进程、线程三者的关系拓扑图:
如上图8-1所示,多进程、多线程的区别如下:
q 多进程,每个进程互相独立,不影响主程序的稳定性,某个子进程崩溃对其他进程没有影响,通过增加CPU可以扩充软件的性能,可以减少线程加锁/解锁的影响,极大提高性能。缺点是多进程逻辑控制复杂,需要和主程序交互,需要跨进程边界,进程之间上下文切换比线程之间上下文切换代价大。
大家好,我有以下资料送给大家
1、Linux云计算初级学习
2、nginx高可用web实战演练
3、K8S(Kubernetes)云计算案例实战
扫描下方二维码加小江老师微信前15名免费领取,最新架构师全套教程+文档! 加美女小江老师微信领取:jfxj12345
京峰教育:专注架构师培养,不做运维背锅侠,因为月薪10k没有意义
以上是关于Linux基础服务下NFS文件服务器实战必备的主要内容,如果未能解决你的问题,请参考以下文章