虚拟化云计算-分布式存储ceph环境搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟化云计算-分布式存储ceph环境搭建相关的知识,希望对你有一定的参考价值。

概念

ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和高扩展性。目前支持三种存储接口:块存储(RBD),文件系统存储(Ceph FS)和对象存储(RGW ,全称RADOS gateway)

ceph使用了CRUSH算法,数据分布均衡,并行度高;跨越分布式存储,能够支持上千个存储节点的规模,支持TB到PB级的数据。副本可以灵活控制,数据强一致性,没有电故障,实施自动管理,实现高可用性,去中心化,灵活扩展,实现高扩展性。

ceph的核心组件以及概念:

核心组件

介绍

Monitor

监视器,一个ceph集群需要多个Monitor组成的小集群,他们通过Paxos同步数据,用来保存OSD的元数据。Monitor一般要求部署奇数个,考虑高可用性一般部署3个以上,小型应用可可部署1个

OSD

Object Stroage Device,也就是响应客户端请求返回具体数据的进程。一个Ceph集群一般都有多个OSD

Managers

从12.0版后,Ceph部署必须配置Mangers节点,管理Ceph集群的当前状态。Ceph mgr是从Monitor中分离出来的一项功能。高可用通常至少2个Manager节点。

MDS

Ceph Metadata Server ,是CephFS服务依赖的元数据服务,元数据是描述数据属性的数据。

Object

Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据

PG

Placement Grouops(归置组),是一个逻辑概念,一个PG包含多个OSD,引入PG这一层是为了更好的分配数据和定位数据。

RADOS

Reliable Automic Distributed Object Store,是Ceph集群的精华,用户实现数据分配,Failover等集群操作

Libradio

lIbrados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD,RGW和CephFS都是通过librados访问的

CRUSH

数据分布式算法,类似一致性哈希,让数据分配到预期的地方

RBD

RADOS BLOCK device,是Ceph类似ISCSI的方式对外提供块存储服务

RGW

RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和swift兼容

CephFS

CephFS File System,是Ceph对外提供的文件系统服务,以共享文件夹的方式提供存储服务

规划设计

三台虚拟机,centos7操作系统,使用的ceph版本为minic版。

名称

IP

部署进程

数据盘

ceph1

192.168.100.201

MON+mgr+OSD

/dev/sdb

ceph2

192.168.100.202

MON+mgr+OSD

/dev/sdb

ceph3

192.168.100.203

MON+mgr+OSD

/dev/sdb

clinet

192.168.100.100

 客户端

-

环境准备

#ceph节点和客户端配置
service firewalld stop
chkconfig firewalld off
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
setenforce 0

#配置yum源
mv /etc/yum.repos.d/Cen* /opt/ #将系统默认配置的源文件移除#
wget -O /etc/yum.repos.d/CentOS-Base.repo \\
http://mirrors.aliyun.com/repo/Centos-7.repo
wget –O /etc/yum.repos.d/epel.repo \\
http://mirrors.aliyun.com/repo/ epel.repo

#配置host文件
vi /etc/hosts
192.168.100.201 ceph1
192.168.100.202 ceph2
192.168.100.203 ceph3
192.168.100.100 client

#配置chrony服务
#Chrony 是一个开源的自由软件,能保持系统时钟与时钟服务器(NTP)同步,在分布式
#集群中,为了便于同一生命周期内不同节点服务的管理,需要各个节点的服务严格时钟同步,
#以下配置中,以 client 节点作为时钟服务器,其他节点以 client 节点的时钟作为时钟标准调
#整自己的时钟

#ceph节点和client配置chrony服务
yum -y install chrony

#client节点,配置为服务端
vi /etc/chrony.conf
#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 ntp1.aliyun.com
server 210.72.145.44
server 202.112.10.36
allow 192.168.100.0/24
local stratum 10

#其他三个节点,编辑 chrony.conf 配置文件,在所有默认的 server 前加“#”,并添加本地时钟服务器
vi /etc/chrony.conf
#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 192.168.100.100

#所有节点启动chrony服务
systemctl restart chronyd && systemctl enable chronyd

#确认时钟同步情况
chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
=====================================================================
^* client 10 6 377 27 -66us[ -167us] +/- 167us

#配置ceph使用的yum源
#vi /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for x86_64
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/x86_64/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

#配置python支持组件
yum install -y python-pip

#ceph1上配置免密登录
ssh-keygen
# ssh-copy-id root@ceph2
# ssh-copy-id root@ceph3

部署ceph集群

ceph-deploy是个部署工具,使用它可以实现所有节点同步安装,如果这个工具无法使用,就必须在每个节点同步安装,如果这个工具无法使用,就必须每个节点上进行安装过程。

#节点ceph1
yum -y install ceph-deploy
mkdir ceph-cluster && cd ceph-cluster

#初始化部署monitor
ceph-deploy new ceph1,2,3
ceph-deploy install ceph1 ceph2 ceph3
ceph-deploy mon create ceph1,2,3
ceph-deploy mon create-initial
ceph mon_status 检查部署情况


#用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样每次执
#行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring。
ceph-deploy admin ceph1 ceph2 ceph3
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
ceph-deploy osd create ceph1 --data /dev/sdb
ceph-deploy osd create ceph2 --data /dev/sdb
ceph-deploy osd create ceph3 --data /dev/sdb
#创建mgr
ceph-deploy osd list ceph1 ceph2 ceph3
ceph-deploy mgr create ceph1 ceph2 ceph3
#验证测试
8)验证测试
# ceph health
正常情况将显示“HEALTH_OK”。
#ceph -s
将显示详细信息。如果该简化命令提示错误,则使用 ceph –status。
cluster:
id: f26051f4-8ab4-4b7e-9980-3f3748f8cd30
health: HEALTH_OK
services:
mon: 3 daemons, quorum ceph1,ceph2,ceph3
mgr: ceph1(active), standbys: ceph3, ceph2
osd: 3 osds: 3 up, 3 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 3.0 GiB used, 117 GiB / 120 GiB avail
pgs:

#时间同步问题
#如果 ceph –s 显示如下信息:
ceph –s
health HEALTH_WARN
clock skew detected on mon.node2, mon.node3
Monitor clock skew detected

#往往是各节点时钟同步出错。修改 ceph1 节点的配置文件/etc/ceph/ceph.conf,添加如
#下内容,将同步时间由默认的 0.05s 改到 1s(或 2s)。

[mon]
mon clock drift allowed =1
mon clock drift warn backoff = 30

​Ceph 从 Luminous 开始,提供了原生的 Dashboard 功能,通过 Dashboard 可以获取 Ceph 集群的各种状态信息,从 Mimic 里实现了 Dashboard V2 版本,提供了更全面的 Ceph 展示和 管理功能​。

ceph –s
mgr: ceph1(active), standbys: ceph2, ceph3
#生成自签名证书和秘钥
ceph dashboard create-self-signed-cert
Self-signed certificate created
生成 key pair,并配置给 ceph mgr
[root@ceph1 ~]# mkdir mgr-dashboard
[root@ceph1 ~]# cd mgr-dashboard/
[root@ceph1 mgr-dashboard]# openssl req -new -nodes -x509 -subj "/O=IT/CN=ceph-mgr￾dashboard" -days 3650 -keyout dashboard.key -out dashboard.crt -extensions v3_ca
Generating a 2048 bit RSA private key
............................+++
........................................................+++
writing new private key to dashboard.key
-----
[root@ceph1 mgr-dashboard]# ls
dashboard.crt dashboard.key
#启用 dashboard 插件
[root@ceph1 mgr-dashboard]# ceph mgr module enable dashboard
#配置 dashboard 地址和端口
[root@ceph1 mgr-dashboard]# ceph config set mgr mgr/dashboard/server_addr
192.168.100.201
set mgr/dashboard/server_addr
[root@ceph1 mgr-dashboard]# ceph config set mgr mgr/dashboard/server_port 8888
set mgr/dashboard/server_port
#查看 dashboard 服务:
[root@ceph1 mgr-dashboard]# ceph mgr services

"dashboard": "https://192.168.100.201:8888/"

#配置 dashboard 认证密码
[root@ceph1 mgr-dashboard]# ceph dashboard set-login-credentials admin 123456
Username and password updated

配置完成后,现在可以通过地址 ​​https://192.168.100.201:8888/​​​来访问 ceph 的 dashboard 了,在界面上显示了当前 ceph集群的health状态

虚拟化云计算-分布式存储ceph环境搭建_bc


虚拟化云计算-分布式存储ceph环境搭建_centos_02


虚拟化云计算-分布式存储ceph环境搭建_bc_03

​在 Cluster 选项卡可以查看集群中的主机(Hosts)、监视器(Monitors)、OSDs、配置文 档等信息,如图 所示。此外如果后续配置了块存储、文件系统、对象存储,可以分别 在“Block”、“Filesystems”、“Object Gateway”选项界面查看。 至此,基于 ceph 搭建分布式集群环境基本完成,后续可以在此基础上搭建块存储、文 件存储、对象存储等​

以上是关于虚拟化云计算-分布式存储ceph环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

三节点ceph分布式存储集群部署

CEPH环境搭建

龙芯KVM虚拟化云平台案例解析

centos7搭建虚拟化云环境(简单)

如何搭建ceph虚拟基础设施 windows环境

k8s 对接 ceph 实现持久化存储