ceph mimic版本 部署安装

1. 基本概念

ceph 的组件多采用插件的机制,包括后端存储,KV 数据库,磁盘管理等。各组件之间可以灵活的组合。

基于后端存储包括 filestore, kvstore,memstore 和 bluestore。 Ceph Luminous 引用了 bluestore 的存储类型,不依赖文件系统,直接管理物理磁盘,相比filestore 在 io 写入的时候路径更短,也避免了二次写入的问题,性能会更加好。

KV 存储主要包括LevelDB, MemDB 和新的 RocksDB。RocksDB 是 Facebook 基于 LevelDB 开发的 key-value 数据,并对闪存(flash)有更友好的优化。

RocksDB 原本只基于文件系统的。但是得益于它本身的灵活性,bluestore 实现了一套 RocksDB 的 Env 接口,还在BlueStore 上面实现了一套 BlueFS 的接口与BluestoreEnv 对接。使得 RocksDB 可以存储在 BlueStore 上面。

后端存储使用 bluestore 时,wal 是 RocksDB 的write-ahead log,提前写的日志,  相当于之前的 journal 数据,db 是 RocksDB 的metadata 信息。在磁盘选择原则是 block.wal > block.db > block

如果所有的数据都在单块盘上,那是没有必要指定 wal &db 的大小的。

如果 wal & db 是在不同的盘上,由于 wal/db 一般都会分的比较小,是有满的可能性的。如果满了,这些数据会迁移到下一个快的盘上(wal - db - main)。所以最少不会因为数据满了,而造成无法写入
 
使用混合机械和固态硬盘设置时,block.db为Bluestore创建足够大的逻辑卷非常重要 。通常,block.db应该具有 尽可能大的逻辑卷。

建议block.db尺寸不小于4% block。例如,如果block大小为1TB,则block.db 不应小于40GB。

如果不使用快速和慢速设备的混合,则不需要为block.db(或block.wal)创建单独的逻辑卷。Bluestore将在空间内自动管理这些内容block


使用bluestore 时的 osd 分区
 
如果是使用的 ceph-disk 管理磁盘,他会建立一个 100MB 的分区,来存放 keyring / whoami 这些信息,这和之前的逻辑是一样的。

如果使用 ceph-volume 管理磁盘,/var/lib/ceph/osd/ceph-0 分区会从tmpfs 挂载过来(也就是内存)

Ceph Monitor(ceph-mon)维护集群状态的映射,包括监视器映射,管理器映射,OSD映射和CRUSH映射。这些映射是Ceph守护进程相互协调所需的关键集群状态。监视器还负责管理守护进程和客户端之间的身份验证。冗余和高可用性通常至少需要三个监视器。


Ceph Manager守护程序(ceph-mgr)负责跟踪运行时指标和Ceph集群的当前状态,包括存储利用率,当前性能指标和系统负载。Ceph Manager守护进程还托管基于python的插件来管理和公开Ceph集群信息,包括基于Web的仪表板和REST API。高可用性通常至少需要两名经理。

Ceph OSD(对象存储守护进程 ceph-osd)存储数据,处理数据复制,恢复,重新平衡,并通过检查其他Ceph OSD守护进程来获取心跳,为Ceph监视器和管理器提供一些监视信息。冗余和高可用性通常至少需要3个Ceph OSD。


Ceph元数据服务器(MDS ceph-mds)代表Ceph文件系统存储元数据(即,Ceph块设备和Ceph对象存储不使用MDS)。Ceph的元数据服务器允许POSIX文件系统的用户来执行基本的命令(如 ls,find没有放置在一个Ceph存储集群的巨大负担,等等)。
扫描二维码关注公众号,回复: 5822396 查看本文章

2. 环境准备

 

3、 统一主机hosts

[root@monitor1 ceph-cluster]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.230.21 monitor1
172.16.230.22 monitor2
172.16.230.23 monitor3
172.16.230.24 node1
172.16.230.25 node2
172.16.230.26 node3
172.16.230.27 node4
172.16.230.28 node5

for i in {22..28}; do scp /etc/hosts [email protected].$i:/etc/; done

4. 时间同步

[root@master1 ~]# crontab -l
#Ansible: 每隔5分钟同步时间服务器
*/5 * * * *  /usr/sbin/ntpdate 192.168.20.220

5. ssh密码打通

6. 修改visudo

找到 Defaults requiretty 选项,直接注释掉,这样 ceph-deploy 就可以用之前创建的用户(创建部署 Ceph 的用户 )连接了。

7. 设置阿里yum源

[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.aliyun.com/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=https://mirrors.aliyun.com/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.aliyun.com/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

8.安装ceph-deploy包

[root@master1 ~]# yum -y install ceph-deploy

 9. 创建配置文件目录

 [root@master1 ~]# mkdir /opt/ceph-cluster

 10. 清除集群

想要重新开始,请执行以下操作以清除配置
ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy forgetkeys

要清除Ceph包
ceph-deploy purge {ceph-node} [{ceph-node}]
例:
ceph-deploy  purge monitor1  osd1

11. 创建群集

ceph-deploy new {initial-monitor-node(s)}

[root@master1 ~]# mkdir  /opt/ceph-cluster
[root@master1 ~]# cd  /opt/ceph-cluster
[root@master1 ceph-cluster]# ceph-deploy new monitor1 monitor2 monitor3

当前目录会生成 Ceph配置文件,监视器密钥密钥环和新群集的日志文件
ceph.conf   ceph-eploy-ceph.log   ceph.mon.keyring

 12. 修改ceph.conf 配置文件

[global]
fsid = a5e478b2-f3bf-4fbf-930a-69a6686502d1
mon_initial_members = monitor1, monitor2, monitor3
mon_host = 172.16.230.21,172.16.230.22,172.16.230.23
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd pool default size = 2                        # 修改的副本数
public network = 172.16.230.0/24          # 指定public 网络
cluster network = 1.1.1.0/24                  # 指定cluster 网络

 13. 安装ceph

猜你喜欢

转载自www.cnblogs.com/fengjian2016/p/10676142.html