女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文參透分布式存儲(chǔ)系統(tǒng)Ceph的架構(gòu)設(shè)計(jì)、集群搭建

馬哥Linux運(yùn)維 ? 來(lái)源:OSCHINA 社區(qū) ? 2023-01-07 13:44 ? 次閱讀

1. Ceph 概述

1.1 背景

Ceph 是一個(gè)去中心化的分布式存儲(chǔ)系統(tǒng), 提供較好的性能、可靠性和可擴(kuò)展性。Ceph 項(xiàng)目最早起源于 Sage 就讀博士期間的工作(最早的成果于 2004 年發(fā)表),并隨后貢獻(xiàn)給開(kāi)源社區(qū), 遵循 LGPL 協(xié)議(LESSER GENERAL PUBLIC LICENSE 的簡(jiǎn)寫(xiě),中文譯為 “較寬松公共許可證”)。在經(jīng)過(guò)了數(shù)年的發(fā)展之后,目前已得到眾多云計(jì)算廠(chǎng)商(OpenStack、CloudStack、OpenNebula、Hadoop)的支持并被廣泛應(yīng)用。

1.2 介紹

Ceph 是一個(gè)可靠、自動(dòng)重均衡、自動(dòng)恢復(fù)的分布式存儲(chǔ)系統(tǒng),根據(jù)場(chǎng)景劃分可以將 Ceph 分為三大塊,分別是對(duì)象存儲(chǔ)、塊設(shè)備和文件系統(tǒng)服務(wù)。 Ceph 的主要優(yōu)點(diǎn)是分布式存儲(chǔ),在存儲(chǔ)每一個(gè)數(shù)據(jù)時(shí),都會(huì)通過(guò)計(jì)算得出該數(shù)據(jù)存儲(chǔ)的位置,盡量將數(shù)據(jù)分布均衡,不存在傳統(tǒng)的單點(diǎn)故障的問(wèn)題,可以水平擴(kuò)展。 Ceph 存儲(chǔ)集群至少需要一個(gè) Ceph Monitor 和兩個(gè) OSD 守護(hù)進(jìn)程。而運(yùn)行 Ceph 文件系統(tǒng)客戶(hù)端時(shí),則必須要有元數(shù)據(jù)服務(wù)器(Metadata Server)。

1.3 特點(diǎn)

Ceph 適合跨集群的小文件存儲(chǔ), 擁有以下特點(diǎn):

高性能

Client 和 Server 直接通信, 不需要代理和轉(zhuǎn)發(fā);

Client 不需要負(fù)責(zé)副本的復(fù)制, 有 Primary 主節(jié)點(diǎn)負(fù)責(zé), 這樣可以有效降低 clien 網(wǎng)絡(luò)的消耗;

采用 CRUSH 算法,數(shù)據(jù)分布均衡,并行度高,支持上千個(gè)存儲(chǔ)節(jié)點(diǎn), 支持 TB 及 PB 級(jí)數(shù)據(jù)。

高可用性

數(shù)據(jù)多副本, 支持故障域分隔,數(shù)據(jù)強(qiáng)一致性;

沒(méi)有單點(diǎn)故障,較好的容錯(cuò)性, 有效支撐各種故障場(chǎng)景;

支持所有故障的檢測(cè)和自動(dòng)恢復(fù),可以做到自動(dòng)化管理;

支持并行恢復(fù),能夠極大的降低數(shù)據(jù)恢復(fù)時(shí)間, 提高數(shù)據(jù)的可靠性。

高擴(kuò)展性

高度并行化設(shè)計(jì),沒(méi)有單個(gè)中心控制組件,所有負(fù)載都能動(dòng)態(tài)的劃分到各個(gè)服務(wù)器上。

去中心化、靈活、隨節(jié)點(diǎn)增加線(xiàn)性增長(zhǎng)。

場(chǎng)景豐富

支持三種存儲(chǔ)接口類(lèi)型:塊存儲(chǔ)、文件存儲(chǔ)、對(duì)象存儲(chǔ)。同時(shí)支持自定義接口,C++ 為底層實(shí)現(xiàn), 兼容多種語(yǔ)言。

塊存儲(chǔ):將磁盤(pán)空間映射給主機(jī)使用, 適用 docker 容器、虛擬機(jī)磁盤(pán)存儲(chǔ)分配;日志存儲(chǔ), 文件存儲(chǔ)。

文件存儲(chǔ):解決塊存儲(chǔ)無(wú)法共享問(wèn)題, 在服務(wù)器架設(shè) FTP 和 NFS 服務(wù)器,適用目錄結(jié)構(gòu)的存儲(chǔ)、日志存儲(chǔ)等。

對(duì)象存儲(chǔ):大容量硬盤(pán), 安裝存儲(chǔ)管理軟件, 對(duì)外提供讀寫(xiě)訪(fǎng)問(wèn)能力, 具備塊存儲(chǔ)的高速讀寫(xiě)能力, 也具備文件存儲(chǔ)共享的特性;適用圖片存儲(chǔ)或視頻存儲(chǔ)。

1.4 分布式存儲(chǔ)系統(tǒng)橫縱對(duì)比

對(duì)比說(shuō)明 TFS FASTDFS MooseFS GlusterFS CEPH
開(kāi)發(fā)語(yǔ)言 C++ C C C C++
數(shù)據(jù)存儲(chǔ)方式 文件 / Trunk 文件 / 塊 對(duì)象 / 文件 / 塊
在線(xiàn)擴(kuò)容 支持 支持 支持 支持 支持
冗余備份 支持 支持 支持 支持 支持
單點(diǎn)故障 存在 不存在 存在 不存在 不存在
易用性 安裝復(fù)雜,官方文檔少 安裝簡(jiǎn)單,社區(qū)相對(duì)活躍 安裝簡(jiǎn)單,官方文檔多 安裝簡(jiǎn)單,官方文檔專(zhuān)業(yè)化 安裝簡(jiǎn)單,官方文檔專(zhuān)業(yè)化
適用場(chǎng)景 跨集群的小文件 單集群的中小文件 單集群的大中文件 跨集群云存儲(chǔ) 單集群的大中小文件

2. Ceph 架構(gòu)設(shè)計(jì)

2.1 Ceph 整體設(shè)計(jì)

24b16626-8e4d-11ed-bfe3-dac502259ad0.png

基礎(chǔ)存儲(chǔ)系統(tǒng) RADOS

Reliable, Autonomic,Distributed Object Store,即可靠的、自動(dòng)化的、分布式的對(duì)象存儲(chǔ)

這就是一個(gè)完整的對(duì)象存儲(chǔ)系統(tǒng),所有存儲(chǔ)在 Ceph 系統(tǒng)中的用戶(hù)數(shù)據(jù)事實(shí)上最終都是由這一層來(lái)存儲(chǔ)的。而 Ceph 的高可靠、高可擴(kuò)展、高性能、高自動(dòng)化等等特性本質(zhì)上也是由這一層所提供的。

基礎(chǔ)庫(kù) librados

這層的功能是對(duì) RADOS 進(jìn)行抽象和封裝,并向上層提供 API,以便直接基于 RADOS(而不是整個(gè) Ceph)進(jìn)行應(yīng)用開(kāi)發(fā)。特別要注意的是,RADOS 是一個(gè)對(duì)象存儲(chǔ)系統(tǒng),因此,librados 實(shí)現(xiàn)的 API 也只是針對(duì)對(duì)象存儲(chǔ)功能的。RADOS 采用 C++ 開(kāi)發(fā),所提供的原生 librados API 包括 C 和 C++ 兩種。

高層應(yīng)用接口

這層包括了三個(gè)部分:RADOS GW(RADOS Gateway)、 RBD(Reliable Block Device)和 Ceph FS(Ceph File System),其作用是在 librados 庫(kù)的基礎(chǔ)上提供抽象層次更高、更便于應(yīng)用或客戶(hù)端使用的上層接口。其中,RADOS GW 是一個(gè)提供與 Amazon S3 和 Swift 兼容的 RESTful API 的 gateway,以供相應(yīng)的對(duì)象存儲(chǔ)應(yīng)用開(kāi)發(fā)使用。RADOS GW 提供的 API 抽象層次更高,但功能則不如 librados 強(qiáng)大。

應(yīng)用層

這層是不同場(chǎng)景下對(duì)于 Ceph 各個(gè)應(yīng)用接口的各種應(yīng)用方式,例如基于 librados 直接開(kāi)發(fā)的對(duì)象存儲(chǔ)應(yīng)用,基于 RADOS GW 開(kāi)發(fā)的對(duì)象存儲(chǔ)應(yīng)用,基于 RBD 實(shí)現(xiàn)的云硬盤(pán)等等。librados 和 RADOS GW 的區(qū)別在于,librados 提供的是本地 API,而 RADOS GW 提供的則是 RESTfulAPI。

由于 Swift 和 S3 支持的 API 功能近似,這里以 Swift 舉例說(shuō)明。Swift 提供的 API 功能主要包括:

用戶(hù)管理操作:用戶(hù)認(rèn)證、獲取賬戶(hù)信息、列出容器列表等;

容器管理操作:創(chuàng)建 / 刪除容器、讀取容器信息、列出容器內(nèi)對(duì)象列表等;

對(duì)象管理操作:對(duì)象的寫(xiě)入、讀取、復(fù)制、更新、刪除、訪(fǎng)問(wèn)許可設(shè)置、元數(shù)據(jù)讀取或更新等。

2.2 邏輯架構(gòu)

24c0ecd6-8e4d-11ed-bfe3-dac502259ad0.png

2.3 Ceph 專(zhuān)業(yè)術(shù)語(yǔ)

24d0bc42-8e4d-11ed-bfe3-dac502259ad0.png

OSD: Ceph 的對(duì)象存儲(chǔ)設(shè)備,OSD 守護(hù)進(jìn)程的功能是存儲(chǔ)數(shù)據(jù),處理數(shù)據(jù)的復(fù)制、恢復(fù)、回填、再均衡,并通過(guò)檢查其他 OSD 守護(hù)進(jìn)程的心跳來(lái)向 Ceph Monitors 提供一些監(jiān)控信息。

Monitors: Ceph 監(jiān)視器,Monitor 維護(hù)著展示集群狀態(tài)的各種圖表,包括監(jiān)視器圖、OSD 圖、歸置組(PG)圖、和 CRUSH 圖。

PG:Ceph 歸置組,每個(gè) Object 最后都會(huì)通過(guò) CRUSH 計(jì)算映射到某個(gè) PG 中,一個(gè) PG 可以包含多個(gè) Object。

MDS: Ceph 元數(shù)據(jù)服務(wù)器(MDS),為 Ceph 文件系統(tǒng)存儲(chǔ)元數(shù)據(jù)。

CephFS: Ceph 文件系統(tǒng),CephFS 提供了一個(gè)任意大小且兼容 POSIX 的分布式文件系統(tǒng)。

RADOS: Reliable Autonomic Distributed Object Store,表示可靠、自動(dòng)、分布式的對(duì)象存儲(chǔ)。Ceph 中的一切都是以對(duì)象形式存儲(chǔ),RADOS 就負(fù)責(zé)存儲(chǔ)這些對(duì)象,RADOS 層確保數(shù)據(jù)一致性和可靠性。

Librados:librados 庫(kù)是一種用來(lái)簡(jiǎn)化訪(fǎng)問(wèn) RADOS 的方法,目前支持 PHP、Python、Ruby、Java、C 和 C++ 語(yǔ)言。

RBD:Ceph 的塊設(shè)備,它對(duì)外提供塊存儲(chǔ),可以被映射、格式化進(jìn)而像其他磁盤(pán)一樣掛載到服務(wù)器。

RGW/RADOSGW:Ceph 對(duì)象網(wǎng)關(guān),它提供了一個(gè)兼容 S3 和 Swift 的 restful API 接口。

3. Ceph 集群部署配置

3.1 部署結(jié)構(gòu)

24dcdb80-8e4d-11ed-bfe3-dac502259ad0.png 虛擬機(jī)創(chuàng)建三臺(tái)服務(wù)器,CENTOS 版本為 7.6, IP 網(wǎng)段 192.168.116.0/24。三臺(tái)主機(jī)名稱(chēng)為:

CENTOS7-1: IP 為 192.168.116.141, 既做管理節(jié)點(diǎn), 又做子節(jié)點(diǎn)。

CENTOS7-2: IP 為 192.168.116.142, 子節(jié)點(diǎn)。

CENTOS7-3: IP 為 192.168.116.143, 子節(jié)點(diǎn)。

3.2 系統(tǒng)配置

系統(tǒng)配置工作, 三臺(tái)節(jié)點(diǎn)依次執(zhí)行:

修改主機(jī)名稱(chēng) [root@CENTOS7-1 ~]# vi /etc/hostname


CENTOS7-1

編輯 hosts 文件

192.168.116.141 CENTOS7-1
192.168.116.142 CENTOS7-2
192.168.116.143 CENTOS7-3

注意, 這里面的主機(jī)名稱(chēng)要和節(jié)點(diǎn)名稱(chēng)保持一致, 否則安裝的時(shí)候會(huì)出現(xiàn)問(wèn)題

24eca4b6-8e4d-11ed-bfe3-dac502259ad0.png

修改 yum 源 vi /etc/yum.repos.d/ceph.repo, 為避免網(wǎng)速過(guò)慢問(wèn)題, 這里采用的是清華鏡像源:

[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc


[Ceph-noarch]
name=Ceph noarch packages
# 官方源
#baseurl=http://download.ceph.com/rpm-mimic/el7/noarch
# 清華源
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc


[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

安裝 ceph 與 ceph-deploy 組件

yum update && yum -y install ceph ceph-deploy
安裝完成, 如果執(zhí)行 ceph-deploy 出現(xiàn) ImportError: No module named pkg_resources 安裝 python2-pip:yum -y install python2-pip yum install epel-release -y

安裝 NTP 時(shí)間同步工具

yum install ntp ntpdate ntp-doc -y

確保時(shí)區(qū)是正確, 設(shè)置開(kāi)機(jī)啟動(dòng):

systemctl enable ntpd

并將時(shí)間每隔 1 小時(shí)自動(dòng)校準(zhǔn)同步。編輯 vi /etc/rc.d/rc.local 追加:

/usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w

配置定時(shí)任務(wù),執(zhí)行 crontab -e 加入:

0 */1 * * * ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w

3.3 免密碼 SSH 登陸

官方建議不用系統(tǒng)內(nèi)置用戶(hù), 創(chuàng)建名為 ceph_user 用戶(hù), 密碼也設(shè)為 ceph_user:

useradd -d /home/ceph_user -m ceph_user
passwd ceph_user

設(shè)置 sudo 權(quán)限

echo "ceph_user ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph_user
sudo chmod 0440 /etc/sudoers.d/ceph_user

1、2 兩個(gè)步驟依次在三臺(tái)機(jī)器上執(zhí)行。

接下來(lái)在主節(jié)點(diǎn), 繼續(xù)執(zhí)行:

生成密鑰:

切換用戶(hù):su ceph_user

執(zhí)行 ssh-keygen,一直按默認(rèn)提示點(diǎn)擊生成 RSA 密鑰信息。

分發(fā)密鑰至各機(jī)器節(jié)點(diǎn)

ssh-copy-id ceph_user@CENTOS7-1
ssh-copy-id ceph_user@CENTOS7-2
ssh-copy-id ceph_user@CENTOS7-3

修改管理節(jié)點(diǎn)上的~/.ssh/config文件, 簡(jiǎn)化 SSH 遠(yuǎn)程連接時(shí)的輸入信息:

管理節(jié)點(diǎn)是會(huì)有 root 和 ceph_user 多個(gè)用戶(hù), ssh 遠(yuǎn)程連接默認(rèn)會(huì)以當(dāng)前用戶(hù)身份進(jìn)行登陸,

如果我們是 root 身份進(jìn)行遠(yuǎn)程連接, 還是需要輸入密碼, 我們想簡(jiǎn)化, 該怎么處理?

切換 root 身份,


su root

修改~/.ssh/config 文件

Host CENTOS7-1
   Hostname CENTOS7-1
   User ceph_user
Host CENTOS7-2
   Hostname CENTOS7-2
   User ceph_user
Host CENTOS7-3
   Hostname CENTOS7-3
   User ceph_user

注意修改文件權(quán)限, 不能采用 777 最大權(quán)限:

chmod 600 ~/.ssh/config

進(jìn)行 ssh 遠(yuǎn)程連接時(shí), Host 的主機(jī)名稱(chēng)是區(qū)分大小寫(xiě)的, 所以要注意配置文件的主機(jī)名稱(chēng)。

開(kāi)放端口, 非生產(chǎn)環(huán)境, 可以直接禁用防火墻:

systemctl stop firewalld.service
systemctl disable firewalld.service

SELINUX 設(shè)置

SELinux 設(shè)為禁用:

setenforce 0

永久生效:編輯 vi /etc/selinux/config 修改:

SELINUX=disabled

3.4 集群搭建配置

采用 root 身份進(jìn)行安裝

在管理節(jié)點(diǎn)創(chuàng)建集群配置目錄,cd /usr/local:

mkdir ceph-cluster
cd ceph-cluster

注意:此目錄作為 ceph 操作命令的基準(zhǔn)目錄, 會(huì)存儲(chǔ)處理配置信息。

創(chuàng)建集群, 包含三臺(tái)機(jī)器節(jié)點(diǎn):

ceph-deploy new CENTOS7-1  CENTOS7-2 CENTOS7-3

創(chuàng)建成功后, 會(huì)生一個(gè)配置文件。

如果接下來(lái)集群的安裝配置出現(xiàn)問(wèn)題, 可以執(zhí)行以下命令清除, 再重新安裝:

ceph-deploy purge CENTOS7-1  CENTOS7-2 CENTOS7-3
ceph-deploy purgedata CENTOS7-1  CENTOS7-2 CENTOS7-3
ceph-deploy forgetkeys

將三臺(tái)節(jié)點(diǎn)的 mon 信息也刪除

rm -rf /var/run/ceph/

修改配置文件, 有些配置后面需用到:

vi /usr/local/ceph-cluster/ceph.conf

加入:

[global]
# 公網(wǎng)網(wǎng)絡(luò)
public network = 192.168.116.0/24
# 設(shè)置pool池默認(rèn)分配數(shù)量 默認(rèn)副本數(shù)為3
osd pool default size = 2
# 容忍更多的時(shí)鐘誤差
mon clock drift allowed = 2
mon clock drift warn backoff = 30
# 允許刪除pool
mon_allow_pool_delete = true
[mgr]
# 開(kāi)啟WEB儀表盤(pán)
mgr modules = dashboard

第一項(xiàng)為副本數(shù), 設(shè)為 2 份。

第二項(xiàng)為對(duì)外 IP 訪(fǎng)問(wèn)網(wǎng)段,注意根據(jù)實(shí)際 IP 修改網(wǎng)段。

第三、四項(xiàng)為允許一定時(shí)間的漂移誤差。

執(zhí)行安裝:

ceph-deploy install  CENTOS7-1  CENTOS7-2 CENTOS7-3

如果出現(xiàn)錯(cuò)誤:

ceph_deploy][ERROR ] RuntimeError: Failed to execute command: ceph --version

可以在各節(jié)點(diǎn)上單獨(dú)進(jìn)行安裝:

yum -y install ceph

如果沒(méi)有倉(cāng)庫(kù)文件 ceph.repo, 按上面的步驟手工創(chuàng)建。

初始 monitor 信息:

ceph-deploy mon create-initial
## ceph-deploy --overwrite-conf mon create-initial

執(zhí)行完成后, 會(huì)生成以下文件:24faddd8-8e4d-11ed-bfe3-dac502259ad0.png

同步管理信息:

下發(fā)配置文件和管理信息至各節(jié)點(diǎn):

ceph-deploy admin  CENTOS7-1  CENTOS7-2 CENTOS7-3

安裝 mgr (管理守護(hù)進(jìn)程), 大于 12.x 版本需安裝, 我們裝的是最新版,需執(zhí)行:

ceph-deploy mgr create CENTOS7-1  CENTOS7-2 CENTOS7-3

安裝 OSD (對(duì)象存儲(chǔ)設(shè)備)

注意:新版本的 OSD 沒(méi)有 prepare 與 activate 命令。

這里需要新的硬盤(pán)作為 OSD 存儲(chǔ)設(shè)備, 關(guān)閉虛擬機(jī), 增加一塊硬盤(pán), 不用格式化。

25095476-8e4d-11ed-bfe3-dac502259ad0.png

重啟, fdisk -l 查看新磁盤(pán)名稱(chēng):251ab5c2-8e4d-11ed-bfe3-dac502259ad0.png

執(zhí)行創(chuàng)建 OSD 命令:

ceph-deploy osd create --data /dev/sdb CENTOS7-2

三臺(tái)節(jié)點(diǎn)都需分別依次執(zhí)行。

ceph-deploy gatherkeys CENTOS7-1

驗(yàn)證節(jié)點(diǎn):

輸入 ceph health 或 ceph -s 查看, 出現(xiàn) HEALTH_OK 代表正常。252b2736-8e4d-11ed-bfe3-dac502259ad0.png

通過(guò)虛擬機(jī)啟動(dòng),如果出現(xiàn)錯(cuò)誤:

[root@CENTOS7-1 ~]# ceph -s
  cluster:
    id:     0ec99aa9-e97e-43d3-b5b9-90eb21c4abff
    health: HEALTH_WARN
            1 filesystem is degraded
            1 osds down
            1 host (1 osds) down
            Reduced data availability: 41 pgs inactive
            Degraded data redundancy: 134/268 objects degraded (50.000%), 22 pgs degraded, 87 pgs undersized
            39 slow ops, oldest one blocked for 2286 sec, daemons [osd.0,mon.CENTOS7-2,mon.CENTOS7-3] have slow ops.
            clock skew detected on mon.CENTOS7-2, mon.CENTOS7-3
 
  services:
    mon: 3 daemons, quorum CENTOS7-1,CENTOS7-2,CENTOS7-3
    mgr: centos7-1(active), standbys: centos7-3, centos7-2
    mds: fs_test-1/1/1 up  {0=centos7-1=up:replay}
    osd: 3 osds: 1 up, 2 in
 
  data:
    pools:   9 pools, 128 pgs
    objects: 134  objects, 64 KiB
    usage:   1.0 GiB used, 19 GiB / 20 GiB avail
    pgs:     32.031% pgs unknown
             134/268 objects degraded (50.000%)
             65 active+undersized
             41 unknown
             22 active+undersized+degraded

在各節(jié)點(diǎn)執(zhí)行命令,確保時(shí)間同步一致:

ntpdate ntp1.aliyun.com 

3.5 安裝管理后臺(tái)

開(kāi)啟 dashboard 模塊

ceph mgr module enable dashboard

生成簽名

ceph dashboard create-self-signed-cert

創(chuàng)建目錄

mkdir mgr-dashboard

[root@CENTOS7-1 mgr-dashboard]# pwd
/usr/local/ceph-cluster/mgr-dashboard

生成密鑰對(duì)

cd  /usr/local/ceph-cluster/mgr-dashboard
openssl req -new -nodes -x509   -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650   -keyout dashboard.key -out dashboard.crt -extensions v3_ca
[root@CENTOS7-1 mgr-dashboard]# ll
total 8
-rw-rw-r-- 1 ceph_user ceph_user 1155 Jul 14 02:26 dashboard.crt
-rw-rw-r-- 1 ceph_user ceph_user 1704 Jul 14 02:26 dashboard.key

啟動(dòng) dashboard

ceph mgr module disable dashboard
ceph mgr module enable dashboard

設(shè)置 IP 與 PORT

ceph config set mgr mgr/dashboard/server_addr 192.168.116.141
ceph config set mgr mgr/dashboard/server_port 18843

關(guān)閉 HTTPS

ceph config set mgr mgr/dashboard/ssl false

查看服務(wù)信息

[root@CENTOS7-1 ceph-cluster]# ceph mgr services
{
    "dashboard": "http://192.168.116.142:18843/"
}

設(shè)置管理用戶(hù)與密碼

ceph dashboard set-login-credentials admin admin

訪(fǎng)問(wèn)

253971e2-8e4d-11ed-bfe3-dac502259ad0.png

3.6 創(chuàng)建 Cephfs

集群創(chuàng)建完后, 默認(rèn)沒(méi)有文件系統(tǒng), 我們創(chuàng)建一個(gè) Cephfs 可以支持對(duì)外訪(fǎng)問(wèn)的文件系統(tǒng)。

ceph-deploy --overwrite-conf mds create CENTOS7-1 CENTOS7-2 CENTOS7-3

創(chuàng)建兩個(gè)存儲(chǔ)池,執(zhí)行兩條命令:

ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 64

少于 5 個(gè) OSD 可把 pg_num 設(shè)置為 128

OSD 數(shù)量在 5 到 10,可以設(shè)置 pg_num 為 512

OSD 數(shù)量在 10 到 50,可以設(shè)置 pg_num 為 4096

OSD 數(shù)量大于 50,需要計(jì)算 pg_num 的值

通過(guò)下面命令可以列出當(dāng)前創(chuàng)建的存儲(chǔ)池:

ceph osd lspools

創(chuàng)建 fs, 名稱(chēng)為 fs_test:

ceph fs new fs_test cephfs_metadata cephfs_data

狀態(tài)查看, 以下信息代表正常:

[root@CENTOS7-1 mgr-dashboard]# ceph fs ls
name: fs_test, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
[root@CENTOS7-1 mgr-dashboard]# ceph mds stat
fs_test-1/1/1 up  {0=centos7-1=up:active}

附:如果創(chuàng)建錯(cuò)誤, 需要?jiǎng)h除, 執(zhí)行:

ceph fs rm fs_test --yes-i-really-mean-it
ceph osd pool delete cephfs_data cephfs_data  --yes-i-really-really-mean-it

確保在 ceph.conf 中開(kāi)啟以下配置:

[mon]
mon allow pool delete = true

采用 fuse 掛載

先確定 ceph-fuse 命令能執(zhí)行, 如果沒(méi)有, 則安裝:

 

yum -y install ceph-fuse

創(chuàng)建掛載目錄


mkdir -p /usr/local/cephfs_directory

掛載 cephfs

[root@node3 ~]# ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.116.141:6789 /usr/local/cephfs_directory
ceph-fuse[6687]: starting ceph client
2019-07-14 2109.644181 7fa5be56e040 -1 init, newargv = 0x7fa5c940b500 newargc=9
ceph-fuse[6687]: starting fuse

查看磁盤(pán)掛載信息

[root@CENTOS7-1 mgr-dashboard]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   38G  3.0G   35G   8% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G   20M  1.9G   2% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1                197M  167M   31M  85% /boot
tmpfs                    378M     0  378M   0% /run/user/0
tmpfs                    1.9G   24K  1.9G   1% /var/lib/ceph/osd/ceph-0
ceph-fuse                 27G     0   27G   0% /usr/local/cephfs_directory
tmpfs                    378M     0  378M   0% /run/user/1000

/usr/local/cephfs_directory 目錄已成功掛載。

3.7 客戶(hù)端連接驗(yàn)證 (Rados Java)

安裝好 JDK、GIT 和 MAVEN。

下載 rados java 客戶(hù)端源碼


git clone https://github.com/ceph/rados-java.git

下載目錄位置:

[root@CENTOS7-1 rados-java]# pwd
/usr/local/sources/rados-java

執(zhí)行 MAVEN 安裝,忽略測(cè)試用例:

[root@CENTOS7-1 rados-java]# mvn install -Dmaven.test.skip=true

生成 jar 包, rados-0.7.0.jar

[root@CENTOS7-1 target]# ll
總用量 104
drwxr-xr-x 3 root root     17 8月  11 18:32 classes
drwxr-xr-x 2 root root     27 8月  11 18:32 dependencies
drwxr-xr-x 3 root root     25 8月  11 18:32 generated-sources
drwxr-xr-x 2 root root     28 8月  11 18:32 maven-archiver
drwxr-xr-x 3 root root     35 8月  11 18:32 maven-status
-rw-r--r-- 1 root root 105701 8月  11 18:32 rados-0.7.0.jar

創(chuàng)建軟鏈接, 加入 CLASSPATH

ln -s /usr/local/sources/rados-java/target/rados-0.7.0.jar /opt/jdk1.8.0_301/jre/lib/ext/rados-0.7.0.jar

安裝 jna


yum -y install jna

創(chuàng)建軟鏈接

ln -s /usr/share/java/jna.jar /opt/jdk1.8.0_301/jre/lib/ext/jna.jar

查看

[root@CENTOS7-1 target]# ll /opt/jdk1.8.0_301/jre/lib/ext/jna.jar
lrwxrwxrwx 1 root root 23 8月  11 19:00 /opt/jdk1.8.0_301/jre/lib/ext/jna.jar -> /usr/share/java/jna.jar
[root@CENTOS7-1 target]# ll /opt/jdk1.8.0_301/jre/lib/ext/jna.jar
lrwxrwxrwx 1 root root 23 8月  11 19:00 /opt/jdk1.8.0_301/jre/lib/ext/jna.jar -> /usr/share/java/jna.jar

創(chuàng)建 JAVA 測(cè)試類(lèi)

CephClient 類(lèi),注意, 最新版 0.6 的異常處理包位置已發(fā)生變化。

import com.ceph.rados.Rados;
import com.ceph.rados.exceptions.*;


import java.io.File;


public class CephClient {
        public static void main (String args[]){


                try {
                        Rados cluster = new Rados("admin");
                        System.out.println("Created cluster handle.");


                        File f = new File("/etc/ceph/ceph.conf");
                        cluster.confReadFile(f);
                        System.out.println("Read the configuration file.");


                        cluster.connect();
                        System.out.println("Connected to the cluster.");


                } catch (RadosException e) {
                        System.out.println(e.getMessage() + ": " + e.getReturnValue());
                }
        }
}

運(yùn)行驗(yàn)證

需要在 linux 環(huán)境下運(yùn)行,且要在 client 節(jié)點(diǎn)。

編譯并運(yùn)行:

[root@CENTOS7-1 sources]# javac CephClient.java 
[root@CENTOS7-1 sources]# java CephClient
Created cluster handle.
Read the configuration file.
Connected to the cluster.

成功與 ceph 建立連接。

注意:如果 java 和 javac 版本不同,可以使用 rpm -qa |grep java 進(jìn)行查找, rpm -e --nodeps jdk 進(jìn)行刪除,source /etc/profile 進(jìn)行生效

jdk 的位數(shù)為 64 位

作者 |博學(xué)谷狂野架構(gòu)師

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)系統(tǒng)
    +關(guān)注

    關(guān)注

    2

    文章

    422

    瀏覽量

    41234
  • 分布式存儲(chǔ)
    +關(guān)注

    關(guān)注

    4

    文章

    178

    瀏覽量

    19779
  • Ceph
    +關(guān)注

    關(guān)注

    1

    文章

    23

    瀏覽量

    9510

原文標(biāo)題:一文參透分布式存儲(chǔ)系統(tǒng)Ceph的架構(gòu)設(shè)計(jì)、集群搭建

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    分布式存儲(chǔ)架構(gòu):第三節(jié) 分布式文件模型?#分布式架構(gòu)??#分布式存儲(chǔ)系統(tǒng)?#分布式系統(tǒng)?#硬聲創(chuàng)作季

    云計(jì)算存儲(chǔ)系統(tǒng)分布式系統(tǒng)分布式存儲(chǔ)分布式存儲(chǔ)系統(tǒng)
    學(xué)習(xí)硬聲知識(shí)
    發(fā)布于 :2022年10月21日 14:28:49

    Hadoop集群分布式搭建步驟

    Hadoop集群分布式搭建
    發(fā)表于 11-04 09:19

    Ceph是什么?Ceph的統(tǒng)一存儲(chǔ)方案簡(jiǎn)析

    Ceph是什么?Ceph個(gè)開(kāi)源的分布式存儲(chǔ)系統(tǒng),可大規(guī)模擴(kuò)展、高性能、無(wú)單點(diǎn)故障,在普通的服務(wù)器上可以支持到PB級(jí)容量,商用機(jī)器上支持的
    發(fā)表于 10-08 15:40

    還在用Ceph嗎?不如試試性能更好的碧海存儲(chǔ)

    對(duì)于分布式存儲(chǔ)產(chǎn)品,朋友們第反應(yīng)總是:基于Ceph的嗎? Ceph、HDFS、Glusterfs、Lustre、BeeGFS都是優(yōu)秀的
    發(fā)表于 03-27 07:25 ?754次閱讀

    盤(pán)點(diǎn)分布式存儲(chǔ)系統(tǒng)的主流框架

    整個(gè)大數(shù)據(jù)處理的體系,按我的理解可以分為兩個(gè)部分,個(gè)是分布式存儲(chǔ)系統(tǒng)、另個(gè)是分布式計(jì)算框架。分布式
    發(fā)表于 08-06 09:07 ?2769次閱讀

    分布式文件存儲(chǔ)系統(tǒng)GFS的基礎(chǔ)知識(shí)

    GFS是google的分布式文件存儲(chǔ)系統(tǒng),是專(zhuān)為存儲(chǔ)海量搜索數(shù)據(jù)而設(shè)計(jì)的,2003年提出,是閉源的分布式文件系統(tǒng)
    發(fā)表于 08-25 17:49 ?6280次閱讀
    <b class='flag-5'>分布式</b>文件<b class='flag-5'>存儲(chǔ)系統(tǒng)</b>GFS的基礎(chǔ)知識(shí)

    常見(jiàn)的分布式存儲(chǔ)系統(tǒng)有哪些類(lèi)型

    分布式存儲(chǔ)系統(tǒng)是大數(shù)據(jù)技術(shù)學(xué)習(xí)過(guò)程中會(huì)經(jīng)常接觸到的個(gè)工具,而今天我們就起來(lái)了解下,常見(jiàn)的
    發(fā)表于 11-09 10:41 ?2.9w次閱讀

    常見(jiàn)的分布式文件存儲(chǔ)系統(tǒng)的優(yōu)缺點(diǎn)

    分布式文件系統(tǒng),可以說(shuō)是分布式系統(tǒng)下的個(gè)子集,這里我們選取市場(chǎng)應(yīng)用比較廣泛的幾款產(chǎn)品,HDFS、Cep
    發(fā)表于 01-15 09:45 ?1w次閱讀
    常見(jiàn)的<b class='flag-5'>分布式</b>文件<b class='flag-5'>存儲(chǔ)系統(tǒng)</b>的優(yōu)缺點(diǎn)

    存儲(chǔ)中的Ceph分布式文件系統(tǒng)及節(jié)點(diǎn)選擇

    集群中高效分布數(shù)據(jù)對(duì)象及其副本。經(jīng)典Ceph存儲(chǔ)系統(tǒng)中在副本模式下選擇存儲(chǔ)節(jié)點(diǎn)時(shí)該系統(tǒng)僅以節(jié)點(diǎn)
    發(fā)表于 03-31 10:46 ?13次下載
    云<b class='flag-5'>存儲(chǔ)</b>中的<b class='flag-5'>Ceph</b><b class='flag-5'>分布式</b>文件<b class='flag-5'>系統(tǒng)</b>及節(jié)點(diǎn)選擇

    種可行的分布式存儲(chǔ)系統(tǒng)安全構(gòu)造方法

    核心薄弱點(diǎn),結(jié)合防護(hù)的代價(jià)與有效性提出種可行的系統(tǒng)安全構(gòu)造方法。以大數(shù)據(jù) Hadoop分布式文件系統(tǒng)為目標(biāo)對(duì)象,設(shè)計(jì)面向元數(shù)據(jù)服務(wù)的擬態(tài)化架構(gòu)
    發(fā)表于 04-02 11:01 ?21次下載
    <b class='flag-5'>一</b>種可行的<b class='flag-5'>分布式</b><b class='flag-5'>存儲(chǔ)系統(tǒng)</b>安全構(gòu)造方法

    Ceph分布式存儲(chǔ)系統(tǒng)性能優(yōu)化研究綜述

    Ceph個(gè)統(tǒng)分布式存儲(chǔ)系統(tǒng),可同時(shí)提供塊、文件和對(duì)象3種接口的存儲(chǔ)服務(wù)。與傳統(tǒng)的
    發(fā)表于 04-13 13:58 ?5次下載
    <b class='flag-5'>Ceph</b><b class='flag-5'>分布式</b><b class='flag-5'>存儲(chǔ)系統(tǒng)</b>性能優(yōu)化研究綜述

    個(gè)去中心化的分布式存儲(chǔ)系統(tǒng)Ceph概述

    Ceph個(gè)去中心化的分布式存儲(chǔ)系統(tǒng), 提供較好的性能、可靠性和可擴(kuò)展性。
    發(fā)表于 09-02 10:11 ?1976次閱讀

    Ceph分布式存儲(chǔ)簡(jiǎn)介&amp;Ceph數(shù)據(jù)恢復(fù)流程

    Ceph存儲(chǔ)可分為塊存儲(chǔ),對(duì)象存儲(chǔ)和文件存儲(chǔ)Ceph基于對(duì)象
    的頭像 發(fā)表于 09-26 15:41 ?1133次閱讀

    基于分布式存儲(chǔ)系統(tǒng)醫(yī)療影像數(shù)據(jù)存儲(chǔ)解決方案

    基于分布式存儲(chǔ)系統(tǒng)醫(yī)療影像數(shù)據(jù)存儲(chǔ)解決方案
    的頭像 發(fā)表于 09-14 09:53 ?615次閱讀
    基于<b class='flag-5'>分布式</b><b class='flag-5'>存儲(chǔ)系統(tǒng)</b>醫(yī)療影像數(shù)據(jù)<b class='flag-5'>存儲(chǔ)</b>解決方案

    WDS分布式存儲(chǔ)系統(tǒng)軟件助力電信工程海量數(shù)據(jù)存儲(chǔ)項(xiàng)目

    WDS分布式存儲(chǔ)系統(tǒng)軟件助力電信工程海量數(shù)據(jù)存儲(chǔ)項(xiàng)目
    的頭像 發(fā)表于 11-11 09:59 ?449次閱讀
    WDS<b class='flag-5'>分布式</b><b class='flag-5'>存儲(chǔ)系統(tǒng)</b>軟件助力電信工程海量數(shù)據(jù)<b class='flag-5'>存儲(chǔ)</b>項(xiàng)目