导航:首页 > 操作系统 > linux服务器原理

linux服务器原理

发布时间:2023-01-22 00:58:20

A. LVS四种工作模式原理

LVS 是 linux Virtual Server :Linux 虚拟服务器;是一个虚拟的服务器集群【多台机器 LB IP】。

负载调度器(load balancer) :它是整个LVS 集群对外的前端机器,负责将client请求发送到一组服务器[多台LB IP]上执行,而client端认为是返回来一个同一个IP【通常把这个IP 称为虚拟IP/VIP】
服务器池(server pool) :一组真正执行client 请求的服务器,一般是我们的web服务器;除了web,还有FTP,MAIL,DNS
共享存储(shared stored) :它为 server pool 提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相同的服务

常用术语

VS:Virtual Server #虚拟服务,一个抽象的服务,用于最开始接收 web 请求的服务
Director, Balancer #负载均衡器、分发器
RS:Real Server # 真正提供服务的服务器
CIP: Client IP #用户端IP,发起请求的客户端 IP,一般是公网 IP
VIP:Director Virtual IP #负载均衡器虚拟IP
DIP:Director IP #负载均衡器IP
RIP:Real Server IP #真正提供 web 服务的服务器的 IP

(1)直接路由模式(LVS-DR)
互联网使用比较多的一种模式
DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

DR模式特点
优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。
缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。

(2)NAT模式(LVS-NAT)
NAT模式是通过网络地址转换的方法来实现调度的。首先调度器(LB)接收到客户的请求数据包时(请求的目的IP为VIP),根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后调度就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP),这样真实服务器(RS)就能够接收到客户的请求数据包了。真实服务器响应完请求后,查看默认路由(NAT模式下我们需要把RS的默认路由设置为LB服务器。)把响应后的数据包发送给LB,LB再接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

NAT模式特点:
1、NAT技术将请求的报文和响应的报文都需要通过LB进行地址改写,因此网站访问量比较大的时候LB负载均衡调度器有比较大的瓶颈,一般要求最多之能10-20台节点
2、只需要在LB上配置一个公网IP地址就可以了。
3、每台内部的节点服务器的网关地址必须是调度器LB的内网地址。
4、NAT模式支持对IP地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致。

(3)Full NAT模式(LVS-FullNAT)
客户端对VIP发起请求,Director接过请求发现是请求后端服务。Direcrot对请求报文做full-nat,把源ip改为Dip,把目标ip转换为任意后端RS的rip,然后发往后端,rs接到请求后,进行响应,响应源ip为Rip,目标ip还是DIP,又内部路由路由到Director,Director接到响应报文,进行full-nat。将源地址为VIP,目标地址改为CIP
请求使用DNAT,响应使用SNAT

Full NAT模式特点:
FULL NAT 模式也不需要 LBIP 和realserver ip 在同一个网段;
full nat 跟nat 相比的优点是:保证RS回包一定能够回到LVS;因为源地址就是LVS==> 不确定
full nat 因为要更新sorce ip 所以性能正常比nat 模式下降 10%

(4)IP隧道模式(LVS-Tunnel)
采用NAT模式时,由于请求和响应的报文必须通过调度器地址重写,当客户请求越来越多时,调度器处理能力将成为瓶颈。为了解决这个问题,调度器把请求的报文通过IP隧道转发到真实的服务器。真实的服务器将响应处理后的数据直接返回给客户端。这样调度器就只处理请求入站报文,由于一般网络服务应答数据比请求报文大很多,采用VS/TUN模式后,集群系统的最大吞吐量可以提高10倍。
它和NAT模式不同的是,它在LB和RS之间的传输不用改写IP地址。而是把客户请求包封装在一个IP tunnel里面,然后发送给RS节点服务器,节点服务器接收到之后解开IP tunnel后,进行响应处理。并且直接把包通过自己的外网地址发送给客户不用经过LB服务器。

ip隧道模式特点:
负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。
隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

四种模式性能比较:
因为DR模式 IP TUNELL 模式都是在package in 时经过LVS ,在package out是直接返回给client,所以二者的性能比NAT 模式高,但IP TUNNEL 因为是TUNNEL 模式比较复杂,其性能不如DR模式;
FULL NAT 模式因为不仅要更换 DST IP 还更换 SOURCE IP 所以性能比NAT 下降10%
4种模式的性能如下:DR ==> IP TUNNEL ==>NAT ==>FULL NAT

B. Linux里面chrony原理是什么

Chrony是NTP(Network Time Protocol,网络时间协议,服务器时间同步的一种协议)的另一种实现,与ntpd不同,它可以更快且更准确地同步系统时钟,最大程度的减少时间和频率误差。
在CentOS6中,默认是使用ntpd来同步时间的,但ntpd同步时间并不理想,有可能需要数小时来同步时间。而且ntp也已经很老了。所以在Centos7中换成了chrony来实现时间同步。chrony并且兼容ntpd监听在udp123端口上,自己则监听在udp的323端口上。
如果在chrony配置文件中指定了ntp服务器的地址,那么chrony就是一台客户端,会去同步ntp服务器的时间,如果在chrony配置了允许某些客户端来向自己同步时间,则chrony也充当了一台服务器,所以,安装了chrony即可充当客户端也可以充当服务端。一般我们只需要做客户端就好,不需要对外提供时间同步功能。
一、chrony是两个用来维持计算机系统时钟准确性的程序,这两个程序命名为chronyd和chronyc。
chronyd是一个在系统后台运行的守护进程。主要用于调整内核中运行的系统时间和时间服务器同步,他根据网络上其他时间服务器时间来测量本机时间的偏移量从而调整系统时钟。对于孤立系统,用户可以手动周期性的输入正确时间(通过chronyc)。在这两种情况下,chronyd决定计算机快慢的比例,并加以纠正。chronyd实现了NTP协议并且可以作为服务器或客户端。
chronyc是用来监控chronyd性能和配置其参数的用户界面。他可以控制本机及其他计算机上运行的chronyd进程。
服务unit文件: /usr/lib/systemd/system/chronyd.service
监听端口: 323/udp,123/udp
配置文件: /etc/chrony.conf

二、chrony 的优势:
更快的同步,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用
能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用
在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响
在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性
无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟

C. Linux_165_NFS和RPC工作原理

NFS通过port传输数据,NFS服务在传输数据的时候,端口是随机选择的(自己重启NFS服务,查看端口是否在变化)
NFS是通过RPC服务,进行一个端口注册,实现告知用户,NFS的工作端口是哪一个

RPC
RPC:远程过程调用
Linux上使用NFS服务,必须启动2个服务:NFS服务 和 RPC 服务
NFS服务通过RPC注册自己的端口功能
RPC服务功能就是记录每个NFS功能对应的一个端口号,并且RPC保证了NFS客户端发出请求的时候,把该功能对应的端口信息告知NFS客户端,保证客户端能够正确连接到NFS服务端的端口,达到数据传输的目的
RPC好比是一个中介,处于客户端和服务端之间

RPC服务如何知道NFS服务端的端口信息?
NFS服务器启动的时候,会随机采用若干个端口,并且主动在RPC服务中进行注册,如此一来,RPC服务就正确知道所有NFS服务端的端口功能了,RPC服务默认使用Linux的111端口和NFS客户端进行交流,并且通过111端口将正确的NFS服务端的端口信息,告知给NFS客户端。因此,NFS客户端就能够正确找到NFS服务端的端口信息

D. 、linux的运行级别及说明。

Linux的运行级别
可以简单的理解为linux启动之后处于的某个状态,linux启动之后会在一个级别状态下运行,linux服务器一般运行在3级别。
一、Linux的运行级别(runlevel)
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则一开机就会重启
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则一开机就会重启
二、运行级别的原理
1、在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
2、在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
3、rcN.d目录下都是一些符号链接文件,这些链接文件都指向/etc/rc.d/init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
4、系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件
对于以K开头的文件,系统将终止对应的服务
对于以S开头的文件,系统将启动对应的服务
5、查看运行级别用:runlevel
6、进入其它运行级别用:(sudo) init N
7、另外init0为关机,init 6为重启系统 。《Linux就该这么学》
另外,当使用runlevel查看运行级别时,结果会显示前一次的运行级别和现在的运行级别,如果前次的运行级别为N,那么说明前次没有运行级别(可能刚刚power on)

E. 什么是LinuxLinux与Windows的相同点和不同点

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
(1)不同的使用费用
Linux是一项开源的项目,所以编程爱好者可以免费使用它;而Windows则是需要购买的一款系统。
(2)适用对象不同
Linux适用于企业服务器系统架构,而Windows则适用于公众使用。
(3)操作方式不同
Windows是面向普及的,所以它的操作更符合普通人的操作习惯,其中大部分是通过界面操作实现的。另一方面,在许多情况下,Linux需要从命令行操作。
(4)支持软件不同
Windows由于使用人数较多,所以支持Windows的软件在数量和质量上都比Linux有优势。
Linux平台只有开发者维护,缺少资金的大量支持,所以软件方面的数量和质量比较缺乏。
(5)不同的文件格式
Windows操作系统的内核是NT,Linux是shell。
(6)安全性不同
Windows系统常常受攻击目标,有必要安装一些安全保护软件来保护计算机的安全。Linux比Windows安全得多,使用Linux根本不需要额外的安全软件。
(7)程序可移植性不同
Windows的程序是不可移植的,该程序基本上与Linux不兼容。Linux程序是可移植的,不仅在不同的Linux之间,而且在Windows上也是如此。

F. 深入剖析Linux IO原理和几种零拷贝机制的实现未完待续

1。物理内存和虚拟内存

物理内存只有内核才可以访问。

因为操作系统的进程与进程之间是共享CPU和资源的,为了防止进程之间互相影响就有了一个对主存的抽象概念:虚拟内存。虚拟内存使得应用程序以为自己有一块连续独立的存储空间,实际上是多个物理内存碎片。而虚拟内存和物理内存的对应关系存放在一个叫页表的地方。每个进程都有自己独立的页表。下图为上述三个概念的关系。

现在来总结下进程申请并访问物理内存的过程:

2。内核空间和用户空间

操作系统的核心是内核,独立于普通的应用程序。可以访问受保护的内存空间也可以访问硬件设备。为了保护内核安全,所以将虚拟内存分为内核空间和用户空间。 内核模块运行于内核空间,对应的进程处于内核态。用户模块运行于用户空间,对应的进程处于用户态。

3。Linux IO 读写的方式

轮询/IO中断/DMA

3.1 IO中断。 一个图就可以懂🦈

具体过程如下(图已经清晰了 _ 为了以后回忆文字也贴上来

3.2 DMA

其实我自己感觉只是节省的CPU一小部分的时间(将数据从磁盘缓冲区复制到内核缓冲区)

前面已经讲了Linux 操作的两种方式具体步骤,下面讲一下 读写 整个过程的步骤。为了更好的理解零拷贝实现方式所以理解基础的读写过程也很重要。

4 传统的IO
在linux系统中通过read()方法读取文件到缓冲区,调用write()方法将缓冲区的数据输出到网络端口。

4次上下文切换:读写时(用户态 <==> 内核态)
4次拷贝动作:DMA2次 + CPU2次
Ps:

4.1 传统的写操作
写数据和读数据差不多啦就不写了

5 零拷贝实现方式的思路

这个文章也可以看一下 https://cloud.tencent.com/developer/article/1346483

摘抄于 https://zhuanlan.hu.com/p/83398714

G. 什么是Linux,它是做什么的

一、什么是Linux

Linux和Windows一样,是一个计算机操作系统,和Windows不一样的是,Linux是完全开源的操作系统,任何人都可以容易得到Linux的内核代码,并对其进行研究修改,使其适用于不同的设备和应用场景,这也使得Linux和Windows这样的相比,应用范围要广得多。

首先,Linux是开源的,自从1991年李纳斯(linux的创始人)发布第一个内核版本以来,无数的开发者参与到了Linux的开发中,随着版本不断迭代,linux内核变得越来越健壮,安全性也越来越高,也被应用到越来越多的领域之中,从这个角度来说,Linux是人类智慧的共同结晶,而Windows是属于微软私有产物,人们只有使用权而没有修改权。

二、Linux可以做什么

1.网络服务器

阅读全文

与linux服务器原理相关的资料

热点内容
安卓手机换苹果怎么快速适应 浏览:584
解压捏肥皂片噼里啪啦的声音 浏览:146
ccs编译器怎么调节字体大小 浏览:324
有什么免费的作曲安卓软件 浏览:961
linuxmp3转wav 浏览:298
太力真空压缩袋官网 浏览:578
学java一个月 浏览:318
单片机汇编模块化编程 浏览:862
网易我的世界电脑服务器卡怎么办 浏览:497
如何删除交换机上ntp服务器 浏览:613
途虎养车后怎么在app上看流程 浏览:147
ug刀具库设定的转速进给放在那个文件夹 浏览:272
解压面对面之家明与小敏 浏览:448
如何整理办公室服务器文件 浏览:662
plsql怎么看编译不通过 浏览:455
360压缩formac版 浏览:763
从你的世界路过pdf 浏览:459
add编译原理 浏览:332
javachar是什么 浏览:961
苹果怎么清理每个app占用的内存 浏览:91