ceph-deploy部署指定版本ceph集群
注意:
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.24版本k8s集群安装部署rook-ceph存储集群
一.初始花基本环境 1.主机环境信息 系统 主机名 主机IP地址 配置说明 AlmaLinux release 8.6 (Sky Tiger) master01 192.168.3.31 k8s管理节 ...
- CentOS7中使用kubeadm快速部署一套K8S集群
一.Kubernetes概述 1.1 Kubernetes是什么 Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8S K8S用于容器化应用程序的部 ...
- 在华为 Kylin V10 SP1操作系统,HUAWEI,Kunpeng 920 CPU(4Cores)单机上模拟部署生产环境TiDB集群...
作者:陈麒 原文来源: https://tidb.net/blog/0cacc3df TiDB 集群部署 在单机上模拟部署生产环境集群 适用场景:希望用单台 Linux 服务器,体验 TiDB 最小的 ...
- k8s.4-kubeadm部署高可用kubernetes集群 1.21
kubeadm部署高可用kubernetes集群 1.21 一.kubernetes 1.21发布 1.1 介绍 2021年04月,Kubernetes 1.21正式与大家见面,这是我们 2021 ...
- 使用 ezctl 工具部署和管理 Kubernetes 集群
1 ezctl 命令行介绍 kubeasz 项目致力于快速部署高可用的 Kubernetes 集群,同时也提供了关于 Kubernetes 详细的学习资料,在这里强烈推荐给初学者.kubeasz 项目 ...
- Helm部署rancher 高可用集群
Helm部署rancher 高可用集群 Helm简介 Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理.可以把Helm比作CentOS的yum工具. Hel ...
- Kubeadm 部署 Kubernetes1.20.4集群
Kubeadm 部署 Kubernetes1.20.4集群(2021-02-19) 一.环境说明 主机名 IP地址 角色 系统 Kubernetes 192.168.144.156 k8s-maste ...
- 【Flink系列】部署篇(三):Native k8s部署高可用Flink集群实战
上一篇博文介绍了如何独立部署一个高可用的Flink集群,本篇介绍如何用Native k8s去部署高可用的Flink 集群.本篇介绍的集群构建在AWS上,和构建在自己的服务器相比,主要区别在文件系统的选 ...
- 牛批!简单几步,无坑部署最小化 K8S 集群
点击下方"民工哥技术之路",选择"设为星标" 回复"1024"获取独家整理的学习资料! 虽然网上有大量从零搭建 K8S 的文章,但大都针对老 ...
最新文章
- java实现时间的比较
- oracle java rmi 漏洞,Oracle Java SE Java运行时环境RMI子组件远程漏洞(CVE-2011-3556)
- Kaldi不支持Cuda10_1版本
- 阿里发布2019十大科技趋势,5G仍是主要生产力
- 【LeetCode从零单排】No96	Unique Binary Search Trees
- JavaScript中innerHTML与innerText,createTextNode的区别
- 熊猫烧香演神话——在Windows mobile手机中运行
- IDEA如何在包下建立子包
- sharding分表后主键_Sharding-JDBC 使用入门和基本配置
- c语言linux下可用函数,[原创]linux下编码转换问题,C语言实现,使用iconv函数族68...
- 第一章:NHibernate的简介
- 深度学习 Deep Learning UFLDL 最新Tutorial 学习笔记 4:Debugging: Gradient Checking
- 95-150-045-源码-Sink-Streaming Parquet File
- css3动画与@keyframes关键帧
- 《C++ Primer Plus》14.2 私有继承 学习笔记
- oracle 如何查询某张表 历史相关操作_你的项目应该如何正确分层?
- UE4蓝图版简易背包系统
- 计算机键盘数字和确键失控,电脑键盘数字键失灵怎么办
- good website
- 计算机毕业设计Java车辆调度管理系统(源码+系统+mysql数据库+lw文档