1、集群分類有哪些及各自實現的目標?
高可用:保持系統的穩定,防止系統出現單點故障。
負載均衡:比如高並發狀態下,多個機器分攤請求,從而達到負載均衡
高性能運算集群:比如hadoop分布式計算框架,把多個機器的cpu,硬盤資源聚合到一起,實現高性能計算。
2、常見的硬件負載均衡產品有哪些?
F5,A10,Array
3、常見的軟件負載均衡產品有哪些?
LVS,Nginx,Haproxy
4、對比說明LVS、Nginx、Haproxy等產品的優缺點?
LVS:
優點:
抗負載能力強,性能高,能達到F5的60%,對內存和CPU資源消耗比較低
工作在網絡4層,通過VRRP協議(僅作代理之用),具體的流量是由linux內核來處理,因此沒有流量的產生。
穩定,可靠性高,自身有完美的熱備方案(Keepalived+lvs)
支持多種負載均衡算法:rr(輪詢),wrr(帶權輪詢)、lc(最小連接)、wlc(帶權最小連接)
LVS工作模式有4種: (1) nat 地址轉換 (2) dr 直接路由 (3) tun 隧道 (4) full-nat
轉發效率和穩定性比nginx和haproxy高
缺點:
只能做代理使用,只支持四層協議。
不支持正則處理,不支持動靜分離。
Haproxy:適用於負載特別大的web網站,可以支持萬的並發連接,,可以保護你的web服務器不被暴露到網絡上。
HAProxy的優點是:
1、HAProxy支持虛擬主機。
2、HAProxy的優點能夠補充Nginx的一些缺點,比如支持Session的保持,Cookie的引導;同時支持通過獲取指定的url來檢測后端服務器的狀態。
3、HAProxy跟LVS類似,本身就只是一款負載均衡軟件;單純從效率上來講HAProxy會比Nginx有更出色的負載均衡速度,在並發處理上也是優於Nginx的。
4、HAProxy支持TCP協議的負載均衡轉發,可以對MySQL讀進行負載均衡,對后端的MySQL節點進行檢測和負載均衡,可以用LVS+Keepalived對MySQL主從做負載均衡。
5、HAProxy負載均衡策略非常多。
缺點:
不能做web服務器使用
Nginx:
優點:
對靜態頁面處理非常高效
對內存資源占用較小
可以做web服務器使用,也可以做反向代理,支持lnmp。
支持四層七層轉發,對復雜的網絡功能得以實現
主進程副進程分工明確,主進程接收請求,副進程處理請求,穩定性和高效率
支持很多模塊,比如四層轉發,進程數量自定義,最大合理利用cpu
Nginx對請求的異步處理可以幫助節點服務器減輕負載壓力
缺點:
不支持session會話保持
5、說明什么是HA集群中SLA及企業常見的衡量指標?
SLA 服務水平協定
企業中常見的有三個九 17h31m
四個九8h45m
五個九52m
6、描述LVS軟件的工作模式及模式工作原理?
NET模式:安全性高,但是只通過網關接收和響應請求,負載低。
TUN模式:通過調度器接收用戶請求,但是處理節點分布在因特網返回用戶請求,這樣代價昂貴。
DR模式:這種模式性能和成本相對都比較理想,半開式網絡,節點和調度器都在局域網,而節點響應卻通過路由返回給用戶。
7、描述LVS負載均衡軟件常見的調度算法?
rr: 輪叫算法
根據節點數量,把請求批量一個一個分配給節點,不管服務器性能如何,每個節點接收的請求基本相同。
wrr:加權輪叫算法
根據不同服務器的性能,分配連接請求不同,性能好的服務器分配的請求多。
lc: 最小連接數算法
根據服務器連接請求數量而分配請求數量,服務器連接請求少就分配的請求多。
wlc:加權最小連接數算法
智能根據服務器的性能,和響應時間分配的請求多少。
8、請畫圖說明LVS DR模式數據包轉發原理?
客戶端ip:192.168.36.111
mac:12:cd:34:vf
調度器ip:192.168.36.112
vip:192.168.36.254
mac:12:gg:tt:ty22
服務器ip:192.168.36.113
mac:12:fe:45:hh:oi
比如客戶端請求LVS調度器:
包頭為:192.168.36.111 > 192.168.36.254
mac: 12:cd:34:vf > 12:gg:tt:ty22
然后LVS調度器根據算法分配請求給服務器:
ip : 192.168.36.112 > 192.168.36.113
mac:12:gg:tt:ty22 > 12:fe:45:hh:oi
9、請描述LVS軟件在企業架構中的組件位置及作用?
LVS一般在企業架構中最前面接收用戶請求,它可以接收用戶請求,然后根據算法把請求分配給比如nginx代理。充當整個架構的負載均衡的作用。
10、LVS軟件的管理工具及模塊名稱?
ipvsadm
ip_vs
-----------------------------------------------------------------------------------------------------------------------------------
1:簡述raid0、raid1、raid4三種工作模式的工作原理及特性!
RAID 0:連續以位或字節為單位分割數據,並行讀/寫於多個磁盤上,因此具有很高的數據
傳輸率,但它沒有數據冗余,因此並不能算是真正的RAID 結構。RAID 0 只是單純地提高
性能,並沒有為數據的可靠性提供保證,而且其中的一個磁盤失效將影響到所有數據。因此,
RAID 0 不能應用於數據安全性要求高的場合。
RAID 1:它是通過磁盤數據鏡像實現數據冗余,在成對的獨立磁盤上產生互為備份的數據。
當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,因此RAID 1 可以提高讀取性能。RAID
1 是磁盤陣列中單位成本最高的,但提供了很高的數據安全性和可用性。當一個磁盤失效時,
系統可以自動切換到鏡像磁盤上讀寫 ,而不需要重組失效的數據。簡單來說就是:鏡象結
構,類似於備份模式,一個數據被復制到兩塊硬盤上。
RAID10:高可靠性與高效磁盤結構
一個帶區結構加一個鏡象結構,因為兩種結構各有優缺點,因此可以相互補充。
主要用於容量不大,但要求速度和差錯控制的數據庫中。
RAID5:分布式奇偶校驗的獨立磁盤結構,它的奇偶校驗碼存在於所有磁盤上,任何一個
硬盤損壞,都可以根據其它硬盤上的校驗位來重建損壞的數據。支持一塊盤掉線后仍然正常
運行。
2:LVS、Nginx、HAproxy有什么區別?在工作中怎么選擇!
LVS:
1,抗負載能力強,是工作在網絡4層之上僅作分發之用,沒有流量的產生,這個特點也決定了它在負載均衡軟件里的性能最強的,對內存和cpu資源消耗比較低。
2,配置較低,這是一個缺點也是一個優點,因為沒有可太多配置的東西,所以並不需要太多接觸,大大減少了人為出錯的幾率。
3,工作穩定,因為其本身抗負載均衡能力很強,自身有完整的雙機熱備方案,如LVS+Keepalived,不過我們在項目實施中用得最多的還是LVS/DR+Keepalived。
4,無流量,LVS只分發請求‘,而流量並不從它本身出去,這保證了均衡器IO的性能不會收到大流量的影響。
Nginx:
1,工作在網絡的7層之上,可以針對http應用做一些分流的策略,比如針對域名,目錄結構,它的正則規則比HAproxy更為強大和靈活
2:Nginx對網絡穩定性的依賴非常小
3,可以承擔高負載壓力且穩定,在硬件不差的情況下一般能支撐幾萬次的並發量,負載度比LVS相對小些。
4,Nginx可以通過端口檢測到服務器內部的故障,比如根據服務器處理網頁返回的狀態碼,超時等等
5,Nginx不僅僅是一款優秀的負載均衡器/反向代理軟件,它同時也是功能強大的Web應用服務器。
Haproxy:
1,HAproxy也是支持虛擬主機的。
2,HAproxy的優點能夠補充Nginx的一些缺點,比如支持Session的保持,Cookie的引導:同時支持通過獲取指定的url來檢測后端服務器的狀態。
3,HAproxy跟LVS類似,本身就只是一款負載均衡軟件;單純從效率上來講HAproxy會比Nginx有更出色的負載均衡速度,在並發處理上也是優於Nginx的。
4,HAproxy支持TCP協議的負載均衡轉發,可以對MySQL讀進行負載均衡,對后端的MySQL節點進行檢測和負載均衡
按照各自的優勢:
HAproxy和Nginx由於可以做七層的轉發,所以URL和目錄的轉發都可以做在很大並發量的時候我們就要選擇LVS,像中小型公司的話並發量沒那么大選擇HAproxy或者Nginx足已,由於HAproxy由是專業的代理服務器配置簡單,所以中小型企業推薦使用HAproxy+Nginx。大型企業未來追求穩定性推薦使用LVS+Nginx
3:簡述NDS進行域名解析的過程!
1、當客戶機提出查詢請求時,首先在本地計算機的緩存中查找。如果在本地無法獲得查詢信息,則將查詢請求發給DNS服務器。
2、首先客戶機將域名查詢請求發送到本地DNS服務器,當本地DNS服務器接到查詢后,首先在該服務器管理的區域的記錄中查找,如果找到該記錄,則利用此記錄進行解析;如果沒有區域信息可以滿足查詢要求,服務器在本地的緩存中查找。
3、如果本地服務器不能在本地找到客戶機查詢的信息,將客戶機請求發送到根域名DNS服務器。
4、根域名服務器負責解析客戶機請求的根域部分,它將包含下一級域名信息的DNS服務器地址返回給客戶機的DNS服務器地址。
5、客戶機的DNS服務器利用根域名服務器解析的地址訪問下一級DNS服務器,得到再下一級域我的DNS服務器地址。
6、按照上述遞歸方法逐級接近查詢目標,最后在有目標域名的DNS服務器上找到相應IP地址信息
7、客戶機的本地DNS服務器將遞歸查詢結果返回客戶機。
8、客戶機利用從本地DNS服務器查詢得到的IP訪問目標主機,就完成了一個解析過程.
4:講述Tomcat 8005、8009、8080三個端口的含義!
8005--關閉tomcat進程所用。當執行shutdown.sh關閉tomcat時就是連接8005端口
8009--httpd等反向代理tomcat時就可以使用使用ajp協議反向代理到該端口。
8080--默認的http監聽端口
5:講一下Keepalived的工作原理!
Layer3,4,&5工作早IP/TCP協議棧的IP層,TCP層,及應用層
原理:
Layer3:keepalived使用layer3的方式工作時,keepalived會定期向服務器群中發送一個ICMP的數據包(即我們平時用的ping程序),如果發現某台服務器的IP地址沒有激活,keepalived便會報告這台服務器是小,並將他從服務器群中剔除。Layer3的方式是以服務器的IP第孩子是否有效作為服務器工作正常與否的標准。
Layer4:主要以TCP端口的狀態來決定服務器工作正常與否。如web sercer的服務端口一般是80.如果keepalived檢測到80端口沒有啟動,則keepalived將這台服務器從服務群中刪除。
Layer5:layer5就是工作載具體的應用層,比layer3,4要復雜一點,載網絡上占用的寬帶也要打一些。Keepalived將根據用戶的設定檢查服務器的運行是否正常。如果設定不相符,則keepalived將把服務器從群中踢除。
6:簡單講述一下運維中集群技術的應用、如負載均衡、高可用、分布式!
7:如何優化linux系統
⑴登錄系統:不使用root登錄,通過sudo授權管理,使用普通用戶登錄。
⑵禁止SSH遠程:更改默認的遠程連接SSH服務及禁止root遠程連接。
⑶時間同步:定時自動更新服務器時間。
⑷配置yum更新源,從國內更新下載安裝rpm包。
⑸關閉selinux及iptables(iptables工作場景如有wan ip,一般要打開,高並發除外)
⑹調整文件描述符數量,進程及文件的打開都會消耗文件描述符。
⑺定時自動清理/var/spool/clientmquene/目錄垃圾文件,防止節點被占滿(c6.4默認沒有sendmail,因此可以不配。)
⑻精簡開機啟動服務(crond、sshd、network、rsyslog)
⑼Linux內核參數優化/etc/sysctl.conf,執行sysct -p生效。
更改字符集,支持中文,但是還是建議使用英文,防止亂碼問題出現。
⑾鎖定關鍵系統文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 處理以上內容后,把chatter改名,就更安全了。)
⑿清空/etc/issue,去除系統及內核版本登陸前的屏幕顯示。
8:寫腳本實現Mysql連接中狀態為locking的進程全部殺掉!
#!/bin/sh
mysql_pwd=”root的密碼"
mysqladmin_exec="/usr/local/bin/mysqladmin
mysql_exec="/usr/local/bin/mysql"
mysql_timeout_dir="/tmp"
mysql_timeout_log="$mysql_timeout_dir/mysql_timeout.log"
mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh"
mysql_kill_timeout_log="$mysql_timeout_dir/mysql_kill_timeout.log"
$mysqladmin_exec -uroot -p"$mysql_pwd" processlist | awk '{ print $12 , $2 ,$4}' | grep -v Time | grep -v '|' | sort -rn > $mysql_timeout_log
awk '{if($1>30 && $3!="root") print "'""$mysql_exec""' -e " "/"" "kill",$2 "/"" " -uroot " "-p""/"""'""$mysql_pwd""'""/"" ";" }' $mysql_timeout_log > $mysql_kill_timeout_sh
echo "check start ...." >> $mysql_kill_timeout_log
echo `date` >> $mysql_kill_timeout_log
cat $mysql_kill_timeout_sh