Ceph集群部署(基于ceph-deploy)

目录

部署Ceph集群的方法

Ceph生产环境推荐

部署Ceph实验(基于ceph-deploy)

一、准备工作

二、环境准备

1.关闭selinux与防火墙

2.修改主机名并且配置hosts解析映射

3.admin管理节点配置ssh免密登录node节点

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

5.配置时间同步

6.配置Ceph yum源

7.执行完上面所有的操作之后重启所有主机(可选)

三、部署Ceph集群

1.创建一个Ceph工作目录

2.安装ceph-deploy部署工具

3.手动安装Ceph软件包

4.配置集群网络

5.生成初始配置

6.初始化mon节点

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

8.部署osd存储节点

9.部署mgr节点

10.解决HEALTH_WARN问题

四、部署监控

1.安装ceph-mgr-dashboard

2.配置监控模块

3.设置账户以及密码

4.验证


部署Ceph集群的方法

ceph-deploy

  • 一个集群自动化部署工具,使用较久,成熟稳定,被很多自动化工具所集成,可用于生产部署

cephadm

  • 从 Octopus 和较新的版本版本后使用 cephadm 来部署 ceph 集群,使用容器和 systemd 安装和管理 Ceph 集群。目前不建议用于生产环境

二进制

  • 手动部署,一步步部署 Ceph 集群,支持较多定制化和了解部署细节,安装难度较大

Ceph生产环境推荐

  • 存储集群全采用万兆网络
  • 集群网络(cluster-network,用于集群内部通讯)与公共网络(public-network,用于外部访问Ceph集群)分离
  • mon、mds 与 osd 分离部署在不同主机上(测试环境中可以让一台主机节点运行多个组件)
  • OSD 使用 SATA 亦可
  • 根据容量规划集群
  • 至强E5 2620 V3或以上 CPU,64GB或更高内存
  • 集群主机分散部署,避免机柜的电源或者网络故障

部署Ceph实验(基于ceph-deploy)

一、准备工作

主机名  Public网络 Cluster网络 角色
admin  20.0.0.10 admin(管理节点负责集群整体部署)、client
node01 20.0.0.20 20.0.10.20 mon、mgr、osd(/dev/sdb、/dev/sdc、/dev/sdd)
node02 20.0.0.30 20.0.10.30 mon、mgr、osd(/dev/sdb、/dev/sdc、/dev/sdd)
node03 20.0.0.40 20.0.10.40 mon、osd(/dev/sdb、/dev/sdc、/dev/sdd)
client 20.0.0.50 client

5台虚拟机

  • admin:20.0.0.10
  • node01:20.0.0.20
  • node02:20.0.0.30
  • node03:20.0.0.40
  • client:20.0.0.50

二、环境准备

1.关闭selinux与防火墙

5台虚拟机相同操作

systemctl disable --now firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
mount /dev/sr0/ /mnt

2.修改主机名并且配置hosts解析映射

20.0.0.10(admin)

hostnamectl set-hostname admin
bash

20.0.0.20(node01)

hostnamectl set-hostname node01
bash

20.0.0.30(node02)

hostnamectl set-hostname node02
bash

20.0.0.40(node03)

hostnamectl set-hostname node03
bash

20.0.0.50(client)

hostnamectl set-hostname client
bash

配置host解析(5台虚拟机相同操作)

cat >> /etc/hosts << EOF
20.0.0.10 admin
20.0.0.20 node01
20.0.0.30 node02
20.0.0.40 node03
20.0.0.50 client
EOF

3.admin管理节点配置ssh免密登录node节点

20.0.0.10(admin)

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
sshpass -p 'jlh123' ssh-copy-id -o StrictHostKeyChecking=no root@admin
sshpass -p 'jlh123' ssh-copy-id -o StrictHostKeyChecking=no root@node01
sshpass -p 'jlh123' ssh-copy-id -o StrictHostKeyChecking=no root@node02
sshpass -p 'jlh123' ssh-copy-id -o StrictHostKeyChecking=no root@node03

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

5台虚拟机相同操作

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.配置时间同步

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

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

7.执行完上面所有的操作之后重启所有主机(可选)

sync         #确保数据写入磁盘
reboot

三、部署Ceph集群

1.创建一个Ceph工作目录

4台节点虚拟机都创建一个 Ceph 工作目录,后续的工作都在该目录下进行

mkdir -p /etc/ceph

2.安装ceph-deploy部署工具

20.0.0.10(admin)

cd /etc/ceph
yum install -y ceph-deploy
ceph-deploy --version

3.手动安装Ceph软件包

4台节点虚拟机

#若阿里云在线源安装较慢,可使用命令切换为清华大学在线源
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
ifconfig                      #查看设置是否成功

5.生成初始配置

20.0.0.10(admin)

cd /etc/ceph
ceph-deploy new --public-network 20.0.0.0/24 --cluster-network 20.0.10.0/24 node01 node02 node03

6.初始化mon节点

20.0.0.10(admin)

cd /etc/ceph
ceph-deploy mon create node01 node02 node03			
#创建mon节点,由于monitor使用Paxos算法,其高可用集群节点数量要求为大于等于3的奇数台
 
ceph-deploy --overwrite-conf mon create-initial		
#配置初始化 mon 节点,并向所有节点同步配置
# --overwrite-conf 参数用于表示强制覆盖配置文件
 
ceph-deploy gatherkeys node01						
#可选操作,向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-deploy mon add <节点名称>

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

20.0.0.10(admin)

cd /etc/ceph
ceph-deploy admin node01 node02 node03			
#本质就是把 ceph.client.admin.keyring 集群管理认证文件拷贝到各个节点

ceph -s             #所有节点都可查看集群状态

8.部署osd存储节点

3台node虚拟机各添加三个硬盘

查看3台node虚拟机新硬盘

#主机添加完硬盘后不要分区,直接使用
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan          #在线刷新新硬盘

lsblk          #查看新硬盘

20.0.0.10(admin)

  • 添加osd存储节点
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdb
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdb
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdb
 
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdc
 
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdd
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdd
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdd

ceph -s          #查看ceph集群状态

9.部署mgr节点

20.0.0.10(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 后才能执行

10.解决HEALTH_WARN问题

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

四、部署监控

1.安装ceph-mgr-dashboard

在Active节点上设置:20.0.0.20(node01)

yum install -y ceph-mgr-dashboard
ceph mgr module ls | grep dashboard

2.配置监控模块

在Active节点上设置:20.0.0.20(node01)

开启 dashboard 模块
ceph mgr module enable dashboard --force
 
禁用 dashboard 的 ssl 功能
ceph config set mgr mgr/dashboard/ssl false
 
配置 dashboard 监听的地址和端口
ceph config set mgr mgr/dashboard/server_addr 0.0.0.0
ceph config set mgr mgr/dashboard/server_port 8000
 
重启 dashboard
ceph mgr module disable dashboard
ceph mgr module enable dashboard --force
 
确认访问 dashboard 的 url
ceph mgr services

3.设置账户以及密码

在Active节点上设置:20.0.0.20(node01)

echo "12345678" > dashboard_passwd.txt
ceph dashboard set-login-credentials admin -i dashboard_passwd.txt

4.验证

浏览器访问:http://20.0.0.20:8000 ,账号密码为 admin/12345678

上一篇:【LeetCode 链表合集】


下一篇:《斯科特·凯尔比的风光摄影手册》读书笔记