『壹』 Linux裡面ceph是什麼
Linux裡面ceph
Ceph是一個可靠地、自動重均衡、自動恢復的分布式存儲系統,根據場景劃分可以將Ceph分為三大塊,分別是對象存儲、塊設備存儲和文件系統服務。在虛擬化領域里,比較常用到的是Ceph的塊設備存儲,比如在OpenStack項目里,Ceph的塊設備存儲可以對接OpenStack的cinder後端存儲、Glance的鏡像存儲和虛擬機的數據存儲,比較直觀的是Ceph集群可以提供一個raw格式的塊存儲來作為虛擬機實例的硬碟。
Ceph相比其它存儲的優勢點在於它不單單是存儲,同時還充分利用了存儲節點上的計算能力,在存儲每一個數據時,都會通過計算得出該數據存儲的位置,盡量將數據分布均衡,同時由於Ceph的良好設計,採用了CRUSH演算法、HASH環等方法,使得它不存在傳統的單點故障的問題,且隨著規模的擴大性能並不會受到影響。
『貳』 如何在ceph中找出存放的數據
雲存儲系統具有良好的可擴展性、容錯性,以及內部實現對用戶透明等特性,這一切都離不開分布式文件系統的支撐。現有的雲存儲分布式文件系統包括GFS、HDFS、Lustre、FastDFS、PVFS、GPFS、PFS、Ceph和TFS等。
『叄』 ceph這款雲存儲技術怎麼樣
Ceph是一套高性能,易擴展的,無單點的分布式文件存儲系統,基於Sage A. Weil的論文開發,主要提供以下三個存儲服務:
對象存儲(Object Storage),既可以通過使用Ceph的庫,利用C, C++, Java, Python, PHP代碼,也可以通過Restful網關以對象的形式訪問或存儲數據,兼容亞馬遜的S3和OpenStack的Swift。
塊存儲(Block Storage),作為塊設備像硬碟一樣直接掛載。
文件系統(File System) ,如同網路文件系統一樣掛載,兼容POSIX介面。
Ceph的結構,對象存儲由LIBRADOS和RADOSGW提供,塊存儲由RBD提供,文件系統由CEPH FS提供,而RADOSGW, RBD, CEPH FS均需要調用LIBRADOS的介面,而最終都是以對象的形式存儲於RADOS里。
Ceph集群的節點有三種角色:
Monitor,監控集群的健康狀況,向客戶端發送最新的CRUSH map(含有當前網路的拓撲結構)
OSD,維護節點上的對象,響應客戶端請求,與其他OSD節點同步
MDS,提供文件的Metadata,如果不使用CephFS可以不安裝
?
『肆』 如何集成Ceph對象存儲
Glance集成Glance是OpenStack中的映像服務。默認情況下,映像存儲在本地控制器,然後在被請求時復制到計算主機。計算主機緩存鏡像,但每次更新鏡像時,都需要再次復制。Ceph為Glance提供了後端,允許鏡像存儲在Ceph中,而不是本地存儲在控制器和計算節點上。這大大減少了抓取鏡像的網路流量,提高了性能,因為Ceph可以克隆鏡像而不是復制鏡像。此外,它使得在OpenStack部署或諸如多站點OpenStack之類的概念的遷移變得更簡單。安裝Glance使用的Ceph客戶端。創建Ceph用戶並將主目錄設置為/etc/ceph。將Ceph用戶添加到sudoers。在Ceph管理節點。為Glance鏡像創建CephRBD池。創建將允許Glance訪問池的密鑰環。將密鑰環復制到OpenStack控制器上的/etc/ceph。設置許可權,讓Glance可以訪問Ceph密鑰環。將密鑰環文件添加到Ceph配置。創建原始Glance配置的備份。更新Glance配置。重新啟動Glance。下載Cirros鏡像並將其添加到Glance。將QCOW2轉換為RAW。建議Ceph始終使用RAW格式。將鏡像添加到Glance。檢查Ceph中是否存在Glance圖像。Cinder集成Cinder是OpenStack中的塊存儲服務。Cinder提供了關於塊存儲的抽象,並允許供應商通過提供驅動程序進行集成。在Ceph中,每個存儲池可以映射到不同的Cinder後端。這允許創建諸如金、銀或銅的存儲服務。你可以決定例如金應該是復制三次的快速SSD磁碟,銀應該是復制兩次,銅應該是使用較慢的擦除編碼的磁碟。為Cinder卷創建一個Ceph池。創建一個密鑰環以授予Cinder訪問許可權。將密鑰環復制到OpenStack控制器。創建一個只包含OpenStack控制器上的身份驗證密鑰的文件。設置密鑰環文件的許可權,以便Cinder可以訪問。將密鑰環添加到OpenStack控制器上的Ceph配置文件中。使KVMHypervisor訪問Ceph。在virsh中創建一個密鑰,因此KVM可以訪問Ceph池的Cinder卷。為Cinder添加一個Ceph後端。在所有控制器上重新啟動Cinder服務。創建Cinder卷。在Ceph中列出Cinder卷。將Ceph與Nova計算集成Nova是OpenStack中的計算服務。Nova存儲與默認的運行虛擬機相關聯的虛擬磁碟鏡像,在/var/lib/nova/instances下的Hypervisor上。在虛擬磁碟映像的計算節點上使用本地存儲有一些缺點:·鏡像存儲在根文件系統下。大鏡像可能導致文件系統被填滿,從而導致計算節點崩潰。·計算節點上的磁碟崩潰可能導致虛擬磁碟丟失,因此無法進行虛擬機恢復。Ceph是可以直接與Nova集成的存儲後端之一。在本節中,我們將看到如何配置。為Nova創建驗證密鑰環。將密鑰環復制到OpenStack控制器。在OpenStack控制器上創建密鑰文件。設置密鑰環文件的許可權,以便Nova服務可以訪問。確保安裝所需的rpm軟體包。更新Ceph配置。讓KVM可以訪問Ceph。在virsh中創建一個密鑰,這樣KVM可以訪問Cinder卷的Ceph池。備份Nova配置。更新Nova配置以使用Ceph後端。重新啟動Nova服務。列表Neutron網路。啟動使用在Glance步驟中添加的Cirros鏡像的臨時VM實例。等待直到VM處於活動狀態。在Ceph虛擬機池中列出鏡像。我們現在應該看到鏡像存儲在Ceph中。
『伍』 ceph存儲 ceph集群Tier和RBD Cache的區別
Ceph是一套高性能,易擴展的,無單點的分布式文件存儲系統,基於Sage A. Weil的論文開發,主要提供以下三個存儲服務:對象存儲(Object Storage),既可以通過使用Ceph的庫,利用C, C++, Java, Python, PHP代碼,也可以通過Restful網關以對象的形式訪問或存儲數據,兼容亞馬遜的S3和OpenStack的Swift。
塊存儲(Block Storage),作為塊設備像硬碟一樣直接掛載。
文件系統(File System) ,如同網路文件系統一樣掛載,兼容POSIX介面。
Ceph的結構,對象存儲由LIBRADOS和RADOSGW提供,塊存儲由RBD提供,文件系統由CEPH FS提供,而RADOSGW, RBD, CEPH FS均需要調用LIBRADOS的介面,而最終都是以對象的形式存儲於RADOS里。
Ceph集群的節點有三種角色:
Monitor,監控集群的健康狀況,向客戶端發送最新的CRUSH map(含有當前網路的拓撲結構)
OSD,維護節點上的對象,響應客戶端請求,與其他OSD節點同步
MDS,提供文件的Metadata,如果不使用CephFS可以不安裝!
『陸』 如何使用ceph
Ceph是一個 Linux PB 級分布式文件系統。
其命名和UCSC(Ceph 的誕生地)的吉祥物有關,這個吉祥物是 "Sammy",一個香蕉色的蛞蝓,就是頭足類中無殼的軟體動物。這些有多觸角的頭足類動物,是對一個分布式文件系統高度並行的形象比喻。
Ceph 最初是一項關於存儲系統的 PhD 研究項目,由 Sage Weil 在 University of California, SantaCruz(UCSC)實施。
簡單定義為以下3項:
1. 可輕松擴展到數 PB 容量
2. 支持多種工作負載的高性能(每秒輸入/輸出操作[IOPS]和帶寬)
3. 高可靠性
但是,這些目標之間會互相競爭(例如,可擴展性會降低或者抑制性能或者影響可靠性)。Ceph 的設計還包括保護單一點故障的容錯功能,它假設大規模(PB 級存儲)存儲故障是常見現象而不是例外情況。
它的設計並沒有假設某種特殊工作負載,但包括了適應變化的工作負載,並提供最佳性能的能力。它利用 POSIX 的兼容性完成所有這些任務,允許它對當前依賴 POSIX 語義(通過以 Ceph 為目標的改進)的應用進行透明的部署。
Ceph 生態系統架構可以劃分為四部分:
1. Clients:客戶端(數據用戶)
2. cmds:Metadata server cluster,元數據伺服器(緩存和同步分布式元數據)
3. cosd:Object storage cluster,對象存儲集群(將數據和元數據作為對象存儲,執行其他關鍵職能)
4. cmon:Cluster monitors,集群監視器(執行監視功能)
『柒』 如何配置ceph分布式存儲方案
1、對象存儲:即radosgw,兼容S3介面。通過rest api上傳、下載文件。
2、文件系統:posix介面。可以將ceph集群看做一個共享文件系統掛載到本地。
3、塊存儲:即rbd。有kernel rbd和librbd兩種使用方式。支持快照、克隆。相當於一塊硬碟掛到本地,用法和用途和硬碟一樣。
『捌』 ceph存儲原理
存儲原理這個你可以去查查這方面的專業解釋,找找專業人。
『玖』 Ceph分布式存儲是怎麼防止腦裂的
解決腦裂問題,通常採用隔離(Fencing)機制,包括三個方面:
共享存儲fencing:確保只有一個Master往共享存儲中寫數據。
客戶端fencing:確保只有一個Master可以響應客戶端的請求。
Slave fencing:確保只有一個Master可以向Slave下發命令。
Hadoop公共庫中對外提供了兩種fenching實現,分別是sshfence和shellfence(預設實現),其中sshfence是指通過ssh登陸目標Master節點上,使用命令fuser將進程殺死(通過tcp埠號定位進程pid,該方法比jps命令更准確),shellfence是指執行一個用戶事先定義的shell命令(腳本)完成隔離。
切換對外透明:為了保證整個切換是對外透明的,Hadoop應保證所有客戶端和Slave能自動重定向到新的active master上,這通常是通過若干次嘗試連接舊master不成功後,再重新嘗試鏈接新master完成的,整個過程有一定延遲。在新版本的Hadoop RPC中,用戶可自行設置RPC客戶端嘗試機制、嘗試次數和嘗試超時時間等參數。
在「雙機熱備」高可用(HA)系統中,當聯系2個節點的「心跳線」斷開時,本來為一整體、動作協調的HA系統,就分裂成為2個獨立的個體。由於相互失去了聯系,都以為是對方出了故障,2個節點上的HA軟體像「裂腦人」一樣,「本能」地爭搶「共享資源」、爭起「應用服務」,就會發生嚴重後果:或者共享資源被瓜分、2邊「服務」都起不來了;或者2邊「服務」都起來了,但同時讀寫「共享存儲」,導致數據損壞(常見如資料庫輪詢著的聯機日誌出錯)。
運行於備用主機上的Heartbeat可以通過乙太網連接檢測主伺服器的運行狀態,一旦其無法檢測到主伺服器的「心跳」則自動接管主伺服器的資源。通常情況下,主、備伺服器間的心跳連接是一個獨立的物理連接,這個連接可以是串列線纜、一個由「交叉線」實現的乙太網連接。Heartbeat甚至可同時通過多個物理連接檢測主伺服器的工作狀態,而其只要能通過其中一個連接收到主伺服器處於活動狀態的信息,就會認為主伺服器處於正常狀態。從實踐經驗的角度來說,建議為Heartbeat配置多條獨立的物理連接,以避免Heartbeat通信線路本身存在單點故障。
1、串列電纜:被認為是比乙太網連接安全性稍好些的連接方式,因為hacker無法通過串列連接運行諸如telnet、ssh或rsh類的程序,從而可以降低其通過已劫持的伺服器再次侵入備份伺服器的幾率。但串列線纜受限於可用長度,因此主、備伺服器的距離必須非常短。
2、乙太網連接:使用此方式可以消除串列線纜的在長度方面限制,並且可以通過此連接在主備伺服器間同步文件系統,從而減少了從正常通信連接帶寬的佔用。
基於冗餘的角度考慮,應該在主、備伺服器使用兩個物理連接傳輸heartbeat的控制信息;這樣可以避免在一個網路或線纜故障時導致兩個節點同時認為自已是唯一處於活動狀態的伺服器從而出現爭用資源的情況,這種爭用資源的場景即是所謂的「腦裂」(split-brain)或「partitioned cluster」。在兩個節點共享同一個物理設備資源的情況下,腦裂會產生相當可怕的後果。
為了避免出現腦裂,可採用下面的預防措施:
添加冗餘的心跳線,例如雙線條線。盡量減少「裂腦」發生機會。
啟用磁碟鎖。正在服務一方鎖住共享磁碟,「裂腦」發生時,讓對方完全「搶不走」共享磁碟資源。但使用鎖磁碟也會有一個不小的問題,如果佔用共享盤的一方不主動「解鎖」,另一方就永遠得不到共享磁碟。現實中假如服務節點突然死機或崩潰,就不可能執行解鎖命令。後備節點也就接管不了共享資源和應用服務。於是有人在HA中設計了「智能」鎖。即,正在服務的一方只在發現心跳線全部斷開(察覺不到對端)時才啟用磁碟鎖。平時就不上鎖了。
設置仲裁機制。例如設置參考IP(如網關IP),當心跳線完全斷開時,2個節點都各自ping一下 參考IP,不通則表明斷點就出在本端,不僅「心跳」、還兼對外「服務」的本端網路鏈路斷了,即使啟動(或繼續)應用服務也沒有用了,那就主動放棄競爭,讓能夠ping通參考IP的一端去起服務。更保險一些,ping不通參考IP的一方乾脆就自我重啟,以徹底釋放有可能還佔用著的那些共享資源。
『拾』 ceph分布式存儲為啥
Ceph是根據加州大學Santa Cruz分校的Sage Weil的博士論文所設計開發的新一代自由軟體分布式文件系統,其設計目標是良好的可擴展性(PB級別以上)、高性能及高可靠性。
Ceph其命名和UCSC(Ceph 的誕生地)的吉祥物有關,這個吉祥物是「Sammy」,一個香蕉色的蛞蝓,就是頭足類中無殼的軟體動物。這些有多觸角的頭足類動物,是對一個分布式文件系統高度並行的形象比喻。
其設計遵循了三個原則:數據與元數據的分離,動態的分布式的元數據管理,可靠統一的分布式對象存儲機制。本文將從Ceph的架構出發,綜合性的介紹Ceph分布式文件系統特點及其實現方式。
更多技術細節參考網頁鏈接