文章目錄
- 一、Ceph概述
- 1.1 Ceph介紹
- 1.2 Ceph各組件介紹
- 二、ceph集群部署實驗
- 2.1 配置Ceph安裝源
- 2.2 在xuegod63上安裝ceph-deploy管理工具
- 2.3 離線安裝ceph
- 2.4 安裝ceph monitor
- 2.5 部署osd服務
- 2.6 創建ceph檔案系統
- 2.7 部署mgr監控
- 三、多種Ceph掛載方式
- 3.1 內核驅動掛載Ceph檔案系統
- 3.2 使用ceph-fuse命令掛載Ceph檔案系統
- 四、Ceph配置dashboard Web監控界面
一、Ceph概述

1.1 Ceph介紹
Ceph是一個開源的分布式存盤系統,設計初衷是提供較好的性能、可靠性和可擴展性,它還是一個可靠、自動重均衡、自動恢復的分布式存盤系統,主要優點是分布式存盤,在存盤每一個資料時,都會通過計算得出該資料存盤的位置,盡量將資料分布均衡,不存在傳統的單點故障的問題,可以水平擴展,
ceph官方檔案 http://docs.ceph.org.cn/
ceph中文開源社區 http://ceph.org.cn/
資料大小和對應的存盤介紹關系:
| 大小 | 存盤介質 |
|---|---|
| 2T | 一塊硬碟 |
| 10T | 一塊硬碟 |
| 50T | raid0,1,5 / 存盤服務器 |
假如B站有20000T資料
20000T 一臺服務器不行, 一臺存盤服務器200T*100臺服務器, 使用的技術:ceph 分布
Ceph是一個開源的分布式檔案系統,因為它還支持塊存盤、物件存盤,所以很自然的被用做云計算框架openstack或cloudstack整個存盤后端,當然也可以單獨作為存盤,例如部署一套集群作為物件存盤、SAN存盤、NAS存盤等,

RADOS自身是一個完整的分布式物件存盤系統,它具有可靠、智能、分布式等特性,Ceph的高可靠、高可拓展、高性能、高自動化都是由這一層來提供的,用戶資料的存盤最終也都是通過這一層來進行存盤的,RADOS可以說就是Ceph的核心組件,
RADOS系統主要由兩部分組成,分別是OSD和Monitor,
基于RADOS層的上一層是LIBRADOS,LIBRADOS是一個庫,它允許應用程式通過訪問該庫來與RADOS系統進行互動,支持多種編程語言,比如C、C++、Python等,
基于LIBRADOS層開發的又可以看到有三層,分別是RADOSGW、RBD和CEPH FS,3個功能如下:
1、RADOSGW:RADOSGW是一套基于當前流行的RESTFUL協議的網關,并且兼容S3和Swift,
2、RBD:RBD通過Linux內核客戶端和QEMU/KVM驅動來提供一個分布式的塊設備,
3、CEPH FS:CEPH FS通過Linux內核客戶端和FUSE來提供一個兼容POSIX的檔案系統,就像NFS一樣,共享檔案,
ceph支持
1、物件存盤:即radosgw,兼容Swift和S3介面,通過rest api上傳、下載檔案,
2、塊存盤:即rbd,有kernel rbd和librbd兩種使用方式,支持快照、克隆,相當于一塊硬碟掛到本地,用法和用途和硬碟一樣,
3、檔案系統:posix介面,可以將ceph集群看做一個共享檔案系統掛載到本地,
Ceph相比其它分布式存盤有哪些優點?
1、統一存盤
雖然ceph底層是一個分布式檔案系統,但由于在上層開發了支持物件和塊的介面,所以在開源存盤軟體中,能夠一統江湖,
2、高擴展性
擴容方便、容量大,能夠管理上千臺服務器、EB級的容量,
3、可靠性強
支持多份強一致性副本,副本能夠垮主機、機架、機房、資料中心存放,所以安全可靠,存盤節點可以自動管理、自動修復,無單點故障,容錯性強,
4、高性能
因為是多個副本,因此在讀寫操作時候能夠做到高度并行化,理論上,節點越多,整個集群的IOPS和吞吐量越高,另外一點ceph客戶端讀寫資料直接與存盤設備(osd) 互動,
1.2 Ceph各組件介紹


Ceph的核心組件包括Client客戶端、MON監控服務、MDS元資料服務、OSD存盤服務,各組件功能如下:
1、Client客戶端:負責存盤協議的接入,節點負載均衡,
2、MON(Monitor)監控服務:監控整個集群Cluster map的狀態,維護集群的cluster MAP二進制表,保證集群資料的一致性,維護集群狀態的映射,包括監視器映射,管理器映射,OSD映射,MDS映射和CRUSH映射,這些映射是Ceph守護程式相互協調所需的關鍵群集狀態,監視器還負責管理守護程式和客戶端之間的身份驗證,通常至少需要三個監視器才能實作冗余和高可用性,
注:元資料:保存了子目錄和子檔案的名稱 及inode編號的資料,通過元資料,可以找到對應的真實的資料,及真實資料所在的服務器,有點像字典前面的索引或yum源的快取
3、MDS元資料服務(可選):是元資料的記憶體快取,為了加快元資料的訪問,保存了檔案系統的元資料(物件里保存了子目錄和子檔案的名稱和inode編號) ,還保存cephfs日志journal,日志是用來恢復mds里的元資料快取 ,重啟mds的時候會通過replay的方式從osd上加載之前快取的元資料,
在ceph中,元資料是存盤在osd節點中的,mds類似于元資料的記憶體快取服務器,加快訪問速度,
4、OSD(物件存盤守護程式):主要功能是存盤資料、復制資料、平衡資料、恢復資料,以及與通過檢查其他Ceph OSD守護程式的心跳來向Ceph監視器和管理器提供一些監視資訊,通常至少需要3個Ceph OSD才能實作冗余和高可用性,
Ceph要求必須是奇數個Monitor監控節點,一般建議至少是3個(如果是自己私下測驗玩玩的話,可以是1個,但是生產環境絕不建議1個)用于維護和監控整個集群的狀態,每個Monitor都有一個Cluster Map,只要有這個Map,就能夠清楚知道每個物件存盤在什么位置了,客戶端會先tcp連接到Monitor,從中獲取Cluster Map,并在客戶端進行計算,當知道物件的位置后,再直接與OSD通信(去中心化的思想),OSD節點平常會向Monitor節點發送簡單心跳,只有當添加、洗掉或者出現例外狀況時,才會自動上報資訊給Monitor,
MDS是可選的,只有需要使用Ceph FS的時候才需要配置MDS節點,在Ceph中,元資料也是存放在OSD中的,MDS只相當于元資料的快取服務器,
在Ceph中,如果要寫資料,只能向主OSD寫,然后再由主OSD向從OSD同步地寫,只有當從OSD回傳結果給主OSD后,主OSD才會向客戶端報告寫入完成的訊息,如果要讀資料,不會使用讀寫分離,而是也需要先向主OSD發請求,以保證資料的強一致性,

專業術語縮寫總結:
1、OSD全稱Object Storage Device,也就是負責回應客戶端請求回傳具體資料的行程,一個Ceph集群一般都有很多個OSD,
2、MDS全稱Ceph Metadata Server,是CephFS服務依賴的元資料服務,
3、PG全稱Placement Grouops,是一個邏輯的概念,一個PG包含多個OSD,引入PG這一層其實是為了更好的分配資料和定位資料,
4、RADOS全稱Reliable Autonomic Distributed Object Store,是Ceph集群的精華,用戶實作資料分配、Failover等集群操作,
5、RBD全稱RADOS block device,是Ceph對外提供的塊設備服務,
6、RGW全稱RADOS gateway,是Ceph對外提供的物件存盤服務,介面與S3和Swift兼容,
7、CephFS全稱Ceph File System,是Ceph對外提供的檔案系統服務,
二、ceph集群部署實驗
主機準備 (禁用selinux, 關閉防火墻)
xuegod63 192.168.1.63 osd,mds,mon,admin部署節點
xuegod62 192.168.1.62 osd,mds,mon
xuegod64 192.168.1.64 osd,mds,mon
xuegod64 192.168.1.64 client掛載節點,可以單獨一臺服務器
注:1、admin角色代表ceph部署管理節點,其他節點通過ceph部署結點進行安裝,
2、xuegod62、xuegod63、xuegod64 各添加一塊硬碟,每個磁盤20G,搭建ceph時會使用新加的磁盤,

編輯hosts檔案(所有節點需要操作):
(規范系統主機名添加hosts檔案實作集群主機名與主機名之間相互能夠決議(host 檔案添加主機名不要使用fqdn方式)可用hostnamectl set-hostname name設定
分別打開各節點的/etc/hosts檔案,加入這四個節點ip與名稱的對應關系
[root@xuegod63 ~]# vim /etc/hosts
192.168.1.63 xuegod63 xuegod63.cn
192.168.1.62 xuegod62 xuegod62.cn
192.168.1.64 xuegod64 xuegod64.cn
注:/etc/hosts中必須有xueogd63這種短域名,因為后期部署ceph時,ceph安裝程式默認只使用xueogd63域名,不使用xueogd63.cn
[root@xuegod63 ~]# scp /etc/hosts root@xuegod62:/etc/
[root@xuegod63 ~]# scp /etc/hosts root@xuegod64:/etc/
SSH免密碼登錄(所有節點需要操作)
在管理節點使用ssh-keygen 生成ssh keys 發布到各節點
[root@xuegod63 ~]# ssh-keygen #所有的輸入選項都直接回車生成,
[root@xuegod63 ~]# ssh-copy-id xuegod63
[root@xuegod63 ~]# ssh-copy-id xuegod62
[root@xuegod63 ~]# ssh-copy-id xuegod64
配置好網路源
3臺主機上,都更新Centos內核,Ceph的iscsi網關組件最低需要4.16版本的linux內核, 最好離線安裝
匯入Public Key
[root@xuegod63 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@xuegod62 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@xuegod64 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
安裝elrepo源,通過elrepo源安裝新內核
[root@xuegod63 ~]# yum install https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm -y
[root@xuegod62 ~]# yum install https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm -y
[root@xuegod64 ~]# yum install https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm -y
安裝新版本內核(ml主線版本,lt長期支持版本)
[root@xuegod63 ~]# yum --enablerepo=elrepo-kernel install kernel-lt-devel kernel-lt -y
時間可能會比較長(3分鐘左右)
[root@xuegod62 ~]# yum --enablerepo=elrepo-kernel install kernel-lt-devel kernel-lt -y
[root@xuegod64 ~]# yum --enablerepo=elrepo-kernel install kernel-lt-devel kernel-lt -y
查看安裝的內核版本:
[root@xuegod63 yum.repos.d]# rpm -qa | grep kernel-lt
kernel-lt-5.4.127-1.el7.elrepo.x86_64
kernel-lt-devel-5.4.127-1.el7.elrepo.x86_64
配置使用新版本內核啟動系統:
[root@xuegod63 ~]# grub2-set-default "kernel-lt-5.4.127-1"
[root@xuegod62 ~]# grub2-set-default "kernel-lt-5.4.127-1"
[root@xuegod64 ~]# grub2-set-default "kernel-lt-5.4.127-1"
[root@xuegod63 ~]# reboot
[root@xuegod62 ~]# reboot
[root@xuegod64 ~]# reboot
[root@xuegod63 ~]# uname -r
5.4.127-1.el7.elrepo.x86_64
同步時間:
使用互聯網上提供的NTP服務,把3臺主機時間保持一致(主機需要可以訪問互聯網)
統一安裝ntp
[root@xuegod62 ~]# yum install -y ntp
[root@xuegod63 ~]# yum install -y ntp
[root@xuegod64 ~]# yum install -y ntp
指定阿里云時間服務器,進行時間同步:
[root@xuegod63 ~]# ntpdate ntp.aliyun.com
[root@xuegod62 ~]# ntpdate ntp.aliyun.com
[root@xuegod64 ~]# ntpdate ntp.aliyun.com
添加計劃任務定期同步
[root@xuegod63 ~]# echo "*/30 * * * * ntpdate ntp.aliyun.com " >> /var/spool/cron/root
[root@xuegod62 ~]# crontab -l
[root@xuegod64 ~]# echo "*/30 * * * * ntpdate ntp.aliyun.com " >> /var/spool/cron/root
[root@xuegod62 ~]# echo "*/30 * * * * ntpdate ntp.aliyun.com " >> /var/spool/cron/root
2.1 配置Ceph安裝源
方法1:離線安裝
創建本地yum源
[root@xuegod63 ~]# rz

[root@xuegod63 ~]# tar xf ceph-14-v2.tar.gz -C /opt/
[root@xuegod63 ~]# tee /etc/yum.repos.d/ceph.repo << EOF
[ceph]
name=ceph
baseurl=file:///opt/ceph-14
enable=1
gpgcheck=0
EOF
復制離線yum倉庫至xuegod62
[root@xuegod63 ~]# scp -r /opt/ceph-14/ root@xuegod62.cn:/opt/
[root@xuegod63 ~]# scp /etc/yum.repos.d/ceph.repo root@xuegod62.cn:/etc/yum.repos.d/
復制離線yum倉庫至xuegod64
[root@xuegod63 ~]# scp -r /opt/ceph-14/ root@xuegod64.cn:/opt/
[root@xuegod63 ~]# scp /etc/yum.repos.d/ceph.repo root@xuegod64.cn:/etc/yum.repos.d/
方法2:配置在線ceph源
在線安裝
[root@xuegod63 ~]# vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
gpgcheck=0
priority=1
enable=1
[ceph-noarch]
name=cephnoarch
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
gpgcheck=0
priority=1
enable=1
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS/
gpgcheck=0
priority=1
enable=1
[root@xuegod63 ~]# scp /etc/yum.repos.d/ceph.repo root@xuegod62:/etc/yum.repos.d/
[root@xuegod63 ~]# scp /etc/yum.repos.d/ceph.repo root@xuegod64:/etc/yum.repos.d/
在線安裝必須安裝epel源
[root@xuegod63 ~]# yum install -y epel-release
2.2 在xuegod63上安裝ceph-deploy管理工具
[root@xuegod63 ~]# yum install python-setuptools ceph-deploy -y
開始部署新的集群
[root@xuegod63 ~]# mkdir /etc/ceph && cd /etc/ceph
使用ceph-deploy new 命令快速部署3個ceph結點
[root@xuegod63 ceph]# ceph-deploy new xuegod62.cn xuegod63.cn xuegod64.cn
[root@xuegod63 ceph]# ls #在當前目錄下生成,有3個節點的組態檔
ceph.conf # Ceph主組態檔; ceph-deploy-ceph.log #日志檔案 ;
ceph.mon.keyring #monitor密鑰
[root@xuegod63 ceph]# cat ceph.conf #查看組態檔
[global]
fsid = 31051ba5-3210-441f-ae10-be6f70859d30
mon_initial_members = xuegod62, xuegod63, xuegod64 #指定了后期要對哪些節點進行monitor初始化,注:這里寫的是短域名,后期自動部署時,也會使用短域名
mon_host = 192.168.1.62,192.168.1.63,192.168.1.64 #monitor 節點IP
查看monitor密鑰,后期客戶端掛載ceph時,通過這個密鑰來認證:
[root@xuegod63 ceph]# cat ceph.mon.keyring
[mon.]
key = AQAqgf5gAAAAABAAPJV2+TPknwAl5RY9bK6rAA==
caps mon = allow *
修改pool的副本數
pool概述:pool是ceph存盤資料時的邏輯磁區,它起到namespace的作用,其他分布式存盤系統,每個pool包含一定數量的PG,PG里的物件被映射到不同的OSD上,因此pool是分布到整個集群的,除了隔離資料,我們也可以分別對不同的POOL設定不同的優化策略,比如副本數、資料清洗次數、資料塊及物件大小等,
[root@xuegod63 ~]# vim /etc/ceph/ceph.conf #組態檔的默認副本數從3改成2,這樣只有兩個osd也能達到active+clean狀態,把下面這行加入到[global]段(可選配置)
[global]
fsid = 31051ba5-3210-441f-ae10-be6f70859d30
mon_initial_members = xuegod62, xuegod63, xuegod64
mon_host = 192.168.1.62,192.168.1.63,192.168.1.64
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd_pool_default_size = 2
mon clock drift allowed = 0.500
mon clock drift warn backoff = 10
注:
osd_pool_default_size = 2 #設定pool的副本數為2個
mon clock drift allowed #監視器之間,允許的時鐘漂移量,改為,0.5秒,默認值0.05秒
mon clock drift warn backoff #時鐘偏移警告的退避指數,默認值5
ceph對每個mon之間的時間同步延時默認要求在0.05s之間,這個時間有的時候太短了,所以如果ceph集群出現clock問題,就檢查ntp時間同步或者適當放寬這個誤差時間,
2.3 離線安裝ceph
在所有節點上安裝ceph和ceph-radosgw,RADOSGW是一套基于當前流行的RESTFUL協議的網關,并且兼容S3和Swift,
[root@xuegod62 ~]# yum -y install ceph ceph-radosgw
[root@xuegod63 ~]# yum -y install ceph ceph-radosgw
[root@xuegod64 ~]# yum -y install ceph ceph-radosgw
2.4 安裝ceph monitor
1、安裝ceph monitor
[root@xuegod63 ~]# cd /etc/ceph/
[root@xuegod63 ceph]# ceph-deploy mon create-initial #在3臺節點上安裝monitor,
[root@xuegod63 ceph]# ls *.keyring # keyring是各組件之間秘鑰檔案
注:初始化monitor成員,根據置檔案中mon initial members中的monitors,進行部署,直到它們形成表決團,然后搜集keys,并且在這個程序中報告monitor的狀態,

2、分發組態檔
(用ceph-deploy把組態檔和admin密鑰拷貝到所有節點,這樣每次執行Ceph命令列時就無需指定monitor地址和ceph.client.admin.keyring了)
[root@xuegod63 ceph]# ceph-deploy admin xuegod62.cn xuegod63.cn xuegod64.cn
將client.admin的key push到遠程主機,將ceph-admin節點下的client.admin keyring push到遠程主機/etc/ceph/下面,
查看復制過來的檔案:
[root@xuegod62 ~]# ls /etc/ceph/
ceph.client.admin.keyring ceph.conf rbdmap tmp8xZmUE
2.5 部署osd服務
使用 create 命令一次完成準備 OSD 、部署到 OSD 節點、并激活它,
將/dev/sdb磁盤準備為OSD,并把部署到相應的OSD節點上,
[root@xuegod63 ceph]# cd /etc/ceph/ #必須在這個目錄下執行
[root@xuegod63 ceph]# ceph-deploy osd create --data /dev/sdb xuegod62.cn
[root@xuegod63 ceph]# ceph-deploy osd create --data /dev/sdb xuegod63.cn
[root@xuegod63 ceph]# ceph-deploy osd create --data /dev/sdb xuegod64.cn
查看狀態:
[root@xuegod63 ceph]# ceph-deploy osd list xuegod63 xuegod62 xuegod64
2.6 創建ceph檔案系統
創建mds
[root@xuegod63 ceph]# ceph-deploy mds create xuegod62.cn xuegod63.cn xuegod64.cn
查看ceph當前檔案系統
[root@xuegod63 ceph]# ceph fs ls

一個cephfs至少要求兩個librados存盤池,一個為data,一個為metadata,當配置這兩個存盤池時,注意:
- 為metadata pool設定較高級別的副本級別,因為metadata的損壞可能導致整個檔案系統不用
- 建議,metadata pool使用低延時存盤,比如SSD,因為metadata會直接影響客戶端的回應速度,
創建pool存盤池
pg概述:PG,Placement Group,歸置組,
Placement [?ple?sm?nt] 安置 歸置
例1: 創建名為cephfs_data,pg_num為128的pool
[root@xuegod63 ceph]# ceph osd pool create cephfs_data 128
pool 'cephfs_data' created
例2:創建名為cephfs_metadata,pg_num為128的pool
[root@xuegod63 ceph]# ceph osd pool create cephfs_metadata 128
pool 'cephfs_metadata' created
注:通常在創建pool之前,需要覆寫默認的pg_num,官方推薦:
*少于 5 個 OSD 時可把 pg_num 設定為 128
*OSD 數量在 5 到 10 個時,可把 pg_num 設定為 512
*OSD 數量在 10 到 50 個時,可把 pg_num 設定為 4096
*OSD 數量大于 50 時,你得理解權衡方法、以及如何自己計算 pg_num 取值
*自己計算 pg_num 取值時可借助 pgcalc 工具,
創建檔案系統
創建好存盤池后,你就可以用 fs new 命令創建檔案系統了
[root@xuegod63 ceph]# ceph fs new xuegod cephfs_metadata cephfs_data
new fs with metadata pool 2 and data pool 1
注:metadata pool 編號為:2 ;data pool 編號為:1
其中:new后的fsname 可自定義
[root@xuegod63 ceph]# ceph fs ls #查看創建后的cephfs
name: xuegod, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
[root@xuegod63 ceph]# ceph mds stat #查看mds節點狀態
xuegod:1 {0=xuegod62.cn=up:active} 2 up:standby
active是活躍的,另1個是處于熱備份的狀態
2.7 部署mgr監控
安裝mgr用于后面我們配置dashboard監控,而且避免掛載ceph時可能會提示warring資訊,
[root@xuegod63 ceph]# ceph-deploy mgr create xuegod62.cn xuegod63.cn xuegod64.cn
安裝后查看集群狀態正常
[root@xuegod63 ceph]# ceph -s

三、多種Ceph掛載方式
3.1 內核驅動掛載Ceph檔案系統
1、查看存盤密鑰(如果沒有在管理節點使用ceph-deploy拷貝ceph組態檔)
[root@xuegod63 ~]# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
key = AQDNBQFca7UYGxAA6wOfoZR4JWdP5yM56S8DeQ==
2、將key對應的值復制下來保存到客戶端xueogd64的/etc/ceph/admin.secret中,如果已經有了,就不用復制了,
[root@xuegod64 ~]# vim /etc/ceph/admin.secret #寫入以下內容
AQDNBQFca7UYGxAA6wOfoZR4JWdP5yM56S8DeQ==
例1:將ceph掛載到/root/test2目錄下
[root@xuegod64 ceph]# mkdir /root/test2
[root@xuegod64 ceph]# mount -t ceph 192.168.1.63:6789:/ /root/test2/ -o name=admin,secretfile=/etc/ceph/admin.secret
[root@xuegod64 ceph]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
devtmpfs 970M 0 970M 0% /dev
tmpfs 982M 0 982M 0% /dev/shm
tmpfs 982M 8.8M 973M 1% /run
tmpfs 982M 0 982M 0% /sys/fs/cgroup
/dev/sda3 50G 2.0G 49G 4% /
/dev/sda1 497M 151M 347M 31% /boot
/dev/sr0 4.3G 4.3G 0 100% /mnt
tmpfs 197M 0 197M 0% /run/user/0
tmpfs 982M 52K 982M 1% /var/lib/ceph/osd/ceph-2
192.168.1.63:6789:/ 27G 0 27G 0% /root/test2

要取消掛載
[root@xuegod64 ceph]# umount /root/test2 # 先不卸載
3.2 使用ceph-fuse命令掛載Ceph檔案系統
登錄xuegod64,安裝ceph-fuse
[root@xuegod64 ceph]# yum install -y ceph-fuse
[root@xuegod64 ceph]# mkdir /root/xueogd #必須創建一個空目錄,不能直接掛載有檔案的目錄下
掛載
[root@xuegod64 ceph]# ceph-fuse -m 192.168.1.63:6789 /root/xueogd/

取消掛載
[root@xuegod64 ceph]# fusermount -u /root/xueogd/ #先不取消掛載
測驗兩種掛載,顯示的存盤大小為什么不一樣:
沒有寫入資料時查看大小:

寫入1G檔案
[root@xuegod64 ceph]# dd if=/dev/zero of=/root/test2/a.txt bs=1G count=1
[root@xuegod64 ceph]# df -h

檔案系統 容量 已用 可用 已用% 掛載點
ceph-fuse 60G 5.0G 55G 9% /root/xueogd
192.168.1.63:6789:/ 27G 1012M 26G 4% /root/test2
注:當寫入1G檔案時,fusermount查看大小,已用空間直接增加2G左右,mount查看大小只增加1G左右,
總結:由此可以看到mount掛載顯示是的用戶真實可以使用的磁盤空間大小, fusermount顯示的ceph
OSD一共的空間,不用戶可以使用的大小,我們設定了OSD存盤資料,存2個副本,60G/2=27G左右,因為MSD還要占用一些空間,
排錯匯總:
排錯1:如查要在新節點xuegod65.cn上掛載,需要將組態檔以及密鑰檔案拷貝至客戶端節點,
用ceph-deploy把組態檔和admin密鑰拷貝到新節點,這樣每次執行Ceph命令列時就無需指定monitor地址和ceph.client.admin.keyring了)
[root@xuegod63 ceph]# ceph-deploy admin xuegod65.cn #分發組態檔
不然會報以下錯:

排錯2:
[root@xuegod64 ceph]# ceph-fuse -m 192.168.1.63:6789 /opt #掛載,報以下錯

如果出現以該提示表示你需要使用-o nonempty進行掛載,原因是/opt目錄不是空的,因為之前掛載到/opt路徑中時會創建一個額外的目錄檔案夾,所以該提示是為了防止你掛載到存在資料的目錄中導致目錄中原有資料丟失,
解決方法2種
- 使用-o nonempty引數掛載
[root@xuegod64 ceph]# ceph-fuse -o nonempty -m 192.168.1.63:6789 /opt
- 洗掉目錄下的檔案
[root@xuegod64 ceph]# rm -rf /opt/ *
[root@xuegod64 ceph]# ceph-fuse -m 192.168.1.63:6789 /opt
- 取消掛載
[root@xuegod64 ceph]# fusermount -u /opt
四、Ceph配置dashboard Web監控界面
安裝mgr-dashboard插件(ceph節點都要安裝)
[root@xuegod62 ceph]# yum install -y ceph-mgr-dashboard
[root@xuegod63 ceph]# yum install -y ceph-mgr-dashboard
[root@xuegod64 ceph]# yum install -y ceph-mgr-dashboard
注:所有節點上必須都安裝ceph-mgr-dashboard,不然后無法啟動web監控界面,會報以下錯:

啟用dashboard插件
[root@xuegod63 ceph]# ceph mgr module enable dashboard
創建自簽名證書
[root@xuegod63 ceph]# ceph dashboard create-self-signed-cert
創建管理員用戶,用戶名:xuegod 密碼:123456
[root@xuegod63 ceph]# ceph dashboard set-login-credentials xuegod 123456
******************************************************************
*** WARNING: this command is deprecated. ***
*** Please use the ac-user-* related commands to manage users. ***
******************************************************************
Username and password updated
[root@xuegod63 ceph]# ceph mgr services
{
"dashboard": "https://xuegod63.cn:8443/"
}
注:這里的訪問地址不是固定的,可能是xuegod62.cn:8443,mgr services中提示的dashboard訪問地址為準,
可以通過ip地址訪問: https://192.168.1.62:8443/



拷貝測驗資料
[root@xuegod64 ceph]# mount /dev/sr0 /mnt/
[root@xuegod64 ceph]# ceph-fuse -m 192.168.1.63:6789 /root/xueogd/
[root@xuegod64 ceph]# cp -r /mnt/Packages/ /root/xueogd/
注:這里拷貝1分鐘左右就Ctrl+C取消,否則會占用過多的磁盤空間,
監控界面中Filesystems中可以看到檔案系統的詳細資訊,

這個圖會實時的顯示
看到這里是否對Ceph分布式存盤架構有所了解了呢?
想要獲取文章中的學習視頻+筆記和原始碼的
添加我們的小姐姐就可獲取哦!

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/291233.html
標籤:其他
下一篇:??「 選擇排序 」??
