注意:

16版本的ceph已经不支持ceph-deploy,安装方法见我的博客:

cephadm快速部署指定版本ceph集群_ggrong0213的博客-CSDN博客

1、集群规划:

主机名 IP 组件
ceph1 192.168.150.120 ceph-deploy,mon,mgr,osd
ceph2 192.168.150.121 mon,mgr,osd
ceph3 192.168.150.122 mon,mgr,osd

2、操作系统:

     centos7

3、ceph版本:

    ceph15.2.13

3、系统初始化(三台机器操作):

3、1 配置epel源:

$ yum install epel-release -y

3、2 关闭防火墙:

$ systemctl stop firewalld
$ systemctl disable firewalld
$ systemctl status firewalld

3、3 配置主机名:

配置永久静态主机名:

$ hostnamectl --static set-hostname HostName

修改域名解析文件:

$ vi /etc/hosts# 添加如下内容:
ceph1Ip   ceph1
ceph2Ip   ceph2
ceph3Ip   ceph3

3、4 设置时间同步:

安装NTP服务:

$ yum -y install ntp ntpdate

备份旧配置:

$ cd /etc && mv ntp.conf ntp.conf.bak

以ceph1为NTP服务端节点,在ceph1新建NTP文件:

$ vi /etc/ntp.conf# 添加如下内容:
restrict 127.0.0.1
restrict ::1
restrict ceph1IP mask 255.255.255.0
server 127.127.1.0
fudge 127.127.1.0 stratum 8

在ceph2、ceph3节点新建NTP文件 :

$ vi /etc/ntp.conf# 添加如下内容:
server ceph1Ip

在ceph1节点启动NTP服务:

$ systemctl start ntpd
$ systemctl enable ntpd
$ systemctl status ntpd

在除ceph1的所有节点强制同步server(ceph1)时间:

$ ntpdate ceph1

在除ceph1的所有节点写入硬件时钟,避免重启后失效 :

$ hwclock -w

在除ceph1的所有节点安装并启动crontab工具 :

$ yum install -y crontabs
$ chkconfig crond on
$ systemctl start crond
$ crontab -e# 添加如下内容:
*/10 * * * * /usr/sbin/ntpdate ceph1Ip

3、5 配置免密登录:

在ceph1节点生成公钥,并发放到各个主机:

$ ssh-keygen -t rsa
$ for i in {1..3}; do ssh-copy-id ceph$i; done

3、6 关闭SELinux:

$ setenforce 0
$ vi /etc/selinux/config# 修改为disabled

3、7 配置ceph镜像源:

$ vi /etc/yum.repos.d/ceph.repo#添加如下内容:
[Ceph]
name=Ceph packages for $basearch
baseurl=https://download.ceph.com/rpm-15.2.13/el7/$basearch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-15.2.13/el7/noarch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1[ceph-source]
name=Ceph source packages
baseurl=https://download.ceph.com/rpm-15.2.13/el7/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1

更新yum源:

$ yum clean all && yum makecache

4、安装ceph:

在所有主机安装Ceph:

$ yum -y install ceph

验证是否安装成功:

$ ceph -v
ceph version 15.2.13 (c44bc49e7a57a87d84dfff2a077a2058aa2172e2) octopus (stable)

5、在ceph1节点额外安装ceph-deploy:

$ yum -y install ceph-deploy

6、部署mon节点(在主节点ceph1执行):

6、1  创建集群:

$ cd /etc/ceph
$ ceph-deploy new ceph1 ceph2 ceph3

若出现:

Traceback (most recent call last):File "/usr/bin/ceph-deploy", line 18, in <module>from ceph_deploy.cli import mainFile "/usr/lib/python2.7/site-packages/ceph_deploy/cli.py", line 1, in <module>import pkg_resources
ImportError: No module named pkg_resources

解决办法:

$ yum install -y wget
$ wget https://pypi.python.org/packages/source/d/distribute/distribute-0.7.3.zip --no-check-certificate
$ yum install -y unzip
$ unzip distribute-0.7.3.zip
$ cd distribute-0.7.3
$ python setup.py install

6、2 配置网络mon_host、public network:

$ vi /etc/ceph/ceph.conf# 添加如下内容:
[global]
fsid = f6b3c38c-7241-44b3-b433-52e276dd53c6
mon_initial_members = ceph1, ceph2, ceph3
mon_host = ceph1IP,ceph2IP,ceph3IP
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephxpublic_network = ceph1子网IP/24[mon]
mon_allow_pool_delete = true

6、3 初始化监视器并收集密钥:

$ ceph-deploy mon create-initial

6、4 将“ceph.client.admin.keyring”拷贝到各个节点上:

$ ceph-deploy --overwrite-conf admin ceph1 ceph2 ceph3

6、5 查看mon是否部署成功:

$ ceph -scluster:id:     8b4fd85a-14c4-4498-a866-30752083647dhealth: HEALTH_WARNmons are allowing insecure global_id reclaimservices:mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 87s)mgr: no daemons activeosd: 0 osds: 0 up, 0 indata:pools:   0 pools, 0 pgsobjects: 0 objects, 0 Busage:   0 B used, 0 B / 0 B availpgs:

可以看到mon节点已经部署成功。

7、部署mgr节点:

$ ceph-deploy mgr create ceph1 ceph2 ceph3

查看是否mgr部署成功:

$ ceph -scluster:id:     8b4fd85a-14c4-4498-a866-30752083647dhealth: HEALTH_WARNmons are allowing insecure global_id reclaimservices:mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 2m)mgr: ceph1(active, since 4s), standbys: ceph3, ceph2osd: 0 osds: 0 up, 0 indata:pools:   0 pools, 0 pgsobjects: 0 objects, 0 Busage:   0 B used, 0 B / 0 B availpgs:

可以看到mgr节点已经部署成功。

8、部署osd节点:

确认各个节点各硬盘的sd*:

$ lsblkNAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk
sdc               8:32   0   10G  0 disk
sdd               8:48   0   10G  0 disk
sr0              11:0    1  4.4G  0 rom

部署osd节点:

$ ceph-deploy osd create ceph1 --data /dev/sdb
$ ceph-deploy osd create ceph1 --data /dev/sdc
$ ceph-deploy osd create ceph1 --data /dev/sdd
$ ceph-deploy osd create ceph2 --data /dev/sdb
$ ceph-deploy osd create ceph2 --data /dev/sdc
$ ceph-deploy osd create ceph2 --data /dev/sdd
$ ceph-deploy osd create ceph3 --data /dev/sdb
$ ceph-deploy osd create ceph3 --data /dev/sdc
$ ceph-deploy osd create ceph3 --data /dev/sdd

验证osd节点是否部署成功:

$ ceph -scluster:id:     8b4fd85a-14c4-4498-a866-30752083647dhealth: HEALTH_WARNmons are allowing insecure global_id reclaimModule 'restful' has failed dependency: No module named 'pecan'services:mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 11m)mgr: ceph1(active, since 9m), standbys: ceph3, ceph2osd: 9 osds: 9 up (since 6s), 9 in (since 6s)task status:data:pools:   1 pools, 1 pgsobjects: 0 objects, 0 Busage:   9.1 GiB used, 81 GiB / 90 GiB availpgs:     1 active+clean

可以看到osd节点已经部署成功。

9、解决health问题:

9、1 解决mons are allowing insecure global_id reclaim问题:

禁用不安全模式:

$ ceph config set mon auth_allow_insecure_global_id_reclaim false

9、2 解决 Module 'restful' has failed dependency: No module named 'pecan'问题:

$ pip3 install pecan

再次查看集群状态:

$ ceph -s
cluster:id:     8b4fd85a-14c4-4498-a866-30752083647dhealth: HEALTH_OKservices:mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 3m)mgr: ceph1(active, since 3m), standbys: ceph3, ceph2osd: 9 osds: 9 up (since 10m), 9 in (since 10m)data:pools:   1 pools, 1 pgsobjects: 0 objects, 0 Busage:   9.1 GiB used, 81 GiB / 90 GiB availpgs:     1 active+clean

可以看到集群已经处于健康状态了。

9、验证ceph块存储:

9、1 创建存储池:

$ ceph osd pool create vdbench 250 250

9、2 指定存储池类型为块存储:

$ ceph osd pool application enable vdbench rbd

9、3 指定压缩算法:

$ ceph osd pool set vdbench compression_algorithm zlib
$ ceph osd pool set vdbench compression_mode force

9 、5 设置算法压缩率:

$ ceph osd pool set vdbench compression_required_ratio .99

9、6 创建并映射image:

$ rbd create image1 --size 20G --pool vdbench --image-format 2 --image-feature layering
rbd map vdbench/image1

9、7 准备100M大小的测试文件:

$ dd if=/dev/zero of=/home/compress_test bs=1M count=100

9、8 将测试文件写入RBD设备:

$ dd if=/home/compress_test of=/dev/rbd0 bs=1M count=100 oflag=direct

9、9 压缩验证:

$ ceph df
--- RAW STORAGE ---
CLASS  SIZE    AVAIL   USED     RAW USED  %RAW USED
hdd    90 GiB  80 GiB  684 MiB   9.7 GiB      10.75
TOTAL  90 GiB  80 GiB  684 MiB   9.7 GiB      10.75--- POOLS ---
POOL                   ID  PGS  STORED   OBJECTS  USED     %USED  MAX AVAIL
device_health_metrics   1    1      0 B        0      0 B      0     25 GiB
vdbench                 2  151  100 MiB       29  150 MiB   0.19     25 GiB

ceph-deploy部署指定版本ceph集群相关推荐

  1. 1.24版本k8s集群安装部署rook-ceph存储集群

    一.初始花基本环境 1.主机环境信息 系统 主机名 主机IP地址 配置说明 AlmaLinux release 8.6 (Sky Tiger) master01 192.168.3.31 k8s管理节 ...

  2. CentOS7中使用kubeadm快速部署一套K8S集群

    一.Kubernetes概述 1.1 Kubernetes是什么 Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8S K8S用于容器化应用程序的部 ...

  3. 在华为 Kylin V10 SP1操作系统,HUAWEI,Kunpeng 920 CPU(4Cores)单机上模拟部署生产环境TiDB集群...

    作者:陈麒 原文来源: https://tidb.net/blog/0cacc3df TiDB 集群部署 在单机上模拟部署生产环境集群 适用场景:希望用单台 Linux 服务器,体验 TiDB 最小的 ...

  4. k8s.4-kubeadm部署高可用kubernetes集群 1.21

    kubeadm部署高可用kubernetes集群 1.21 ​ 一.kubernetes 1.21发布 1.1 介绍 2021年04月,Kubernetes 1.21正式与大家见面,这是我们 2021 ...

  5. 使用 ezctl 工具部署和管理 Kubernetes 集群

    1 ezctl 命令行介绍 kubeasz 项目致力于快速部署高可用的 Kubernetes 集群,同时也提供了关于 Kubernetes 详细的学习资料,在这里强烈推荐给初学者.kubeasz 项目 ...

  6. Helm部署rancher 高可用集群

    Helm部署rancher 高可用集群 Helm简介 Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理.可以把Helm比作CentOS的yum工具. Hel ...

  7. Kubeadm 部署 Kubernetes1.20.4集群

    Kubeadm 部署 Kubernetes1.20.4集群(2021-02-19) 一.环境说明 主机名 IP地址 角色 系统 Kubernetes 192.168.144.156 k8s-maste ...

  8. 【Flink系列】部署篇(三):Native k8s部署高可用Flink集群实战

    上一篇博文介绍了如何独立部署一个高可用的Flink集群,本篇介绍如何用Native k8s去部署高可用的Flink 集群.本篇介绍的集群构建在AWS上,和构建在自己的服务器相比,主要区别在文件系统的选 ...

  9. 牛批!简单几步,无坑部署最小化 K8S 集群

    点击下方"民工哥技术之路",选择"设为星标" 回复"1024"获取独家整理的学习资料! 虽然网上有大量从零搭建 K8S 的文章,但大都针对老 ...

最新文章

  1. java实现时间的比较
  2. oracle java rmi 漏洞,Oracle Java SE Java运行时环境RMI子组件远程漏洞(CVE-2011-3556)
  3. Kaldi不支持Cuda10_1版本
  4. 阿里发布2019十大科技趋势,5G仍是主要生产力
  5. 【LeetCode从零单排】No96 Unique Binary Search Trees
  6. JavaScript中innerHTML与innerText,createTextNode的区别
  7. 熊猫烧香演神话——在Windows mobile手机中运行
  8. IDEA如何在包下建立子包
  9. sharding分表后主键_Sharding-JDBC 使用入门和基本配置
  10. c语言linux下可用函数,[原创]linux下编码转换问题,C语言实现,使用iconv函数族68...
  11. 第一章:NHibernate的简介
  12. 深度学习 Deep Learning UFLDL 最新Tutorial 学习笔记 4:Debugging: Gradient Checking
  13. 95-150-045-源码-Sink-Streaming Parquet File
  14. css3动画与@keyframes关键帧
  15. 《C++ Primer Plus》14.2 私有继承 学习笔记
  16. oracle 如何查询某张表 历史相关操作_你的项目应该如何正确分层?
  17. UE4蓝图版简易背包系统
  18. 计算机键盘数字和确键失控,电脑键盘数字键失灵怎么办
  19. good website
  20. 计算机毕业设计Java车辆调度管理系统(源码+系统+mysql数据库+lw文档

热门文章

  1. 私厨菜谱app的设计与实现(五)
  2. Firefox 浏览器打印页面时不打印页眉和页脚
  3. 东风志计算机音乐谱,东风志钢琴谱-Aki阿杰
  4. VCG笔记-如何定义mesh
  5. 工程伦理 第八章习题 答案
  6. {转} 80后的我们 说好了,只许看不许哭.......
  7. 设计模式【10】-- 顺便看看享元模式
  8. STM32F103 通过SD卡IAP升级程序,带MD5校验,(带源码)可在实际项目中使用
  9. Java生成MD5的坑
  10. 微信小程序获取手机号(Java)