Linux集群常見問題處理方法總結(jié)
集群設(shè)計和實施是一項比較復雜的任務,經(jīng)常會產(chǎn)生意想不到的問題。在此,筆者將在負載平衡的部署中遇到的一些問題總結(jié)出來,希望能對大家有所幫助。
負載失衡
在一個集群內(nèi)部,如果某一個節(jié)點和其它節(jié)點相比流量不足,或者總是處于空閑狀態(tài),那么說明集群的負載失衡了。這樣集群節(jié)點的計算資源沒有被充分的利用,使得負載均衡的作業(yè)分配效率降低。負載均衡算法使用不合適或系統(tǒng)配置不當是產(chǎn)生這個問題的典型原因。
溢出
如果有太多網(wǎng)絡流量要處理,就會導致包丟失和發(fā)往目的節(jié)點的包阻塞,這時就會導致溢出。溢出可能發(fā)生在主控平衡器,也可能是在各服務節(jié)點。由于平衡器在處理能力上往往比節(jié)點要大的多,很可能平衡器的流量很平穩(wěn),但是某些較弱的節(jié)點溢出;反過來平衡器如果超載,則會導致將要轉(zhuǎn)發(fā)的數(shù)據(jù)流丟失或阻塞。
存儲一致性
LVS通過Linux的核心數(shù)據(jù)包遞交程序,按照既定規(guī)則將進入集群系統(tǒng)的IP包轉(zhuǎn)發(fā)到相應的集群節(jié)點進行處理。這里的處理對象是IP網(wǎng)絡數(shù)據(jù)包,而不是具體的磁盤數(shù)據(jù)。LVS假設(shè)所有的集群節(jié)點訪問同一個可靠的和一致的磁盤共享系統(tǒng)。在效率和容量兼顧的分布式存儲環(huán)境下,要求每一個節(jié)點保存部分數(shù)據(jù),而且不同結(jié)點的數(shù)據(jù)互相不交叉或交叉較少,難免出現(xiàn)數(shù)據(jù)存儲不一致的情況。
用戶要解決這類問題一般有三種方法,一是使用共享的存儲服務器或存儲設(shè)備進行集中存儲;二是采用分布式文件系統(tǒng),將文件分塊存放在不同的節(jié)點磁盤上;三是通過人工的手段對訪問數(shù)據(jù)的應用程序進行改寫,人為地設(shè)定程序的數(shù)據(jù)訪問策略,在應用層實現(xiàn)分布式存儲。