cephadm离线摆设及curushmap

打印 上一主题 下一主题

主题 497|帖子 497|积分 1491

预备:

体系盘raid1或raid5,数据盘直通或raid0,电口为集群网络,用作osd守护历程之间的复制、恢复、心跳,光口为存储网络,用作对外存储流量
下载cephadm:https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
yum install --downloadonly docker-ce --downloaddir=/root/offline-pkg/docker-ce
yum install --downloadonly python3 --downloaddir=/root/offline-pkg/python3
添加官方源ceph.repo,可更换为国内源

./cephadm add-repo --release Octopus
yum install --downloadonly cephadm --downloaddir=/root/offline-pkg/cephadm
yum install --downloadonly ceph-common --downloaddir=/root/offline-pkg/ceph-common
Default container images

DEFAULT_IMAGE = ‘quay.io/ceph/ceph:v15’
DEFAULT_IMAGE_IS_MASTER = False
DEFAULT_PROMETHEUS_IMAGE = ‘quay.io/prometheus/prometheus:v2.18.1’
DEFAULT_NODE_EXPORTER_IMAGE = ‘quay.io/prometheus/node-exporter:v0.18.1’
DEFAULT_ALERT_MANAGER_IMAGE = ‘quay.io/prometheus/alertmanager:v0.20.0’
DEFAULT_GRAFANA_IMAGE = ‘quay.io/ceph/ceph-grafana:6.7.4’
所有节点:

设置主机名:

hostnamectl set-hostname ceph1
hostnamectl set-hostname ceph2
配置hosts解析:

cat >> /etc/hosts <<EOF
ip1 ceph1
ip2 ceph2
ip3 ceph3
EOF
时间同步至第一节点:

vi /etc/chrony.conf
server ceph1 iburst
systemctl restart chronyd
systemctl enable chronyd
安装docker-ce、python3:

rpm -ivh /root/ceph-install/offline-pkg/docker-ce/.rpm
rpm -ivh /root/ceph-install/offline-pkg/python3/
.rpm
docker load -i /root/offline-pkg/image/ceph.tar
docker load -i /root/offline-pkg/image/ceph-grafana.tar
docker load -i /root/offline-pkg/image/prometheus.tar
docker load -i /root/offline-pkg/image/alertmanager.tar
docker load -i /root/offline-pkg/image/node-exporterr.tar
ceph1节点:

时间源:

vi /etc/chrony.conf
allow all
local stratum 10
修改后的离线版cephadm添加实行权限

chmod +x cephadm
./cephadm --help
安装ceph-common、cephadm:

rpm -ivh /root/ceph-install/offline-pkg/ceph-common/*.rpm
ceph -v
rpm -ivh /root/ceph-install/offline-pkg/cephadm/*.rpm
which cephadm
引导新集群:

cephadm bootstrap --mon-ip ip1 --cluster-network ip/mask
引导下令产生以下效果:
1、为本地主机上创建新集群的monitor和manager守护程序
2、ssh密钥:/root/.ssh/authorized_keys
3、与新集群通讯的最小配置文件:/etc/ceph/ceph.conf
4、client.admin的特权级管理密钥的副本放在/etc/ceph/ceph.client.admin.keyring
5、公钥副本放在/etc/ceph/ceph.pub
成功如下所示:
Ceph Dashboard is now available at:
  1.          URL: https://ceph1:8443/
  2.         User: admin
  3.     Password: 28n1ce5qc8
复制代码
You can access the Ceph CLI with:
  1.     sudo /usr/sbin/cephadm shell --fsid 569eaaec-d4f0-11ed-8a92-000c29737e01 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
复制代码
Please consider enabling telemetry to help improve Ceph:
  1.     ceph telemetry on
复制代码
For more information see:
  1.     https://docs.ceph.com/docs/master/mgr/telemetry/
复制代码
Bootstrap complete.
ceph1公钥免密:

ssh-copy-id -f -i /etc/ceph/ceph.pub ceph2
ssh-copy-id -f -i /etc/ceph/ceph.pub ceph3
添加新主机

ceph orch host add ceph2
ceph orch host add ceph3
若成功会自动扩展mon和mgr节点
ceph -s
安装osd

前置条件:设备无分区、无lvm相关状态、无已挂载、无文件体系、无Ceph Bluestore存储引擎、大于5G
查看所有osd:ceph orch device ls
查看单机osd:ceph orch device ls --hostname=ip --wide --refresh
测试全安装:ceph orch apply osd --all-available-devices --dry-run
正式全安装:ceph orch apply osd --all-available-devices
单主机安装:ceph orch daemon add osd ip:/dev/标识
默认情况:集群内发现新硬盘会自动创建osd;若移除osd,其上数据会自动迁徙,可以通过下令禁用该功能:ceph orch apply osd --all-available-devices --unmanaged=true
补充

删除单个osd:ceph orch osd rm <osd_id(s)> [–replace] [–force]
停止删除osd:ceph orch osd rm stop <osd_id(s)>
删除单机上的所有osd:ceph orch device zap     
删除主机:ceph orch host drain   
查看删除历程:ceph orch osd rm status   
查看是否单机是否包罗ceph相关守护历程:ceph orch ps   
逼迫删除:ceph orch host rm --offline --force   
扫描设备:ceph orch host rescan [–with-summary]  
其他

RGW:是Ceph对象存储网关服务RADOS Gateway的简称,是一套基于librado接口封装而实现的FastCGI服务
libvirt:是用于管理虚拟化平台的开源api、后台程序、管理工具。它可以用于管理kvm、Xen、esxi,qemu等
librbd:是ceph基于对象存储librados之上实现的块存储接口librbd、krbdqemu,客户端都是通过它举行块设备卷的io访问
libvirt的rbd存储需要在其他ceph节点上能实行ceph的下令,以是:
mkdir -p /etc/ceph
scp /etc/ceph/ceph* ceph2:/etc/ceph
scp /etc/ceph/ceph* ceph3:/etc/ceph
crushmap

1、crush算法通过计算数据存储位置来确定如何存储和检索,授权客户端直接连接osd
2、对象通过算法被切分成数据片,分布在不同的osd上
3、提供很多种的bucket,最小的节点是osd
  1. #结构
  2. osd (or device)
  3. host #主机
  4. chassis #机架
  5. rack #机柜
  6. row
  7. pdu
  8. pod
  9. room #机房
  10. datacenter #数据中心
  11. zone #区域
  12. region #地区
  13. root #最高:根
  14. #查看crushmap
  15. ceph osd crush tree
  16. ceph osd tree
  17. # 查看详细
  18. ceph osd crush dump
  19. #查看规则
  20. ceph osd crush rule ls
  21. #某个规则关联起来的pool
  22. ceph osd pool get xxxxx crush_rule
复制代码
举例

环境: 一个pool包罗3个host,多个osd,通过不同crushmap rule分隔,数据按照不同pool rule落盘。
1、先做crushmap文件备份
2、修改引起大量pg变更,后期不要动
3、调整配置osd crush update on start = false,

  1. #创建root类型bucket,ssd是名称
  2. ceph osd crush add-bucket ssd-bucket root
  3. # 添加host类型bucket
  4. ceph osd crush add-bucket node-1-ssd-bucket host
  5. ceph osd crush add-bucket node-2-ssd-bucket host
  6. # host bucket移到root bucket中去
  7. ceph osd crush move node-1-ssd-bucket root=ssd-bucket
  8. ceph osd crush move node-2-ssd-bucket root=ssd-bucket
  9. # 把osd移到host bucket中
  10. ceph osd crush move osd.3 host=node-1-ssd-bucket root=ssd-bucket
  11. ceph osd crush move osd.4 host=node-2-ssd-bucket root=ssd-bucket
  12. ceph osd tree
  13. #规则名称、rootbucket名称、容灾机制(默认default)、host类型、磁盘类型
  14. #创建一条名为ssd-demo的新rule,将基于ssd的OSD作为复制池的目标
  15. ceph osd crush rule create-replicated ssd-rule ssd-bucket host ssd
  16. #关联pool和规则
  17. ceph osd pool set ceph-ssd crush_rule ssd-rule
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

魏晓东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表