基于ceph-deploy部署Ceph集群

一,角色分配

ceph1:192.168.205.128    node1、 admin      cluster ip:10.1.10.20
ceph2:192.168.205.129    node2              cluster ip:10.1.10.30
ceph3:192.168.205.130    node3              cluster ip:10.1.10.40

二,环境准备(all)

1)所有机器关闭防火墙及selinux

setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

2)修改主机名并配置hosts解析

hostnamectl set-hostname ceph(1,2,3)
[root@ceph1 ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.205.128 ceph1
192.168.205.129 ceph2
192.168.205.130 ceph3

3)admin管理节点()配置免密登录

ssh-keygen
[root@ceph1 ~]# ssh-copy-id -i ceph2
[root@ceph1 ~]# ssh-copy-id -i ceph3

4)安装常用软件和依赖包

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
yum -y install yum-plugin-priorities yum-utils ntpdate python-setuptools python-pip gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel zip unzip ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssh openssl-devel nss_ldap openldap openldap-devel openldap-clients openldap-servers libxslt-devel libevent-devel ntp libtool-ltdl bison libtool vim-enhanced python wget lsof iptraf strace lrzsz kernel-devel kernel-headers pam-devel tcl tk cmake ncurses-devel bison setuptool popt-devel net-snmp screen perl-devel pcre-devel net-snmp screen tcpdump rsync sysstat man iptables sudo libconfig git bind-utils tmux elinks numactl iftop bwm-ng net-tools expect snappy leveldb gdisk python-argparse gperftools-libs conntrack ipset jq libseccomp socat chrony sshpass

5)配置时间同步

systemctl enable --now chronyd
timedatectl set-ntp true  #开启 NTP
timedatectl set-timezone Asia/Shanghai  #设置时区
chronyc -a makestep  #强制同步下系统时钟
timedatectl status  #查看时间同步状态
chronyc sources -v  #查看 ntp 源服务器信息
timedatectl set-local-rtc 0  #将当前的UTC时间写入硬件时钟

#重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart crond
#关闭无关服务
systemctl disable --now postfix
image.png

6)配置Ceph yum源

wget https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm --no-check-certificate
rpm -ivh ceph-release-1-1.el7.noarch.rpm --force

三,部署ceph集群

1. 创建一个Ceph工作目录

(三台节点虚拟机都创建一个 Ceph 工作目录,后续的工作都在该目录下进行)
mkdir -p /etc/ceph

2. admin管理节点安装ceph-deploy部署工具

ceph1:192.168.205.128

cd /etc/ceph
yum install -y ceph-deploy
ceph-deploy --version
image.png

3. 3台节点分别部署ceph软件包

#若阿里云在线源安装较慢,可使用命令切换为清华大学在线源
sed -i 's#download.ceph.com#mirrors.tuna.tsinghua.edu.cn/ceph#' /etc/yum.repos.d/ceph.repo
yum install -y ceph-mon ceph-radosgw ceph-mds ceph-mgr ceph-osd ceph-common ceph

4. 配置集群网络

3台node节点添加一块新网卡并添加配置文件

3台node节点配置新网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vim ifcfg-ens36
修改配置文件-略
systemctl restart network
          
[root@ceph1 ~]# ifconfig    #查看设置是否成功
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.205.128  netmask 255.255.255.0  broadcast 192.168.205.255
        inet6 fe80::d9cc:efa9:2109:fc71  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:8d:b0:4e  txqueuelen 1000  (Ethernet)
        RX packets 47449  bytes 31941392 (30.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 55719  bytes 58987009 (56.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.1.10.20  netmask 255.255.255.0  broadcast 10.1.10.255
        inet6 fe80::603c:8410:ceaa:46b8  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:8d:b0:58  txqueuelen 1000  (Ethernet)
        RX packets 9867  bytes 7070056 (6.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9644  bytes 8704164 (8.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 8120  bytes 11376366 (10.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8120  bytes 11376366 (10.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

5. 生成初始配置

admin管理节点

cd /etc/ceph
ceph-deploy new --public-network 192.168.205.0/24 --cluster-network 10.1.1.20/24 ceph1 ceph2 ceph3

image.png

6. 初始化mon节点

admin管理节点

cd /etc/ceph

ceph-deploy mon create ceph1 ceph2 ceph3

#创建mon节点,由于monitor使用Paxos算法,其高可用集群节点数量要求为大于等于3的奇数台

ceph-deploy --overwrite-conf mon create-initial

#配置初始化 mon 节点,并向所有节点同步配置

# --overwrite-conf 参数用于表示强制覆盖配置文件

ceph-deploy gatherkeys ceph1

#可选操作,向node01节点收集所有密钥

——————————————————————————————————————————————————————————————————————————————————————-

#命令执行成功后会在 /etc/ceph 下生成配置文件

ls /etc/ceph

ceph.bootstrap-mds.keyring  #引导启动 mds 的密钥文件

ceph.bootstrap-mgr.keyring  #引导启动 mgr 的密钥文件

ceph.bootstrap-osd.keyring  #引导启动 osd 的密钥文件

ceph.bootstrap-rgw.keyring  #引导启动 rgw 的密钥文件

ceph.client.admin.keyring  #ceph客户端和管理端通信的认证密钥,拥有ceph集群的所有权限

ceph.conf

ceph-deploy-ceph.log

ceph.mon.keyring

——————————————————————————————————————————————————————————————————————————————————————-

#在 node 三个节点上查看自动开启的 mon 进程
ps aux | grep ceph

#在管理节点查看 Ceph 集群状态
cd /etc/ceph
ceph -s
#查看 mon 集群选举的情况
ceph quorum_status --format json-pretty | grep leader
#扩容 mon 节点 
扩展 ceph 集群的 mon 节点以及 mgr 节点,以实现集群高可用。
eph-mon 是原生具备自选举以实现高可用机制的 ceph 服务,节点数量通常是奇数。
ceph-deploy mon add <节点名称>

7. 使用其他节点可以管理Ceph集群

admin管理节点

cd /etc/ceph
ceph-deploy admin ceph1 ceph2 ceph3
#本质就是把 ceph.client.admin.keyring 集群管理认证文件拷贝到各个节点
ceph -s             #所有节点都可查看集群状态

8. 部署osd存储节点

3台node节点分别添加硬盘

image.png
查看3台node虚拟机新硬盘

#主机添加完硬盘后不要分区,直接使用

echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan     #在线刷新新硬盘
lsblk          #查看新硬盘

image.png

admin管理节点

添加osd存储节点

ceph-deploy --overwrite-conf osd create ceph1 --data /dev/sdb
ceph-deploy --overwrite-conf osd create ceph2 --data /dev/sdb
ceph-deploy --overwrite-conf osd create ceph3 --data /dev/sdb

ceph-deploy --overwrite-conf osd create ceph1 --data /dev/sdc
ceph-deploy --overwrite-conf osd create ceph2--data /dev/sdc
ceph-deploy --overwrite-conf osd create ceph3--data /dev/sdc

ceph -s          #查看ceph集群状态
image.png

9. 部署mgr节点

admin管理节点

cd /etc/ceph
ceph-deploy mgr create node01 node02

————————————————————————————————————————————————————————————————————————————————————————————————————————————
#ceph-mgr守护进程以Active/Standby模式运行,可确保在Active节点或其ceph-mgr守护进程故障时,其中的一个Standby实例可以在不中断服务的情况下接管其任务。根据官方的架构原则,mgr至少要有两个节点来进行工作。
———————————————————————————————————————————————————————————————————————————————————————————————————————————————

ceph -s            #查看集群
ceph osd status    #查看 osd 状态,需部署 mgr 后才能执行
ceph osd df        #查看 osd 容量,需部署 mgr 后才能执行
image.png

10. 解决HEALTH_WARN问题

ceph config set mon auth_allow_insecure_global_id_reclaim false     #禁用不安全模式
ceph -s          #查看ceph集群信息
image.png

转自:https://blog.csdn.net/2401_83784772/article/details/140314768?utm_medium=distribute.pc_relevant.none-task-blog-2

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容