初識Ceph --組件、存儲類型、存儲原理

目錄

      • ceph
        • 組件
        • 存儲類型
          • 塊存儲
          • 文件存儲
          • 對象存儲
        • 存儲過程

ceph

Ceph(分布式存儲系統)是一個開源的分布式存儲系統,設計用于提供高性能、高可靠性和可擴展性的存儲服務,可以避免單點故障,支持塊存儲、對象存儲以及文件系統存儲應用。使用C++語言開發。ceph能夠通過網絡將數據分散存儲在多臺獨立設備上

ceph具有可擴展性:

  • 水平擴展,新的節點加入集群后只需要和原有集群連接到同一網絡,無需對現有節點進行重大修改或中斷

  • 節點擴展后,舊數據會自動遷移到新節點,實現負載均衡,避免單點過熱的情況

  • 使用crush算法來確定數據在存儲集群中的位置

組件

在這里插入圖片描述

  • OSD: OSD(Object Storage Daemon)用于集群中所有對象與數據的存儲,處理集群數據的復制、恢復、負載均衡。也能夠自動檢測存儲磁盤的監控狀況,定期向Monitor節點報告自身的狀態和性能指標

    讀取數據時,多臺OSD會同時對外傳輸數據,于是傳輸的速度會比較塊

    當ceph集群設定數據有兩個副本時,至少需要兩個OSD進程即OSD節點,集群才能達到active+clean狀態

  • MON: MON(Monitor)負責維護Ceph存儲集群的狀態信息、配置信息和監控信息,維護集群的cluster MAP二進制表,保證集群數據的一致性,cluster MAP描述了對象塊存儲的物理位置,以及一個將設備聚合到物理位置的桶列表

  • MDS: MDS(Metadata Server)元數據服務器,提供元數據計算,緩存與同步。在ceph中,元數據也是存儲在osd節點中的,mds類似于元數據的代理緩存服務器。mds是 CephFS(Ceph 文件系統)的組成部分,cep塊設備和ceph對象存儲不使用mds

  • Manager: ceph-mgr,用于收集ceph集群狀態、性能指標、配置信息。

    manager通過RESTful API和Web-based Dashboard向外提供信息

ceph結構包含兩個部分

ceph client,訪問ceph底層服務或組件,對外提供各種接口

ceph node,底層服務提端,也就是ceph存儲集群

存儲類型
塊存儲

塊存儲(RBD - RADOS Block Device),存儲數據以塊為單位,可被映射為塊設備,適用于直接附加到虛擬機或物理服務器。類似于傳統的硬盤

塊存儲通過Raid與LVM等手段,對數據提供了保護,多塊磁盤組合可以提高容量,也可以做邏輯盤,提高讀寫效率

但主機之間無法共享數據

塊存儲應用于docker容器、虛擬機磁盤分配;日志存儲;文件存儲

文件存儲

文件存儲(CephFS)可以克服塊存儲無法共享的問題。如FTP、NFS服務器

文件存儲允許多個節點通過標準文件系統接口訪問相同的文件和目錄。它支持文件的讀寫、權限控制等 POSIX 文件系統語義

對象存儲

一個文件具有屬性metadata,也稱元數據,包含該文件的大小、修改時間、存儲路徑等

在對象存儲(RADOS)中,數據以對象的形式存儲,每個對象都有唯一的標識符。它會將文件的元數據獨立出來,控制節點叫元數據服務器(服務器+對象存儲管理軟件),主要負責存儲對象的屬性。文件的數據部分主要由OSD存儲

當用戶訪問對象時,會首先訪問元數據服務器,元數據服務器反饋對象存儲在哪些OSD,用戶再去訪問那些OSD讀取數據

對象存儲主要用于存儲大量非結構化數據,如圖像、音頻、視頻、日志等

存儲過程

在這里插入圖片描述

  1. 用戶訪問一個文件File,其存儲的數據會被切分成多個對象Objects,Objects的大小可以由管理員調整
  2. 每個對象都有一個唯一的oid,這個iod由文件file的id,ino,和分片objects的編號ono組成。oid可以唯一標識每個不同的對象,并存儲了對象與文件的存儲關系
  3. PG,placement group歸置組是一個邏輯概念,它在數據尋址時相當于數據庫中的索引,每個對象都會固定映射進一個PG中。所以當需要尋找一個對象時,只需要先找到對象所屬的PG,然后遍歷這個PG,無需遍歷所有對象。并且在遷移數據時,也是以PG作為基本單位遷移
  4. 對象映射進PG,首先會對oid做hash取出特征碼,用特征碼與PG的數量去模,得到序號pgid
  5. 最后PG會根據管理員設置的副本數量進行復制,通過crush算法存儲到不同的OSD節點上,第一個OSD為主節點,其余均為從節點

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212859.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212859.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212859.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【小白專用】Apache2.4+PHP8.3+MYSQL的配置

1.下載PHP和Apache 1、PHP下載 PHP For Windows: Binaries and sources Releases 注意: 1.使用Apache作為服務器的話,一定要下載Thread Safe的,否則沒有php8apache2_4.dll這個文件, 如果使用IIS的請下載 NON Tread safe的 2.如果…

USB連接器

USB連接器 電子元器件百科 文章目錄 USB連接器前言一、USB連接器是什么二、USB連接器的類別三、USB連接器的應用實例四、USB連接器的作用原理總結前言 USB連接器的使用廣泛,幾乎所有現代電子設備都具備USB接口,使得設備之間的數據傳輸和充電變得簡單和便捷。 一、USB連接器是…

element-ui按鈕el-button,點擊之后恢復之前的顏色

在開發過程中, 使用el-button 按鈕點擊之后, 沒有恢復到之前的顏色, 還是保持點擊之后的顏色,需要解決這個問題, <template><div><el-button size"mini" type"primary" plain click"onClick($event)">按鈕</el-button>…

iOS按鈕控件UIButton使用

1.在故事板中添加按鈕控件,步聚如下: 同時按鈕Shift+Commad+L在出現在控件庫中選擇Button并拖入View Controller Scene中 將控件與變量btnSelect關聯 關聯后空心變實心 如何關聯?直接到屬性窗口拖按鈕變量到控件上,出現一條線,然后松開,這樣就關聯成功了 關聯成功后屬性窗口…

LinuxBasicsForHackers筆記 -- 了解和檢查無線網絡

無線網絡 AP (access point) – 無線用戶連接以訪問互聯網的設備。SSID (service set identifier) – 網絡的名稱。ESSID (extended service set identifier) – 與 SSID 相同&#xff0c;但它可用于無線 LAN 中的多個 AP。BSSID (basic service set identifier) – 每個AP的唯…

ISP IC/FPGA設計-第一部分-MT9V034攝像頭分析(0)

MT9V034為CMOS圖像傳感器&#xff0c;有著極其優秀的圖像成像性能&#xff0c;同時支持豐富的功能用于isp的開發&#xff1b;MT9V034 的HDR寬動態、10bit數據深度、RAW格式&#xff08;bayer陣列&#xff09;圖像、dvp和lvds接口、60fps正是學習isp開發的理想傳感器&#xff1b…

使用Git進行版本控制

參考&#xff1a;《Python編程從入門到實踐》 前言1、安裝、配置 Git1.1 在Linux系統中安裝Git1.2 在OS X系統中安裝Git1.3 在Windows系統中安裝Git1.4 配置Git 2、創建項目3、忽略文件4、初始化倉庫5、檢查狀態6、將文件加入到倉庫中7、執行提交8、查看提交歷史 前言 版本控制…

C語言 預處理 + 條件編譯宏 + 井號運算符

預處理階段任務 預處理指令 條件編譯宏 條件編譯宏的作用在于根據編譯時的條件進行代碼的選擇性編譯&#xff0c;從而實現不同環境、不同配置或不同功能的編譯版本。 這可以用于實現調試模式和發布模式的切換&#xff0c;平臺適配&#xff0c;以及選擇性地編譯不同的功能模塊等…

Git merge 與 Git rebase 與 Git fetch

Git merge 與 Git rebase 看這個圖就行了 git merge、git rebase 和 git fetch 是 Git 中的三個不同的命令&#xff0c;它們分別用于不同的目的。以下是它們的主要區別&#xff1a; git merge&#xff08;合并&#xff09;&#xff1a; 用途&#xff1a; 用于將一個分支的更改…

基于hadoop下的spark安裝

目錄 簡介 安裝準備 spark安裝 配置文件配置 簡介 Spark主要?于?數據的并?計算&#xff0c;?Hadoop在企業主要?于?數據的存儲&#xff08;?如HDFS、Hive和HBase 等&#xff09;&#xff0c;以及資源調度&#xff08;Yarn&#xff09;。但是也有很多公司也在使?MR2進…

【Spring教程24】Spring框架實戰:從零開始學習SpringMVC 之 SpringMVC入門案例代碼示例

目錄 1:創建Maven項目&#xff0c;并導入對應的jar包2:創建控制器類3:創建配置類4:創建Tomcat的Servlet容器配置類5:配置Tomcat環境6:啟動運行項目7:瀏覽器訪問8:知識點總結 歡迎大家回到《Java教程之Spring30天快速入門》&#xff0c;本教程所有示例均基于Maven實現&#xff0…

【數學建模】《實戰數學建模:例題與講解》第八講-回歸分析(含Matlab代碼)

【數學建模】《實戰數學建模&#xff1a;例題與講解》第八講-回歸分析&#xff08;含Matlab代碼&#xff09; 回歸分析基本概念經典多元線性回歸&#xff08;MLR&#xff09;主成分回歸&#xff08;PCR&#xff09;偏最小二乘回歸&#xff08;PLS&#xff09;建模過程應用和優勢…

2023年12月11日-12月17日(項目需求+ue5底層渲染)

可以試試每小時項目需求內容ue5底層渲染交替進行。 周一&#xff1a; 6&#xff1a;11–&#xff0c;ue5底層渲染02A15

C# List類常用操作 之 查找

// // // 作者&#xff1a;鳥哥 // // email:xiaoniao2003gmail.com // // using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization.Formatters;class Program {class Student{internal string Name;internal int Ag…

Pandas實踐_pandas基礎

文章目錄 一、文件的讀取和寫入1.文件讀取2.數據寫入 二、基本數據結構1.Series2.DataFrame 三、常用基本函數1.匯總函數2.特征統計函數3.唯一值函數4.替換函數5.排序函數6.apply方法 四、窗口對象1.滑窗對象2.擴張窗口 一、文件的讀取和寫入 1.文件讀取 pandas可以讀取的文件…

rust宏(macro)詳解

前言 rust 學習曲線非常陡峭&#xff0c;但是基本語法也還算挺好理解&#xff0c;自動內存管理有點類似智能指針&#xff0c;基本看一下語法入門就可以大概理解&#xff0c;但是唯獨宏很難理解&#xff0c;語法非常晦澀。但是功能非常強大。聲明宏類似于c語言的宏處理&#xf…

docker-ubuntu中基于keepalived+niginx模擬主從熱備完整過程

一、環境準備 &#x1f517;在Ubuntu中安裝docker 二、主機 1、環境搭建 1.1 鏡像拉取 docker pull ubuntu:16.041.2 創建網橋 docker network create -dbridge --subnet192.168.126.0/24 br11.3 啟動容器 docker run -it --name ubuntu-1 --privileged -v /home/vac/l…

為 Compose MultiPlatform 添加 C/C++ 支持(2):在 jvm 平臺使用 jni 實現桌面端與 C/C++ 互操作

前言 在上篇文章中我們已經介紹了實現 Compose MultiPlatform 對 C/C 互操作的基本思路。 并且先介紹了在 kotlin native 平臺使用 cinterop 實現與 C/C 的互操作。 今天這篇文章將補充在 jvm 平臺使用 jni。 在 Compose MultiPlatform 中&#xff0c;使用 jvm 平臺的是 An…

Kubernetes實戰(十)-升級k8s集群

1 Kubernetes(k8s) 集群升級過程 Kubernetes 使用 kubeadm 工具來管理集群組件的升級。在集群節點層面&#xff0c;升級 Kubernetes(k8s)集群的過程可以分為以下幾個步驟&#xff1a; 1&#xff09;檢查當前環境和配置是否滿足升級要求。 2&#xff09;升級master主節點&…

如何一個例子玩明白GIT

一個例子玩明白GIT GIT的介紹和教程五花八門&#xff0c;但實際需要用的就是建倉、推送、拉取等操作&#xff0c;這兒咱可以通過一個例子熟悉這些操作&#xff0c;一次性搞定GIT的使用方法學習。下面這個例子的內容是內容是建立初始版本庫&#xff0c;然后將數據復制到 "遠…