原创 Ceph radosgw 安裝配置

Ceph radosgw對象存儲的接口,研究配置了許久,現分享如下。首先配置radosgw的前提,是你已經成功的配置好了Ceph集羣,通過ceph –s 查看ceph集羣,處於health狀態。在這裏,ceph集羣的auth的配置

原创 Ceph OS模塊介紹及讀寫流程分析

Ceph的os模塊,也就是ObjectStore模式,是Ceph對象存儲的底層的存儲機制。它是單機版的存儲。基本功能如下: 1) 提供底層對象的隨機讀寫 2) 保證讀寫數據的一致性 其功能主要包括以下幾個模塊: FileStore    

原创 ceph fuse 安裝

ceph 安裝的版本是master  0.9.1.4 之後的版本1) 啓動mon 和  osd 2)啓動 mds 先創建一個metadata poo

原创 FreeStor究竟能夠有多Free

FreeStor究竟能夠有多Free 宋家雨   有人說軟件定義存儲是存儲虛擬化的翻版,對此我曾經撰文指出,軟件定義存儲不是存儲虛擬化的“馬甲”(詳見:軟件定義存儲不是誰的“馬甲”),實際上,二者各有側重。其中,存儲虛擬化強調不同品牌存儲

原创 Linux網絡編程模型和Ceph Async 模型探討

IO多路複用 所謂的I/O多路複用,就是可以監控多個socket上的IO請求。允許多個socket在可讀或可寫準備好時,應用能被通知到,這樣應用就可以一次非阻塞的處理多個socket相關的IO請求。 IO多路複用的有三種實現方式: Se

原创 Ceph OSD寫操作失效如何處理

很多人對Ceph寫操作的異常處理的過程還不是特別的清楚。本文就介紹Ceph如何處理異常處理的。 首先需要明確的是,Ceph的讀寫操作並沒有超時機制。 rbd_write並沒有超時機制。所有經常看到,用ceph -s 命令查看,有些 slo

原创 雲計算大會超融合論壇分享

今天有四家公司分別演講。 聯想 第一家公司是聯想,其產品爲ThinkCloudAIO ,分別有兩個型號: H1000 產品: openstack + kvm + ceph , 這個是自己研究開發的產品。上次cephdays和聯想的人聊,

原创 Ceph 網絡通信源代碼分析

對於一個分佈式存儲系統,需要一個穩定的底層網絡通信模塊,用於各個節點的之間的互聯互通。 對於一個網絡通信系統,要求: 高性能 性能評價的兩個指標: 帶寬和延遲 穩定可靠 在網絡中斷時,實現重連。數據不丟包 在msg的子目錄下, 分

原创 ceph Async 網絡通信源代碼分析(二)

在上文中,主要介紹了相關的類,本文介紹相關流程。 連接相關的流程介紹 Server端監聽和接受連接的過程 這段代碼來自 src/test/msgr/perf_msgr_server.cc,主要用於建立Server端的msgr: void

原创 Ceph中出現unfound object的情況和處理

在上週的ceph-devel 郵件列表中,有人提到了在測試的環境中出現了 unfound object 的狀態,本文試圖分析這種情況發生的原理。 首先介紹一下什麼是 unfoud object ? unfoud object 對象就是 完

原创 ceph 數據均衡

ceph 數據均衡 問題的提出: 在ceph集羣中,當有新的OSD 添加到集羣中,會導致數據移動以達到數據均衡,數據的移動只在舊的OSD和新添加的OSD之間移動,還是舊有的OSD之間也有數據移動? 上次Ceph社區交流,有人提到,當有10

原创 ceph pg split

在生產環境裏,一個ceph的pool裏有大量數據,當添加一些新的osd到集羣裏時,總是報告WARNING信息,這時爲了消除這個告警信息, 就使用一下命令來增加該pool的pg的數量。 ceph osd pool set ${pool_n

原创 雲計算環境中關於 rbd cache 的啓用

磁盤Cache設置分析 定義 本文指的磁盤Cache(或者Disk Cache)指的是磁盤驅動器內部的寫Cache,其爲易失型Cache,斷電數據會丟失。大約16~128M大小。 何時同步 系統調用fsync/fdatsync/sync都

原创 Ceph Async 網絡通信源代碼分析(一)

在Ceph的網絡通信模塊裏,早期一直使用 Simple 這個網絡通信模塊。由於其實現簡單,最早被ceph採用並用於生產環境。其最大的缺陷是:針對每個Connection創建兩個線程,一個用於接收消息,一個用於發送消息。在大規模的集羣環境下

原创 ceph 讀寫路徑源代碼分析(2)

繼續分析Ceph 讀寫路徑上的源代碼,本文主要ObjectContex這個比較重要的數據結構。 數據結構 MOSDOp OSDOp struct OSDOp { ceph_osd_op op; //具體操作數據的封裝 so