導航:首頁 > 操作系統 > 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伺服器原理相關的資料

熱點內容
pq對加密貨幣的估值 瀏覽:471
十字軍聖印審判命令聖印宏 瀏覽:308
輕量雲伺服器有顯卡 瀏覽:144
linux文件添加內容 瀏覽:223
永恆之塔單機命令 瀏覽:216
加密貨幣好轉嗎 瀏覽:768
如何將手機上的app發給微信好友 瀏覽:491
解壓文件無效 瀏覽:86
用戶畫像數據建模演算法 瀏覽:848
假睫毛濃密加密 瀏覽:784
ppt教程pdf 瀏覽:112
北京加密狗廠家 瀏覽:869
大地超app怎麼更改個人信息 瀏覽:485
excel自動被加密 瀏覽:180
linux命令行分號 瀏覽:730
linux命令執行文件 瀏覽:169
模擬飛行解壓 瀏覽:339
程序員必讀定律 瀏覽:660
長沙保衛戰薛岳下命令是哪一集 瀏覽:416
hp伺服器如何進iLO界面 瀏覽:142