集群免存儲
A. 如何利用Linux和GFS打造集群存儲
負載均衡是一項困難的任務。我們經常需要通過NFS(網路文件系統)或其他機制來為數據提供中心地址,從而共享文件系統。雖然你的安全機制可能可以讓你免於Web伺服器節點的故障,但是你仍然需要通過中央存儲節點來共享數據。
通過GFS(全局文件系統)——Linux的一個免費集群文件系統——你可以創建一個不需要依賴其他伺服器的真正穩定的集群。在這篇文章中,我們將展示如何正確地設置GFS.
從概念上來說,一個集群文件系統可以允許多個操作系統載入同一個文件系統並可以在同一時間內向同一文件系統寫入數據。現在有許多集群文件系統,包括Sun的Lustre,Oracle的OCFS(Oracle集群文件系統),以及Linux的GFS.
有許多方法可以讓一個塊設備同時被多個伺服器所使用。你可以分區出一個對多個伺服器都可視的SAN(存儲區域網)LUN(邏輯單元號),設置好相應的iSCSI(互聯網小型計算機系統介面),或使用DRBD(分布式復制塊設備)在兩台伺服器之間復制一個分區。在使用DRBD的時候,你將需要在主/主節點中設置好DRBD以使用GFS.
GFS要求
運行GFS意味著你在運行一個集群。目前為止,運行GFS的最簡單的手段就是使用Red Hat Cluster Suite(RHCS:Red Hat集群套件)。這個套件在CentOS中就有。此外,還需要下面這些包:cman——集群管理器;lvm2-cluster——使LVM(邏輯卷管理器)可以支持集群的CLVM(集群邏輯卷管理器)包;kmod-gfs——GFS內核模塊;最後是gfs-utils.
集群管理器(cman)包含必要的工具,比如分布式鎖管理器。除非你希望花時間來確認各種不同的分發版本是如何採用cman的,否則我們強烈推薦使用CentOS或RHEL.同時,你還將獲得RH(Red Hat)所維護的各種最新版本的集群服務,此外你還可以獲得一個比較穩定的環境。
Fencing(阻絕)機制是絕對必要的。一些指導性文章建議將阻絕模式設定成"手動",因為阻絕設置有可能比較復雜。阻絕意味在集群中進行隔離,或馬上中斷某些危險節點的運作。如果集群無法阻絕某個發生故障的節點,那麼你的GFS將會出現很多問題,因此不要跳過這個步驟。
創建集群設置
你可以通過/etc/cluster/裡面的cluster.conf完成大部分的集群設置。我不建議使用各種集群管理應用程序來創建這個設置文件。即使是完全支持的RHEL應用程序,比如兩個月前發布的Conga,也經常會創建一些無效的cluster.conf文件,並且無法被必要的服務所解析。
下面是一個cluster.conf文件的例子。這個設置文件採用漂亮的XML格式,其內容非常直接。首先,我們對集群進行命名,我們將這個集群稱作"Web.1".
先跳過fence daemon選項,下一個部分就是集群主體的設置內容。你需要在clusternodes部分定義兩個節點。設置文件將同時存放在兩個節點上,這樣這兩個節點就都知道彼此的情況。
集群內的每個節點都聲明其阻絕方式的名稱是獨一無二的。在clusternames結束標簽下面,我們看到fencedevice部分定義了每個節點如何阻絕其他節點的方式。使用一個支持IPMI(智能平台管理介面)的伺服器是最好的方式,而且其設置也是相當簡單。你只要將IPMI的地點以及登錄方式告訴IP就可以了。為了避免在cluster.conf中留下密碼,你可以將它指向一個由根所擁有的腳本並由這個腳本來返回密碼。
我們還要指出的是我們在設置中定義了兩個節點。這是必須的,因為通常來說,除非大部分節點都同意自己的狀態,否則集群無法達到"Quorate"狀態。如果只有兩個節點的話,沒有肯定多數,因此這種方式讓集群只能在兩個節點下工作,而不能只在只有一個節點的情況下工作。這是設置基本集群的必要方式。
在每個節點上運行"service cman start",系統應該可以開始正常運作。你可以檢查"clustat"或"cman nodes"來確認節點是否良好運行。如果有哪個必要的部分沒有啟動,那麼集群將不會顯示"Quorate"狀態。
GFS設置
首先,我們需要設置CLVM,這樣我們才可以通過GFS使用LVM.激活CLVM只要在lvm.conf中設定"locking type=3"就可以了。
然後,就像平常一樣創建一個LVM卷組和卷,但是使用的是共享的塊設備。如果你使用的是DRBD,你將有可能使用/dev/drbd0.我創建了一個物理卷,然後創建一個名為vg01的卷組,然後創建一個名為web1的邏輯卷,這個卷在:/dev/vg01/web1.
最後,我們需要創建文件系統:
gfs_mkfs -t web1:mygfs -p lock_dlm -j 2 /dev/vg01/web1
-t中給定的名稱必須是集群的名稱,然後後面是你給這個文件系統所起的名字。只有web1集群的成員才可以載入這個文件系統。然後,設定分布式鎖管理器的鎖鑰類型,指明你需要兩份journal(因為這是一個雙節點集群)。如果你預計未來要增加更多的節點,那麼你需要在這時設定足夠高的journal數量。
總結
我們現在可以開始使用這個文件系統了。在兩個節點上啟動"clvmd"和"gfs"服務。現在你就可以通過"-t gfs"來將類型指定為GFS,從而載入文件系統。
在開始啟動之前,一定要設定好cman,clvmd和gfs服務。你最好能熟悉clustat和gfs_tool命令,因為在系統出現問題的時候,你可以用這些命令來查找問題所在。
不要指望GFS能很快。如果有一個節點在進行大量的寫入操作的話,那麼在訪問文件系統的時候出現停頓是很正常的。對於一個數據讀取操作比數據寫入操作多得多的Web集群來說,這倒不是什麼問題。如果出現明顯延遲,那麼首先要檢查一下所有組件的狀況,然後評估正在寫入的數據。防止延遲現象的最常見措施就是確保HTTP對話中的數據不是寫入GFS卷。
B. 分布式與集群的區別是什麼
集群強調高可用,分布式強調多業務協作
物理與邏輯
集群傾向於物理概念,即多台機器組成一個集群。這多台機器是否有合作關系並不能保證,比如我們會說我們公司的一個規模為1000台機器的物理集群部署在昌平,但是這1000台機器可能是給公司內不同的平台提供服務,但是從物理角度,由於都部署在一起,在同一個機房,就可以稱之為集群。
分布式傾向於邏輯概念,即多個節點或程序為了一個共同的目標,部署在一個或者多個物理機器上。舉個例子,一台物理機上裝了一個Nginx,它連接的兩個Tomcat也在這台物理機上,但是這個Nginx代表的服務,就可以稱之為分布式。當然,為了安全性,穩定性等原因,我們並不建議把分布式部署在一個物理節點上。
圖片發自簡書App
冗餘與分解
集群除了可以用來表示多個物理機器,還可以表示一種「冗餘」的理念,即通過部署多個同樣功能的節點,來實現擴展性與可用性的提升。舉個例子,通過在不同節點上部署兩個同樣功能的server,來這樣就算其中一個節點宕機,也能保證服務的可用性。而擴展性,比如一個server的qps可用承擔到2000,但是隨著用戶群體的增加,qps需要達到3000,那麼我們就可以通過增加一個Tomcat節點的方式來實現擴容。
分布式的分解與微服務的概念有點相近,即把一個系統的功能分布在不同節點上,每個節點都承擔了不同的責任,這樣分模塊部署最主要的優勢是業務隔離,即個別功能的問題或者改進不會影響其他模塊,這樣就算個別模塊掛掉,其他模塊也能夠繼續運作。舉個例子,前些年春晚搶紅包的時候,曾經由於瞬時間請求量太大導致把微信和支付寶給弄癱瘓了,但是大家都知道,癱瘓的只是紅包部分的功能,微信的信息功能並不受影響,這就是分布式的好處。
C. 集群存儲的概述
集群存儲是指:由若干個「通用存儲設備」組成的用於存儲的集群,組成集群存儲的每個存儲系統的性能和容量均可通過「集群」的方式得以疊加和擴展。
傳統的存儲系統由於受到其物理組成(例如:控制器性能,匯流排性能,磁碟驅動器的數量,所連接伺服器的數量,內存大小,NAS頭的性能等)的限制,以及功能上的局限(例如:支持文件系統的容量,元數據和數據處理通路的耦合,快照或復制的數量等),造成了存儲系統瓶頸的出現。
一旦遇到存儲系統的瓶頸,就會有兩種選擇:一是:採用硬體更加強大的單個存儲系統;二是:採用若干個普通性能的存儲系統來組成「存儲的集群」。「集群」作為一項已被廣泛使用的體系結構,如果採用到存儲上組成「集群存儲」,就可提供按比例增加的存儲資源的性能、容量、可靠性及可用性,突破了單機設備的種種限制。
D. 兩台windows 2008 R2做故障轉移集群,沒有存儲請問如何做,實現2台伺服器業務互切,不影響業務
找一台伺服器安裝 windows iscsi target,來模擬iscsi存儲,然後這2台2008使用iscsi客戶端連接到這個虛擬存儲上就可以了。我做群集測試都是這么做的。
E. 存儲虛擬化是什麼集群存儲又是什麼
存儲虛擬化廣義上來說,就是通過映射或抽象的方式屏蔽物理設備復雜性,增加一個管理層面,激活一種資源並使之更易於透明控制。
存儲虛擬化(Storage Virtualization)最通俗的理解就是對存儲硬體資源進行抽象化表現。通過將一個(或多個)目標(Target)服務或功能與其它附加的功能集成,統一提供有用的全面功能服務。
集群存儲是指:由若干個「通用存儲設備」組成的用於存儲的集群,組成集群存儲的每個存儲系統的性能和容量均可通過「集群」的方式得以疊加和擴展。
F. 什麼是集群存儲
雲存儲是在雲計算(cloud computing)概念上延伸和發展出來的一個新的概念,是指通過集
群應用、網格技術或分布式文機房集中監控系統件系統等功能,將網路中大量各種不同類
型的存儲設備通過應用軟體集合起來協同工作,共同對外提供數據存儲和業務訪問功能的
一個系統。當雲計算系統運算和處理的核心是大量數據的存儲和管理時,雲計算系統中就
需要配置大量的存儲設備,那麼雲計算系統就轉變成為一個雲存儲系統,所以雲存儲是一
個以數據存儲和管理為核心的雲計算系統。他們基於虛擬化技術和集群架構,具有強大的
橫向擴展能力。雲存儲設備橫向擴展的方式讓存儲系統具有了無限擴展的能力,它能夠實
現控制器與硬碟的同時擴展,也就是性能與容量可以同時實現線性擴展。
集群存儲是通過將數據分布到集群中各節點的存儲方式,提供單一的使用介面與界面,使
用戶可以方便地對所有數據進行統一使用與管理。集群中所有磁碟設備整合到單一的共享
存儲池中提供給前端的應用伺服器,極大提高了磁碟利用率,可以為非結構化數據提供具
備極高IO帶寬和靈活可擴展性的存儲解決方案。
G. 集群存儲的集群存儲相對傳統NAS和SAN的優勢
傳統的SAN與NAS分別提供的是數據塊與文件兩個不同級別的存儲服務,集群存儲也分為提供數據塊與文件兩個不同級別存儲服務的集群存儲系統。
集群存儲的優勢主要體現在提高並行或分區I/O的整體性能,特別是工作流、讀密集型以及大型文件的訪問,通過採用更低成本的伺服器來降低整體成本。
SAN系統具有很高的性能,但是構建和維護起來很復雜。由於數據塊和網路需求的原因,SAN系統也很難擴容。NAS系統的構建和維護雖然比較簡單,但是由於其聚合設備(又叫做NAS頭)是其架構上的瓶頸,造成其性能很有限。集群存儲提供了SAN和NAS結構的優點。在大多數使用集群存儲的案例中,隨著存儲系統的擴容,性能也隨之提升。一個大的集群存儲的性能往往勝過一個SAN系統,但是價格也會更高。集群存儲系統像NAS系統一樣易於構建、操作和擴容。大多數集群存儲系統沒有傳統NAS系統的固有瓶頸。
集群存儲有兩種實現方式:一種是硬體基礎架構加上軟體,典型代表是SAN架構+IBM GPFS;另一種是專用集群存儲,典型代表是Isilon、NetApp GX以及Panasas,其中NetApp GX是構建在NAS基礎架構之上的,但是通過操作系統實現集群存儲。從這個角度講,集群存儲與SAN或NAS不存在競爭關系,是實現不同存儲需求的解決方案。」
集群存儲和NAS的概念是在文件系統層面上的,而SAN是在LUN層面上的,集群存儲可以利用SAN環境實現。因此,集群存儲與SAN解決的問題不同。如果一定要比較這兩者的優缺點的話,可以說SAN做到的是多個伺服器節點可以同時看到SAN環境中的同一個LUN,還不能做到多伺服器節點間的文件級共享。
集群存儲在性能、可靠性及擴展性等多個方面都遠遠優於 NAS。
H. WINDOWS2008集群不用磁碟陣列櫃可以做集群嗎
看你的集群 目的,
集群最基本的需要一個仲裁盤,這個仲裁盤需要集群內所有計算機可以存取;
微軟 需要你用 支持iscsi協議的 設備來做 群集共享盤;
這個 ISCSI 可以由
陣列卡 或者 軟體 或者 部分支持這個功能的NAS(就是你說的陣列櫃吧);
來實現,
群集裡面要提供的服務 ,如果要實現故障轉移或其他功能的話,也是需要用到 共享盤;
如果你覺得你的服務數據 沒必要 買一個 幾萬塊的 NAS系統,你可以考慮支持
ISCSI 驅動的陣列卡然後用一台電腦或伺服器來實現;再不是,可以用軟體;
I. 集群存儲的定義
集群存儲是將多台存儲設備中的存儲空間聚合成一個能夠給應用伺服器提供統一訪問介面和管理界面的存儲池,應用可以通過該訪問介面透明地訪問和利用所有存儲設備上的磁碟,可以充分發揮存儲設備的性能和磁碟利用率。數據將會按照一定的規則從多台存儲設備上存儲和讀取,以獲得更高的並發訪問性能。
J. 集群存儲的特點
1. 開放式架構(高擴展性)
它針對集群存儲內部構成元素而言。一般集群存儲應該包括存儲節點、前端網路、後端網路等三個構成元素,每個元素都可以非常容易地採用業界最新技術而不用改變集群存儲的架構,且擴展起來非常方便,像搭積木一樣進行存儲的擴展。特別是對於那些對數據增長趨勢較難預測的用戶,可以先購買一部分存儲,當有需求的時候,隨時添加,而不會影響現有存儲的使用。
2. 分布式操作系統
這是集群存儲的靈魂所在。所有對集群存儲的操作都經由分布式操作系統統一調度和分發,分散到集群存儲各個存儲節點上完成。使用分布式操作系統帶來的好處是各節點之間沒有任何區別,沒有主次、功能上的區別,所有存儲節點功能完全一致,這樣才能真正做到性能最優。
3. 統一命名空間
統一命名空間在很多廠家的存儲概念中都出現過。在集群存儲中,統一命名空間強調的是同一個文件系統下的統一命名空間。它同樣可以支持上PB級別的存儲空間。如果是通過將若干有空間上限的卷掛載到某一個根目錄的方式來達到統一命名空間,其效率和出現存儲熱點時的性能將會大大低於把上PB級別的存儲空間置於同一個文件系統下管理的統一命名空間。
4. 易管理性
目前存儲業界的管理方式都是通過各廠商的管理工具,或通過Web界面進行管理和配置,往往客戶端還需要安裝相關軟體才能訪問到存儲上的空間。隨著需要管理的存儲空間逐漸增大,管理存儲的復雜度和管理人員的數量也將會隨之增加。而集群存儲應該提供一種集中的、簡便易用的管理方式,對客戶端沒有任何影響,採用業界標準的訪問協議(比如NFS,CIFS)訪問集群存儲。
5. 負載均衡
集群存儲通過分布式操作系統的作用,會在前端和後端都實現負載均衡。前端訪問集群存儲的操作,通過幾種負載均衡策略,將訪問分散到集群存儲的各個存儲節點上。後端訪問數據,通過開放式的架構和後端網路,數據會分布在所有節點上進行存放和讀取。
6. 高性能
關於高性能領域,目前對集群存儲的討論還僅局限在高帶寬、高並發訪問的應用模式下。毫無疑問,集群存儲對於該類應用可以提供比傳統存儲架構更優的性能。但目前應用除了高帶寬、高並發訪問類的之外,還有高IOPS、隨機訪問、小文件訪問以及備份歸檔等其他類的應用,集群存儲應該在以上領域同樣提供高性能的解決方案。