国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Linux】分布式存儲系統(tǒng) Ceph

這篇具有很好參考價值的文章主要介紹了【Linux】分布式存儲系統(tǒng) Ceph。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔


Ceph 概述

1、Ceph 簡介

Ceph使用C++語言開發(fā),是一個開放、自我修復(fù)和自我管理的開源分布式存儲系統(tǒng)。具有高擴展性、高性能、高可靠性的優(yōu)點。

Ceph目前已得到眾多云計算廠商的支持并被廣泛應(yīng)用。RedHat及OpenStack,Kubernetes都可與Ceph整合以支持虛擬機鏡像的后端存儲。
粗略估計,我國70%—80%的云平臺都將Ceph作為底層的存儲平臺,由此可見Ceph儼然成為了開源云平臺的標配。目前國內(nèi)使用Ceph搭建分布式存儲系統(tǒng)較為成功的企業(yè)有華為、阿里、中興、華三、浪潮、中國移動、網(wǎng)易、樂視、360、星辰天合存儲、杉巖數(shù)據(jù)等。

2、存儲基礎(chǔ)

單機存儲設(shè)備

●DAS(直接附加存儲,是直接接到計算機的主板總線上去的存儲)
IDE、SATA、SCSI、SAS、USB 接口的磁盤
所謂接口就是一種存儲設(shè)備驅(qū)動下的磁盤設(shè)備,提供塊級別的存儲

●NAS(網(wǎng)絡(luò)附加存儲,是通過網(wǎng)絡(luò)附加到當前主機文件系統(tǒng)之上的存儲)
NFS、CIFS、FTP
文件系統(tǒng)級別的存儲,本身就是一個做好的文件系統(tǒng),通過nfs接口在用戶空間輸出后,客戶端基于內(nèi)核模塊與遠程主機進行網(wǎng)絡(luò)通信,把它轉(zhuǎn)為好像本地文件系統(tǒng)一樣來使用,這種存儲服務(wù)是沒辦法對它再一次格式化創(chuàng)建文件系統(tǒng)塊的

●SAN(存儲區(qū)域網(wǎng)絡(luò))
SCSI協(xié)議(只是用來傳輸數(shù)據(jù)的存取操作,物理層使用SCSI線纜來傳輸)、FCSAN(物理層使用光纖來傳輸)、iSCSI(物理層使用以太網(wǎng)來傳輸)
也是一種網(wǎng)絡(luò)存儲,但不同之處在于SAN提供給客戶端主機使用的接口是塊級別的存儲

單機存儲的問題

●存儲處理能力不足
傳統(tǒng)的IDE的IO值是100次/秒,SATA固態(tài)磁盤500次/秒,固態(tài)硬盤達到2000-4000次/秒。即使磁盤的IO能力再大數(shù)十倍,也不夠抗住網(wǎng)站訪問高峰期數(shù)十萬、數(shù)百萬甚至上億用戶的同時訪問,這同時還要受到主機網(wǎng)絡(luò)IO能力的限制。

●存儲空間能力不足
單塊磁盤的容量再大,也無法滿足用戶的正常訪問所需的數(shù)據(jù)容量限制。

●單點故障問題
單機存儲數(shù)據(jù)存在單點故障問題

商業(yè)存儲解決方案

  • EMC、NetAPP、IBM、DELL、華為、浪潮

分布式存儲(軟件定義的存儲 SDS)

Ceph、TFS、FastDFS、MooseFS(MFS)、HDFS、GlusterFS(GFS)
存儲機制會把數(shù)據(jù)分散存儲到多個節(jié)點上,具有高擴展性、高性能、高可用性等優(yōu)點。

分布式存儲的類型

●塊存儲(例如硬盤,一般是一個存儲被一個服務(wù)器掛載使用,適用于容器或虛擬機存儲卷分配、日志存儲、文件存儲)
就是一個裸設(shè)備,用于提供沒有被組織過的存儲空間,底層以分塊的方式來存儲數(shù)據(jù)

●文件存儲(例如NFS,解決塊存儲無法共享問題,可以一個存儲被多個服務(wù)器同時掛載,適用于目錄結(jié)構(gòu)的存儲、日志存儲)
是一種數(shù)據(jù)的組織存放接口,一般是建立在塊級別的存儲結(jié)構(gòu)之上,以文件形式來存儲數(shù)據(jù),而文件的元數(shù)據(jù)和實際數(shù)據(jù)是分開存儲的

●對象存儲(例如OSS,一個存儲可以被多服務(wù)同時訪問,具備塊存儲的高速讀寫能力,也具備文件存儲共享的特性,適用圖片存儲、視頻存儲)
基于API接口提供的文件存儲,每一個文件都是一個對象,且文件大小各不相同的,文件的元數(shù)據(jù)和實際數(shù)據(jù)是存放在一起的

3、Ceph 優(yōu)勢

●高擴展性:去中心化,支持使用普通X86服務(wù)器,支持上千個存儲節(jié)點的規(guī)模,支持TB到EB級的擴展。
●高可靠性:沒有單點故障,多數(shù)據(jù)副本,自動管理,自動修復(fù)。
●高性能:摒棄了傳統(tǒng)的集中式存儲元數(shù)據(jù)尋址的方案,采用 CRUSH 算法,數(shù)據(jù)分布均衡,并行度高。
●功能強大:Ceph是個大一統(tǒng)的存儲系統(tǒng),集塊存儲接口(RBD)、文件存儲接口(CephFS)、對象存儲接口(RadosGW)于一身,因而適用于不同的應(yīng)用場景。

4、Ceph 架構(gòu)

自下向上,可以將Ceph系統(tǒng)分為四個層次:

●RADOS 基礎(chǔ)存儲系統(tǒng)(Reliab1e,Autonomic,Distributed object store,即可靠的、自動化的、分布式的對象存儲)
RADOS是Ceph最底層的功能模塊,是一個無限可擴容的對象存儲服務(wù),能將文件拆解成無數(shù)個對象(碎片)存放在硬盤中,大大提高了數(shù)據(jù)的穩(wěn)定性。它主要由OSD和Monitor兩個組件組成,OSD和Monitor都可以部署在多臺服務(wù)器中,這就是ceph分布式的由來,高擴展性的由來。

●LIBRADOS 基礎(chǔ)庫
Librados提供了與RADOS進行交互的方式,并向上層應(yīng)用提供Ceph服務(wù)的API接口,因此上層的RBD、RGW和CephFS都是通過Librados訪問的,目前提供PHP、Ruby、Java、Python、Go、C和C++支持,以便直接基于RADOS(而不是整個Ceph)進行客戶端應(yīng)用開發(fā)。

●高層應(yīng)用接口:包括了三個部分
1)對象存儲接口 RGW(RADOS Gateway)
網(wǎng)關(guān)接口,基于Librados開發(fā)的對象存儲系統(tǒng),提供S3和Swift兼容的RESTful API接口。
2)塊存儲接口 RBD(Reliable Block Device)
基于Librados提供塊設(shè)備接口,主要用于Host/VM。
3)文件存儲接口 CephFS(Ceph File System)
Ceph文件系統(tǒng),提供了一個符合POSIX標準的文件系統(tǒng),它使用Ceph存儲集群在文件系統(tǒng)上存儲用戶數(shù)據(jù)?;贚ibrados提供的分布式文件系統(tǒng)接口。

●應(yīng)用層:基于高層接口或者基礎(chǔ)庫Librados開發(fā)出來的各種APP,或者Host、VM等諸多客戶端

4、Ceph 核心組件

Ceph是一個對象式存儲系統(tǒng),它把每一個待管理的數(shù)據(jù)流(如文件等數(shù)據(jù))切分為一到多個固定大?。J4兆)的對象數(shù)據(jù)(Object),并以其為原子單元(原子是構(gòu)成元素的最小單元)完成數(shù)據(jù)的讀寫。

●OSD(Object Storage Daemon,守護進程 ceph-osd)
是負責物理存儲的進程,一般配置成和磁盤一一對應(yīng),一塊磁盤啟動一個OSD進程。主要功能是存儲數(shù)據(jù)、復(fù)制數(shù)據(jù)、平衡數(shù)據(jù)、恢復(fù)數(shù)據(jù),以及與其它OSD間進行心跳檢查,負責響應(yīng)客戶端請求返回具體數(shù)據(jù)的進程等。通常至少需要3個OSD來實現(xiàn)冗余和高可用性。

●PG(Placement Group 歸置組)
PG 是一個虛擬的概念而已,物理上不真實存在。它在數(shù)據(jù)尋址時類似于數(shù)據(jù)庫中的索引:Ceph 先將每個對象數(shù)據(jù)通過HASH算法固定映射到一個 PG 中,然后將 PG 通過 CRUSH 算法映射到 OSD。

●Pool
Pool 是存儲對象的邏輯分區(qū),它起到 namespace 的作用。每個 Pool 包含一定數(shù)量(可配置)的 PG。Pool 可以做故障隔離域,根據(jù)不同的用戶場景統(tǒng)一進行隔離。
Pool中數(shù)據(jù)保存方式支持兩種類型:
●多副本(replicated):類似 raid1,一個對象數(shù)據(jù)默認保存 3 個副本,放在不同的 OSD
●糾刪碼(Erasure Code):類似 raid5,對 CPU 消耗稍大,但是節(jié)約磁盤空間,對象數(shù)據(jù)保存只有 1 個副本。由于Ceph部分功能不支持糾刪碼池,此類型存儲池使用不多
Pool、PG 和 OSD 的關(guān)系:
一個Pool里有很多個PG;一個PG里包含一堆對象,一個對象只能屬于一個PG;PG有主從之分,一個PG分布在不同的OSD上(針對多副本類型)

●Monitor(守護進程 ceph-mon)
用來保存OSD的元數(shù)據(jù)。負責維護集群狀態(tài)的映射視圖(Cluster Map:OSD Map、Monitor Map、PG Map 和 CRUSH Map),維護展示集群狀態(tài)的各種圖表, 管理集群客戶端認證與授權(quán)。一個Ceph集群通常至少需要 3 或 5 個(奇數(shù)個)Monitor 節(jié)點才能實現(xiàn)冗余和高可用性,它們通過 Paxos 協(xié)議實現(xiàn)節(jié)點間的同步數(shù)據(jù)。

●Manager(守護進程 ceph-mgr)
負責跟蹤運行時指標和 Ceph 集群的當前狀態(tài),包括存儲利用率、當前性能指標和系統(tǒng)負載。為外部監(jiān)視和管理系統(tǒng)提供額外的監(jiān)視和接口,例如 zabbix、prometheus、 cephmetrics 等。一個 Ceph 集群通常至少需要 2 個 mgr 節(jié)點實現(xiàn)高可用性,基于 raft 協(xié)議實現(xiàn)節(jié)點間的信息同步。

●MDS(Metadata Server,守護進程 ceph-mds)
是 CephFS 服務(wù)依賴的元數(shù)據(jù)服務(wù)。負責保存文件系統(tǒng)的元數(shù)據(jù),管理目錄結(jié)構(gòu)。對象存儲和塊設(shè)備存儲不需要元數(shù)據(jù)服務(wù);如果不使用 CephFS 可以不安裝。

5、OSD 存儲后端

OSD 有兩種方式管理它們存儲的數(shù)據(jù)。在 Luminous 12.2.z 及以后的發(fā)行版中,默認(也是推薦的)后端是 BlueStore。在 Luminous 發(fā)布之前, 默認是 FileStore, 也是唯一的選項。

●Filestore
FileStore是在Ceph中存儲對象的一個遺留方法。它依賴于一個標準文件系統(tǒng)(只能是XFS),并結(jié)合一個鍵/值數(shù)據(jù)庫(傳統(tǒng)上是LevelDB,現(xiàn)在BlueStore是RocksDB),用于保存和管理元數(shù)據(jù)。
FileStore經(jīng)過了良好的測試,在生產(chǎn)中得到了廣泛的應(yīng)用。然而,由于它的總體設(shè)計和對傳統(tǒng)文件系統(tǒng)的依賴,使得它在性能上存在許多不足。

●Bluestore
BlueStore是一個特殊用途的存儲后端,專門為OSD工作負載管理磁盤上的數(shù)據(jù)而設(shè)計。BlueStore 的設(shè)計是基于十年來支持和管理 Filestore 的經(jīng)驗。BlueStore 相較于 Filestore,具有更好的讀寫性能和安全性。

BlueStore 的主要功能包括:

1)BlueStore直接管理存儲設(shè)備,即直接使用原始塊設(shè)備或分區(qū)管理磁盤上的數(shù)據(jù)。這樣就避免了抽象層的介入(例如本地文件系統(tǒng),如XFS),因為抽象層會限制性能或增加復(fù)雜性。
2)BlueStore使用RocksDB進行元數(shù)據(jù)管理。RocksDB的鍵/值數(shù)據(jù)庫是嵌入式的,以便管理內(nèi)部元數(shù)據(jù),包括將對象名稱映射到磁盤上的塊位置。
3)寫入BlueStore的所有數(shù)據(jù)和元數(shù)據(jù)都受一個或多個校驗和的保護。未經(jīng)驗證,不會從磁盤讀取或返回給用戶任何數(shù)據(jù)或元數(shù)據(jù)。
4)支持內(nèi)聯(lián)壓縮。數(shù)據(jù)在寫入磁盤之前可以選擇性地進行壓縮。
5)支持多設(shè)備元數(shù)據(jù)分層。BlueStore允許將其內(nèi)部日志(WAL預(yù)寫日志)寫入單獨的高速設(shè)備(如SSD、NVMe或NVDIMM),以提高性能。如果有大量更快的可用存儲,則可以將內(nèi)部元數(shù)據(jù)存儲在更快的設(shè)備上。
6)支持高效的寫時復(fù)制。RBD和CephFS快照依賴于在BlueStore中有效實現(xiàn)的即寫即復(fù)制克隆機制。這將為常規(guī)快照和擦除編碼池(依賴克隆實現(xiàn)高效的兩階段提交)帶來高效的I/O。

6、Ceph 數(shù)據(jù)的存儲過程

1)客戶端從 mon 獲取最新的 Cluster Map

2)在 Ceph 中,一切皆對象。Ceph 存儲的數(shù)據(jù)都會被切分成為一到多個固定大小的對象(Object)。Object size 大小可以由管理員調(diào)整,通常為 2M 或 4M。
每個對象都會有一個唯一的 OID,由 ino 與 ono 組成:
●ino :即是文件的 FileID,用于在全局唯一標識每一個文件
●ono :則是分片的編號
比如:一個文件 FileID 為 A,它被切成了兩個對象,一個對象編號0,另一個編號1,那么這兩個文件的 oid 則為 A0 與 A1。
OID 的好處是可以唯一標示每個不同的對象,并且存儲了對象與文件的從屬關(guān)系。由于 Ceph 的所有數(shù)據(jù)都虛擬成了整齊劃一的對象,所以在讀寫時效率都會比較高。

3)通過對 OID 使用 HASH 算法得到一個16進制的特征碼,用特征碼與 Pool 中的 PG 總數(shù)取余,得到的序號則是 PGID 。
即 Pool_ID + HASH(OID) % PG_NUM 得到 PGID

4)PG 會根據(jù)設(shè)置的副本數(shù)量進行復(fù)制,通過對 PGID 使用 CRUSH 算法算出 PG 中目標主和次 OSD 的 ID,存儲到不同的 OSD 節(jié)點上(其實是把 PG 中的所有對象存儲到 OSD 上)。
即通過 CRUSH(PGID) 得到將 PG 中的數(shù)據(jù)存儲到各個 OSD 組中
CRUSH 是 Ceph 使用的數(shù)據(jù)分布算法,類似一致性哈希,讓數(shù)據(jù)分配到預(yù)期的地方。

7、Ceph 版本發(fā)行生命周期

Ceph從Nautilus版本(14.2.0)開始,每年都會有一個新的穩(wěn)定版發(fā)行,預(yù)計是每年的3月份發(fā)布,每年的新版本都會起一個新的名稱(例如,“Mimic”)和一個主版本號(例如,13代表Mimic,因為“M”是字母表的第13個字母)。

版本號的格式為 x.y.z,x 表示發(fā)布周期(例如,13 代表 Mimic,17 代表 Quincy),y 表示發(fā)布版本類型,即
● x.0.z :y等于 0,表示開發(fā)版本
● x.1.z :y等于 1,表示發(fā)布候選版本(用于測試集群)
● x.2.z :y等于 2,表示穩(wěn)定/錯誤修復(fù)版本(針對用戶)

Ceph 集群部署

目前 Ceph 官方提供很多種部署 Ceph 集群的方法,常用的分別是 ceph-deploy,cephadm 和 二進制:
●ceph-deploy :一個集群自動化部署工具,使用較久,成熟穩(wěn)定,被很多自動化工具所集成,可用于生產(chǎn)部署。

●cephadm :從 Octopus 和較新的版本版本后使用 cephadm 來部署 ceph 集群,使用容器和 systemd 安裝和管理 Ceph 集群。目前不建議用于生產(chǎn)環(huán)境。

●二進制:手動部署,一步步部署 Ceph 集群,支持較多定制化和了解部署細節(jié),安裝難度較大。

Ceph 環(huán)境規(guī)劃

主機名				Public網(wǎng)絡(luò)				Cluster網(wǎng)絡(luò)				角色
admin				192.168.142.50									admin(管理節(jié)點負責集群整體部署)、client
node01				192.168.142.60			192.168.100.60			mon、mgr、osd(/dev/sdb、/dev/sdc、/dev/sdd)
node02				192.168.142.70			192.168.100.70			mon、mgr、osd(/dev/sdb、/dev/sdc、/dev/sdd)
node03				192.168.142.80			192.168.100.80			mon、osd(/dev/sdb、/dev/sdc、/dev/sdd)
client				192.168.142.40									client

//環(huán)境準備
可選步驟:創(chuàng)建 Ceph 的管理用戶
useradd cephadm
passwd cephadm

visudo
cephadm ALL=(root) NOPASSWD:ALL

1、關(guān)閉 selinux 與防火墻

systemctl disable --now firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

2、根據(jù)規(guī)劃設(shè)置主機名

hostnamectl set-hostname admin
hostnamectl set-hostname node01
hostnamectl set-hostname node02
hostnamectl set-hostname node03
hostnamectl set-hostname client

3、配置 hosts 解析

cat >> /etc/hosts << EOF
192.168.142.50 admin
192.168.142.60 node01
192.168.142.70 node02
192.168.142.80 node03
192.168.142.40 client
EOF

4、安裝常用軟件和依賴包

yum -y install epel-release
yum -y install yum-plugin-priorities yum-utils ntpdate python-setuptools python-pip gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel zip unzip ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssh openssl-devel nss_ldap openldap openldap-devel openldap-clients openldap-servers libxslt-devel libevent-devel ntp libtool-ltdl bison libtool vim-enhanced python wget lsof iptraf strace lrzsz kernel-devel kernel-headers pam-devel tcl tk cmake ncurses-devel bison setuptool popt-devel net-snmp screen perl-devel pcre-devel net-snmp screen tcpdump rsync sysstat man iptables sudo libconfig git bind-utils tmux elinks numactl iftop bwm-ng net-tools expect snappy leveldb gdisk python-argparse gperftools-libs conntrack ipset jq libseccomp socat chrony sshpass

5、在 admin 管理節(jié)點配置 ssh 免密登錄所有節(jié)點

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
sshpass -p '123456' ssh-copy-id -o StrictHostKeyChecking=no root@admin
sshpass -p '123456' ssh-copy-id -o StrictHostKeyChecking=no root@node01
sshpass -p '123456' ssh-copy-id -o StrictHostKeyChecking=no root@node02
sshpass -p '123456' ssh-copy-id -o StrictHostKeyChecking=no root@node03

6、配置時間同步

systemctl enable --now chronyd
timedatectl set-ntp true					#開啟 NTP
timedatectl set-timezone Asia/Shanghai		#設(shè)置時區(qū)
chronyc -a makestep							#強制同步下系統(tǒng)時鐘
timedatectl status							#查看時間同步狀態(tài)
chronyc sources -v							#查看 ntp 源服務(wù)器信息
timedatectl set-local-rtc 0					#將當前的UTC時間寫入硬件時鐘

#重啟依賴于系統(tǒng)時間的服務(wù)
systemctl restart rsyslog 
systemctl restart crond

#關(guān)閉無關(guān)服務(wù)
systemctl disable --now postfix

7、配置 Ceph yum源

wget https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm --no-check-certificate

rpm -ivh ceph-release-1-1.el7.noarch.rpm --force

8、執(zhí)行完上面所有的操作之后重啟所有主機(可選)

sync
reboot

部署 Ceph 集群

1、為所有節(jié)點都創(chuàng)建一個 Ceph 工作目錄,后續(xù)的工作都在該目錄下進行

mkdir -p /etc/ceph

2、安裝 ceph-deploy 部署工具

cd /etc/ceph
yum install -y ceph-deploy

ceph-deploy --version

3、在管理節(jié)點為其它節(jié)點安裝 Ceph 軟件包

#ceph-deploy 2.0.1 默認部署的是 mimic 版的 Ceph,若想安裝其他版本的 Ceph,可以用 --release 手動指定版本
cd /etc/ceph
ceph-deploy install --release nautilus node0{1..3} admin

#ceph-deploy install 本質(zhì)就是在執(zhí)行下面的命令:
yum clean all
yum -y install epel-release
yum -y install yum-plugin-priorities
yum -y install ceph-release ceph ceph-radosgw

#也可采用手動安裝 Ceph 包方式,在其它節(jié)點上執(zhí)行下面的命令將 Ceph 的安裝包都部署上:
sed -i 's#download.ceph.com#mirrors.tuna.tsinghua.edu.cn/ceph#' /etc/yum.repos.d/ceph.repo
yum install -y ceph-mon ceph-radosgw ceph-mds ceph-mgr ceph-osd ceph-common ceph

4、生成初始配置

#在管理節(jié)點運行下述命令,告訴 ceph-deploy 哪些是 mon 監(jiān)控節(jié)點
cd /etc/ceph
ceph-deploy new --public-network 192.168.142.0/24 --cluster-network 192.168.100.0/24 node01 node02 node03

#命令執(zhí)行成功后會在 /etc/ceph 下生成配置文件
ls /etc/ceph
ceph.conf					#ceph的配置文件
ceph-deploy-ceph.log		#monitor的日志
ceph.mon.keyring			#monitor的密鑰環(huán)文件

5、在管理節(jié)點初始化 mon 節(jié)點

cd /etc/ceph
ceph-deploy mon create node01 node02 node03			#創(chuàng)建 mon 節(jié)點,由于 monitor 使用 Paxos 算法,其高可用集群節(jié)點數(shù)量要求為大于等于 3 的奇數(shù)臺

ceph-deploy --overwrite-conf mon create-initial		#配置初始化 mon 節(jié)點,并向所有節(jié)點同步配置
													# --overwrite-conf 參數(shù)用于表示強制覆蓋配置文件

ceph-deploy gatherkeys node01						#可選操作,向 node01 節(jié)點收集所有密鑰

#命令執(zhí)行成功后會在 /etc/ceph 下生成配置文件
ls /etc/ceph
ceph.bootstrap-mds.keyring			#引導(dǎo)啟動 mds 的密鑰文件
ceph.bootstrap-mgr.keyring			#引導(dǎo)啟動 mgr 的密鑰文件
ceph.bootstrap-osd.keyring			#引導(dǎo)啟動 osd 的密鑰文件
ceph.bootstrap-rgw.keyring			#引導(dǎo)啟動 rgw 的密鑰文件
ceph.client.admin.keyring			#ceph客戶端和管理端通信的認證密鑰,擁有ceph集群的所有權(quán)限
ceph.conf
ceph-deploy-ceph.log
ceph.mon.keyring

#在 mon 節(jié)點上查看自動開啟的 mon 進程
root        2436  0.0  0.2 189264  9216 ?        Ss   15:41   0:00 /usr/bin/python2.7 /usr/bin/ceph-crash
ceph        2785  0.1  0.8 504012 31040 ?        Ssl  15:55   0:00 /usr/bin/ceph-mon -f --cluster ceph --id node03 --setuser ceph --setgroup ceph
root        3248  0.0  0.0 112824   988 pts/1    S+   16:00   0:00 grep --color=auto ceph

#在管理節(jié)點查看 Ceph 集群狀態(tài)
cd /etc/ceph
ceph -s
  cluster:
    id:      6d8ac361-def6-4a3e-948b-48f00c03f894
    health: HEALTH_WARN
            mons are allowing insecure global_id reclaim
 
  services:
    mon: 3 daemons, quorum node01,node02,node03
    mgr: no daemons active
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:

#查看 mon 集群選舉的情況
ceph quorum_status --format json-pretty | grep leader
"quorum_leader_name": "node01",

#擴容 mon 節(jié)點
ceph-deploy mon add <節(jié)點名稱>

6、部署能夠管理 Ceph 集群的節(jié)點(可選)

#可實現(xiàn)在各個節(jié)點執(zhí)行 ceph 命令管理集群
cd /etc/ceph
ceph-deploy --overwrite-conf config push node01 node02 node03		#向所有 mon 節(jié)點同步配置,確保所有 mon 節(jié)點上的 ceph.conf 內(nèi)容必須一致

ceph-deploy admin node01 node02 node03			#本質(zhì)就是把 ceph.client.admin.keyring 集群認證文件拷貝到各個節(jié)點

#在 mon 節(jié)點上查看
ls /etc/ceph
ceph.client.admin.keyring  ceph.conf  rbdmap  tmpr8tzyc

cd /etc/ceph
ceph -s

7、部署 osd 存儲節(jié)點

#主機添加完硬盤后不要分區(qū),直接使用
lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   60G  0 disk 
├─sda1   8:1    0  500M  0 part /boot
├─sda2   8:2    0    4G  0 part [SWAP]
└─sda3   8:3    0 55.5G  0 part /
sdb      8:16   0   10G  0 disk 
sdc      8:32   0   10G  0 disk 
sdd      8:48   0   10G  0 disk 

#如果是利舊的硬盤,則需要先擦凈(刪除分區(qū)表)磁盤(可選,無數(shù)據(jù)的新硬盤可不做)
cd /etc/ceph
ceph-deploy disk zap node01 /dev/sdb
ceph-deploy disk zap node02 /dev/sdb
ceph-deploy disk zap node03 /dev/sdb

#添加 osd 節(jié)點
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdb
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdb
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdb

#查看 ceph 集群狀態(tài)
ceph -s
  cluster:
    id:     6d8ac361-def6-4a3e-948b-48f00c03f894
    health: HEALTH_WARN
            no avtive mgr
 
 services:
    mon: 3 daemons, quorum node01,node02,node03 (age 56s)
    mgr: node02(active, since 39s), standbys: node01
    osd: 9 osds: 9 up (since 53s), 9 in (since 3m)
 
  task status:
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   9.1 GiB used, 81 GiB / 90 GiB avail
    pgs: 

ceph osd stat
ceph osd tree
rados df
ssh root@node01 systemctl status ceph-osd@0
ssh root@node02 systemctl status ceph-osd@1
ssh root@node03 systemctl status ceph-osd@2

ceph osd status    #查看 osd 狀態(tài),需部署 mgr 后才能執(zhí)行
+----+--------+-------+-------+--------+---------+--------+---------+-----------+
| id |  host  |  used | avail | wr ops | wr data | rd ops | rd data |   state   |
+----+--------+-------+-------+--------+---------+--------+---------+-----------+
| 0  | node01 | 1029M | 9206M |    0   |     0   |    0   |     0   | exists,up |
| 1  | node02 | 1029M | 9206M |    0   |     0   |    0   |     0   | exists,up |
| 2  | node03 | 1029M | 9206M |    0   |     0   |    0   |     0   | exists,up |
| 3  | node03 | 1029M | 9206M |    0   |     0   |    0   |     0   | exists,up |
| 4  | node03 | 1029M | 9206M |    0   |     0   |    0   |     0   | exists,up |
| 5  | node02 | 1029M | 9206M |    0   |     0   |    0   |     0   | exists,up |
| 6  | node02 | 1029M | 9206M |    0   |     0   |    0   |     0   | exists,up |
| 7  | node01 | 1029M | 9206M |    0   |     0   |    0   |     0   | exists,up |
| 8  | node01 | 1029M | 9206M |    0   |     0   |    0   |     0   | exists,up |
+----+--------+-------+-------+--------+---------+--------+---------+-----------+

ceph osd df    #查看 osd 容量,需部署 mgr 后才能執(zhí)行
ID CLASS WEIGHT  REWEIGHT SIZE   RAW USE DATA   OMAP META  AVAIL   %USE  VAR  PGS STATUS 
 0   hdd 0.00980  1.00000 10 GiB 1.0 GiB  5 MiB  0 B 1 GiB 9.0 GiB 10.05 1.00   0     up 
 7   hdd 0.00980  1.00000 10 GiB 1.0 GiB  5 MiB  0 B 1 GiB 9.0 GiB 10.05 1.00   0     up 
 8   hdd 0.00980  1.00000 10 GiB 1.0 GiB  5 MiB  0 B 1 GiB 9.0 GiB 10.05 1.00   0     up 
 1   hdd 0.00980  1.00000 10 GiB 1.0 GiB  5 MiB  0 B 1 GiB 9.0 GiB 10.05 1.00   0     up 
 5   hdd 0.00980  1.00000 10 GiB 1.0 GiB  5 MiB  0 B 1 GiB 9.0 GiB 10.05 1.00   0     up 
 6   hdd 0.00980  1.00000 10 GiB 1.0 GiB  5 MiB  0 B 1 GiB 9.0 GiB 10.05 1.00   0     up 
 2   hdd 0.00980  1.00000 10 GiB 1.0 GiB  5 MiB  0 B 1 GiB 9.0 GiB 10.05 1.00   0     up 
 3   hdd 0.00980  1.00000 10 GiB 1.0 GiB  5 MiB  0 B 1 GiB 9.0 GiB 10.05 1.00   0     up 
 4   hdd 0.00980  1.00000 10 GiB 1.0 GiB  5 MiB  0 B 1 GiB 9.0 GiB 10.05 1.00   0     up 
                    TOTAL 90 GiB 9.0 GiB 45 MiB  0 B 9 GiB  81 GiB 10.05                 
MIN/MAX VAR: 1.00/1.00  STDDEV: 0


#擴容 osd 節(jié)點
cd /etc/ceph
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdd
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdd
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdd

添加 OSD 中會涉及到 PG 的遷移,由于此時集群并沒有數(shù)據(jù),因此 health 的狀態(tài)很快就變成 OK,如果在生產(chǎn)環(huán)境中添加節(jié)點則會涉及到大量的數(shù)據(jù)的遷移。

8、部署 mgr 節(jié)點

#ceph-mgr守護進程以Active/Standby模式運行,可確保在Active節(jié)點或其ceph-mgr守護進程故障時,其中的一個Standby實例可以在不中斷服務(wù)的情況下接管其任務(wù)。根據(jù)官方的架構(gòu)原則,mgr至少要有兩個節(jié)點來進行工作。
cd /etc/ceph
ceph-deploy mgr create node01 node02

ceph -s
  cluster:
    id:     6d8ac361-def6-4a3e-948b-48f00c03f894
    health: HEALTH_WARN
            mons are allowing insecure global_id reclaim
 
 services:
    mon: 3 daemons, quorum node01,node02,node03 (age 56s)
    mgr: node02(active, since 39s), standbys: node01
    osd: 9 osds: 9 up (since 53s), 9 in (since 3m)


#解決 HEALTH_WARN 問題:mons are allowing insecure global_id reclaim問題:
禁用不安全模式:ceph config set mon auth_allow_insecure_global_id_reclaim false

#擴容 mgr 節(jié)點
ceph-deploy mgr create <節(jié)點名稱>

【Linux】分布式存儲系統(tǒng) Ceph,linux,ceph,運維

9、開啟監(jiān)控模塊

#在 ceph-mgr Active節(jié)點執(zhí)行命令開啟
ceph -s | grep mgr

yum install -y ceph-mgr-dashboard

cd /etc/ceph

ceph mgr module ls | grep dashboard

#開啟 dashboard 模塊
ceph mgr module enable dashboard --force

#禁用 dashboard 的 ssl 功能
ceph config set mgr mgr/dashboard/ssl false

#配置 dashboard 監(jiān)聽的地址和端口
ceph config set mgr mgr/dashboard/server_addr 0.0.0.0
ceph config set mgr mgr/dashboard/server_port 8000

#重啟 dashboard
ceph mgr module disable dashboard
ceph mgr module enable dashboard --force

#確認訪問 dashboard 的 url
ceph mgr services

#設(shè)置 dashboard 賬戶以及密碼
echo "12345678" > dashboard_passwd.txt
ceph dashboard set-login-credentials admin -i dashboard_passwd.txt
  或
ceph dashboard ac-user-create admin administrator -i dashboard_passwd.txt

瀏覽器訪問:http://192.168.142.60:8000 ,賬號密碼為 admin/12345678

【Linux】分布式存儲系統(tǒng) Ceph,linux,ceph,運維
【Linux】分布式存儲系統(tǒng) Ceph,linux,ceph,運維

資源池 Pool 管理

上面我們已經(jīng)完成了 Ceph 集群的部署,但是我們?nèi)绾蜗?Ceph 中存儲數(shù)據(jù)呢?首先我們需要在 Ceph 中定義一個 Pool 資源池。Pool 是 Ceph 中存儲 Object 對象抽象概念。我們可以將其理解為 Ceph 存儲上劃分的邏輯分區(qū),Pool 由多個 PG 組成;而 PG 通過 CRUSH 算法映射到不同的 OSD 上;同時 Pool 可以設(shè)置副本 size 大小,默認副本數(shù)量為 3。

Ceph 客戶端向 monitor 請求集群的狀態(tài),并向 Pool 中寫入數(shù)據(jù),數(shù)據(jù)根據(jù) PGs 的數(shù)量,通過 CRUSH 算法將其映射到不同的 OSD 節(jié)點上,實現(xiàn)數(shù)據(jù)的存儲。 這里我們可以把 Pool 理解為存儲 Object 數(shù)據(jù)的邏輯單元;當然,當前集群沒有資源池,因此需要進行定義。文章來源地址http://www.zghlxwxcb.cn/news/detail-580768.html

#創(chuàng)建一個 Pool 資源池,其名字為 mypool,PGs 數(shù)量設(shè)置為 64,設(shè)置 PGs 的同時還需要設(shè)置 PGP(通常PGs和PGP的值是相同的):
PG (Placement Group),pg 是一個虛擬的概念,用于存放 objectPGP(Placement Group for Placement purpose),相當于是 pg 存放的一種 osd 排列組合
cd /etc/ceph
ceph osd pool create mypool 64 64

#查看集群 Pool 信息
ceph osd pool ls    或    rados lspools
ceph osd lspools

#查看資源池副本的數(shù)量
ceph osd pool get mypool size

#查看 PG 和 PGP 數(shù)量
ceph osd pool get mypool pg_num
ceph osd pool get mypool pgp_num

#修改 pg_num 和 pgp_num 的數(shù)量為 128
ceph osd pool set mypool pg_num 128
ceph osd pool set mypool pgp_num 128

ceph osd pool get mypool pg_num
ceph osd pool get mypool pgp_num

#修改 Pool 副本數(shù)量為 2
ceph osd pool set mypool size 2

ceph osd pool get mypool size

#修改默認副本數(shù)為 2
vim ceph.conf
......
osd_pool_default_size = 2

ceph-deploy --overwrite-conf config push node01 node02 node03

#刪除 Pool 資源池
1)刪除存儲池命令存在數(shù)據(jù)丟失的風險,Ceph 默認禁止此類操作,需要管理員先在 ceph.conf 配置文件中開啟支持刪除存儲池的操作
vim ceph.conf
......
[mon]
mon allow pool delete = true

2)推送 ceph.conf 配置文件給所有 mon 節(jié)點
ceph-deploy --overwrite-conf config push node01 node02 node03

3)所有 mon 節(jié)點重啟 ceph-mon 服務(wù)
systemctl restart ceph-mon.target

4)執(zhí)行刪除 Pool 命令
ceph osd pool rm pool01 pool01 --yes-i-really-really-mean-it

到了這里,關(guān)于【Linux】分布式存儲系統(tǒng) Ceph的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Ceph分布式存儲系統(tǒng)優(yōu)化分析

    Ceph分布式存儲系統(tǒng)優(yōu)化分析

    ????????Ceph支持多種存儲訪問接口,現(xiàn)有的多種性能測試工具都可用于Ceph的性能測試,如測試塊接口性能的fio,iometer等;測試CephFS接口的filebench,fio等;測試對象接口的cosbench等。Ceph有專用的基準測試集CBT,其包含radosbench,librbdfio,kvmrbdfio和rbdfio。radosbench基準測試使用

    2024年02月12日
    瀏覽(21)
  • 分布式存儲系統(tǒng)Ceph應(yīng)用組件介紹

    1、 無中心架構(gòu)分布式存儲Ceph Ceph是一套開源的分布式存儲系統(tǒng)。具有可靠性高,性能優(yōu)良,可伸縮,與HDFS不同的地方在于,該架構(gòu)中沒有中心節(jié)點。?? ? Ceph優(yōu)點在于它不單單是存儲,同時還充分利用了存儲節(jié)點上的計算能力,在存儲每一個數(shù)據(jù)時,都會通過計算得出該數(shù)

    2024年02月07日
    瀏覽(32)
  • 使用 Docker 部署分布式存儲系統(tǒng)——Ceph

    使用 Docker 部署分布式存儲系統(tǒng)——Ceph

    最近工作中接觸了一個 Python + Flask 的新項目,項目中使用了 Ceph 對象存儲服務(wù)。遂在開發(fā)環(huán)境使用 Docker 搭建了一套 Ceph 集群。 Ceph 官方文檔 Ceph 是一個開源的分布式存儲系統(tǒng),提供了對象存儲、塊存儲和文件系統(tǒng)三種存儲接口。Ceph 將數(shù)據(jù)存儲在邏輯存儲池中,使用 CRUSH 分

    2024年04月15日
    瀏覽(24)
  • 滴滴Ceph分布式存儲系統(tǒng)優(yōu)化之鎖優(yōu)化

    滴滴Ceph分布式存儲系統(tǒng)優(yōu)化之鎖優(yōu)化

    摘自:https://mp.weixin.qq.com/s/oWujGOLLGItu1Bv5AuO0-A ? 2020-09-02 21:45 ????????Ceph是國際知名的開源分布式存儲系統(tǒng),在工業(yè)界和學(xué)術(shù)界都有著重要的影響。Ceph的架構(gòu)和算法設(shè)計發(fā)表在國際系統(tǒng)領(lǐng)域頂級會議OSDI、SOSP、SC等上。Ceph社區(qū)得到Red Hat、SUSE、Intel等大公司的大力支持。Ce

    2024年02月12日
    瀏覽(21)
  • linux————ceph分布式部署

    linux————ceph分布式部署

    目錄 一、概述 特點 1、統(tǒng)一存儲 2、高擴展性 3、可靠性強 4、高性能 組件 1、Monitor 2、OSD 3、MOD 4、Objet 5、PG 6、RADOS 7. Libradio 8. CRUSH 9. RBD 10. RGW 11. CephFS 架構(gòu)圖 二、準備工作 三、ceph安裝 創(chuàng)建集群目錄 修改配置文件 安裝 初始化monitor 同步管理信息 ?編輯 安裝mgr(管理守護

    2024年02月07日
    瀏覽(26)
  • Ceph分布式文件系統(tǒng)——文件系統(tǒng)MDS接口 塊存儲RDB接口 對象存儲RGW接口

    Ceph分布式文件系統(tǒng)——文件系統(tǒng)MDS接口 塊存儲RDB接口 對象存儲RGW接口

    服務(wù)端操作 1)在管理節(jié)點創(chuàng)建 mds 服務(wù) 2)查看各個節(jié)點的 mds 服務(wù) 3)創(chuàng)建存儲池,啟用 ceph 文件系統(tǒng) ceph 文件系統(tǒng)至少需要兩個 rados 池,一個用于存儲數(shù)據(jù),一個用于存儲元數(shù)據(jù)。此時數(shù)據(jù)池就類似于文件系統(tǒng)的共享目錄。 創(chuàng)建 cephfs,命令格式:ceph fs new FS_NAME CEPHFS_ME

    2024年02月16日
    瀏覽(34)
  • 云原生之深入解析分布式存儲系統(tǒng)Ceph的環(huán)境部署和實戰(zhàn)操作

    云原生之深入解析分布式存儲系統(tǒng)Ceph的環(huán)境部署和實戰(zhàn)操作

    ① 什么是 Ceph ? Ceph 是當前非常流行的開源分布式存儲系統(tǒng),具有高擴展性、高性能、高可靠性等優(yōu)點,同時提供塊存儲服務(wù)(rbd)、對象存儲服務(wù)(rgw)以及文件系統(tǒng)存儲服務(wù)(cephfs),Ceph 在存儲的時候充分利用存儲節(jié)點的計算能力,在存儲每一個數(shù)據(jù)時都會通過計算得出該數(shù)據(jù)

    2024年02月09日
    瀏覽(24)
  • Ceph 分布式存儲

    Ceph 分布式存儲

    DAS(直接附加存儲,是直接接到計算機的主板總線上去的存儲) IDE、SATA、SCSI、SAS、USB 接口的磁盤 所謂接口就是一種存儲設(shè)備驅(qū)動下的磁盤設(shè)備,提供塊級別的存儲 NAS(網(wǎng)絡(luò)附加存儲,是通過網(wǎng)絡(luò)附加到當前主機文件系統(tǒng)之上的存儲) NFS、CIFS、FTP 文件系統(tǒng)級別的存儲,本

    2024年02月16日
    瀏覽(24)
  • ceph分布式存儲

    ceph分布式存儲

    Ceph是當前非常流行的開源分布式存儲系統(tǒng),具有高擴展性、高性能、高可靠性 等優(yōu)點,同時提供塊存儲服務(wù)(rbd)、對象存儲服務(wù)(rgw)以及文件系統(tǒng)存儲服務(wù)(cephfs),Ceph在存儲的時候充分利用存儲節(jié)點的計算能力,在存儲每一個數(shù)據(jù)時 都會通過計算得出該數(shù)據(jù)的位置,盡量的分

    2023年04月08日
    瀏覽(25)
  • 【分布式】ceph存儲

    【分布式】ceph存儲

    DAS(直接附加存儲,是直接接到計算機的主板總線上去的存儲) IDE、SATA、SCSI、SAS、USB 接口的磁盤 所謂接口就是一種存儲設(shè)備驅(qū)動下的磁盤設(shè)備,提供塊級別的存儲 NAS(網(wǎng)絡(luò)附加存儲,是通過網(wǎng)絡(luò)附加到當前主機文件系統(tǒng)之上的存儲) NFS、CIFS、FTP 文件系統(tǒng)級別的存儲,本

    2024年02月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包