[转帖]Ceph简单搭建

ceph,简单,搭建 · 浏览次数 : 0

小编点评

**内容生成指南** **1. 准备工作** * 确保ceph安装完成。 * 创建管理节点和osd节点。 * 将ceph.conf配置项和 admin 密钥复制到管理节点和 Ceph 节点。 **2. 配置管理节点** * 编辑ceph.conf配置文件,设置管理节点地址和端口。 * 在管理节点中创建管理员用户。 **3. 配置osd节点** * 编辑ceph.conf配置文件,设置osd节点地址和端口。 * 在osd节点中创建用户。 **4. 配置ceph.conf** * 将管理节点地址和端口设置为`mon`服务。 * 设置`mgr`模块为`dashboard`服务。 * 将`server_addr`和`server_port`设置为`192.168.6.101:7000`。 * 将`client.admin.keyring`和`client.admin.keyringcopy`设置为`/etc/ceph/ceph.client.admin.keyring`。 **5. 创建文件和配置** * 在`/etc/ceph/`目录下创建`ceph.conf`文件。 * 将`mon`服务配置到`ceph.conf`文件中。 * 在`/etc/ceph/`目录下创建`mgr`模块配置文件。 * 将`dashboard`服务配置到`mgr`模块配置文件。 * 在`/etc/ceph/`目录下创建`data`目录。 * 将管理节点和osd节点的`data`目录复制到`data`目录中。 **6. 启动ceph服务** * 启动ceph服务。 * 在管理节点中启动`mon`服务。 * 在osd节点中启动`mgr`服务。 **7. 验证ceph状态** * 在管理节点中查看`mon`服务状态。 * 在osd节点中查看`mgr`服务状态。

正文

https://cloud.tencent.com/developer/article/1643322

 

Ceph基础介绍 ​ Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、Glance的镜像存储和虚拟机的数据存储,比较直观的是Ceph集群可以提供一个raw格式的块存储来作为虚拟机实例的硬盘。

​ Ceph相比其它存储的优势点在于它不单单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,同时由于Ceph的良好设计,采用了CRUSH算法、HASH环等方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响。

Ceph的核心组件 ​ Ceph的核心组件包括Ceph OSD、Ceph Monitor和Ceph MDS。

  Ceph OSD:OSD的英文全称是Object Storage Device,它的主要功能是存储数据、复制数据、平衡数据、恢复数据等,与其它OSD间进行心跳检查等,并将一些变化情况上报给Ceph Monitor。一般情况下一块硬盘对应一个OSD,由OSD来对硬盘存储进行管理,当然一个分区也可以成为一个OSD。

  Ceph OSD的架构实现由物理磁盘驱动器、Linux文件系统和Ceph OSD服务组成,对于Ceph OSD Deamon而言,Linux文件系统显性的支持了其拓展性,一般Linux文件系统有好几种,比如有BTRFS、XFS、Ext4等,BTRFS虽然有很多优点特性,但现在还没达到生产环境所需的稳定性,一般比较推荐使用XFS。

  伴随OSD的还有一个概念叫做Journal盘,一般写数据到Ceph集群时,都是先将数据写入到Journal盘中,然后每隔一段时间比如5秒再将Journal盘中的数据刷新到文件系统中。一般为了使读写时延更小,Journal盘都是采用SSD,一般分配10G以上,当然分配多点那是更好,Ceph中引入Journal盘的概念是因为Journal允许Ceph OSD功能很快做小的写操作;一个随机写入首先写入在上一个连续类型的journal,然后刷新到文件系统,这给了文件系统足够的时间来合并写入磁盘,一般情况下使用SSD作为OSD的journal可以有效缓冲突发负载。

  Ceph Monitor:由该英文名字我们可以知道它是一个监视器,负责监视Ceph集群,维护Ceph集群的健康状态,同时维护着Ceph集群中的各种Map图,比如OSD Map、Monitor Map、PG Map和CRUSH Map,这些Map统称为Cluster Map,Cluster Map是RADOS的关键数据结构,管理集群中的所有成员、关系、属性等信息以及数据的分发,比如当用户需要存储数据到Ceph集群时,OSD需要先通过Monitor获取最新的Map图,然后根据Map图和object id等计算出数据最终存储的位置。

  Ceph MDS:全称是Ceph MetaData Server,主要保存的文件系统服务的元数据,但对象存储和块存储设备是不需要使用该服务的。

  查看各种Map的信息可以通过如下命令:ceph osd(mon、pg) dump

Ceph-deploy安装ceph 基本环境

192.168.6.101    ceph1
192.168.6.102    ceph2

俩台机器都挂俩块盘,一块系统盘,一块osd

配hosts:

[root@ceph1 ~]# vim /etc/hosts
192.168.6.101   ceph1
192.168.6.102   ceph2

时间同步:

ntpdate ntp1.aliyun.com

允许无密码SSH登录:

在ceph1上执行
ssh-keygen
ssh-copy-id ceph1
ssh-copy-id ceph2

配置主机名:

hostnamectl set-hostname ceph1
hostnamectl set-hostname ceph2

配置ceph.repo

[root@ceph1 ~]# vim /etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=1
priority=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
priority=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
enabled=0
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

安装ceph-deploy:

yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum makecache
yum update -y
yum install -y ceph-deploy

创建一个 Ceph 存储集群,它有一个 Monitor 和两个 OSD 守护进程

mkdir /etc/ceph && cd /etc/ceph
ceph-deploy new ceph1     ###配置

一般会遇到个报错:
Traceback (most recent call last):
  File "/usr/bin/ceph-deploy", line 18, in <module>
    from ceph_deploy.cli import main
  File "/usr/lib/python2.7/site-packages/ceph_deploy/cli.py", line 1, in <module>
    import pkg_resources
ImportError: No module named pkg_resources

解决:
yum install -y python-setuptools

在ceph.conf中追加以下内容

# 存储集群副本个数
osd_pool_default_size = 2

管理节点和osd节点都需要安装ceph 集群:

ceph-deploy install ceph1 ceph2

配置MON初始化:

ceph-deploy mon create-initial

查看ceph集群状态:

[root@ceph1 ceph]# ceph -s
  cluster:
    id:     cde3244e-89e0-4630-84d5-bf08c0e33b24
    health: HEALTH_OK
 
  services:
    mon: 1 daemons, quorum ceph1
    mgr: no daemons active
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0B
    usage:   0B used, 0B / 0B avail
    pgs:

开启监控模块

ceph-deploy mgr create ceph1

在/etc/ceph/ceph.conf中添加

[mgr]
mgr modules = dashboard

查看集群支持的模块

[root@ceph1 ceph]# ceph mgr dump   
[root@ceph1 ceph]# ceph mgr module enable dashboard   #启用dashboard模块




[root@ceph1 ceph]# ceph mgr dump
{
    "epoch": 3,
    "active_gid": 4110,
    "active_name": "ceph1",
    "active_addr": "192.168.6.101:6800/6619",
    "available": true,
    "standbys": [],
    "modules": [        "balancer",
        "restful",
        "status"
    ],
    "available_modules": [        "balancer",
        "dashboard",
        "influx",
        "localpool",
        "prometheus",
        "restful",
        "selftest",
        "status",
        "zabbix"
    ],
    "services": {}
}
[root@ceph1 ceph]# ceph mgr module enable dashboard
[root@ceph1 ceph]# ceph mgr dump
{
    "epoch": 6,
    "active_gid": 4114,
    "active_name": "ceph1",
    "active_addr": "192.168.6.101:6800/6619",
    "available": true,
    "standbys": [],
    "modules": [        "balancer",
        "dashboard",
        "restful",
        "status"
    ],
    "available_modules": [        "balancer",
        "dashboard",
        "influx",
        "localpool",
        "prometheus",
        "restful",
        "selftest",
        "status",
        "zabbix"
    ],
    "services": {}
}

[root@ceph1 ceph]# ceph -s
  cluster:
    id:     cde3244e-89e0-4630-84d5-bf08c0e33b24
    health: HEALTH_OK
 
  services:
    mon: 1 daemons, quorum ceph1
    mgr: ceph1(active)
    osd: 2 osds: 2 up, 2 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0B
    usage:   2.00GiB used, 30.0GiB / 32.0GiB avail
    pgs:

设置dashboard的ip和端口

[root@ceph-node1 ceph]# ceph config-key put mgr/dashboard/server_addr 192.168.6.101
set mgr/dashboard/server_addr
[root@ceph-node1 ceph]# ceph config-key put mgr/dashboard/server_port 7000
set mgr/dashboard/server_port
[root@ceph1 ~]# netstat -tulnp |grep 7000
tcp        0      0 192.168.6.101:7000      0.0.0.0:*               LISTEN      19836/ceph-mgr

创建osd 删除磁盘数据

[root@ceph1 ceph]# ceph-deploy disk zap ceph1 /dev/sdb
[root@ceph1 ceph]# ceph-deploy disk zap ceph2 /dev/sdb

创建osd(一共俩个)

[root@ceph1 ceph]# ceph-deploy osd create ceph1 --data /dev/sdb
[root@ceph1 ceph]# ceph-deploy osd create ceph2 --data /dev/sdb

ceph秘钥拷贝(主节点执行)及修改密钥权限 用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了

[root@ceph1 ceph]# ceph-deploy admin ceph1 ceph2

修改密钥权限(所有节点上执行)

[root@ceph1 ceph] # chmod +r /etc/ceph/ceph.client.admin.keyring
[root@ceph2] # chmod +r /etc/ceph/ceph.client.admin.keyring

这时看下danshboard图:

ceph_dash1.png

与[转帖]Ceph简单搭建相似的内容:

[转帖]Ceph简单搭建

https://cloud.tencent.com/developer/article/1643322 Ceph基础介绍 ​ Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ce

[转帖]ceph学习一之基础知识

https://www.cnblogs.com/liuxingxing/p/13551406.html 一、ceph简介 Ceph是一个可靠、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备和文件系统服务。块设备存储是Ceph的强项。 Ceph的主要

[转帖]Ceph学习之路(二)之Ceph的工作原理及流程

Ceph学习之路(二)之Ceph的工作原理及流程 https://www.cnblogs.com/linuxk/p/9414920.html 一、RADOS的对象寻址 Ceph 存储集群从 Ceph 客户端接收数据——不管是来自 Ceph 块设备、 Ceph 对象存储、 Ceph 文件系统、还是基于

[转帖]Ceph优化系列(四):RocksDB 使用 ARM 64 位 CRC32C 硬件优化指令

一、前言 CRC32(A cyclic redundancy check 32)应用于校验,为了保证数据的正确性,采用的一种检错手段。 CRC32C (CRC32 Castagnoli) 与 CRC32 不同的是它有多项式常数,也就是说生成的CRC表不同,而算法是一模一样. 二、内容 1. Ceph

[转帖]玩转 Ceph 的正确姿势

玩转 Ceph 的正确姿势 https://www.cnblogs.com/me115/p/6366374.html Ceph 客户端 Ceph 服务端 总结 参考 玩转 Ceph 的正确姿势本文先介绍 Ceph, 然后会聊到一些正确使用 Ceph 的姿势;在集群规模小的时候,Ceph 怎么玩都没问

[转帖]kubernetes ceph

kubernetes ceph https://www.jianshu.com/p/e628da68328d 安装软件 在所有节点上添加清华大学的ceph镜像源 #cat >> /etc/yum.repos.d/ceph.repo << EOF [ceph] name=Ceph baseurl=ht

[转帖]玩转 Ceph 的正确姿势

https://www.cnblogs.com/me115/p/6366374.html 内容目录: Ceph 客户端 Ceph 服务端 总结 参考 玩转 Ceph 的正确姿势本文先介绍 Ceph, 然后会聊到一些正确使用 Ceph 的姿势;在集群规模小的时候,Ceph 怎么玩都没问题;但集群大了(

[转帖]【测试】 FIO:ceph/磁盘IO测试工具 fio(iodepth深度)

目录 随看随用 NAS文件系统测试 块系统测试 FIO用法 FIO介绍 FIO 工具常用参数: FIO结果说明 I/O 的重放('录'下实际工况的IO,用fio'重放') fio工作参数可以写入配置文件 fio的iodepth参数说明 IO状态监控: Iostat介绍 其他相关工具和内容 与FIO相

[转帖]k8s对接ceph,ceph-csi方式

1.上传ceph-csi-yaml和ceph-csi-image 两个文件夹到服务器 2.加载 ceph-csi-image里面的镜像 3.将加载好的镜像上传到本地harbor上。 4.修改ceph-csi-yaml文件夹里面的 yaml文件内容 k8s对接ceph离线安装包 #csi-config

[转帖][译] [论文] Ceph: A Scalable, High-Performance Distributed File System (OSDI 2006)

http://arthurchiao.art/blog/ceph-osdi-zh/ 译者序 本文翻译自 2006 年 Sage Weil 的论文:Ceph: A Scalable, High-Performance Distributed File System (PDF)。 标题直译为:《Ceph