一、知识点:ceph集群部署使用
Ceph是一个PB,EB级别的分布式存储系统,可以提供文件存储,对象存储、和块存储。它可靠性高,易扩展,管理简便。
所有 Ceph 部署都始于 Ceph 存储集群。基于 RADOS 的 Ceph 对象存储集群包括两类守护进程:term:对象存储守护进程( OSD )把存储节点上的数据存储为对象;term:Ceph 监视器( MON )维护集群运行图的主拷贝。
一个 Ceph 集群可以包含数千个存储节点,最简系统至少需要一个监视器和两个 OSD 才能做到数据复制
Ceph块设置
Ceph 块设备是精简配置的、大小可调且将数据条带化存储到集群内的多个 OSD 。Ceph 块设备利用 RADOS 的多种能力,如快照、复制和一致性。Ceph 的 RADOS 块设备( RBD )使用内核模块或 librbd 库与 OSD 交互。
Ceph架构主要包含了:Rados集群,librados接口层,rgw、rbd和cephfs这三种存储服务。
Rados集群:Rados是Ceph系统的核心,包含了分布式集群管理和数据管理,集群的扩展性和高可用性是在这里体现的。主要的组件有monitor、osd和mds。Monitor是集群的关键服务,它保证了集群元数据的一致性和集群的可服务性。Osd是ceph的数据服务,它负责了业务数据的落盘,数据状态的监控,数据状态恢复,数据的迁移和恢复等流程。Mds是cephfs的元数据服务,维护文件系统的超级块信息,目录结构,文件信息等。一般如果不使用cephfs,是可以不用部署mds的。
librados接口层:统一封装的接口层,提供集群连接接口,pool创建接口,obj读写接口等,作为基础库提供给上层调用,比如librbd、libcephfs和librgw。第三方的应用可以直接调用librados对ceph做二次开发。
客户端:ceph客户端包括rbd、rgw、cephfs这三种类型,同时也包括librbd、libcephfs和librgw这些开发库。对外提供存储服务,比如rbd可以导出scsi块设备,cephfs可以mount到Linux主机上做为文件系统,也可以通过cifs/nfs导出为网络文件服务,rgw对外直接提供s3或者
不管你是想为云平台提供Ceph 对象存储和/或 Ceph 块设备,还是想部署一个 Ceph 文件系统或者把 Ceph 作为他用,所有 Ceph 存储集群的部署都始于部署一个个 Ceph 节点、网络和 Ceph 存储集群。 Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server )。
Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。
Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。
MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。
Ceph 把客户端数据保存为存储池内的对象。通过使用 CRUSH 算法, Ceph 可以计算出哪个归置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个 OSD 守护进程持有该归置组。 CRUSH 算法使得 Ceph 存储集群能够动态地伸缩、再均衡和修复。
二、实验环境:
7.10 还原至新系统,添加3块scsi100G硬盘,开机,ceph1
7.11 还原至新系统,添加3块scsi100G硬盘,开机,ceph2
7.12 还原至新系统,添加3块scsi100G硬盘,开机,ceph3
7.13 还原至新系统,添加3块scsi100G硬盘,开机,client




三、修改四台机器的主机名:




四、关闭sestatus和防火墙

五、做时间同步,同步阿里云时间


有IP证明时间同步成功

六、列出当前系统中所有磁盘及其分区的详细信息


七、编辑本地主机名到 IP 地址的映射的配置文件


八、在ceph1机器上用rsa的加密算法生成ssl的加密密钥
[root@ceph1 ~]# ssh-keygen -t rsa 用rsa的加密算法生成ssl的加密密钥

九、在ceph1机器上将ssl的公钥传递给ceph2、ceph3、client


[root@ceph1 ~]# ssh-copy-id root@ceph2 将ssl的公钥传递给ceph2
[root@ceph1 ~]# ssh-copy-id root@ceph3 将ssl的公钥传递给ceph3
[root@ceph1 ~]# ssh-copy-id root@client 将ssl的公钥传递给客户端
十、安装第三方的数据源、查询版本
[root@ceph1 ~]# dnf -y install epel-release 安装第三方的数据源
[root@ceph1 ~]# dnf search release-ceph 查询版本
Extra Packages for Enterprise Linux 9 - x86_64 1.2 MB/s | 23 MB 00:19
Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - 1.2 kB/s | 2.5 kB 00:02
================================= Name Matched: release-ceph ==================================
centos-release-ceph-pacific.noarch : Ceph Pacific packages from the CentOS Storage SIG 用这个,稳定
: repository
centos-release-ceph-quincy.noarch : Ceph Quincy packages from the CentOS Storage SIG repository
centos-release-ceph-reef.noarch : Ceph Reef packages from the CentOS Storage SIG repository
centos-release-ceph-squid.noarch : Ceph Squid packages from the CentOS Storage SIG repository 最新的
十一、安装ceph-pacific数据源、ceph
管理端、ceph通用软件
[root@ceph1 ~]# dnf -y install centos-release-ceph-pacific.noarch 安装ceph-pacific数据源
[root@ceph1 ~]# dnf -y install cephadm 安装ceph管理端
[root@ceph1 ~]# dnf -y install ceph-common 安装ceph通用软件
十二、安装ceph集群cephadm bootstrap,并把图形界面安装上
[root@ceph1 ~]# cephadm bootstrap --mon-ip 192.168.7.10 --allow-fqdn-hostname --initial-dashboard-user admin --initial-dashboard-password redhat --dashboard-password-noupdate
安装ceph集群cephadm bootstrap,并把图形界面安装上,192.168.7.10是监控节点IP,允许完整域名--allow-fqdn-hostname,图形界面的用户为adimn --initial-dashboard-user,图形界面的密码为redhat,图形界面密码不更新
Ceph Dashboard is now available at:
URL: https://ceph1:8443/ 生成图形界面的网址,用户,密码
User: admin
Password: redhat
Enabling client.admin keyring and conf on hosts with "admin" label
Enabling autotune for osd_memory_target
You can access the Ceph CLI as following in case of multi-cluster or non-default config:
sudo /usr/sbin/cephadm shell --fsid 01099852-15ae-11f0-a52f-000c29133fd0 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
Or, if you are only running a single cluster on this host:
sudo /usr/sbin/cephadm shell
Please consider enabling telemetry to help improve Ceph:
ceph telemetry on
For more information see:
https://docs.ceph.com/en/pacific/mgr/telemetry/
十三、将ceph集群的公钥复制到ceph2、ceph3、client
[root@ceph1 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph2 将ceph集群的公钥复制到ceph2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/etc/ceph/ceph.pub"
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@ceph2'" 将ceph2加入到集群中
and check to make sure that only the key(s) you wanted were added.
[root@ceph1 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph3 将ceph集群的公钥复制到ceph3
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/etc/ceph/ceph.pub"
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@ceph3'" 将ceph3加入到集群中
and check to make sure that only the key(s) you wanted were added.
[root@ceph1 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@client 将ceph集群的公钥复制到client
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/etc/ceph/ceph.pub"
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@client'" 将client加入到集群中
and check to make sure that only the key(s) you wanted were added.
十四、将ceph2、ceph3、client加入到集群中
[root@ceph1 ~]# ceph orch host add ceph2 192.168.7.11 将ceph2加入到集群中
Added host 'ceph2' with addr '192.168.7.11'
[root@ceph1 ~]# ceph orch host add ceph3 192.168.7.12 将ceph3加入到集群中
Added host 'ceph3' with addr '192.168.7.12'
[root@ceph1 ~]#
[root@ceph1 ~]# ceph orch host add client 192.168.7.13 将client加入到集群中
Added host 'client' with addr '192.168.7.13'
十五、给ceph打管理员的标签、给client打管理员的标签
[root@ceph1 ~]# ceph orch host label add ceph1 _admin 给ceph打管理员的标签
Added label _admin to host ceph1
[root@ceph1 ~]# ceph orch host label add client _admin 给client打管理员的标签
Added label _admin to host client
十六、将ceph配置文件、ceph客户端的密钥复制到客户端的ceph目录下
[root@ceph1 ~]# cd /etc/ceph/ 进入到ceph目录
[root@ceph1 ceph]# ls
ceph.client.admin.keyring ceph.conf ceph.pub rbdmap
[root@ceph1 ceph]# scp ceph.conf root@client:/etc/ceph 将ceph配置文件复制到客户端的ceph目录下
ceph.conf 100% 175 87.7KB/s 00:00
[root@ceph1 ceph]# scp ceph.client.admin.keyring root@client:/etc/ceph 将ceph客户端的密钥复制到客户端的ceph目录下
ceph.client.admin.keyring
十七、查看集群的主机
[root@ceph1 ~]# cd
[root@ceph1 ~]# ceph orch host ls 查看集群的主机
HOST ADDR LABELS STATUS
ceph1 192.168.7.10 _admin
ceph2 192.168.7.11
ceph3 192.168.7.12
client 192.168.7.13 _admin
4 hosts in cluster
十八、将ceph1、ceph2、ceph3应用监控,ceph1、ceph2、ceph3添加主引导记录mgr
[root@ceph1 ~]# ceph orch apply mon "ceph1,ceph2,ceph3" 将ceph1ceph2ceph3应用监控
Scheduled mon update...
[root@ceph1 ~]#
[root@ceph1 ~]# ceph orch apply mgr --placement="ceph1,ceph2,ceph3" 将ceph1ceph2ceph3添加主引导记录mgr
Scheduled mgr update...
[root@ceph1 ~]#
十九、分别将ceph1、ceph2、ceph3主机中的所有磁盘sdb、sdc、sdd添加osd(osd对象存储设备)
[root@ceph1 ~]# ceph orch daemon add osd ceph1:/dev/sdb 将ceph1主机中的所有磁盘sdb、sdc、sdd添加osd(osd对象存储设备)
Created osd(s) 0 on host 'ceph1'
[root@ceph1 ~]# ceph orch daemon add osd ceph1:/dev/sdc
Created osd(s) 1 on host 'ceph1'
[root@ceph1 ~]# ceph orch daemon add osd ceph1:/dev/sdd
Created osd(s) 2 on host 'ceph1'
[root@ceph1 ~]#
[root@ceph1 ~]# ceph orch daemon add osd ceph2:/dev/sdb 将ceph2主机中的所有磁盘sdb、sdc、sdd添加osd
Created osd(s) 3 on host 'ceph2'
[root@ceph1 ~]# ceph orch daemon add osd ceph2:/dev/sdc
Created osd(s) 4 on host 'ceph2'
[root@ceph1 ~]# ceph orch daemon add osd ceph2:/dev/sdd
Created osd(s) 5 on host 'ceph2'
[root@ceph1 ~]#
[root@ceph1 ~]# ceph orch daemon add osd ceph3:/dev/sdb 将ceph3主机中的所有磁盘sdb、sdc、sdd添加osd
Created osd(s) 6 on host 'ceph3'
[root@ceph1 ~]# ceph orch daemon add osd ceph3:/dev/sdc
Created osd(s) 7 on host 'ceph3'
[root@ceph1 ~]# ceph orch daemon add osd ceph3:/dev/sdd
Created osd(s) 8 on host 'ceph3'
二十、查看ceph集群设备
[root@ceph1 ~]# ceph orch device ls 查看ceph集群设备
HOST PATH TYPE DEVICE ID SIZE AVAILABLE REFRESHED REJECT REASONS
ceph1 /dev/sdb hdd 100G 60s ago Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
ceph1 /dev/sdc hdd 100G 60s ago Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
ceph1 /dev/sdd hdd 100G 60s ago Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
ceph1 /dev/sr0 hdd VMware_Virtual_IDE_CDROM_Drive_10000000000000000001 10.7G 60s ago Has a FileSystem
ceph2 /dev/sdb hdd 100G 61s ago Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
ceph2 /dev/sdc hdd 100G 61s ago Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
ceph2 /dev/sdd hdd 100G 61s ago Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
ceph2 /dev/sr0 hdd VMware_Virtual_IDE_CDROM_Drive_10000000000000000001 10.7G 61s ago Has a FileSystem
ceph3 /dev/sdb hdd 100G 9s ago Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
ceph3 /dev/sdc hdd 100G 9s ago Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
ceph3 /dev/sdd hdd 100G 9s ago Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
ceph3 /dev/sr0 hdd VMware_Virtual_IDE_CDROM_Drive_10000000000000000001 10.7G 9s ago Has a FileSystem
client /dev/sr0 hdd VMware_Virtual_IDE_CDROM_Drive_10000000000000000001 10.7G 88s ago Has a FileSystem
[root@ceph1 ~]#
二十一、ceph1上查看ceph集群信息
[root@ceph1 ~]# ceph -s 查看ceph集群信息
cluster:
id: 01099852-15ae-11f0-a52f-000c29133fd0
health: HEALTH_OK 看这个
services:
mon: 2 daemons, quorum ceph1,ceph2 (age 39m)
mgr: ceph1.isduku(active, since 49m), standbys: ceph2.udjukz
osd: 9 osds: 9 up (since 25m), 9 in (since 25m)
data:
pools: 1 pools, 1 pgs
objects: 0 objects, 0 B
usage: 2.6 GiB used, 897 GiB / 900 GiB avail
pgs: 1 active+clean
二十二、在client上安装ceph数据源、ceph通用软件
[root@client ~]# dnf -y install centos-release-ceph-pacific.noarch 安装ceph数据源
[root@client ~]# dnf -y install ceph-common 安装ceph通用软件
二十三、查看ceph集群信息
[root@client ~]# ceph -s
cluster:
id: 01099852-15ae-11f0-a52f-000c29133fd0
health: HEALTH_OK 健康警告OK
services:
mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 29s)
mgr: ceph1.isduku(active, since 52m), standbys: ceph2.udjukz, ceph3.orvclg
osd: 9 osds: 9 up (since 28m), 9 in (since 28m)
data:
pools: 1 pools, 1 pgs
objects: 0 objects, 0 B
usage: 2.6 GiB used, 897 GiB / 900 GiB avail
pgs: 1 active+clean
二十四、真实机上测试验证



