6 Ceph

Ceph概述

[toc]

分布式文件系統(tǒng)

  • 分布式文件系統(tǒng)( Distributed File Syste ) 是指文件系統(tǒng)管理的物理存儲資源不一定直接連接在本地節(jié)點(diǎn)上,而是通過計(jì)算機(jī)網(wǎng)絡(luò)與節(jié)點(diǎn)相連
  • 分布式文件系統(tǒng)的設(shè)計(jì)基于客戶機(jī)/服務(wù)器模式

常用分布式文件系統(tǒng)

  • Lustre
  • Hadoop
  • FastDFS
  • Ceph
  • GlusterFS

什么是 Ceph

  1. Ceph 是一個分布式文件系統(tǒng)
  2. 具有 高擴(kuò)展 高可用 高性能 的特點(diǎn)
  3. Ceph 可以提供 塊存儲 文件系統(tǒng)存儲 對象存儲
  4. Ceph 可以提供 PB 級別的存儲空間
  5. 軟件定義存儲作為存儲行業(yè)的一大發(fā)展趨勢,已經(jīng)越來越受到市場的認(rèn)可.

Ceph 組件

1550248027852

OSDs

存儲設(shè)備,真正存儲數(shù)據(jù)的組件.一般來說,每塊參與存儲的磁盤都需要一個 OSD 進(jìn)程

Ceph OSD 守護(hù)進(jìn)程( Ceph OSD )的功能是存儲數(shù)據(jù),處理數(shù)據(jù)的復(fù)制阱缓、恢復(fù)婉刀、回填、再均衡拴魄,并通過檢查其他OSD 守護(hù)進(jìn)程的心跳來向 Ceph Monitors 提供一些監(jiān)控信息。當(dāng) Ceph 存儲集群設(shè)定為有2個副本時(shí)席镀,至少需要2個 OSD 守護(hù)進(jìn)程匹中,集群才能達(dá)到 active+clean 狀態(tài)( Ceph 默認(rèn)有3個副本,但你可以調(diào)整副本數(shù))豪诲。

Monitor

集群監(jiān)控組件,因?yàn)楸4婕籂顟B(tài),要放置單點(diǎn)故障所以需要多臺.另外,MON 需要是奇數(shù),如果出現(xiàn)意見分歧,采用投票機(jī)制,少數(shù)服從多數(shù)

Ceph Monitor維護(hù)著展示集群狀態(tài)的各種圖表顶捷,包括監(jiān)視器圖、 OSD 圖屎篱、歸置組( PG )圖服赎、和 CRUSH 圖葵蒂。 Ceph 保存著發(fā)生在Monitors 、 OSD 和 PG上的每一次狀態(tài)變更的歷史信息(稱為 epoch )重虑。

MDS

文件系統(tǒng)元數(shù)據(jù),只有 CephFS 需要它.元數(shù)據(jù): metadata,存儲數(shù)據(jù)的各種信息,例如權(quán)限路徑位置.

Ceph 元數(shù)據(jù)服務(wù)器( MDS )為 Ceph 文件系統(tǒng)存儲元數(shù)據(jù)(也就是說践付,Ceph 塊設(shè)備和 Ceph 對象存儲不使用MDS )。元數(shù)據(jù)服務(wù)器使得 POSIX 文件系統(tǒng)的用戶們缺厉,可以在不對 Ceph 存儲集群造成負(fù)擔(dān)的前提下永高,執(zhí)行諸如 lsfind 等基本命令提针。

RADOS

可靠自主分布式對象存儲.它是 ceph 存儲的基礎(chǔ),保證一切都以對象形式存儲.

RBD

RADOS block device 塊設(shè)備,提供塊存儲

CephFS

提供文件提醒級別存儲

RGW

RADOS 網(wǎng)關(guān),提供對象存儲

準(zhǔn)備階段

拓?fù)鋱D配置

1550404780508
主機(jī) 主機(jī)名 角色
test7 admin-node ceph-deploy
test8 node1 mon.node1 osd.0
test9 node2 osd.1
test10 node3 osd.2

基礎(chǔ)環(huán)境

名稱 版本
Linux OS CentOS Linux release 7.6.1810 (Core)
ceph-deploy 2.0.1
ceph mimic 13.2.4

所有節(jié)點(diǎn)準(zhǔn)備環(huán)境

配置 hosts

為方便部署,hosts中根據(jù)服務(wù)器 配置 test 主機(jī)別名

tee > /etc/hosts <<EOF
192.168.1.107 admin-node test7
192.168.1.108 node1 test8   
192.168.1.109 node2 test9   
192.168.1.110 node3 test10
192.168.1.111 client1 test11
192.168.1.112 client2 test12
EOF

將 hosts 文件同步到集群其他服務(wù)器

for i in {8..12};do scp /etc/hosts root@test$i:/etc/;done 

根據(jù) hosts 修改對應(yīng)主機(jī) hostname

hostnamectl set-hostname admin-node
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname client1
hostnamectl set-hostname client2

添加用戶

添加用戶,授權(quán) sudo

useradd -d /home/cephuser -m cephuser
echo "cephuser:123123" | chpasswd
echo "cephuser ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser

為集群所有節(jié)點(diǎn)添加用戶,授權(quán) sudo

for i in {7..10}
do
ssh test$i 'useradd -d /home/cephuser -m cephuser && echo "cephuser:123123" | chpasswd && echo "cephuser ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/cephuser && chmod 0440 /etc/sudoers.d/cephuser && hostname'
done

配置 ssh

配置集群內(nèi) server 通過 以上添加的用戶 ( cephuser ) 互相免密登陸.

切換至 cephuser 用戶

su - cephuser

集群內(nèi)所有節(jié)點(diǎn)生成 cephuser 用戶的公鑰

for i in {7..10}
do
ssh cephuser@test$i 'ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa'
done

將所有節(jié)點(diǎn)公鑰 寫入 .ssh/authorized_keys

cat .ssh/authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+pG3aeCPBAO8XTasqKKz/P0MhHEyXfjHRZ79MLEraSHOAkxCX6DoOM37tT6eAHADrGNgLOqYdDVxG2K/+VQ0AlqBe4jg1vWMutXr9wWQuBTvbejowfH6u5u7b5duuCuQr6fnW5ClTe0S5Au4X8/iwEtpK3JvCCZSb4os1OWt0fPEj2z+sQAuvsNNGXxcRD0HAevi82p8SqR9vQLtWaY5dKsnDUror9ry3ECwa2nPj2mlgCjV3NkLW1dgsNsOtmKjhvLRh7VWZHy/yaxBh1U1N2/EdIZVomhU+BpSwTbS9Msfbbjvg3oEAon8kEEp45K/Hbv5gJft7mEreVgmRGvy1 cephuser@test7
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzLvy20vvbGe8pG0EbCDgfOIyFWWGjz6JbeFB0/kvNentaMl6QSYXjZvbNAXirfWKFuALlrAaBks7dMTup/3xwUm0yfs5VpolO3OYPI1jPrx1GKbmJZJRMJIn7hOJnM5K2vH/NqZkcgLkcqcqW9xLADf+FZ0bDFfAyZPg+V8ZHDNvvKnPPX6UhNCgzGpxHrGrF3DT8TDmxfU6hGmlWwHRzs8wgZNUKZqt9tp+qXTF8X2HzHbKTsT3j17B1wNrMXiNP5Sgvf+BpdXmI3NVnxQUn1vA5nIrB3VXNSuDe21PfvM9s5Cvpiaoq3tMfiqfIS55GgaHmS9HVoVC3GL+O2WZN cephuser@test8
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdx8igKmEeGNQUafXVMgelumbC3dL0oiYPtu8zjCL/IZBWBMq9+78lQ73x2/tE9DtWJShx2iZ9xDcL+QCNV/fiCnd9PCP6mdUGo9HxoC0Bw2dd1L4cDtYZ6UZ8iOWCrYGf8lAP1Q05eTUMvYd2R9PyJmhIAwxgr9CVG1uwEsi+uDV8QXSTK8z+VCGMpFouDaflZjjOb/tsIHcMQWB5B98MF6wY0/pObwXbm8pZfDUr8hkfbbCYkI7H1qYomk4CsOf4wveUKzppInZEqrv2YYe04am98CuIuWU5s3WQ+MuG9jS1rhdIrzz81k7y6KWJuK4UIl50XP3NbMLLIjWCEUvT cephuser@test9
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9Z3Q0UuQ16Wpu8mrW9TFg4EXXzbkoMiWT8E3gy5VRItcK4VcYHqXAYpxNlt4iaSZLcX+s1QQ2L0A8ohWXOGerGpAu4Ac7XhPSv0R44ihcIP+FTR8X9UWmjYCUJzKCjzCyCK1SOV47cEzfLPRjtLHoKToqAFqW55KU4tZItwJI94HfZ0+dsA6PLk9H3Cnsl0RV9ZV4Zb0C4u5nZ8+71qe2r4FcNg/65Vniezd4NuwIW9/gpdLM3csyu7ukxaXgz7D7CLVJBskgzo25IXKBs2mwLMaHuUSFzs/fECXsY5FvPDzG2LbHvqIoml1jruk0nDMRC4JZN7E+0EZg9K0lvwIn cephuser@test10

此文件權(quán)限必須為 600 用戶用戶組為 cephuser,否則 ssh免密失敗

chown cephuser.cephuser ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ll ~/.ssh/authorized_keys 
-rw------- 1 cephuser cephuser 1585 Feb 17 21:24 /home/cephuser/.ssh/authorized_keys

將 授權(quán)密鑰文件 authorized_keys 同步到所有節(jié)點(diǎn),則所有節(jié)點(diǎn)可以互相免密登陸.

for i in {8..10};do scp .ssh/authorized_keys cephuser@test$i:~/.ssh/;done

驗(yàn)證免密登陸

for i in {7..10};do ssh test$i "id; hostname"; done

第一次登陸需要手動輸入yes,可同步 known_hosts 文件到所有節(jié)點(diǎn)解決

for i in {8..10};do scp .ssh/known_hosts test$i:~/.ssh/;done

修改deploy主機(jī)上的~/.ssh/config文件,此步只需修改deploy節(jié)點(diǎn)

tee ~/.ssh/config <<EOF
#關(guān)鍵詞
Host ceph-deploy
   #主機(jī)名
   Hostname admin-node
   User cephuser
Host osd0
   Hostname node1
   User cephuser
Host osd1
   Hostname node2
   User cephuser
Host osd2
   Hostname nde3
   User cephuser
EOF

修改權(quán)限

chmod 644 ~/.ssh/config

YUM配置

rpm-mimic 為對應(yīng) ceph 版本,可替換成自己需要的

# 保留文本內(nèi)的 $變量 EOF 前加轉(zhuǎn)義符 或者 EOF添加雙引號 "EOF"
tee /etc/yum.repos.d/ceph.repo <<\EOF
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
EOF

將 yum 倉庫同步到所有節(jié)點(diǎn)

for i in {7..10};do sudo scp /etc/yum.repos.d/ceph.repo test$i:/etc/yum.repos.d/ceph.repo;done

時(shí)間同步

ceph集群強(qiáng)依賴時(shí)間同步,否則會告警出錯,將所有節(jié)點(diǎn)指向時(shí)間同步服務(wù)器.推薦chrony內(nèi)網(wǎng)搭建.具體步驟略

存儲集群

1550411916524

重新開始

如果您遇到麻煩并且想要重新開始命爬,請執(zhí)行以下操作以清除Ceph軟件包,并清除其所有數(shù)據(jù)和配置:

# 清除ceph安裝包
ceph-deploy purge {ceph-node} [{ceph-node}]
# 清除ceph安裝數(shù)據(jù)
ceph-deploy purgedata {ceph-node} [{ceph-node}]
# 清除ceph生成kyes
ceph-deploy forgetkeys
rm ceph.*

創(chuàng)建集群

使用 ceph-deploy 創(chuàng)建一個集群,先在deploy節(jié)點(diǎn),安裝 ceph-deploy

sudo yum install ceph-deploy

創(chuàng)建一個文件夾,用來存放部署生成的各種信息

mkdir my-cluster
cd my-cluster
  1. 創(chuàng)建集群,指定monitor 節(jié)點(diǎn)
ceph-deploy new node1

檢查ceph-deploywith lscat當(dāng)前目錄中的輸出辐脖。您應(yīng)該看到Ceph配置文件(ceph.conf)饲宛,監(jiān)視器密鑰密鑰環(huán)(ceph.mon.keyring)和新集群的日志文件

-rw-rw-r-- 1 cephuser cephuser    252 Feb 18 13:50 ceph.conf
-rw-rw-r-- 1 cephuser cephuser 319194 Feb 19 21:48 ceph-deploy-ceph.log
-rw------- 1 cephuser cephuser     73 Feb 18 13:49 ceph.mon.keyring
  1. 如果有多個網(wǎng)絡(luò)接口,可在Ceph配置文件 的部分下添加該設(shè)置嗜价。
tee >>ceph.conf <<EOF
public network = 192.168.1.0/24
EOF
  1. 如果要在IPv6環(huán)境中部署艇抠,請ceph.conf在本地目錄中添加以下內(nèi)容 :
echo ms bind ipv6 = true >> ceph.conf
  1. 安裝Ceph包,默認(rèn)會更新使用官方y(tǒng)um源,但是國內(nèi)會超時(shí).使用 --no-adjust-repo 參數(shù)不調(diào)整源
ceph-deploy install --no-adjust-repos node{1..3}
  1. 初始化監(jiān)控服務(wù)并手機(jī)密鑰
ceph-deploy mon create-initial

完成此過程后,您的本地目錄應(yīng)具有以下密鑰環(huán)

  • ceph.client.admin.keyring
  • ceph.bootstrap-mgr.keyring
  • ceph.bootstrap-osd.keyring
  • ceph.bootstrap-mds.keyring
  • ceph.bootstrap-rgw.keyring
  • ceph.bootstrap-rbd.keyring
  • ceph.bootstrap-rbd-mirror.keyring

注意: 如果此過程失敗并顯示類似于“無法找到/etc/ceph/ceph.client.admin.keyring”的消息久锥,請確保ceph.conf中為監(jiān)控節(jié)點(diǎn)列出的IP是公共IP练链,而不是私有IP 。

  1. 使用ceph-deploy復(fù)制配置文件和管理密鑰到您的管理節(jié)點(diǎn)和你的Ceph的節(jié)點(diǎn)奴拦,以便您可以使用ceph CLI媒鼓,而無需指定監(jiān)視地址和 ceph.client.admin.keyring每次執(zhí)行命令
ceph-deploy admin node{1..3}

? 修改所有節(jié)點(diǎn)key文件權(quán)限,否則無法正確識別

for i in {8..10};do ssh test$i 'sudo chmod a+r /etc/ceph/ceph.client.admin.keyring';done
  1. 部署管理器守護(hù)程序。( 僅適用于 luminious + 版本 >= 12.x)
ceph-deploy mgr create node1
  1. 添加三個OSD错妖。每個節(jié)點(diǎn)中已有一個未使用的磁盤/dev/sdb绿鸣。
ceph-deploy osd create --data /dev/sdb node1
ceph-deploy osd create --data /dev/sdb node2
ceph-deploy osd create --data /dev/sdb node3

注意: 如果要在LVM卷上創(chuàng)建OSD,則參數(shù) --data 必須volume_group/lv_name暂氯,而不是卷的塊設(shè)備的路徑潮模。

  1. 檢查群集的運(yùn)行狀況。
ssh node1 sudo ceph health

您的群集應(yīng)該報(bào)告HEALTH_OK痴施。您可以使用以下命令查看更完整的群集狀態(tài):

ssh node1 sudo ceph -s

擴(kuò)展集群

啟動并運(yùn)行基本群集后擎厢,下一步是展開群集。添加Ceph元數(shù)據(jù)服務(wù)器node1辣吃。然后添加Ceph Monitor和Ceph Manager node2动遭,node3以提高可靠性和可用性。

1550607588214

添加元數(shù)據(jù)服務(wù)器

要使用CephFS神得,您至少需要一個元數(shù)據(jù)服務(wù)器厘惦。執(zhí)行以下操作以創(chuàng)建元數(shù)據(jù)服務(wù)器:

ceph-deploy mds create node1

添加監(jiān)視器

Ceph存儲集群需要至少運(yùn)行一個Ceph Monitor和Ceph Manager。為了實(shí)現(xiàn)高可用性哩簿,Ceph存儲集群通常運(yùn)行多個Ceph監(jiān)視器宵蕉,因此單個Ceph監(jiān)視器的故障不會導(dǎo)致Ceph存儲集群崩潰酝静。Ceph使用Paxos算法,該算法需要大多數(shù)監(jiān)視器(即大于N / 2羡玛,其中N是監(jiān)視器的數(shù)量)才能形成法定數(shù)量。雖然這不是必需的稼稿,但監(jiān)視器的數(shù)量往往更好。

將兩個Ceph監(jiān)視器添加到您的群集:

# 官方文檔顯示可以一次添加多個節(jié)點(diǎn) ceph-deploy mon add node2 node3,這里測試需要分開添加,寫多個時(shí)會提示第二個節(jié)點(diǎn)參數(shù)報(bào)錯
ceph-deploy mon add node2
ceph-deploy mon add node3

一旦你添加了新的Ceph監(jiān)視器渺杉,Ceph將開始同步監(jiān)視器并形成一個法定人數(shù)蛇数。您可以通過執(zhí)行以下操作來檢查仲裁狀態(tài):

ceph quorum_status --format json-pretty

添加管理進(jìn)程

Ceph Manager守護(hù)進(jìn)程以活動/備用模式運(yùn)行是越。部署其他管理器守護(hù)程序可確保在一個守護(hù)程序或主機(jī)發(fā)生故障時(shí),另一個守護(hù)程序或主機(jī)可以在不中斷服務(wù)的情況下接管倚评。

要部署其他管理器守護(hù)程序

ceph-deploy mgr create node2 node3

您應(yīng)該在以下輸出中看到備用管理器:

ssh node1 sudo ceph -s

添加RGW實(shí)例

要使用Ceph的Ceph對象網(wǎng)關(guān)組件,必須部署RGW實(shí)例天梧。執(zhí)行以下命令以創(chuàng)建RGW的新實(shí)例:

ceph-deploy rgw create node1

默認(rèn)情況下,RGW實(shí)例將偵聽端口7480.可以通過在運(yùn)行RGW的節(jié)點(diǎn)上編輯ceph.conf來更改此設(shè)置霞丧,如下所示:

# IPv4
[client]
rgw frontends = civetweb port=80
# IPv6
[client]
rgw frontends = civetweb port=[::]:80

修改配置后重啟生效

systemctl restart ceph-radosgw.target

netstat -nltp|grep radosgw
tcp    0    0 0.0.0.0:80      0.0.0.0:*      LISTEN      6269/radosgw 

訪問 radowgw 網(wǎng)關(guān)節(jié)點(diǎn),對應(yīng)端口得到以下返回說明已經(jīng)完成.

1550608368847

存儲/檢索對象數(shù)據(jù)

要將對象數(shù)據(jù)存儲在Ceph存儲集群中,Ceph客戶端必須:

  1. 設(shè)置對象名稱
  2. 指定一個

Ceph客戶端檢索最新的集群映射后豫,CRUSH算法計(jì)算如何將對象映射到放置組,然后計(jì)算如何動態(tài)地將放置組分配給Ceph OSD守護(hù)進(jìn)程突那。要查找對象位置,您只需要對象名稱和池名稱愕难。例如:

ceph osd map {poolname} {object-name}

練習(xí):找到一個對象

作為練習(xí)暇藏,讓我們創(chuàng)建一個對象使套。使用命令行上的命令指定對象名稱绑警,包含某些對象數(shù)據(jù)的測試文件的路徑和池名稱 猜丹。例如:rados put

echo "hello" > 1.txt
#創(chuàng)建池 mytest
ceph osd pool create mytest 8

rados put {object-name} {file-path} --pool=mytest
#存儲文件 testfile.txt 指定對象 test-object-1 池 mytest
rados put test-object-1 1.txt --pool=mytest

要驗(yàn)證Ceph存儲集群是否存儲了該對象翘悉,請執(zhí)行以下命令:

rados -p mytest ls

現(xiàn)在,確定對象位置:

ceph osd map {pool-name} {object-name}
ceph osd map mytest test-object-1

Ceph應(yīng)該輸出對象的位置居触。例如:

osdmap e58 pool 'mytest' (6) object 'test-object-1' -> pg 6.74dc35e2 (6.2) -> up ([1,0,2], p1) acting ([1,0,2], p1)

要刪除測試對象妖混,只需使用該 命令將其刪除即可老赤。rados rm

rados rm test-object-1 --pool=mytest

要刪除mytest池,則需要先添加配置允許監(jiān)控刪除池,然后重啟mon進(jìn)程

echo "mon_allow_pool_delete = true" >> /etc/ceph/ceph.conf
systemctl restart ceph-mon.target

刪除時(shí),需要輸入兩遍池名稱和--yes-i-really-really-mean-it參數(shù)

ceph osd pool rm mytest mytest --yes-i-really-really-mean-it

隨著集群的發(fā)展,對象位置可能會動態(tài)變化制市。Ceph動態(tài)重新平衡的一個好處是Ceph使您不必手動執(zhí)行數(shù)據(jù)遷移或平衡抬旺。

塊存儲

1550577527436

注意: Ceph塊設(shè)備也稱為RBDRADOS 塊設(shè)備。

可以為ceph-client節(jié)點(diǎn)使用虛擬機(jī)祥楣,但不要在與Ceph存儲群集節(jié)點(diǎn)相同的物理節(jié)點(diǎn)上執(zhí)行以下過程

主機(jī) 主機(jī)名 角色
test11 client1 clientt ( RBD )
test12 client2 clien2 ( CephFS )

安裝 CEPH

需要提前在admin節(jié)點(diǎn)的hosts文件中寫入此客戶端,在客戶端上配置cephuser用戶,時(shí)間同步,admin對此服務(wù)器的免密登陸,ceph 的yum源.

  1. 在admin節(jié)點(diǎn)上开财,用于ceph-deployceph-client節(jié)點(diǎn)上安裝Ceph.
ceph-deploy install client1
  1. 在管理節(jié)點(diǎn)上,使用ceph-deploy復(fù)制Ceph的配置文件和ceph.client.admin.keyringceph-client误褪。
ceph-deploy admin client1
  1. ceph-deploy實(shí)用程序?qū)⒚荑€環(huán)復(fù)制到/etc/ceph 目錄责鳍。確保密鑰環(huán)文件具有適當(dāng)?shù)淖x取權(quán)限
chmod a+r /etc/ceph/ceph.client.admin.keyring

創(chuàng)建塊設(shè)備

  1. 在管理節(jié)點(diǎn)上,使用該ceph工具創(chuàng)建池 (建議使用名稱'rbd')
ceph osd pool create rbd 0

ceph osd lspools
1 .rgw.root
2 default.rgw.control
3 default.rgw.meta
4 default.rgw.log
7 cephfs_data
8 cephfs_metadata
9 rbd
  1. 在管理節(jié)點(diǎn)上兽间,使用該rbd工具初始化池以供RBD使用:
rbd pool init rbd

配置塊設(shè)備

  1. ceph-client節(jié)點(diǎn)上历葛,創(chuàng)建塊設(shè)備映像。foo 為 imagename 即映像名.
rbd create foo --size 4096 --image-feature layering [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring] [-p {pool-name}]

? 例如

rbd create foo --size 4096 --image-feature layering -m 192.168.1.108 -k /etc/ceph/ceph.client.admin.keyring -p rbd
  1. ceph-client節(jié)點(diǎn)上嘀略,將圖像映射到塊設(shè)備
sudo rbd map foo --name client.admin [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring] [-p {pool-name}]

? 例如

rbd map foo --name client.admin -m 192.168.1.108 -k /etc/ceph/ceph.client.admin.keyring -p rbd

? 得到結(jié)果 /dev/rbd1

  1. 通過在ceph-client 節(jié)點(diǎn)上創(chuàng)建文件系統(tǒng)來使用塊設(shè)備恤溶。
sudo mkfs.ext4 -m0 /dev/rbd/{pool-name}/foo
  1. ceph-client節(jié)點(diǎn)上掛載文件系統(tǒng)。
sudo mkdir /mnt/ceph-block-device
sudo mount /dev/rbd/{pool-name}/foo /mnt/ceph-block-device
cd /mnt/ceph-block-device
  1. (可選)將塊設(shè)備配置為自動映射并在引導(dǎo)時(shí)掛載(并在關(guān)閉時(shí)卸載/取消映射) - 請參閱rbdmap聯(lián)機(jī)幫助頁帜羊。

示例

編輯 /etc/ceph/rbdmap 文件,rbd map POOLNAME/IMAGENAME --PARAM1 VAL1 --PARAM2 VAL2

POOLNAMErbd, IMAGENAMEfoo

rbd/foo    id=admin,keyring=/etc/ceph/ceph.client.admin.keyring

文件中的每一行都包含兩個字符串,這兩行轉(zhuǎn)換為以下命令:rbdmap

rbd map rbd/foo --id admin --keyring /etc/ceph/ceph.client.admin.keyring
rbd unmap rbd/foo --id admin --keyring /etc/ceph/ceph.client.admin.keyring

如果是XFS文件系統(tǒng)咒程,則相應(yīng)的/etc/fstab 條目可能如下所示:

/dev/rbd/rbd/foo /mnt/ceph-block-device xfs noauto 0 0

創(chuàng)建映像并填充/etc/ceph/rbdmap文件后,使映像自動映射并在啟動時(shí)掛載只需啟用該單元:

systemctl enable rbdmap.service

文件存儲

先決條件

  1. 驗(yàn)證您是否具有適當(dāng)版本的Linux內(nèi)核讼育。有關(guān)詳細(xì)信息帐姻,請參閱OS建議

    lsb_release -a
    uname -r
    
  2. 在admin節(jié)點(diǎn)上,用于ceph-deployceph-client節(jié)點(diǎn)上安裝Ceph 奶段。

    ceph-deploy install ceph-client
    
  3. 確保Ceph存儲群集正在運(yùn)行且處于某種 狀態(tài)饥瓷。此外,請確保至少運(yùn)行一個Ceph元數(shù)據(jù)服務(wù)器忧饭。active + clean

    ceph -s [-m {monitor-ip-address}] [-k {path/to/ceph.client.admin.keyring}]
    

創(chuàng)建文件系統(tǒng)

您已經(jīng)創(chuàng)建了MDS(存儲群集快速入門)扛伍,但在創(chuàng)建某些池和文件系統(tǒng)之前它不會變?yōu)榛顒訝顟B(tài)。請參閱創(chuàng)建Ceph文件系統(tǒng)词裤。

Ceph文件系統(tǒng)至少需要兩個RADOS池刺洒,一個用于數(shù)據(jù),一個用于元數(shù)據(jù)吼砂。配置這些池時(shí)逆航,您可能會考慮:

  • 對元數(shù)據(jù)池使用更高的復(fù)制級別,因?yàn)榇顺刂械娜魏螖?shù)據(jù)丟失都可能導(dǎo)致整個文件系統(tǒng)無法訪問渔肩。
  • 使用較低延遲的存儲(如SSD)作為元數(shù)據(jù)池因俐,因?yàn)檫@將直接影響客戶端上文件系統(tǒng)操作的觀察延遲。

請參閱以了解有關(guān)管理池的更多信息。例如抹剩,要創(chuàng)建兩個具有默認(rèn)設(shè)置以用于文件系統(tǒng)的池,您可以運(yùn)行以下命令:

ceph osd pool create cephfs_data <pg_num>
ceph osd pool create cephfs_metadata <pg_num>
ceph fs new <fs_name> cephfs_metadata cephfs_data

例如

ceph osd pool create cephfs_data 9
pool 'cephfs_data' created

ceph osd pool create cephfs_metadata 10
pool 'cephfs_metadata' created

ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 8 and data pool 7

創(chuàng)建加密文件

Ceph存儲集群在默認(rèn)情況下啟用身份驗(yàn)證的情況下運(yùn)行澳眷。您應(yīng)該有一個包含密鑰的文件(即,不是密鑰環(huán)本身)衷敌。要獲取特定用戶的密鑰拓瞪,請執(zhí)行以下過程:

  1. 在密鑰環(huán)文件中標(biāo)識用戶的密鑰。例如:

    cat ceph.client.admin.keyring
    
  2. 復(fù)制將使用已安裝的CephFS文件系統(tǒng)的用戶的密鑰面氓。它應(yīng)該看起來像這樣:

    [client.admin]
       key = AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==
    
  3. 打開文本編輯器沟堡。

  4. 將密鑰粘貼到空文件中矢空。它應(yīng)該看起來像這樣:

    AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==
    
  5. 使用用戶name作為屬性保存文件(例如,admin.secret)粥血。

  6. 確保文件權(quán)限適合用戶酿箭,但對其他用戶不可見。

內(nèi)核驅(qū)動程序

將CephFS掛載為內(nèi)核驅(qū)動程序缔御。

sudo mkdir /mnt/mycephfs
sudo mount -t ceph {ip-address-of-monitor}:6789:/ /mnt/mycephfs

Ceph存儲集群默認(rèn)使用身份驗(yàn)證妇蛀。指定用戶namesecretfile您在“ 創(chuàng)建加密文件”部分中創(chuàng)建的用戶。例如:

sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secretfile=admin.secret

注意: 在管理節(jié)點(diǎn)上安裝CephFS文件系統(tǒng)眷茁,而不是服務(wù)器節(jié)點(diǎn)上祈。

例如

sudo mount -t ceph 192.168.1.108:6789:/ /mnt/mycephfs -o name=admin,secretfile=admin.secret

用戶空間文件系統(tǒng)(FUSE)

將CephFS掛載為用戶空間(FUSE)中的文件系統(tǒng)。

yum install ceph-fuse -y
sudo mkdir ~/mycephfs
sudo ceph-fuse -m {ip-address-of-monitor}:6789 ~/mycephfs

Ceph存儲集群默認(rèn)使用身份驗(yàn)證籽腕。如果密鑰環(huán)不在默認(rèn)位置(即)纸俭,請指定密鑰環(huán)/etc/ceph

sudo ceph-fuse -k ./ceph.client.admin.keyring -m 5

例如

yum install ceph-fuse
sudo mkdir /mnt/mycephfs
ceph-fuse -m 192.168.1.108:6789 /mnt/mycephfs/

附加信息

有關(guān)其他信息,請參閱CephFS廊宪。CephFS不如Ceph Block Device和Ceph Object Storage穩(wěn)定女轿。 如果遇到問題,請參閱故障排除

對象存儲

安裝CEPH對象網(wǎng)關(guān)

  1. 執(zhí)行您的預(yù)安裝步驟client-node傅寡。如果你打算使用Civetweb的默認(rèn)端口7480北救,則必須使用開它 firewall-cmdiptables。有關(guān)更多信息珍策,請參閱操作前檢查清單

  2. 從管理服務(wù)器的工作目錄中屯耸,在client-node節(jié)點(diǎn)上安裝Ceph對象網(wǎng)關(guān)包蹭劈。例如:

    ceph-deploy install --rgw <client-node> [<client-node> ...]
    

創(chuàng)建CEPH對象網(wǎng)關(guān)實(shí)例

從管理服務(wù)器的工作目錄中,在上創(chuàng)建Ceph對象網(wǎng)關(guān)的實(shí)例client-node多矮。例如:

ceph-deploy rgw create <client-node>

網(wǎng)關(guān)運(yùn)行后,您應(yīng)該能夠在端口上訪問它7480塔逃。(例如前酿,http://client-node:7480)。

配置CEPH對象網(wǎng)關(guān)實(shí)例

  1. 要更改默認(rèn)端口(例如淹仑,更改為端口80)丙挽,請修改Ceph配置文件颜阐。

    [client.rgw.client-node]
    rgw_frontends = "civetweb port=80"
    

    注意: 確保port=<port-number>rgw_frontends鍵/值對之間不留空格凳怨。

  1. 要使新端口設(shè)置生效是鬼,請重新啟動Ceph對象網(wǎng)關(guān)。在Red Hat Enterprise Linux 7和Fedora上均蜜,運(yùn)行以下命令:

    sudo systemctl restart ceph-radosgw.service
    
  1. 應(yīng)該能夠進(jìn)行未經(jīng)身份驗(yàn)證的請求,并收到回復(fù)

    http://<client-node>:80
    

    應(yīng)該得到這樣的回應(yīng):

    <?xml version="1.0" encoding="UTF-8"?>
    <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
      <Owner>
        <ID>anonymous</ID>
        <DisplayName></DisplayName>
      </Owner>
        <Buckets>
      </Buckets>
    </ListAllMyBucketsResult>
    

    有關(guān)其他管理和API詳細(xì)信息篙顺,請參閱配置Ceph對象網(wǎng)關(guān)指南充择。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末椎麦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子铃剔,更是在濱河造成了極大的恐慌查刻,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件普气,死亡現(xiàn)場離奇詭異佃延,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)履肃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門尺棋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人成福,你說我怎么就攤上這事∨” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵像啼,是天一觀的道長埋合。 經(jīng)常有香客問我萄传,道長,這世上最難降的妖魔是什么振诬? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任衍菱,我火速辦了婚禮,結(jié)果婚禮上辫呻,老公的妹妹穿的比我還像新娘琼锋。我一直安慰自己,他們只是感情好缕坎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布谜叹。 她就那樣靜靜地躺著,像睡著了一般荷腊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上女仰,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天香府,我揣著相機(jī)與錄音企孩,去河邊找鬼。 笑死勿璃,一個胖子當(dāng)著我的面吹牛补疑,可吹牛的內(nèi)容都是我干的歹撒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼锹杈,長吁一口氣:“原來是場噩夢啊……” “哼迈着!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起咬清,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤奴潘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后掘剪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雀扶,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡愚墓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年浪册,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了岗照。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笆环。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡躁劣,死狀恐怖库菲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鳖擒,我是刑警寧澤烫止,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站期升,受9級特大地震影響互躬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吨铸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一诞吱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沼瘫,春花似錦咙俩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至呜呐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間洋机,已是汗流浹背洋魂。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刁标,地道東北人址晕。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓谨垃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親刘陶。 傳聞我的和親對象是個殘疾皇子匙隔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容