虚拟化云计算-分布式存储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-mgrdashboard" -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状态
在 Cluster 选项卡可以查看集群中的主机(Hosts)、监视器(Monitors)、OSDs、配置文 档等信息,如图 所示。此外如果后续配置了块存储、文件系统、对象存储,可以分别 在“Block”、“Filesystems”、“Object Gateway”选项界面查看。 至此,基于 ceph 搭建分布式集群环境基本完成,后续可以在此基础上搭建块存储、文 件存储、对象存储等
以上是关于虚拟化云计算-分布式存储ceph环境搭建的主要内容,如果未能解决你的问题,请参考以下文章