1. 程式人生 > >Ceph RBD CephFS 儲存

Ceph RBD CephFS 儲存

Ceph RBD  CephFS 儲存

環境準備: (這裡只做基礎測試, ceph-manager , ceph-mon, ceph-osd 一共三臺)

10.6.0.140 = ceph-manager

10.6.0.187 = ceph-mon-1

10.6.0.188 = ceph-osd-1

10.6.0.94 = node-94

注: ceph 對時間要求很嚴格, 一定要同步所有的伺服器時間


一、在 manager 上面修改 /etc/hosts :

10.6.0.187 ceph-mon-1
10.6.0.188 ceph-osd-1
10.6.0.94 node-94


二、並修改各伺服器上面的 hostname (說明:ceph-deploy工具都是通過主機名與其他節點通訊)

hostnamectl --static set-hostname ceph-manager
hostnamectl --static set-hostname ceph-mon-1
hostnamectl --static set-hostname ceph-osd-1
hostnamectl --static set-hostname node-94


三、配置manager節點與其他節點ssh key 訪問

[[email protected] ~]# ssh-keygen


將key 傳送到各節點中

[[email protected] ~]#ssh-copy-id ceph-mon-1
[

[email protected] ~]#ssh-copy-id ceph-osd-1


四、在manager節點安裝 ceph-deploy

[[email protected] ~]#yum -y install centos-release-ceph
[[email protected] ~]#yum makecache
[[email protected] ~]#yum -y install ceph-deploy ntpdate

在其他各節點安裝 ceph 的yum源

[[email protected] ~]# yum -y install centos-release-ceph
[

[email protected] ~]# yum makecache


[[email protected] ~]# yum -y install centos-release-ceph
[[email protected] ~]# yum makecache

五、配置ceph叢集

建立ceph 目錄
[[email protected] ~]#mkdir -p /etc/ceph
[[email protected] ~]#cd /etc/ceph

建立監控節點:
[[email protected] /etc/ceph]#ceph-deploy new ceph-mon-1

執行完畢會生成 ceph.conf ceph.log ceph.mon.keyring 三個檔案

編輯 ceph.conf 增加 osd 節點數量
在最後增加:
osd pool default size = 1


使用ceph-deploy在所有機器安裝ceph

[[email protected] /etc/ceph]# ceph-deploy install ceph-manager ceph-mon-1 ceph-osd-1

如果出現錯誤,也可以到各節點中直接 yum -y install ceph ceph-radosgw 進行安裝


初始化監控節點

[[email protected] /etc/ceph]# ceph-deploy mon create-initial

osd 節點建立儲存空間

[[email protected] ~]# mkdir -p /opt/osd1


在管理節點上啟動 並 啟用 osd 程序

[[email protected] ~]# ceph-deploy osd prepare ceph-osd-1:/opt/osd1
[[email protected] ~]# ceph-deploy osd activate ceph-osd-1:/opt/osd1


把管理節點的配置檔案與keyring同步至其它節點

[[email protected] ~]# ceph-deploy admin ceph-mon-1 ceph-osd-1


檢視叢集健康狀態 (HEALTH_OK 表示OK)

[[email protected] ~]# ceph health
HEALTH_OK


客戶端 掛載: ceph 有多種掛載方式, rbd 塊裝置對映, cephfs 掛載 等

注:
在生產環境中,客戶端應該對應pool的許可權,而不是admin 許可權


[[email protected] ~]# ssh-copy-id node-94

客戶端安裝ceph
[[email protected] ~]# ceph-deploy install node-94


或者 登陸 node-94 執行 yum -y install ceph ceph-radosgw

如果ssh 非22埠,會報錯 可使用 scp 傳

scp -P埠 ceph.conf node-94:/etc/ceph/
scp -P埠 ceph.client.admin.keyring node-94:/etc/ceph/


建立一個pool
[[email protected] ~]# ceph osd pool create press 100
pool 'press' created


設定pool 的pgp_num
[[email protected] ~]# ceph osd pool set press pgp_num 100


檢視建立的pool
[[email protected] ~]# ceph osd lspools
0 rbd,1 press,


設定副本數為2 (osd 必須要大於或者等於副本數,否則報錯, 千萬注意)
[[email protected] ~]# ceph osd pool set press size 2


建立一個100G 名為 image 映象
[[email protected] ~]# rbd create -p press --size 100000 image


檢視一下映象:
[[email protected] ~]# rbd -p press info image
rbd image 'image':
size 100000 MB in 25000 objects
order 22 (4096 kB objects)
block_name_prefix: rb.0.104b.74b0dc51
format: 1

客戶端塊儲存掛載:
在node-94 上面 map 映象
[[email protected] ~]# rbd -p press map image
/dev/rbd0


格式化 image
[[email protected] ~]# mkfs.xfs /dev/rbd0

建立掛載目錄
[[email protected] ~]# mkdir /opt/rbd


掛載 rbd
[[email protected] ~]# mount /dev/rbd0 /opt/rbd

[[email protected] ~]# time dd if=/dev/zero of=haha bs=1M count=1000

取消 map 映象
[[email protected] ~]# umount /opt/rbd
[[email protected] ~]# rbd unmap /dev/rbd0

客戶端 cephFS 檔案系統 (cephFS 必須要有2個osd 才能執行,請注意):

使用 cephFS 叢集中必須有 mds 服務

建立 mds 服務 (由於機器有限就在 mon 的伺服器上面 建立 mds 服務)
[[email protected] ~]# ceph-deploy mds create ceph-mon-1

建立2個pool 做為檔案系統的data 與 metadata

[[email protected]ph-manager ~]# ceph osd pool create cephfs_data 99
pool 'cephfs_data' created


[[email protected] ~]# ceph osd pool create cephfs_metadata 99
pool 'cephfs_metadata' created


建立 檔案系統:
[[email protected] ~]# ceph fs new jicki cephfs_metadata cephfs_data
new fs with metadata pool 6 and data pool 5


檢視所有檔案系統:
[[email protected] ~]# ceph fs ls
name: jicki, metadata pool: cephfs_metadata, data pools: [cephfs_data ]


刪除一個檔案系統
[[email protected] ~]# ceph fs rm jicki --yes-i-really-mean-it

客戶端掛載 cephFS

安裝 ceph-fuse:
[[email protected] ~]# yum install ceph-fuse -y

建立掛載目錄:
[[email protected] ~]# mkdir -p /opt/jicki
[[email protected] ~]# ceph-fuse /opt/jicki
[[email protected] ~]# df -h|grep ceph
ceph-fuse 1.6T 25G 1.6T 2% /opt/jicki

基於 docker ceph-rbd-volume-plugin


六、ceph 相關命令:


一、manager 篇

檢視實時的執行狀態資訊:
[[email protected] ~]# ceph -w


檢視狀態資訊:
[[email protected] ~]# ceph -s


檢視儲存空間:
[[email protected] ~]# ceph df


刪除某個節點的所有的ceph資料包:
[[email protected] ~]# ceph-deploy purge ceph-mon-1
[[email protected] ~]# ceph-deploy purgedata ceph-mon-1


為ceph建立一個admin使用者併為admin使用者建立一個金鑰,把金鑰儲存到/etc/ceph目錄下:
[[email protected] ~]# ceph auth get-or-create client.admin mds 'allow' osd 'allow *' mon 'allow *' -o /etc/ceph/ceph.client.admin.keyring


為osd.ceph-osd-1建立一個使用者並建立一個key
[[email protected] ~]# ceph auth get-or-create osd.ceph-osd-1 mon 'allow rwx' osd 'allow *' -o /etc/ceph/keyring


為mds.ceph-mon-1建立一個使用者並建立一個key
[[email protected] ~]# ceph auth get-or-create mds.ceph-mon-1 mon 'allow rwx' osd 'allow *' mds 'allow *' -o /etc/ceph/keyring


檢視ceph叢集中的認證使用者及相關的key
[[email protected] ~]# ceph auth list


刪除叢集中的一個認證使用者
[[email protected] ~]# ceph auth del osd.0


檢視叢集健康狀態詳細資訊
[[email protected] ~]# ceph health detail


檢視ceph log日誌所在的目錄
[[email protected] ~]# ceph-conf --name mds.ceph-manager --show-config-value log_file

二、mon 篇

檢視mon的狀態資訊
[[email protected] ~]# ceph mon stat


檢視mon的選舉狀態
[[email protected] ~]# ceph quorum_status --format json-pretty


看mon的對映資訊
[[email protected] ~]# ceph mon dump

刪除一個mon節點
[[email protected] ~]# ceph mon remove ceph-mon-1


獲得一個正在執行的mon map,並儲存在mon-1-map.txt檔案中
[[email protected] ~]# ceph mon getmap -o mon-1-map.txt


檢視mon-1-map.txt
[[email protected] ~]# monmaptool --print mon-1-map.txt


把上面的mon map注入新加入的節點
[[email protected] ~]# ceph-mon -i ceph-mon-3 --inject-monmap mon-1-map.txt


檢視mon的socket
[[email protected] ~]# ceph-conf --name mon.ceph-mon-1 --show-config-value admin_socket


檢視mon的詳細狀態
[[email protected] ~]# ceph daemon mon.ceph-mon-1 mon_status


刪除一個mon節點
[[email protected] ~]# ceph mon remove ceph-mon-1


三、msd 篇

檢視msd狀態
[[email protected] ~]# ceph mds dump


刪除一個mds節點
[[email protected] ~]# ceph mds rm 0 mds.ceph-mds-1

四、osd 篇

檢視ceph osd執行狀態
[[email protected] ~]# ceph osd stat


檢視osd對映資訊
[[email protected] ~]# ceph osd stat


檢視osd的目錄樹
[[email protected] ~]# ceph osd tree


down掉一個osd硬碟 (ceph osd tree 可檢視osd 的硬碟資訊,下面為down osd.0 節點)
[[email protected]eph-manager ~]# ceph osd down 0


在叢集中刪除一個osd硬碟
[[email protected] ~]# ceph osd rm 0


在叢集中刪除一個osd 硬碟 並 crush map 清除map資訊
[[email protected] ~]# ceph osd crush rm osd.0


在叢集中刪除一個osd的host節點
[[email protected] ~]# ceph osd crush rm ceph-osd-1


檢視最大osd的個數
[[email protected] ~]# ceph osd getmaxosd


設定最大的osd的個數(當擴大osd節點的時候必須擴大這個值)
[[email protected] ~]# ceph osd setmaxosd 10


設定osd crush的權重 ceph osd crush set <ID> <WEIGHT> <NAME> ID WEIGHT NAME 使用 ceph osd tree 檢視
[[email protected] ~]# ceph osd crush set 1 3.0 host=ceph-osd-1


設定osd 的權重 ceph osd reweight <ID> <REWEIGHT>
[[email protected] ~]# ceph osd reweight 1 0.5


把一個osd節點踢出叢集
[[email protected] ~]# ceph osd out osd.1


把踢出的osd重新加入叢集
[[email protected] ~]# ceph osd in osd.1


暫停osd (暫停後整個叢集不再接收資料)
[[email protected] ~]# ceph osd pause

再次開啟osd (開啟後再次接收資料)
[[email protected] ~]# ceph osd unpause

五、 PG 篇

檢視pg組的對映資訊
[[email protected] ~]# ceph pg dump |more

檢視一個PG的map
[[email protected] ~]# ceph pg map 0.3f


檢視PG狀態
[[email protected] ~]# ceph pg stat


查詢一個pg的詳細資訊
[[email protected] ~]# ceph pg 0.39 query

檢視pg中stuck的狀態 (如有非正常pg會顯示)
[[email protected] ~]# ceph pg dump_stuck unclean
[[email protected] ~]# ceph pg dump_stuck inactive
[[email protected] ~]# ceph pg dump_stuck stale

顯示一個叢集中的所有的pg統計
[[email protected] ~]# ceph pg dump --format plain|more

恢復一個丟失的pg (og-id 為丟失的pg, 使用ceph pg dump_stuck inactive|unclean|stale 查詢)
[[email protected] ~]# ceph pg {pg-id} mark_unfound_lost revert


六、pool 篇

檢視ceph叢集中的pool數量
[[email protected] ~]# ceph osd lspools


檢視 PG組 號碼:
[[email protected] ~]# ceph osd pool get rbd pg_num


在ceph叢集中建立一個pool
[[email protected] ~]# ceph osd pool create test 100 (名稱為 test, 100為PG組號碼)


為一個ceph pool配置配額
[[email protected] ~]# ceph osd pool set-quota test max_objects 10000


顯示所有的pool
[[email protected] ~]# ceph osd pool ls


在叢集中刪除一個pool
[[email protected] ~]# ceph osd pool delete test test --yes-i-really-really-mean-it

顯示叢集中pool的詳細資訊
[[email protected] ~]# rados df


給一個pool建立一個快照
[[email protected] ~]# ceph osd pool mksnap test test-snap


刪除pool的快照
[[email protected] ~]# ceph osd pool rmsnap test test-snap


檢視data池的pg數量
[[email protected] ~]# ceph osd pool get test pg_num


設定data池的最大儲存空間(預設是1T, 1T = 1000000000000, 如下為100T)
[[email protected] ~]# ceph osd pool set test target_max_bytes 100000000000000


設定data池的副本數
[[email protected] ~]# ceph osd pool set test size 3


設定data池能接受寫操作的最小副本為2
[[email protected] ~]# ceph osd pool set test min_size 2

檢視叢集中所有pool的副本尺寸
[[email protected] ~]# ceph osd dump | grep 'replicated size'


設定一個pool的pg數量
[[email protected] ~]# ceph osd pool set test pg_num 100


設定一個pool的pgp數量
[[email protected] ~]# ceph osd pool set test pgp_num 100


檢視ceph pool中的ceph object (volumes 為pool名稱)(這裡的object是以塊形式儲存的)
[[email protected] ~]# rados ls -p volumes | more


建立一個物件object
[[email protected] ~]# rados create test-object -p test

檢視object
[[email protected] ~]# rados -p test ls


刪除一個物件
[[email protected] ~]# rados rm test-object -p test


檢視ceph中一個pool裡的所有映象 (volumes 為pool名稱)
[[email protected] ~]# rbd ls volumes

在test池中建立一個命名為images的1000M的映象
[[email protected] ~]# rbd create -p test --size 1000 images
檢視剛建立的映象資訊
[[email protected] ~]# rbd -p test info images

刪除一個映象
[[email protected] ~]# rbd rm -p test images


調整一個映象的尺寸
[[email protected] ~]# rbd resize -p test --size 2000 images


給映象建立一個快照 (池/映象名@快照名)
[[email protected] ~]# rbd snap create test/[email protected]


刪除一個映象檔案的一個快照
[[email protected] ~]# rbd snap rm 快照池/快照映象檔案@具體快照

如果刪除快照提示保護,需要先刪除保護
[[email protected] ~]# rbd snap unprotect 快照池/快照映象檔案@具體快照


刪除一個映象檔案的所有快照
[[email protected] ~]# rbd snap purge -p 快照池/快照映象檔案


把ceph pool中的一個映象匯出
[[email protected] ~]# rbd export -p images --image <具體映象id> /tmp/images.img

相關推薦

Ceph RBD CephFS 儲存

Ceph RBD  CephFS 儲存 環境準備: (這裡只做基礎測試, ceph-manager , ceph-mon, ceph-osd 一共三臺) 10.6.0.140 = ceph-manager 10.6.0.187 = ceph-mon-1 10.6.0.188 = ceph-osd-1

初試 Kubernetes 叢集使用 Ceph RBD儲存

目錄 Kubernetes PersistentVolumes 介紹 環境、軟體準備 單節點使用 Ceph RBD Kubernetes PV & PVC 方式使用 Ceph RBD 測試單節點以及多節點使用 Ceph RBD 1、Kube

kubernetes掛載ceph rbdcephfs的方法

tor dwr fst policy 使用 cap common k8s == [toc] k8s掛載Ceph RBD k8s掛載Ceph RBD有兩種方式,一種是傳統的PV&PVC的方式,也就是說需要管理員先預先創建好相關PV和PVC,然後對應的deploymen

Cephfs & Ceph RBD 在k8s中的適用場景討論及資料庫效能壓測

前言 測試發現cephfs的小檔案讀寫效能一般,且寫入延遲偏高,效能不甚滿意,但是滿足於日常應用環境的讀寫是沒有問題的,但是在面對資料庫的應用場景,是否能滿足效能要求呢?本篇主要結合kubernetes,針對資料庫應用場景,對cephfs 和 ceph rbd

使用ceph的檔案儲存CephFS

Ceph FS是一個支援POSIX介面的檔案系統,它使用 Ceph 儲存叢集來儲存資料。檔案系統對於客戶端來說可以方便的掛載到本地使用。Ceph FS構建在RADOS之上,繼承RADOS的容錯性和擴充套件性,支援冗餘副本和資料高可靠性。 注意:當前, Ceph

使用ceph的塊儲存rbd

CEPH 塊裝置 塊是一個位元組序列(例如,一個 512 位元組的資料塊)。基於塊的儲存介面是最常見的儲存資料方法,它們基於旋轉介質,像硬碟、 CD 、軟盤、甚至傳統的 9 磁軌磁帶。無處不在的塊裝置介面使虛擬塊裝置成為與 Ceph 這樣的海量儲存系統互動的理

k8s(十二)、分散式儲存Ceph RBD使用

前言 Ceph儲存有三種儲存介面,分別是: 物件儲存 Ceph Object Gateway 塊裝置 RBD 檔案系統 CEPHFS Kubernetes支援後兩種儲存介面,支援的接入模式如下圖: 在本篇將測試使用ceph rbd作持久化儲存後端 RBD建立

基於 Ceph RBD 實現 Docker 叢集的分散式儲存

以 Docker 為代表的容器技術在雲端計算領域正扮演著越來越重要的角色,甚至一度被認為是虛擬化技術的替代品。企業中對於有狀態的容器,往往需要將資料儲存在額外的儲存空間。Docker 引入了 Volume 機制,能夠將永久資料獨立於容器之外。正式的生產環境,Docker 通常

掛載cephrbd儲存作為本地磁碟塊

Ceph儲存作為塊儲存時,有時候需要將其掛載到本地作為檔案系統使用,為了滿足這樣的需求,請看下面的操作: 在這裡我使用本地的節點來當作客戶端,就是使用我的ceph叢集裡面的192.168.1.220(mon節點)掛載ceph的塊儲存,下面所有的操作都是在我的m

rancher2 掛載ceph-rbd

使用 base64 star secret tor png monitor yml 加密 一-創建ceph-secret.yml文件 RBD的KEY查看 ceph auth list 復制 client.admin 的key 並使用base64加密 創建cep

KVM+ceph-RBD 快照創建問題

ceph-RBD+KVM 快照創建失敗KVM+ceph-RBD 快照創建問題 環境描述ceph集群,Luminous 12.2.5版本;執行操作1.劃分存儲池cloud,指定存儲池rbd模式,創建映像bak-image;2.KVM宿主機,創建虛擬機centos7,修改配置文件通過ceph官網文檔介紹libvi

ceph-rbd kvm 刪除數據後集群空間不釋放

fst images 參考 虛擬機 存儲池 str 解決 有效 .com 環境描述ceph版本:luminous 12.2.5OSD三節點,monitor三節點,同時運行在三臺物理服務器;KVM宿主機運行多臺虛擬機,其中一臺掛載ceph-rbd塊存儲; KVM調用ceph-

ceph rbd 入門

ice dev alt 查看 pre ima 對象 一個 sta 1.一個現成的ceph cluster 參考之前寫的ceph-deploy 部署ceph cluster 2.配置client與ceph cluster對接 在ceph cluster的管理節點上安裝

ceph(2)--Ceph RBD 接口和工具

test length rem handle qemu-kvm 源文件 經典 ise ets 本系列文章會深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安裝和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和邏輯結構 (4)Cep

Ceph mimic 版本- 儲存叢集搭建Centos7

一、設定Linux主機基本配置: #為每臺主機配置主機名稱 hostnamectl set-hostname "主機名" [root@node0 ~]#cat << EOF >> /etc/hosts 192.168.10.14 ceph-deploy 19

Linux叢集儲存——day5——Ceph叢集上部署Linux系統、Ceph檔案系統、Ceph的物件儲存系統

Ceph叢集儲存的應用    紅帽的Linux已經把Ceph整合到核心中了,可以直接把作業系統裝在分佈儲存檔案中。     將虛擬機器的Linux作業系統安裝在Ceph叢集中:     0. 如同Ceph叢集進行初期環境部署。

大話Ceph--RBD那點事兒

引言 這篇文章主要介紹了RBD在Ceph底層的儲存方式,解釋了RBD的實際佔用容量和RBD大小的關係,用幾個檔案的例子演示了檔案在RBD(更恰當的是xfs)中的儲存位置,最後組裝了一個RBD,給出了一些FAQ。 RBD是什麼 RBD : Ceph’s RADOS Bl

rexray docker ceph-rbd 實現無狀態資料庫docker容器實戰

1.前提條件 1.1有了一個可用的ceph 叢集 其中mon1節點的IP 10.20.4.1 1.2 有2臺虛擬機器可以用於驗證測試,虛擬機器能上網,DNS設定正常。 關於如何建立ceph叢集,請參考文章:https://blog.csdn.net/happyfreeangel/arti

雲端資料儲存---Ceph是統一儲存解決方案

Ceph是統一儲存解決方案 從儲存供應商的角度來看,統一儲存被定義為從單一平臺訪問基於檔案的網路連線儲存(NAS)和基於塊的儲存區域網路(SAN)。 NAS和SAN技術在20世紀90年代末和2000年初開始流行,但是當我們展望未來時,我們確信傳統的專有NAS和SAN技術可以在50年後管理儲存

在Devstack中使能Cinder的Ceph RBD driver

假設已經有了一個DevStack和一個Ceph叢集,如何使DevStack上的Cinder能用上Ceph作為其儲存後端呢? 以下步驟如未做特殊說明,都是在DevStack虛機上操作。 1. 使該DevStack VM變成一個Ceph client 1.1 安裝 ceph-comm