相比nfs或cifs,ceph fs提供主副本冗餘,具備高可靠性。ceph fs使用metadata server(mds)管理檔案系統的命名空間以及客戶端訪問到後端osd資料。metadata server是乙個服務程序,提供乙個包含智慧型快取層的一致性檔案系統,它不會直接向客戶端提供任何實際資料,所有資料由osd提供,降低自身讀寫的次數。metadata server可被配置成活躍或被動狀態,活躍metadata server被稱為主metadata server,其他則為standby狀態,當主metadata發生故障,standby節點接管工作公升為主metadata server。
metadata server採用在記憶體中快取的方式響應外部訪問請求。客戶端向mds傳送讀請求,mds先向osd定位檔案所在的檔案索引節點,索引節點包含唯一的數字、檔案所有者、大小和許可權及其他元資料。mds賦予客戶端讀以及快取檔案內容的許可權,返回對應的元資料到客戶端,客戶端直接同osd進行io互動。
客戶端發起寫請求,mds賦予客戶端帶緩衝區的的寫許可權,客戶端執行完寫操作,提交給mds,mds將檔案的資訊重新寫入到osd的object中。mds集群為了適應分布式快取元資料特點,採用動態子樹分割槽的策略,可以理解為橫跨多個mds節點的目錄層級結構,mds統計乙個目錄中元資料被訪問的頻繁程度並計數,mds同時維護權重的樹,記錄最近元資料的負載情況。mds定期載入比較前後權重值的大小,根據權重值適當遷移子樹實現工作流的負載均衡。訪問程度頻繁的熱點目錄可被hash後存在多個mds上。
客戶端有兩種,第一種是作為linux核心模組,另一種是作為ceph fs fuse。
工具:ceph-deploy命令。
# ceph-deploy --overwrite-conf mds create ceph1
## 兩個pool,乙個fs_data的pool儲存資料,另乙個fs_metadata的pool儲存元資料
# ceph osd pool create fs_data # ceph osd pool create fs_metadata ## 建立乙個ceph fs
# ceph fs new cephfs fs_metadata fs_data
## 檢視ceph fs
# ceph fs ls
# ceph mds stat
掛載客戶端:
## 核心模組方式掛載
# mkdir /cephfs_test
# mount -t ceph ip:port:/ /cephfs_test
## 將 ip:port://cephfs_test ceph noatime 0 2 寫入到/etc/fstab中
## 以fuse方式掛載
# yum install ceph-fuse
# mkdir /ceph_fuse
# ceph-fuse -m ip:port /ceph-fuse
## id=admin,conf=/etc/ceph/ceph.conf/ceph-fuse fuse.ceph defaults 0 0 寫入/etc/fstab實現自動掛載
## 檢視掛載結果
# df -h
Ceph三大儲存訪問型別之BRD塊儲存
術語解釋 rbd rados block device的簡稱。rbd是ceph分布式集群最常使用的儲存型別。block是乙個有序位元組,普通block大小為512位元組,硬碟 cd光碟等都是基於block儲存的裝置。ceph的block裝置可以擴充套件大小且以條帶化方式儲存在集群中多個osd中。br...
c 訪問 redis 儲存型別
資料儲存在redis上有多種方式 1.key形式 2.hash形式 3.list形式 4 string形式 5 set 形式 6 sortedset 有序集合 根據提供的介面,用class包裝所以儲存型別的介面 oper redis.h ifndef oper redis h define oper...
c 三大特性之 繼承
繼承 乙個非常自然的概念,現實中的很多事情都是具有繼承性的。類似於自己繼承父母的特性,這也是繼承的特性 而繼承的上層稱為基類,下一層就叫做派生類。格式 class 派生類 繼承方式 基類 繼承 例如 include using namespace std class person class stu...