首页 > 其他分享 >ceph集群部署

ceph集群部署

时间:2022-12-16 17:35:43浏览次数:53  
标签:ceph03 部署 vg00 ceph -- ceph01 集群 osd

ceph01  20.168.59.11

ceph02  20.168.59.12

ceph03  20.168.59.13

在 ceph01 节点上执行设置主机名

# hostnamectl set-hostname ceph01

 

修改网卡 ens33 的 IP

# sed -i 's/59.251/59.11/g' /etc/sysconfig/network-scripts/ifcfg-ens33

 

配置用于集群网络的网卡 ens37 的 IP

# cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-ens37 TYPE=Ethernet

BOOTPROTO=static DEFROUTE=yes IPV6INIT=no NAME=ens37 DEVICE=ens37 ONBOOT=yes IPADDR=20.168.59.11 NETMASK=255.255.255.0 EOF


# systemctl restart network

 

 

在 ceph02 节点上执行设置主机名

# hostnamectl set-hostname ceph02

修改网卡 ens33 的 IP

# sed -i 's/59.251/59.12/g' /etc/sysconfig/network-scripts/ifcfg-ens33

 

配置用于集群网络的网卡 ens37 的 IP

# cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-ens37 TYPE=Ethernet

BOOTPROTO=static DEFROUTE=yes IPV6INIT=no NAME=ens37 DEVICE=ens37 ONBOOT=yes IPADDR=20.168.59.12 NETMASK=255.255.255.0 EOF

 

# systemctl restart network

 

 

在 ceph03 节点上执行设置主机名

# hostnamectl set-hostname ceph03

修改网卡 ens33 的 IP

# sed -i 's/59.251/59.13/g' /etc/sysconfig/network-scripts/ifcfg-ens33

 

 

# cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-ens37 TYPE=Ethernet

BOOTPROTO=static DEFROUTE=yes IPV6INIT=no NAME=ens37 DEVICE=ens37 ONBOOT=yes IPADDR=20.168.59.13 NETMASK=255.255.255.0 EOF

 

# systemctl restart network

 

ceph01-ceph03 各主机 hosts 设置如下

# cat /etc/hosts # openstack

192.168.59.20 controller

192.168.59.31 compute01

192.168.59.32 compute02

 

# cpeh-public 192.168.59.11 ceph01

192.168.59.12 ceph02

192.168.59.13 ceph03

 

# ceph-cluster

20.168.59.11 ceph01-cluster

20.168.59.12 ceph02-cluster

20.168.59.13 ceph03-cluster


 

安装ceph

1.1 系统初始化参数检查及设

在 ceph 所有节点(ceph01、ceph02、ceph03)上检查执行再次检查 hosts

# cat /etc/hosts

 

# cpeh-public 192.168.59.11 ceph01

192.168.59.12 ceph02

192.168.59.13 ceph03

 

# ceph-cluster

20.168.59.11 ceph01-cluster

20.168.59.12 ceph02-cluster

20.168.59.13 ceph03-cluster

 

# yum

192.168.59.250 yum01

 

检查网络

# ifconfig

关闭 NetworkMnanager

# systemctl stop NetworkManager

# systemctl disable NetworkManager

 

关闭防火墙:

# systemctl stop firewalld

# systemctl disable firewalld

 

关闭 selinux

# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config SELINUX=disabled

 

设置 /etc/security/limits.conf # End of file

* hard nofile 655360

* soft nofile 655360

* hard nproc 655360

* soft nproc 655360

* soft core 655360

* hard core 655360

设置 /etc/security/limits.d/20-nproc.conf

 

* soft nproc unlimited root soft nproc unlimited

 

 

 

1.2 NTP 客户端配

在 ceph 所有节点(ceph01、ceph02、ceph03)上执行

 

a、统一时区,在所有节点上执行

# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


 

b、安装 chrony,默认已安装 # yum -y install chrony

 

然后,修改配置/etc/chrony.conf 中服务器为 controller,即 #server 0.centos.pool.ntp.org iburst

#server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst server controller iburst

 

设置开机自启动

# systemctl enable chronyd # systemctl restart chronyd

 

验证时间同步:

chronyc sources

 

 

1.3 配置 SSH 免密登录

1、在 ceph01 节点生成公钥,然后发放到所有的主机/客户机节点上,即包括 ceph02、ceph03、controler、compute01、compute02。 # ssh-keygen -t rsa

/*

说明:按回车键,即默认设置完成

*/

发放公钥到所有主机上,输入目标主机密码完成。

# ssh-copy-id ceph01 # ssh-copy-id ceph02 # ssh-copy-id ceph03 # ssh-copy-id controller

# ssh-copy-id compute01 # ssh-copy-id compute02

 

验证从 ceph01 访问所有主机是否可以免密登录

# ssh ceph01 # ssh ceph02 # ssh ceph03 # ssh controller

# ssh compute01 # ssh compute02

 

 

 

1.4 安装 Ceph 软件包

集成过程中,需要在 OpenStack 的 controller 节点和compute 节点安装 Ceph 软件包,作为 Ceph 客户端。

 

如果已经制作离线 yum 源,则直接安装即可;如果要使用外部互联网 yum 源,需要设置 ceph 源(此处列出阿里云源),配置如下

vim /etc/yum.repos.d/ceph.repo [ceph]

name=Ceph packages for $basearch baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64 enabled=1

gpgcheck=0

 

[ceph-noarch]

name=Ceph noarch packages baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch enabled=1

gpgcheck=0

 

[ceph-source]

name=Ceph source packages


baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS enabled=1

gpgcheck=0

 

 

在 controller、compute01、compute02 安装 ceph 软件包

# yum -y install ceph ceph-radosgw

 

在 ceph01 上这装 ceph-deploy

# yum -y install ceph-deploy ceph ceph-mds ceph-radosgw

 

/*

说明:ceph-deploy 是 ceph 软件定义存储系统的一部分,用来方便地配置和管理 Ceph 存储集群。

*/

 

在 ceph02、ceph03 上这装ceph

# yum -y install ceph ceph-mds ceph-radosgw

 

 

1.5 初始化配置 mon

#  新建 Ceph 集群,并生成集群配置文件和密钥文件(在 ceph01 上执行)

# mkdir /etc/ceph-cluster && cd /etc/ceph-cluster # ceph-deploy new ceph01 ceph02 ceph03

 

修改/etc/ceph-cluster/ceph.conf,继续添加如下内容:

[global]

...

auth_allow_insecure_global_id_reclaim = false public_network = 192.168.59.0/24 cluster_network = 20.168.59.0/24

 

 

初始化 mon 节点(在ceph01 上执行)

# cd /etc/ceph-cluster

# ceph-deploy mon create-initial

 

将 keyring 同步到各节点,以便其它节点可以执行 ceph 集群管理命令(在 ceph01 上执行)

# ceph-deploy --overwrite-conf admin ceph01 ceph02 ceph03 controller compute01 compute02

 

 

验证

# ceph -s

 

cluster:

id: 8dd1d22b-6a47-44f2-909f-0390b46d4b05 health: HEALTH_OK

services:

mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 32m) mgr: no daemons active

osd: 0 osds: 0 up, 0 in data:

pools: 0 pools, 0 pgs

objects: 0 objects, 0 B

usage: 0 B used, 0 B / 0 B avail pgs:

 

/*

说明:如果提示:clock skew detected on mon.xxxx,则需要修改配置 mon_clock_drift_allowed = 1.0

*/


1.6 初始化配置 mgr

在 ceph01 节点上执行

# cd /etc/ceph-cluster

# ceph-deploy mgr create ceph01 ceph02 ceph03

 

ceph-mgr  进程是主备模式,同一时刻只有一个节点工作,其他节点处于standby

 

验证 MGR 是否部署成功

# ceph -s cluster:

id: 8dd1d22b-6a47-44f2-909f-0390b46d4b05 health: HEALTH_WARN

OSD count 0 < osd_pool_default_size 3 services:

mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 34m) mgr: ceph01(active, since 28s), standbys: ceph02, ceph03 osd: 0 osds: 0 up, 0 in

data:

pools: 0 pools, 0 pgs

objects: 0 objects, 0 B

usage: 0 B used, 0 B / 0 B avail pgs:

 

 

 

1.7 初始化配置 osd

划分用于 OSD 的日志分区和元数据分区,此处实验环境,故设置较小,按照规划每个节点有 3 个 OSD。只需要在 ceph01 节点上完成如下命令执行即可

lvcreate -L 5G -n lvwal01 vg00 lvcreate -L 20G -n lvbdb01 vg00

 

lvcreate -L 5G -n lvwal02 vg00 lvcreate -L 20G -n lvbdb02 vg00

 

lvcreate -L 5G -n lvwal03 vg00 lvcreate -L 20G -n lvbdb03 vg00

 

ceph-deploy osd create ceph01 --data /dev/sdb --block-wal vg00/lvwal01 --block-db vg00/lvbdb01 --bluestore ceph-deploy osd create ceph02 --data /dev/sdb --block-wal vg00/lvwal01 --block-db vg00/lvbdb01 --bluestore ceph-deploy osd create ceph03 --data /dev/sdb --block-wal vg00/lvwal01 --block-db vg00/lvbdb01 --bluestore

 

ceph-deploy osd create ceph01 --data /dev/sdc --block-wal vg00/lvwal02 --block-db vg00/lvbdb02 --bluestore ceph-deploy osd create ceph02 --data /dev/sdc --block-wal vg00/lvwal02 --block-db vg00/lvbdb02 --bluestore ceph-deploy osd create ceph03 --data /dev/sdc --block-wal vg00/lvwal02 --block-db vg00/lvbdb02 --bluestore

 

ceph-deploy osd create ceph01 --data /dev/sdd --block-wal vg00/lvwal03 --block-db vg00/lvbdb03 --bluestore ceph-deploy osd create ceph02 --data /dev/sdd --block-wal vg00/lvwal03 --block-db vg00/lvbdb03 --bluestore ceph-deploy osd create ceph03 --data /dev/sdd --block-wal vg00/lvwal03 --block-db vg00/lvbdb03 --bluestore

 

/*

生产环境 Wal 和 db 分区大小建议

按 4TB 一个 OSD,1TB 需要 40GB 的空间存放DB,4TB 需要大于 160GB 的 SSD 存放 DB SSD 空间足够时,单个 WAL 分区分 60GB、单个DB 分区分 180GB。

如果 SSD 空间不够时,WAL 分区分 40GB、单个DB 分区分 60GB

https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/4/html/administration_guide/osd-bluestore

*/

 

 

1.8 初始化 osd 异常处理

 

初始化 osd 失败时,按照删除 osd 逻辑进行处理(初始化异常时,仅需要从执行 g-h 两步)

a、先确认好要删除的osd,比如此处要删除 osd.0


 

[root@ceph01 ceph-cluster]# ceph osd tree

ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF

-1 0 root default

-3 0 host ceph01

0 0 osd.0 down 0 1.00000

 

b、将 osd.0 踢出集群

[root@ceph01 ceph-cluster]# ceph osd out 0

 

c、待集群重新平衡后,停止对应的 osd 进程,需要在目标 osd 主机上执行

# systemctl stop ceph-osd@0

 

d、从 crush 中移除,然后再用 ceph osd tree 查看,会发现 osd.0 不在 osd tree 中了

[root@ceph01 ceph-cluster]# ceph osd crush remove osd.0 [root@ceph01 ceph-cluster]# ceph osd tree

 

e、删除节点以及节点认证信息 # ceph osd rm osd.0

# ceph auth del osd.0

 

f、此时删除成功但是原来的数据和日志目录还在,也就是说数据还在  # lsblk

#  删除对应分区(如果是lvm,需要lvremove 命令删除vg)

需要将 lvm 状态改为 inactive

#  lvchange  -an  /dev/ceph-a4a91457-db04-4afc-a938-b195a0c4a0c7/osd-block-8c82a7e1-5205-4472-a0f1-77f0d44485e0

使用 lvremove 移除对应lv

#  lvremove  /dev/ceph-a4a91457-db04-4afc-a938-b195a0c4a0c7/osd-block-8c82a7e1-5205-4472-a0f1-77f0d44485e0

 

 

g、清除磁盘分区信息

# ceph-deploy disk zap ceph01 /dev/sdc h、重新初始化 osd

# ceph-deploy osd create ceph01 --data /dev/sdc --block-wal vg00/lvwal02 --block-db vg00/lvbdb02 --bluestore

 

标签:ceph03,部署,vg00,ceph,--,ceph01,集群,osd
From: https://www.cnblogs.com/xgsh/p/16987910.html

相关文章

  • 记一次arm银河麒麟V10部署docker,zabbix
     添加CentOS-7仓库的变量echo7>/etc/yum/vars/releasever为啥是7,我用到的是CentOS-7的软件源,你们用来其他版本的自由设置。不设置该变量,会导致Docker源失效。......
  • VS2019发布至远程IIS部署流程
    服务器部署传统的开发将项目发布至本地桌面之后,复制至站点目录或通过FTP上传站点目录,有点小麻烦,通过开发工具VS2019本身集成的功能,可以一步到发布到远程IIS站点。条件:V......
  • Nginx + Memcached + Tomcat 集群 session 共享
    一、Tomcat的配置安装既然是要集群,那自然不可能是一个Tomcat咯。将tomcat的安装包apache-tomcat-6.0.35-windows-x86解压到X:/(这个路径可以自定义),重命名加压目录,我将这个......
  • Zookeeper集群+kafaka集群
    一、Zookeeper概述1、Zookeeper定义Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目,存储着一些分布式集群的元数据。2、Zookeeper工作机制Z......
  • ceph PG 故障状态
    PG故障状态Creating(创建中)在创建POOL时,需要指定PG的数量,此时PG的状态便处于creating,意思是Ceph正在创建PGPeering(互联中)peering的作用主要是在PG及其副本所在的O......
  • ceph - Nautilus 踩坑记
    RGW编译rgw_file_marker时报错错误信息同BUILD_ERROR.txt.解决方法:合入nautilus:test/ceph_test_librgw_file*:Removeduplicatenames#43491这个PR。......
  • 部署k8s详细步骤(避坑版)
    部署k8s详细步骤(避坑版)一、docker部署1.命令一键安装(公网)curl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun2.启动并查看docker状态systemctlena......
  • git server简易部署方案
    gitserver简易部署方案适用于公司git库配置及使用文档,旨在开发及其它文档的版本的管理。Windows平台,简单地部署成一个web即完成git服务端的搭建,本文以win7下部署为例......
  • pgpoll_II部署(mg5验证)
    环境:pg版本:pg14pgpool-II版本:pgpool-II-pg14-4.4.0主192.168.1.108从192.168.1.109 前置条件:主从节点上都已经安装好了pg14,并能正常启动(这个时候......
  • DM集群自动切换问题排查
    目前经历的原因有4种1、数据库备份由于服务器cpu和内存内存配置过低(可能是备份脚本开了并行)导致。2、虚拟机快照备份导致集群之间ping无响应。3、网络故障,排查交换机或......