NFS 概述 NFS(Network File System)即網路文件系統,它允許網路中的電腦之間通過TCP/IP網路共用資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS伺服器上的文件,就像訪問本地文件一樣。最早由sun公司開發,是類unix系統間實現磁碟共用的一種方法 ...
NFS
- 概述
-
NFS(Network File System)即網路文件系統,它允許網路中的電腦之間通過TCP/IP網路共用資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS伺服器上的文件,就像訪問本地文件一樣。
最早由sun公司開發,是類unix系統間實現磁碟共用的一種方法 - 工作原理
如上圖,當我們在NFS伺服器設置好一個共用目錄/data/share後,其他的有許可權訪問NFS伺服器的NFS客戶端就可以講這個目錄掛載到自己的本地,並且能看到服務端/data/share下的所有數據,NFS是通過網路來進行Server端和Client端之間的數據傳輸,既然走網路,雙方肯定都要有埠,哪NFS Server怎麼知道使用哪個埠來進行數據傳輸,NFS其實會隨機選擇埠來進行數據傳輸,NFS伺服器是通過遠程過程調用RPC(Remote Procedure Call)協議來實現的,所以,RPC管理服務端的NFS埠分配,客戶端要傳數據,那麼客戶端的RPC會先跟服務端的RPC去要伺服器的埠,要到埠後,再建立連接,然後傳輸數據
-
RPC(Remote Procedure Call)——遠程過程調用,它是一種通過網路從遠程電腦程式上請求服務,而不需要瞭解底層網路技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通信程式之間攜帶信息數據。在OSI網路通信模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網路分散式多程式在內的應用程式更加容易。NFS 伺服器在啟動的時候就得要向 RPC 註冊,所以 NFS 伺服器也是一種 RPC server 。
- NFS服務所需用到的軟體
nfs-utils:NFS服務的全程式,包括rpc.nfsd、rpc.mountd這兩個daemons和相關文檔說明,以及執行命令文件等。
rpcbind:Centos.x下麵RPC的主程式。NFS可視為一個rpc程式,在互動任何一個RPC程式之前,需要做好埠和功能的對應映射工作,這個映射工作就是由RPCBIND服務來完成的。因此,在提供NFS服務之前必須先啟動RPCBIND服務。
named
- 概述
named服務,也就是dns,一般來講功能變數名稱比IP地址更加的有含義、也更容易記住,所以通常用戶更習慣輸入功能變數名稱來訪問網路中的資源,但是電腦主機在互聯網中只能通過IP識別對方主機,那麼就需要DNS功能變數名稱解析服務了。
通常 Internet 主機功能變數名稱的一般結構為:主機名.三級功能變數名稱.二級功能變數名稱.頂級功能變數名稱。
TLD(top level domain)
組織域:.com, .org, .net, .cc
國家域: .cn, .tw, .hk, .iq, .ir, .jp
反向域: IP-->FQDN 將IP地址轉換成主機名,早期只能正向解析,後來引入了一個機制。指針;但是從IP轉換成FQDN是另外一套資料庫。
DNS服務協議採用類似目錄樹的層次結構記錄功能變數名稱與IP地址的映射對應關係,形成一個分散式的資料庫系統,上級僅知道其直接下級,下級只知道根的位置。結構模型:
-
DNS功能變數名稱解析服務(Domain Name System)是用於解析功能變數名稱與IP地址對應關係的服務,功能上可以實現正向解析與反向解析:
-
正向解析:根據主機名(功能變數名稱)查找對應的IP地址。
-
反向解析:根據IP地址查找對應的主機名(功能變數名稱)。
-
DNS使用的埠號
UDP TCP:53 優先使用UDP這種查詢比較快的協議;當主從DNS同步數據時使用TCP這種可靠的傳輸協議 - 主配置文件
options { 全局配置
listen-on port 53 { any;}; 監聽埠
listen-on-v6 port 53 { ::1; };
directory "/var/named"; 指定區域文件存儲目錄
dump-file "/var/named/data/cache_dump.db"; dump cache目錄
allow-query { any; }; 指定允許進行查詢的主機
recursion yes; 是否允許遞歸查詢
pid-file "/var/run/named" 指定pid的位置
allow-transfer { none; };指定允許接受區域傳送請求的主機(定義為輔助DNS)
forwarders { 114.114.114.114; }; 設置轉發
forward only|first; 僅轉發|優先轉發
};
logging { 指定伺服器日誌記錄的內容和日誌信息來源
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {指定區域
type hint; 指定區域類型 hint根 master主服務 slave 從
file "named.ca"; zone文件名
};
LVS負載均衡群集
- LVS(Liunx Virtual Server)
LVS作用就是實現負載均衡,而負載均衡簡單來所就是將用戶請求合理的分流到後端節點之上,以實現資源的高效利用。
LVS特點是可以跨平臺,也就是在windows、Linux系統之上都可以用。
LVS的核心組件:
ip_vs:linux的內核功能模塊,工作在內核,依賴該內核模塊實現負載均衡功能
ipvsadm:應用層程式,該程式可以和內核中的ip_vs模塊通信,實現對負載均衡的管理和控制
keepalived也可以對ip_vs進行管理
- LVS的工作模式:DR模式、NAT模式、TUN模式、。
地址轉換:簡稱NAT模式,類似於防火牆的私有網路結構,負載調度器作為所有伺服器節點的網關,即作為客戶機的訪問入口,也是個節點回應客戶機的訪問出口,伺服器節點使用私有IP地址,與負載均衡調度器位於同一個物理網路,安全性要優於其他兩種方式。
IP隧道:簡稱TUN模式,採用開放式的網路結構,負載調度器僅作為客戶機的入口,各節點通過各自的Internet連接直接回應客戶機,而不再經過負調度器。伺服器節點分散在互聯網的不同位置,具有獨立的公網IP地址,通常專用IP隧道與負載調度器相互通信。
直接路由:簡稱DR模式,採用半開放式的網路結構,與TUN模式的結構類似,但個節點並不是分散在各地,而是與調度器位於同一個物理網路。負載調度器與個節點伺服器通過本地網路連接,不需要建立專用的IP隧道。
LVS的調度演算法,所謂演算法簡單來說就是按照什麼規則來送後端的多個RS中挑選一個給用戶提供服務。演算法有靜態演算法和動態演算法。
靜態演算法:無論後端的RS當前的伺服器負載情況怎麼樣,都安裝固定的方式來給RS分配用戶請求
rr:Round Bobin,輪詢,將客戶端的請求交替分配給RS
wrr:Weighted Round Bobin,加權輪詢,根據RS的性能不同,讓他們來承擔不同比例的用戶請求
dh:Destination Hashing,目標地址哈希調度,基於用戶所請求的地址做哈希表
作用:實現將對於相同的地址的請求調度到同一個RS之上
使用場景:適應於前端是一個DR,後端是多個cache的時候
sh:Source Hashing,源地址的哈希調度,基於用戶的ip地址做哈希表
作用:實現將同一個客戶端調度到相同的RS之上
- 群集的類型
負載均衡群集:以提高應用系統的響應能力,儘可能處理更多的訪問請求,減少延遲,獲得高併發,高負載的整天性能,例如:“DNS輪詢”,“應用層交換”,“反向代理”等都可以做負載均衡群集。
高可用群集:以提高應用系統的可靠性,儘可能地減少中斷時間,確保服務的連續性,達到高可用的容錯效果,例如:“故障切換”,“雙機熱備”,“多機熱備”等都屬於高可用群集。
高性能運算群集:以提高應用系統的CPU運算速度,擴展硬體資源和分析能力,獲得相當於大型,超級電腦的高性能運算能力,例如:“雲計算”等就屬於高性能運算群集的一種。
- 載均衡的分層結構
在典型的負載均衡群集中,包括以下三個層次的組件。
第一層:負載調度器,這是訪問整個群集系統的唯一入口,多外使用所有伺服器共有的VIP(虛擬IP)地址,也稱群集IP地址。通常會配置主,備兩台調度器實現熱備,當主調度器失效以後平滑替換至備用調度器,確保高可用性。
第二層:伺服器池:群集所提供的應用服務由伺服器池承擔,其中的每個節點具有獨立的RIP(真實IP)地址,只處理調度器分發過來的客戶機請求。
第三層:共用存儲,為伺服器池中的所有節點提供穩定,一致的文件存取服務,確保整個群集的統一性。在Linux環境中,共用存儲可以使用NAS設備或者提供NFS(網路文件系統)共用服務的專用伺服器。