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
1 安装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