单机版Ceph环境部署,Linux平台

Ceph已经如火如荼,不少公司都在使用Ceph做为本身的存储系统。平常学习不太可能安装一个Ceph集群,所以本文介绍如何部署一个单节点的Ceph系统。另外,本文安装的后端存储引擎是BlueStore,这个引擎是目前性能比较好,且成熟的引擎。

环境说明

  1. 单节点:能够是VMWare或者VirtualBox虚拟机
  2. 操做系统: CentOS 7.4 或者 Ubuntu 18.04
  3. 部署工具:使用 ceph-deploy 进行部署

安装软件ceph-deploy

咱们针对目前比较流行的2个发行版分别介绍,也就是CentOS和Ubuntu系统。对于其它发行版本文暂时不作介绍。后端

CentOS 7.4

准备 centos 7.4 系统的机器(能够是物理机或者虚拟机),并配置好 ssh 的无密码登陆。 须要注意的是这里须要的版本是2.0,不要使用系统默认的版本(默认版本多是1.x)。由于默认版本比较低,可能没法使用BlueStore特性。centos

yum install https://download.ceph.com/rpm-luminous/el7/noarch/ceph-deploy-2.0.0-0.noarch.rpm
复制代码

Ubuntu 18.04

对于Ubuntu系统须要添加安装源,若是使用系统默认的安装源ceph-deploy版本过低,后续操做会有问题。缓存

wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
echo deb https://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
复制代码

上述命令中的ceph-stable-release是但愿安装Ceph的版本,在具体安装时须要替换掉,好比但愿安装L版本则须要替换成字符串luminous, 若是但愿安装M版时,须要替换成字符串mimic。下面是一个具体的例子。bash

echo deb https://download.ceph.com/debian-luminous/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
复制代码

添加完安装源后,更新apt缓存,而后就能够安装ceph-deploy了,具体命令以下:架构

sudo apt update
sudo apt -y install ceph-deploy
复制代码

安装ceph软件包

建立新集群 安装完ceph-deploy以后就能够经过它安装ceph软件了(后续安装与发行版没有关系了),固然首先要建立一个ceph集群。建立ceph集群也是经过ceph-deploy命令,其本质上是建立配置文件和key文件ssh

mkdir myceph
cd myceph
ceph-deploy new zhangsn
复制代码

由于咱们是单节点ceph集群,所以须要将集群的副本数量设置为1,这样方便一些。具体方法是把以下内容加入到 ceph.conf 里面。工具

[global]
osd pool default size = 1
osd pool default min size = 1
复制代码

安装 ceph 软件 修改完配置文件以后,咱们就能够安装Ceph软件包了。以安装L版本的软件为例,执行以下命令便可。性能

ceph-deploy install --release luminous zhangsn
复制代码

初始化 mon Ceph的整个集群的状态和配置信息等都是经过一个名为Monitor的集群管理的,所以首先须要启动Monitor服务。能够执行以下命令完成:学习

ceph-deploy mon create-initial
ceph-deploy admin zhangsn
复制代码

启动Monitor节点后Ceph集群就能够访问了,经过ceph -s命令能够查看集群的状态。 ui

图1 Ceph集群状态

部署ceph mgr ceph mgr也是一个必须部署的组件,能够经过以下命令部署。

ceph-deploy  mgr create zhangsn
复制代码

部署ceph osd 咱们知道OSD是Ceph中存储数据的节点,前面咱们部署了Monitor节点,接下来部署 ceph osd。为了便于咱们后续研究BlueStore的架构及原理,咱们建立2种类型的OSD,一个是具备3个逻辑卷的OSD(模拟不一样类型的存储介质),另一个是只有一个逻辑卷的OSD。 首先建立具备3个逻辑卷的OSD,分别是db、wal和data。分别执行以下命令建立卷组和逻辑卷。

$ pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.
$ vgcreate  ceph-pool /dev/sdb
  Volume group "ceph-pool" successfully created
$ lvcreate -n osd0.wal -L 1G ceph-pool
  Logical volume "osd0.wal" created.
$ lvcreate -n osd0.db -L 1G ceph-pool
  Logical volume "osd0.db" created.
$ lvcreate -n osd0 -l 100%FREE ceph-pool
  Logical volume "osd0" created.
复制代码

完成逻辑卷的建立后咱们就能够建立 OSD 了。

ceph-deploy osd create \
    --data ceph-pool/osd0 \
    --block-db ceph-pool/osd0.db \
    --block-wal ceph-pool/osd0.wal \
    --bluestore zhangsn
复制代码

若是一切顺利,通过上述步骤后就完成了一个最小的集群的建立了。能够在经过ceph -s查看一下状态。

图2 Ceph集群状态

接下来咱们在建立一个运行在整个裸盘上的OSD,也是经过ceph-deploy进行建立,具体命令以下:

ceph-deploy osd create --bluestore zhangsn --data /dev/sdc
复制代码

至此,咱们完成了整个安装过程,能够经过前面的命令看一下集群的状态,本文不在赘述。BlueStore在设计的时候就能够支持多个分区,主要目的是为了在同一个OSD的不一样内容使用不一样的存储介质。例如,对于元数据采用更高性能的SSD。 今天咱们部署了一个基本的环境,后续咱们将依赖该环境进行后续的学习,好比BlueStore的实现原理和代码分析等等。

相关文章
相关标签/搜索