在學習ceph之前,需要了解元資料的概念。元資料又稱為中介資料、中繼資料,為描述資料的資料。主要描述資料屬性的資訊,用來支援如指示儲存位置、歷史資料、資源查詢、檔案記錄等功能。通俗地說,就 是用於描述乙個檔案的特徵的系統資料,比如訪問許可權、檔案擁有者以及檔案資料庫的分布資訊(inode)等等。在集群檔案系統中,分布資訊包括檔案在磁碟上的位置以 及磁碟在集群中的位置。使用者需要操作乙個檔案就必須首先得到它的元資料,才能定位到檔案的位置並且得到檔案的內容或相關屬性。
使用stat命令,可以顯示檔案的元資料
[root@ceph-node1 ~]# stat元資料的管理方式有2種方式:集中式管理和分布式管理。1.txt
file: 『
1.txt』
size:
0 blocks: 0 io block: 4096 regular empty file
device: 802h/2050d inode: 33889728 links: 1
access: (
0644/-rw-r--r--) uid: ( 0/ root) gid: ( 0/root)
context: unconfined_u:object_r:admin_home_t:s0
access:
2018-08-05
16:38:22.137566272 +0800
modify:
2018-08-05
16:38:22.137566272 +0800
change:
2018-08-05
16:38:22.137566272 +0800
birth: -file:檔名
size:檔案大小(單位:b)
blocks:檔案所佔扇區個數,為8的倍數(通常的linux扇區大小為512b,連續八個扇區組成乙個block)
io block:每個資料塊的大小(單位:b)
regular
file
:普通檔案(此處顯示檔案的型別)
inode:檔案的inode號
access:許可權
uid:屬主id/屬主名
gid:屬組id/屬組名
access:最近訪問時間
modify:資料改動時間
change:元資料改動時間
以上的引數均屬於檔案的元資料,元資料即用來描述資料的資料。
集中式管理是指在系統中有乙個節點專門司職元資料管理,所有元資料都儲存在該節點的儲存裝置上。所有客戶端對檔案的請求前,都要先對該元資料管理器請求元資料。
分布式管理是指將元資料存放在系統的任意節點並且能動態的遷移。對元資料管理的職責也分布到各個不同的節點上。大多數集群檔案系統都採用集中式的元資料管理。
因為集中式管理實現簡單,一致性維護容易,在一定的操作頻繁內可以提供較為滿意的效能。缺點是單一失效的問題,若該伺服器失效,整個系統將無法正常 工作。而且,當對元資料的操作過於頻繁時,集中的元資料管理會成為整個系統的效能瓶頸。
分布式元資料管理的好處是解決了集中式管理的單一失效點問題,而且效能不會隨著操作頻繁而出現瓶頸。其缺點是,實現複雜,一致性維護複雜,對效能有一 定的影響。
ceph是一種為優秀的效能、可靠性和可擴充套件性而設計的統一的、分布式的儲存系統。ceph 獨一無二地用統一的系統提供了物件、塊、和檔案儲存功能,它可靠性高、管理簡便、並且是開源軟體。 ceph 的強大足以改變貴公司的 it 基礎架構、和管理海量資料的能力。ceph 可提供極大的伸縮性——供成千使用者訪問 pb 乃至 eb 級的資料。 ceph 節點以普通硬體和智慧型守護程序作為支撐點, ceph 儲存集群組織起了大量節點,它們之間靠相互通訊來複製資料、並動態地重分布資料。
ceph的核心元件包括ceph osd、ceph monitor和ceph mds三大元件
。ceph osd:osd的英文全稱是object storage device,它的主要功能是儲存資料、複製資料、平衡資料、恢復資料等,與其它osd間進行心跳檢查等,並將一些變化情況上報給ceph monitor。一般情況下一塊硬碟對應乙個osd,由osd來對硬碟儲存進行管理,當然乙個分割槽也可以成為乙個osd。
ceph monitor:由該英文名字我們可以知道它是乙個監視器,負責監視ceph集群,維護ceph集群的健康狀態,同時維護著ceph集群中的各種map圖,比如osd map、monitor map、pg map和crush map,這些map統稱為cluster map,cluster map是rados的關鍵資料結構,管理集群中的所有成員、關係、屬性等資訊以及資料的分發,比如當使用者需要儲存資料到ceph集群時,osd需要先通過monitor獲取最新的map圖,然後根據map圖和object id等計算出資料最終儲存的位置。
ceph mds:全稱是ceph metadata server,主要儲存的檔案系統服務的元資料,但物件儲存和塊儲存裝置是不需要使用該服務的。
檢視各種map的資訊可以通過如下命令:ceph osd(mon、pg) dump
架構圖:
ceph系統邏輯層次結構:
自下向上,可以將ceph系統分為四個層次:
顧名思義,這一層本身就是乙個完整的物件儲存系統,所有儲存在ceph系統中的使用者資料事實上最終都是由這一層來儲存的。而ceph的高可靠、高可擴充套件、高效能、高自動化等等特性本質上也是由這一層所提供的。因此,理解rados是理解ceph的基礎與關鍵。
這一層的功能是對rados進行抽象和封裝,並向上層提供api,以便直接基於rados(而不是整個ceph)進行應用開發。特別要注意的是,rados是乙個物件儲存系統,因此,librados實現的api也只是針對物件儲存功能的。
rados採用c++開發,所提供的原生librados api包括c和c++兩種。物理上,librados和基於其上開發的應用位於同一臺機器,因而也被稱為本地api。應用呼叫本機上的librados api,再由後者通過socket與rados集群中的節點通訊並完成各種操作。
這一層包括了三個部分:rados gw(rados gateway)、 rbd(reliable block device)和ceph fs(ceph file system),其作用是在librados庫的基礎上提供抽象層次更高、更便於應用或客戶端使用的上層介面。
rados gw是乙個提供與amazon s3和swift相容的restful api的gateway,以供相應的物件儲存應用開發使用。rados gw提供的api抽象層次更高,但功能則不如librados強大。因此,開發者應針對自己的需求選擇使用。
rbd則提供了乙個標準的塊裝置介面,常用於在虛擬化的場景下為虛擬機器建立volume。目前,red hat已經將rbd驅動整合在kvm/qemu中,以提高虛擬機器訪問效能。
ceph fs是通過linux核心客戶端和fuse來提供乙個相容posix的檔案系統。
rados如圖所示,rados集群主要由2種節點組成。一種是負責資料儲存和維護功能的osd,另一種則是若干個負責完成系統狀態監測和維護的monitor。osd和monitor之間相互傳輸節點的狀態資訊,共同得出系統的總體工作執行狀態,並形成乙個全域性系統狀態記錄資料結構,即所謂的cluster map。這個資料結構和rados提供的特定演算法相結合,便實現了ceph「無需查表,算算就好」的核心機制和若干優秀特性。
在使用rados系統時,大量的客戶端程式通過與osd或者monitor的互動獲取cluster map,然後直接在本地進行計算,得出物件的儲存位置後,便直接與對應的osd通訊,完成資料的各種操作。可見,在此過程中,只要保證cluster map不頻繁更新,則客戶端顯然可以不依賴於任何元資料伺服器,不進行任何查表操作,便完成資料訪問流程。在rados的執行過程中,cluster map的更新完全取決於系統的狀態變化,而導致這一變化的常見事件只有兩種:osd出現故障,或者rados規模擴大。而正常應用場景下,這兩種事件發生的頻率顯然遠遠低於客戶端對資料進行訪問的頻率。
ceph學習之路 修改Ceph集群IP監聽位址
環境centos 6.7 ceph 版本 0.94.10 主機名原ip 新ipnode214 155.8.3.214 155.8.15.214 node215 155.8.3.215 155.8.15.215 node216 155.8.3.216 155.8.15.216 修改方法 1.匯出mon...
Ceph學習之路 fragment理解
1 frag 目錄樹關係 ceph對目錄樹的管理,採用類似ip 掩碼方式管理 ip和子網掩碼關係 ip位址被掩碼分為網段和子網,同乙個網段下的ip都屬於該網段管理的ip,其可以相互通訊。乙個網段,是由乙個固定字首的ip加網段偏移offset組成,表示為 ip offset,如192.168.1.1 ...
Ceph基礎之搭建ceph集群
8 更新源 yum update ysetenforce 0 4 安裝ntp,在所有ceph節點上執行 2 用ceph deploy建立ceph集群mkdir etc ceph 生成乙個新的ceph集群,集群包括ceph配置檔案以及monitor的金鑰環。3 安裝ceph二進位制軟體包ceph de...