當前位置:首頁 » 服務存儲 » 紅帽ceph存儲架構與管理
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

紅帽ceph存儲架構與管理

發布時間: 2022-07-29 00:13:42

㈠ 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 構建高性能塊存儲服務

Ceph是一個分布式存儲系統,支持對象文件快介面,設計目標是:
• 所有組件橫向擴展
• 沒有單點故障
• 可以在普通廠商硬體使用
• 所有機制都能自我管理
• 開源
分布式存儲的應用場景相對於其存儲介面,現在流行分為三種:
1.對象存儲: 也就是通常意義的鍵值存儲,其介面就是簡單的GET,PUT,DEL和其他擴展,如七牛、又拍,Swift,S3等。
2.塊存儲: 這種介面通常以QEMUDriver或者KernelMole的方式存在,這種介面需要實現Linux的Block Device的介面或者QEMU提供的Block Driver介面,如Sheepdog,AWS的EBS,青雲的雲硬碟和阿里雲的盤古系統,還有Ceph的RDB(RDB是Ceph面向塊存儲的介面)。
3、文件存儲: 通常意義是支持POSIX介面,它跟傳統的文件系統如Ext4是一個類型的,但區別在於分布式存儲提供了並行化的能力,如Ceph的CephFS(CephFS是Ceph面向文件存儲的介面),但是有時候又會把GFS,HDFS這種非POSIX介面的類文件存儲介面歸入此類。
提到存儲的種類就不得不提到另外一個話題:存儲不能做統一化嗎?因為必須要有多個不同的軟體棧去管理不同的存儲設備:SSD,SATA等。
Ceph就此提出了不同觀點,RADOS提供了基礎的存儲設備的管理、數據控制流訪問的管理,提供的是一個可靠持久的數據存儲平台,基於其上,我們可以實現多個不同的介面戶來實現面向不同需求的對接,比如對象存儲我們有一個單獨的庫實現去滿足不同的存儲需要,比如我們塊存儲是通過RDP來實現。
統一存儲並不意味著所有存儲都的同一個介面,同一個實現,同一個軟體棧,它其實只是使用了同一個設備管理的生命周期和數據訪問的有效控制,它提供了一個相對合理,非常適合運維的,利於成本,利於軟體可靠性控制的的機制去保證我們的存儲的可靠。
舉一個例子,大部分存儲廠商甚至網路廠商都有一個自己的核心軟體棧,如文件系內核。基於其上演化出各種不同的產品線。如果廠商要追求各個產品線的極致是不是就應該每個產品完全獨立來追求極致,但事實上一個核心的底層技術棧需要高質量的代碼、完備的測試和長期的使用。在Ceph這里,一個分布式系統的並發IO、分布式恢復、數據端到端校驗等等關鍵實現是唯一實現,成熟的系統系統在這些實現上需要經過一定量級和時間的考驗,這才是Ceph所謂的統一存儲,而不是其他的介面堆疊式開發。
【Ceph和其他開源分布式存儲、其他商用存儲的區別之處在哪?】
眾所周知,很多傳統廠商如日立、富士通等存儲大廠也採用了Ceph作為它們存儲硬體的載體,Ceph能提供企業級的存儲服務一定有它的優勢,才能讓傳統的存儲廠商棄而採用開源的存儲方案。
1、中心化系統我們認為它在數據控制系統方面做的較好,在遷移運維方面提供較好的實現,但卻有元數據的瓶頸。在訪問數據時需要經過元數據伺服器的查詢再去尋找相應的數據伺服器會在大規模擴展時遇到性能瓶頸問題。
2、全分布式系統雖然提供較好的數據訪問能力,能高效處理客戶端的LO請求,但是卻沒有提供一個非常好的數據控制的實現,比如故障處理能力不足,數據恢復的困難,如果跳出中心化的元數據存儲系統它沒辦法做到強一致性的數據恢復。
彈性的數據分布策略和物理拓撲輸入實現了高可用性和高持久性,Ceph的高性能重構還體現在利用CRush演算法對數進行約束,避免數據分布到所有的集群的一個節點上,利用Ceph設計並提供的一個由CRush演算法來支持一個高自由化的存儲集群的設計,實現高可靠性,高持久性,高性能。

㈢ Ceph的系統架構

Ceph 生態系統架構可以劃分為四部分:
1. Clients:客戶端(數據用戶)
2. cmds:Metadata server cluster,元數據伺服器(緩存和同步分布式元數據)
3. cosd:Object storage cluster,對象存儲集群(將數據和元數據作為對象存儲,執行其他關鍵職能)
4. cmon:Cluster monitors,集群監視器(執行監視功能)
圖1。 Ceph的生態系統的概念架構

㈣ Linux裡面ceph是什麼

Linux裡面ceph
Ceph是一個可靠地、自動重均衡、自動恢復的分布式存儲系統,根據場景劃分可以將Ceph分為三大塊,分別是對象存儲、塊設備存儲和文件系統服務。在虛擬化領域里,比較常用到的是Ceph的塊設備存儲,比如在OpenStack項目里,Ceph的塊設備存儲可以對接OpenStack的cinder後端存儲、Glance的鏡像存儲和虛擬機的數據存儲,比較直觀的是Ceph集群可以提供一個raw格式的塊存儲來作為虛擬機實例的硬碟。
Ceph相比其它存儲的優勢點在於它不單單是存儲,同時還充分利用了存儲節點上的計算能力,在存儲每一個數據時,都會通過計算得出該數據存儲的位置,盡量將數據分布均衡,同時由於Ceph的良好設計,採用了CRUSH演算法、HASH環等方法,使得它不存在傳統的單點故障的問題,且隨著規模的擴大性能並不會受到影響。

㈤ 如何在CentOS 7.0上配置Ceph存儲

Ceph 是一個將數據存儲在單一分布式計算機集群上的開源軟體平台。當你計劃構建一個雲時,你首先需要決定如何實現你的存儲。開源的 Ceph 是紅帽原生技術之一,它基於稱為 RADOS 的對象存儲系統,用一組網關 API 表示塊、文件、和對象模式中的數據。由於它自身開源的特性,這種便攜存儲平台能在公有雲和私有雲上安裝和使用。Ceph 集群的拓撲結構是按照備份和信息分布設計的,這種內在設計能提供數據完整性。它的設計目標就是容錯、通過正確配置能運行於商業硬體和一些更高級的系統。

Ceph 能在任何 Linux 發行版上安裝,但為了能正確運行,它需要最近的內核以及其它最新的庫。在這篇指南中,我們會使用最小化安裝的 CentOS-7.0。

系統資源
**CEPH-STORAGE**
OS:CentOSLinux7(Core)
RAM:1 GB
CPU:1 CPU
DISK:20
Network:45.79.136.163
FQDN: ceph-storage.linoxide.com
**CEPH-NODE**
OS:CentOSLinux7(Core)
RAM:1 GB
CPU:1 CPU
DISK:20
Network:45.79.171.138
FQDN: ceph-node.linoxide.com

安裝前的配置
在安裝 Ceph 存儲之前,我們要在每個節點上完成一些步驟。第一件事情就是確保每個節點的網路已經配置好並且能相互訪問。
配置 Hosts
要在每個節點上配置 hosts 條目,要像下面這樣打開默認的 hosts 配置文件(LCTT 譯註:或者做相應的 DNS 解析)。
#vi/etc/hosts
45.79.136.163 ceph-storage ceph-storage.linoxide.com
45.79.171.138 ceph-node ceph-node.linoxide.com
安裝 VMware 工具
工作環境是 VMWare 虛擬環境時,推薦你安裝它的 open VM 工具。你可以使用下面的命令安裝。
#yum install -y open-vm-tools
配置防火牆
如果你正在使用啟用了防火牆的限制性環境,確保在你的 Ceph 存儲管理節點和客戶端節點中開放了以下的埠。
你必須在你的 Admin Calamari 節點開放 80、2003、以及4505-4506 埠,並且允許通過 80 號埠訪問到 Ceph 或 Calamari 管理節點,以便你網路中的客戶端能訪問 Calamari web 用戶界面。
你可以使用下面的命令在 CentOS 7 中啟動並啟用防火牆。
#systemctl start firewalld
#systemctl enable firewalld
運行以下命令使 Admin Calamari 節點開放上面提到的埠。
# firewall-cmd --zone=public--add-port=80/tcp --permanent
# firewall-cmd --zone=public--add-port=2003/tcp --permanent
# firewall-cmd --zone=public--add-port=4505-4506/tcp --permanent
# firewall-cmd --reload
在 Ceph Monitor 節點,你要在防火牆中允許通過以下埠。
# firewall-cmd --zone=public--add-port=6789/tcp --permanent
然後允許以下默認埠列表,以便能和客戶端以及監控節點交互,並發送數據到其它 OSD。
# firewall-cmd --zone=public--add-port=6800-7300/tcp --permanent
如果你工作在非生產環境,建議你停用防火牆以及 SELinux 設置,在我們的測試環境中我們會停用防火牆以及 SELinux。
#systemctl stop firewalld
#systemctl disable firewalld
系統升級
現在升級你的系統並重啟使所需更改生效。
#yum update
#shutdown-r 0

設置 Ceph 用戶
現在我們會新建一個單獨的 sudo 用戶用於在每個節點安裝 ceph-deploy工具,並允許該用戶無密碼訪問每個節點,因為它需要在 Ceph 節點上安裝軟體和配置文件而不會有輸入密碼提示。
運行下面的命令在 ceph-storage 主機上新建有獨立 home 目錄的新用戶。
[root@ceph-storage ~]#useradd-d /home/ceph -m ceph
[root@ceph-storage ~]#passwd ceph
節點中新建的每個用戶都要有 sudo 許可權,你可以使用下面展示的命令賦予 sudo 許可權。
[root@ceph-storage ~]#echo"ceph ALL = (root) NOPASSWD:ALL"|sudotee/etc/sudoers.d/ceph
ceph ALL =(root) NOPASSWD:ALL
[root@ceph-storage ~]#sudochmod0440/etc/sudoers.d/ceph

設置 SSH 密鑰
現在我們會在 Ceph 管理節點生成 ssh 密鑰並把密鑰復制到每個 Ceph 集群節點。
在 ceph-node 運行下面的命令復制它的 ssh 密鑰到 ceph-storage。
[root@ceph-node ~]#ssh-keygen
Generatingpublic/private rsa key pair.
Enterfilein which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (emptyforno passphrase):
Enter same passphrase again:
Your identification has been saved in/root/.ssh/id_rsa.
Yourpublic key has been saved in/root/.ssh/id_rsa.pub.
The key fingerprint is:
5b:*:*:*:*:*:*:*:*:*:c9 root@ceph-node
The key's randomart image is:
+--[ RSA 2048]----+
[root@ceph-node ~]#ssh--id ceph@ceph-storage

SSH key

配置 PID 數目
要配置 PID 數目的值,我們會使用下面的命令檢查默認的內核值。默認情況下,是一個小的最大線程數 32768。
如下圖所示通過編輯系統配置文件配置該值為一個更大的數。

更改 PID 值

配置管理節點伺服器
配置並驗證了所有網路後,我們現在使用 ceph 用戶安裝 ceph-deploy。通過打開文件檢查 hosts 條目(LCTT 譯註:你也可以用 DNS 解析來完成)。
#vim/etc/hosts
ceph-storage 45.79.136.163
ceph-node 45.79.171.138
運行下面的命令添加它的庫。
# rpm -Uhv http://ceph.com/rpm-giant/el7/noarch/ceph-release-1-0.el7.noarch.rpm

添加 Ceph 倉倉庫
或者創建一個新文件並更新 Ceph 庫參數,別忘了替換你當前的 Release 和版本號。
[root@ceph-storage ~]#vi/etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
之後更新你的系統並安裝 ceph-deploy 軟體包。

安裝 ceph-deploy 軟體包
我們運行下面的命令以及 ceph-deploy 安裝命令來更新系統以及最新的 ceph 庫和其它軟體包。
#yum update -y &&yum install ceph-deploy -y

配置集群
使用下面的命令在 ceph 管理節點上新建一個目錄並進入新目錄,用於收集所有輸出文件和日誌。
#mkdir~/ceph-cluster
#cd~/ceph-cluster
# ceph-deploy new storage

設置 ceph 集群
如果成功執行了上面的命令,你會看到它新建了配置文件。
現在配置 Ceph 默認的配置文件,用任意編輯器打開它並在會影響你公共網路的 global 參數下面添加以下兩行。
#vim ceph.conf
osd pool defaultsize=1
public network =45.79.0.0/16

安裝 Ceph
現在我們准備在和 Ceph 集群關聯的每個節點上安裝 Ceph。我們使用下面的命令在 ceph-storage 和 ceph-node 上安裝 Ceph。
# ceph-deploy install ceph-node ceph-storage

安裝 ceph
處理所有所需倉庫和安裝所需軟體包會需要一些時間。
當兩個節點上的 ceph 安裝過程都完成後,我們下一步會通過在相同節點上運行以下命令創建監視器並收集密鑰。
# ceph-deploy mon create-initial

Ceph 初始化監視器

設置 OSD 和 OSD 守護進程
現在我們會設置磁碟存儲,首先運行下面的命令列出你所有可用的磁碟。
# ceph-deploy disk list ceph-storage
結果中會列出你存儲節點中使用的磁碟,你會用它們來創建 OSD。讓我們運行以下命令,請使用你的磁碟名稱。
# ceph-deploy disk zap storage:sda
# ceph-deploy disk zap storage:sdb
為了最後完成 OSD 配置,運行下面的命令配置日誌磁碟以及數據磁碟。
# ceph-deploy osd prepare storage:sdb:/dev/sda
# ceph-deploy osd activate storage:/dev/sdb1:/dev/sda1
你需要在所有節點上運行相同的命令,它會清除你磁碟上的所有東西。之後為了集群能運轉起來,我們需要使用以下命令從 ceph 管理節點復制不同的密鑰和配置文件到所有相關節點。
# ceph-deploy admin ceph-node ceph-storage

測試 Ceph
我們快完成了 Ceph 集群設置,讓我們在 ceph 管理節點上運行下面的命令檢查正在運行的 ceph 狀態。
# ceph status
# ceph health
HEALTH_OK
如果你在 ceph status 中沒有看到任何錯誤信息,就意味著你成功地在 CentOS 7 上安裝了 ceph 存儲集群。

㈥ 如何基於Ceph打造一款高可靠的塊存儲系統

Ceph布式存儲系統支持象文件快介面設計目標:
? 所組件橫向擴展
? 沒單點故障
? 普通廠商硬體使用
? 所機制都能自我管理
? 源
布式存儲應用場景相於其存儲介面現流行三種:
1.象存儲: 通意義鍵值存儲其介面簡單GET,PUTDEL其擴展七牛、拍SwiftS3等
2.塊存儲: 種介面通QEMUDriver或者KernelMole式存種介面需要實現LinuxBlock Device介面或者QEMU提供Block Driver介面SheepdogAWSEBS青雲雲硬碟阿雲盤古系統CephRDB(RDBCeph面向塊存儲介面)
3、文件存儲: 通意義支持POSIX介面跟傳統文件系統Ext4類型區別於布式存儲提供並行化能力CephCephFS(CephFSCeph面向文件存儲介面)候GFSHDFS種非POSIX介面類文件存儲介面歸入類
提存儲種類提另外題:存儲能做統化必須要同軟體棧管理同存儲設備:SSDSATA等
Ceph提同觀點RADOS提供基礎存儲設備管理、數據控制流訪問管理提供靠持久數據存儲平台基於其我實現同介面戶實現面向同需求接比象存儲我單獨庫實現滿足同存儲需要比我塊存儲通RDP實現
統存儲並意味著所存儲都同介面同實現同軟體棧其實使用同設備管理命周期數據訪問效控制提供相合理非適合運維利於本利於軟體靠性控制機制保證我存儲靠
舉例部存儲廠商甚至網路廠商都自核軟體棧文件系內核基於其演化各種同產品線廠商要追求各產品線極致應該每產品完全獨立追求極致事實核底層技術棧需要高質量代碼、完備測試期使用Ceph布式系統並發IO、布式恢復、數據端端校驗等等關鍵實現唯實現熟系統系統些實現需要經定量級間考驗才Ceph所謂統存儲其介面堆疊式發
【Ceph其源布式存儲、其商用存儲區別處哪】
眾所周知傳統廠商立、富士通等存儲廠採用Ceph作存儲硬體載體Ceph能提供企業級存儲服務定優勢才能讓傳統存儲廠商棄採用源存儲案
1、化系統我認數據控制系統面做較遷移運維面提供較實現卻元數據瓶頸訪問數據需要經元數據伺服器查詢再尋找相應數據伺服器規模擴展遇性能瓶頸問題
2、全布式系統雖提供較數據訪問能力能高效處理客戶端LO請求卻沒提供非數據控制實現比故障處理能力足數據恢復困難跳化元數據存儲系統沒辦做強致性數據恢復
彈性數據布策略物理拓撲輸入實現高用性高持久性Ceph高性能重構體現利用CRush算數進行約束避免數據布所集群節點利用Ceph設計並提供由CRush算支持高自由化存儲集群設計實現高靠性高持久性高性能

㈦ 為什麼要安裝centos 7 ceph

Ceph 是一個將數據存儲在單一分布式計算機集群上的開源軟體平台。當你計劃構建一個雲時,你首先需要決定如何實現你的存儲。開源的 Ceph 是紅帽原生技術之一,它基於稱為 RADOS 的對象存儲系統,用一組網關 API 表示塊、文件、和對象模式中的數據...

如何配置Ceph對象存儲作為KVM虛擬機外部存儲

Ceph對象存儲只有在特定環境中才能夠發揮最佳性能表現。這款產品在研發過程中考慮到雲環境相關需求,且價格適中,能夠輕松擴展成PB級存儲。
但是部署Ceph並不簡單,IT員工必須對產品進行充分了解。
相比於現在大部分數據中心使用的傳統SAN產品,Ceph能夠大幅度降低存儲成本。這使得Ceph成為一種適用於大規模環境的理想存儲產品,但是並不適用於只需要幾台虛擬機的小型企業。

㈨ ceph為什麼走容器

因為Ceph的大規模分布式架構原因,其IO路徑過長,使得其性能一直被詬病。


容器的堆棧,Ceph很大的應用場景是在OpenStack,Ceph伴隨著OpenStack一起火起來,在傳統的存儲領域我們逐漸開始使用Ceph。


隨著容器軟體棧的重要性提升,Ceph逐漸也在容器中做一些涉獵。


以紅帽的角度來講,之前基於面向容器存儲的解決方案,今後會推出基於Ceph的解決方案,面向未來無論是容器還是虛機,基礎架構平台會通過Ceph成為整體統一的軟體。



在實際的應用場景里,除了容器,虛擬機在很多面向傳統應用還是比較多的,在統一的調度層進行Kubernetes實現。


OpenStack的存儲一直都是通過Ceph作為底層存儲,接下來Ceph也會作為Kubernetes的底層存儲給整個平台使用。


去年在北京有一個國外的同事介紹Rook相關的內容,今天我把進展跟大家分享系一下。如果大家不了解Rook,我也會簡單介紹一下Rook是什麼。


Rook是一個控制面,Ceph有很多的問題,我特別注意最後一頁的問題,比如說有些跟硬體相關或是跟運維相關,在面向Kubernetes的平台上,在容器出現的時候,最早Docker出現可以簡化運維,可以把應用和應用的配置打包放在容器里簡化運維。


Docker簡化運維後來逐漸出現了Kubernetes,容器部署、上線方便。如何管理大規模的平台,Kubernetes逐漸需要持久化的存儲,容器是完全的分布式無狀態的,實際上我們會發現做到這點太難了,特別是對於復雜的邏輯、傳統的應用,沒法做到真正的分布式的狀態,所以需要持久化的存儲。



㈩ ceph分布式存儲為啥

Ceph是根據加州大學Santa Cruz分校的Sage Weil的博士論文所設計開發的新一代自由軟體分布式文件系統,其設計目標是良好的可擴展性(PB級別以上)、高性能及高可靠性

Ceph其命名和UCSC(Ceph 的誕生地)的吉祥物有關,這個吉祥物是「Sammy」,一個香蕉色的蛞蝓,就是頭足類中無殼的軟體動物。這些有多觸角的頭足類動物,是對一個分布式文件系統高度並行的形象比喻。

其設計遵循了三個原則:數據與元數據的分離,動態的分布式的元數據管理,可靠統一的分布式對象存儲機制。本文將從Ceph的架構出發,綜合性的介紹Ceph分布式文件系統特點及其實現方式。

更多技術細節參考網頁鏈接