自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分布式存儲系統(tǒng) Ceph 介紹與環(huán)境部署

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

一、概述

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

特點:

  • 高性能摒棄了傳統(tǒng)的集中式存儲元數(shù)據(jù)尋址的方案,采用CRUSH算法,數(shù)據(jù)分布均衡,并行度高??紤]了容災域的隔離,能夠實現(xiàn)各類負載的副本放置規(guī)則,例如跨機房、機架感知等。能夠支持上千個存儲節(jié)點的規(guī)模,支持TB到PB級的數(shù)據(jù)。
  • 高可用性副本數(shù)可以靈活控制。支持故障域分隔,數(shù)據(jù)強一致性。多種故障場景自動進行修復自愈。沒有單點故障,自動管理。
  • 高可擴展性去中心化。擴展靈活。隨著節(jié)點增加而線性增長。
  • 特性豐富支持三種存儲接口:塊存儲、文件存儲、對象存儲。支持自定義接口,支持多種語言驅動。

GitHub地址:https://github.com/ceph/ceph
官方文檔:https://docs.ceph.com/en/latest/start/intro/

二、Ceph 架構

支持三種接口:

  • Object:有原生的API,而且也兼容Swift和S3的API。
  • Block:支持精簡配置、快照、克隆。
  • File:Posix接口,支持快照。

  • RADOS——全稱Reliable Autonomic Distributed Object Store,即可靠的、自動化的、分布式對象存儲系統(tǒng)。RADOS是Ceph集群的精華,用戶實現(xiàn)數(shù)據(jù)分配、Failover等集群操作。
  • Librados——Rados提供庫,因為RADOS是協(xié)議很難直接訪問,因此上層的RBD、RGW和CephFS都是通過librados訪問的,目前提供PHP、Ruby、Java、Python、C和C++支持。
  • MDS——存儲Ceph文件系統(tǒng)的元數(shù)據(jù)。

三、Ceph核心組件介紹

  • OSD——OSD是負責物理存儲的進程,一般配置成和磁盤一一對應,一塊磁盤啟動一個OSD進程。主要功能是存儲數(shù)據(jù)、復制數(shù)據(jù)、平衡數(shù)據(jù)、恢復數(shù)據(jù),以及與其它OSD間進行心跳檢查,負責響應客戶端請求返回具體數(shù)據(jù)的進程等。

OSD 是Ceph集群中存儲實際用戶數(shù)據(jù)的惟一組件,通常,一個OSD守護進程綁定到集群中的一個物理磁盤。因此,通常來說,Ceph集群中物理磁盤的總數(shù)與在每個物理磁盤上存儲用戶數(shù)據(jù)的OSD守護進程的總數(shù)相同。

  • PG——ceph中引入了PG(placement group)的概念,PG是一個虛擬的概念而已,并不對應什么實體。ceph先將object映射成PG,然后從PG映射成OSD。

  • Pool——Pool是存儲對象的邏輯分區(qū),它規(guī)定了數(shù)據(jù)冗余的類型和對應的副本分布策略,支持兩種類型:副本(replicated)和 糾刪碼( Erasure Code)。

Pool、PG和OSD的關系:

一個Pool里有很多PG;
一個PG里包含一堆對象,一個對象只能屬于一個PG;
PG有主從之分,一個PG分布在不同的OSD上(針對三副本類型);
  • Monitor監(jiān)控——一個Ceph集群需要多個Monitor組成的小集群,它們通過Paxos同步數(shù)據(jù),用來保存OSD的元數(shù)據(jù)。負責監(jiān)控整個Ceph集群運行的Map視圖(如OSD Map、Monitor Map、PG Map和CRUSH Map),維護集群的健康狀態(tài),維護展示集群狀態(tài)的各種圖表,管理集群客戶端認證與授權。
  • MDS——MDS全稱Ceph Metadata Server,是CephFS服務依賴的元數(shù)據(jù)服務。負責保存文件系統(tǒng)的元數(shù)據(jù),管理目錄結構。對象存儲和塊設備存儲不需要元數(shù)據(jù)服務; 如果不使用CephFS可以不安裝。
  • Mgr——ceph 官方開發(fā)了 ceph-mgr,主要目標實現(xiàn) ceph 集群的管理,為外界提供統(tǒng)一的入口。例如cephmetrics、zabbix、calamari、prometheus。

Ceph manager守護進程(Ceph -mgr)是在Kraken版本中引入的,它與monitor守護進程一起運行,為外部監(jiān)視和管理系統(tǒng)提供額外的監(jiān)視和接口。

  • RGW——RGW全稱RADOS gateway,是Ceph對外提供的對象存儲服務,接口與S3和Swift兼容。
  • CephFS——ceph文件系統(tǒng)提供了一個符合posix標準的文件系統(tǒng),它使用Ceph存儲集群在文件系統(tǒng)上存儲用戶數(shù)據(jù)。與RBD(塊存儲)和RGW(對象存儲)一樣,CephFS服務也作為librados的本機接口實現(xiàn)。

四、Ceph 三種存儲類型

1)塊存儲服務(RBD)

塊是一個字節(jié)序列(通常為 512)。 基于塊的存儲接口是一種成熟且常見的數(shù)據(jù)存儲方式 介質包括硬盤、固態(tài)硬盤、CD、軟盤,甚至磁帶。 塊設備接口的無處不在非常適合交互 具有包括 Ceph 在內(nèi)的海量數(shù)據(jù)存儲。Ceph 數(shù)據(jù)塊設備可精簡配置、可調(diào)整大小,并按條帶方式存儲數(shù)據(jù)在多個 OSD。

優(yōu)點:

  • 通過Raid與LVM等手段,對數(shù)據(jù)提供了保護;
  • 多塊廉價的硬盤組合起來,提高容量;
  • 多塊磁盤組合出來的邏輯盤,提升讀寫效率;

缺點:

  • 采用SAN架構組網(wǎng)時,光纖交換機,造價成本高;
  • 主機之間無法共享數(shù)據(jù);

使用場景:

  • docker容器、虛擬機磁盤存儲分配;
  • 日志存儲;
  • 文件存儲;

總結: 一個Linux內(nèi)核級的塊設備,允許用戶像任何其他Linux塊設備一樣訪問Ceph。

2)文件系統(tǒng)存儲服務(CephFS)

Ceph 文件系統(tǒng)(CephFS),是建立在 Ceph 分布式對象存儲的頂部, CephFS提供了最先進的、多用途、高度可用且高性能的文件存儲在各種場景應用,包括共享home目錄、FTP和NFS 共享存儲等等。

Ceph有了塊存儲,為什么還需要文件系統(tǒng)接口呢?

主要是因為應用場景的不同,Ceph的塊設備具有優(yōu)異的讀寫性能,但不能多處掛載同時讀寫,目前主要用在OpenStack上作為虛擬磁盤,而Ceph的文件系統(tǒng)接口讀寫性能較塊設備接口差,但具有優(yōu)異的 共享性。

優(yōu)點:

  • 造價低,隨便一臺機器就可以了。
  • 方便文件共享。

缺點:

  • 讀寫速率低。
  • 傳輸速率慢。

使用場景:

  • 日志存儲。
  • 有目錄結構的文件存儲。

3)對象存儲服務(RGW)

Ceph 對象網(wǎng)關 是構建在 librados.它在應用程序和 Ceph 之間提供了一個 RESTful 網(wǎng)關。 存儲集群。 Ceph 對象存儲 支持兩種接口:

  • S3 兼容: 通過接口提供對象存儲功能 與 Amazon S3 RESTful API 的大部分子集兼容。
  • 快速兼容: 通過接口提供對象存儲功能 與 OpenStack Swift API 的一大塊子集兼容。

優(yōu)點:

  • 具備塊存儲的讀寫高速。
  • 具備文件存儲的共享等特性。

使用場景:

  • 圖片存儲。
  • 視頻存儲。

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

Ceph從Nautilus版本(14.2.0)開始,每年都會有一個新的穩(wěn)定版發(fā)行,預計是每年的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)定/錯誤修復版本(針對用戶)

Octopus版本后使用cephadm來部署ceph集群,如果使用cephadm部署,在后期新的版本升級時,可以做到完全自動化,并可以通過ceph -W cephadm查看升級進度,升級完成后,無法降級,升級時請不要跨版本升級,例如:當前使用Octopus升級到Quincy,要先把Octopus升級到Pacific,然后在升級至Quincy,這是最穩(wěn)妥的方式。

穩(wěn)定版本的生命周期在第一個發(fā)布月份后,大約2年時間將停止該版本的更新維護,具體版本發(fā)布時間見下表。

六、Ceph 集群部署

Ceph的部署工具:

  • ceph-deploy:官方的部署工具,不再積極維護ceph-deploy。它不支持RHEL8,CentOS 8或更新的操作系統(tǒng)。
  • ceph-ansible:紅帽的部署工具
  • ceph-chef:利用chef進行自動部署Ceph的工具
  • puppet-ceph:puppet的ceph模塊
  • cephadm——cephadm 僅支援 Octopus 及更新版本(推薦)。

1)集群部署規(guī)劃

IP

hostname

角色

磁盤

操作系統(tǒng)

192.168.182.130

local-168-182-130

monitor,mgr,rgw,mds,osd

2*20G

centos7

192.168.182.131

local-168-182-131

monitor,mgr,rgw,mds,osd

2*20G

centos7

192.168.182.132

local-168-182-132

monitor,mgr,rgw,mds,osd

2*20G

centos7

  • monitor:Ceph監(jiān)視管理節(jié)點,承擔Ceph集群重要的管理任務,一般需要3或5個節(jié)點。
  • mgr: Ceph 集群管理節(jié)點(manager),為外界提供統(tǒng)一的入口。
  • rgw: Ceph對象網(wǎng)關,是一種服務,使客戶端能夠利用標準對象存儲API來訪問Ceph集群。
  • mds:Ceph元數(shù)據(jù)服務器,MetaData Server,主要保存的文件系統(tǒng)服務的元數(shù)據(jù),使用文件存儲時才需要該組件。
  • osd:Ceph存儲節(jié)點Object Storage Daemon,實際負責數(shù)據(jù)存儲的節(jié)點。

2)前期準備

  • 關閉filewalld服務
systemctl stop firewalld.service
systemctl disable firewalld.service
  • 2、關閉并禁用SELinux
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
  • 3、配置hosts
192.168.182.130 local-168-182-130
192.168.182.131 local-168-182-131
192.168.182.132 local-168-182-132
  • 4、ssh免密配置
ssh-keygen
# ...一路Enter
ssh-copy-id root@local-168-182-130 //會有一次密碼輸入
ssh-copy-id root@local-168-182-131
ssh-copy-id root@local-168-182-132
  • 4、配置時間同步
yum install -y chrony
systemctl enable --now chronyd

3)添加磁盤

如果添加完磁盤,看不到,可以執(zhí)行以下命令:

# 重新掃描SCSI總線添加設備
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan

4)安裝docker :(所有節(jié)點操作,包括新增)

# centos7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 安裝yum-config-manager配置工具
yum -y install yum-utils
# 設置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安裝docker-ce版本
yum install -y docker-ce

#啟動docker服務并開機自啟
systemctl enable --now docker

# 查看版本號
docker --version
# 查看版本具體信息
docker version

# Docker鏡像源設置
# 修改文件 /etc/docker/daemon.json,沒有這個文件就創(chuàng)建
# 添加以下內(nèi)容后,重啟docker服務:
cat >/etc/docker/daemon.json<<EOF
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF

systemctl restart docker

5)安裝cephadm

下載cephadm腳本: (只在主節(jié)點操作)

mkdir -p /opt/ceph/my-cluster ; cd /opt/ceph/my-cluster
curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm -o cephadm
chmod +x cephadm
# 或者:
#curl https://raw.githubusercontent.com/ceph/ceph/v15.2.1/src/cephadm/cephadm -o cephadm
#chmod +x cephadm
#//**//下載出錯:配置/etc/hosts 文件--—> 199.232.28.133 raw.githubusercontent.com

# 安裝python3:(所有節(jié)點執(zhí)行)
yum install python3 -y

# 配置ceph存儲庫 :(或指定版本)
./cephadm add-repo --release octopus
#或
#./cephadm add-repo --version 15.2.1

# 開始安裝ceph-common,ceph工具
./cephadm install ceph-common ceph
# 安裝cephadm工具
./cephadm install
which cephadm
which ceph

6)初始化 ceph 集群

當前節(jié)點安裝 mon、 mgr 角色,部署 prometheus、 grafana、 alertmanager、 node-exporter等服務。

#先安裝一個節(jié)點,其它節(jié)點通過后面的命令添加到集群中即可
#您需要知道用于集群的第一個監(jiān)視器守護程序的IP地址。
#如果有多個網(wǎng)絡和接口,要確保選擇任何可供訪問Ceph群集的主機訪問的網(wǎng)絡和接口。

cephadm bootstrap --mon-ip 192.168.182.130

##### 命令特點:

#在本地主機上為新集群創(chuàng)建監(jiān)視和管理器守護程序。
#為Ceph集群生成一個新的SSH密鑰,并將其添加到root用戶的/root/.ssh/authorized_keys文件中。
#將與新集群進行通信所需的最小配置文件編寫為/etc/ceph/ceph.conf。
#將client.admin管理密鑰的副本寫入/etc/ceph/ceph.client.admin.keyring。
#將公用密鑰的副本寫入 /etc/ceph/ceph.pub。

# 查看部署的服務
docker ps

#=======輸出信息=======
Ceph Dashboard is now available at:

URL: https://local-168-182-130:8443/
User: admin
Password: 0ard2l57ji

You can access the Ceph CLI with:

sudo /usr/sbin/cephadm shell --fsid d1e9b986-89b8-11ed-bec2-000c29ca76a9 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring

Please consider enabling telemetry to help improve Ceph:

ceph telemetry on

For more information see:

https://docs.ceph.com/docs/master/mgr/telemetry/

根據(jù)提示可知,有個web地址:https://ip:8443/,這里的截圖是部署完之后的截圖。

通過ceph命令查看集群狀態(tài)

ceph -s

7)添加新節(jié)點

在新主機的根用戶authorized_keys文件中安裝群集的公共SSH密鑰 :

ssh-copy-id -f -i /etc/ceph/ceph.pub root@local-168-182-131
ssh-copy-id -f -i /etc/ceph/ceph.pub root@local-168-182-132

配置新節(jié)點

ceph orch host add local-168-182-131
ceph orch host add local-168-182-132

#第一次部署新節(jié)點時直接用上邊的命令即可:
#但是之后的節(jié)點新增有可能上述命令出錯:
ceph orch host add local-168-182-131 192.168.182.133 #后邊跟上對應的IP

# 查看節(jié)點
ceph orch host ls

8)部署監(jiān)視器(monitor)

# ceph orch apply mon *<number-of-monitors>*
# 確保在此列表中包括第一臺(引導)主機。
ceph orch apply mon local-168-182-130,local-168-182-131,local-168-182-132

9)部署 osd

存儲設備清單可以顯示為:

ceph orch device ls

可用存儲設備的條件:

  • 設備必須沒有分區(qū)。
  • 設備不得具有任何LVM狀態(tài)。
  • 不得安裝設備。
  • 該設備不得包含文件系統(tǒng)。
  • 該設備不得包含Ceph BlueStore OSD。
  • 設備必須大于5 GB。

創(chuàng)建osd的方式:

# 【第一種方式】告訴Ceph使用任何可用和未使用的存儲設備:
ceph orch apply osd --all-available-devices

# 【第二種方式】或者使用下面命令指定使用的磁盤(推薦使用這種方式吧)
#1. ceph orch daemon add osd *<host>*:*<device-path>*
#例如:
#從特定主機上的特定設備創(chuàng)建OSD:
ceph orch daemon add osd local-168-182-130:/dev/sdb
ceph orch daemon add osd local-168-182-130:/dev/sdc

ceph orch daemon add osd local-168-182-131:/dev/sdb
ceph orch daemon add osd local-168-182-131:/dev/sdc

ceph orch daemon add osd local-168-182-132:/dev/sdb
ceph orch daemon add osd local-168-182-132:/dev/sdc

刪除OSD節(jié)點:(安全)

#1.停止osd進程
ceph osd stop x //(x 可以通過ceph osd ls 查看)
#停止osd的進程,這個是通知集群這個osd進程不在了,不提供服務了,因為本身沒權重,就不會影響到整體的分布,也就沒有遷移
#2.將節(jié)點狀態(tài)標記為out
ceph osd out osd.x
#停止到osd的進程,這個是通知集群這個osd不再映射數(shù)據(jù)了,不提供服務了,因為本身沒權重,就不會影響到整體的分布,也就沒有遷移
#3. 從crush中移除節(jié)點
ceph osd crush remove osd.x
這個是從crush中刪除,
#4. 刪除節(jié)點
ceph osd rm osd.x
這個是從集群里面刪除這個節(jié)點的記錄ls
#5. 刪除節(jié)點認證(不刪除編號會占?。?br>ceph auth del osd.x
這個是從認證當中去刪除這個節(jié)點的信息

10)部署mds(cephFS元數(shù)據(jù)守護程序)

# ceph orch apply mds *<fs-name>* --placement="*<num-daemons>* [*<host1>* ...]"

ceph orch apply mds myfs --placement="3 local-168-182-130 local-168-182-131 local-168-182-132"

11)部署RGW

# 為特定領域和區(qū)域部署一組radosgw守護程序:
# ceph orch apply rgw *<realm-name>* *<zone-name>* --placement="*<num-daemons>* [*<host1>* ...]"

ceph orch apply rgw myorg us-east-1 --placement="3 local-168-182-130 local-168-182-131 local-168-182-132"

###說明:
#myorg : 領域名 (realm-name)
#us-east-1: 區(qū)域名 (zone-name)myrgw

#Cephadm將等待運行正常的群集,并在部署rgw守護程序之前自動創(chuàng)建所提供的領域和區(qū)域(realm-name和zone-name不存在的情況)

查看集群狀態(tài)

ceph -s

12)添加專用的ceph-mgr節(jié)點

# ceph-mgr節(jié)點默認會挑選一主一備
# 添加新節(jié)點
ceph orch host add local-168-182-131 192.168.182.133

# 部署ceph-mgr
ceph orch apply mgr local-168-182-130,local-168-182-131,local-168-182-132

# ceph orch apply mgr local-168-182-130,local-168-182-131,local-168-182-132,local-168-182-133

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-07-04 07:07:06

Ceph分布式存儲架構

2021-08-07 05:00:20

存儲系統(tǒng)

2018-10-29 12:42:23

Ceph分布式存儲

2017-04-14 09:48:25

分布式存儲系統(tǒng)

2017-06-06 14:25:54

CentOS 7Ceph分布式存儲系統(tǒng)

2018-09-29 14:08:04

存儲系統(tǒng)分布式

2014-05-19 16:41:29

紅帽

2017-11-22 10:23:32

存儲系統(tǒng)VeSpace

2018-11-15 12:35:25

Ceph分布式存儲

2017-07-18 09:51:36

文件存儲系統(tǒng)

2019-07-05 15:01:32

區(qū)塊鏈系統(tǒng)分布式存儲

2017-10-16 10:24:47

LogDevice存儲系統(tǒng)

2017-10-17 08:33:31

存儲系統(tǒng)分布式

2017-12-18 10:47:04

分布式存儲數(shù)據(jù)

2017-09-04 08:49:17

存儲原理架構

2017-10-12 09:36:54

分布式存儲系統(tǒng)

2017-10-19 08:45:15

存儲系統(tǒng)HBase

2018-11-20 09:19:58

存儲系統(tǒng)雪崩效應

2024-11-26 07:56:30

2018-05-10 09:34:21

spark存儲系統(tǒng)
點贊
收藏

51CTO技術棧公眾號