• Ceph rdb


    Ceph 独一无二地用统一的系统提供了对象、块、和文件存储功能,它可靠性高、管理简便、并且是自由软件。 Ceph 的强大足以改变公司的 IT 基础架构、和管理海量数据。 Ceph 可提供极大的伸缩性——供成千用户访问 PB 乃至 EB 级的数据。 Ceph 节点以普通硬件和智能守护进程作为支撑点, Ceph 存储集群组织起了大量节点,它们之间靠相互通讯来复制数据、并动态地重分布数据。

    如图为应用场景示意图,其核心是RADOS,也即高可用、自动化的分布式对象存储,该模块负责对OSD的自动化运行,保证整个存储系统的可用性。同时,该模块通过一个名为librados的公共库对外提供存储服务,块存储和对象存储都依赖该动态库。

    同时,Ceph本身封装了对象存储的接口和块存储的接口。对象存储的接口包括对象网关和对象存储访问库等。块存储接口包括块存储访问动态库、Python绑定库和内核态的虚拟块设备。

    Ceph存储系统的逻辑层次结构如下图所示:

    Ceph存储系统的组件

    Ceph集群的核心组件是OSD和MON,其中OSD用于数据的具体存储操作,MON用于一些“映射图”,通过该“映射图”客户端可以计算出数据的存放位置,并将数据直接发送给相应的OSD处理。由于OSD和MON之间存在监控关系,并且通过相应的策略进行相关调度,保证自动故障处理和负载均衡等,因此将OSD、MON以及这些策略统称为RADOS。

    为了便于对RADOS的管理和使用,在RADOS之上实现了一套动态库(librados),动态库通常位于客户端,通过网络与RADOS交互命令和数据。

    Ceph天生就是对象存储,rados本身提供了一套以对象方式存储和访问Ceph集群数据的接口。而Ceph又同时提供了块存储和文件系统存储的功能,该功能基于Ceph的对象存储实现。

    OSD

    OSD的全称是Object Storage Device,OSD通常是一个物理的存储设备(例如磁盘),也可以是逻辑的存储设备(例如磁盘上的某个文件夹)。当然,这里的存储设备不限于服务器上的本地硬盘,也可以是通过iSCSI协议或者FC协议映射的LUN。 有时候提及的OSD实际上是OSD守护进程,视语境而定。

    OSD守护进程

    OSD守护进程是OSD的软件实现,OSD守护进程用来对OSD进行管理(数据读写等),客户端数据交互的对象是OSD守护进程。

    MON

    MON是Ceph集群的监控软件,一个守护进程,其中包含若干“映射图”信息。客户端向Ceph集群写数据前通常要向MON请求,获取最新的“映射图”,并通过其计算出数据的存放位置。

    librados

    librados是一个动态库程序,其提供了客户端访问Ceph集群的原生态统一接口。其它接口或者命令行工具都基于该动态库实现。

    在librados中实现了Crush算法和网络通信等公共功能,数据请求操作在librados计算完成后可以直接与对应的OSD交互进行数据传输

    CEPH 块设备

    Ceph 块设备是精简配置的、大小可调且将数据条带化存储到集群内的多个 OSD 。 Ceph 块设备利用 RADOS 的多种能力,如快照、复制和一致性。 Ceph 的 RADOS 块设备( RBD )使用内核模块或 librbd 库与 OSD 交互。

    ceph安装

    配置ceph yum源

    vim /etc/yum.repos.d/ceph.repo

    [ceph]

    name=ceph

    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/

    gpgcheck=0

    [ceph-noarch]

    name=cephnoarch

    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/

    升级系统

    yum update -y && yum install ceph-deploy -y

    安装ntp

    yum install -y ntp ntpdate ntp-doc

    ntpdate 0.us.pool.ntp.org

    hwclock –systohc

    systemctl enable ntpd.service

    systemctl start ntpd.service

    vmware需要安装的组件

    yum install -y open-vm-tools

    创建用户

    useradd -d /home/cephuser -m cephuser

    passwd cephuser

    用户权限

    echo “cephuser ALL = (root) NOPASSWD:ALL” | sudo tee /etc/sudoers.d/cephuser

    chmod 0440 /etc/sudoers.d/cephuser

    sed -i s’/Defaults requiretty/#Defaults requiretty’/g /etc/sudoers

    关闭selinux

    sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config

    关闭防火墙

    systemctl enable firewalld

    firewall-cmd –set-default-zone=trusted

    firewall-cmd –complete-reload

    firewall-cmd –list-all

    安装ceph(ceph节点)

    yum -y install ceph

    ceph –version

    ceph version 10.2.9 (2ee413f77150c0f375ff6f10edd6c8f9c7d060d0)

    格式化磁盘(ceph节点)

    配置免密钥登陆

    创建集群配置

    修改集群配置文件

    安装ceph组件

    ceph-deploy install –no-adjust-repos ceph2

    ceph-deploy install –no-adjust-repos ceph3

    查看密钥

    [cephuser@ceph1 cluster]$ ls

    ceph.bootstrap-mds.keyring ceph.bootstrap-rgw.keyring ceph-deploy-ceph.log

    ceph.bootstrap-mgr.keyring ceph.client.admin.keyring ceph.mon.keyring

    ceph.bootstrap-osd.keyring ceph.conf

    该命令将创建监视器键,使用’ceph’命令检查并获取密钥。

    ceph-deploy gatherkeys ceph2

    ceph-deploy gatherkeys ceph3

    查看磁盘

    准备OSD

    激活OSD

    查看OSD节点

    查看磁盘分区情况

    分发key

    所有节点给admin key 授权

    查看集群状态

    Ceph存储空间查看

    查看OSD状态

    查看OSD dump

    ceph rbd

    client端配置

    Ceph提供rbd命令来管理rados块设备图像。我们可以使用rbd命令创建新映像,调整大小,创建快照并导出我们的块设备。

    创建一个大小为40GB的新的rbd映像,然后在rbd列表中检查’ disk01 ‘。

    测试可用

    到此ceph的RBD搭建完毕,ceph的RBD作为块设备像硬盘一样直接挂载,未来在容器平台会有很大的应用场景。

  • 相关阅读:
    修改Ubuntu从文本界面登录
    Putty等工具中解决SSH连接超时断开的问题
    QoS policy-map class-map
    Linux中的do{...} while(0)
    手动增加swap分区
    __attribute__ 机制详解(一)
    欢迎来语雀关注我
    WebForm 生成并显示二维码
    《C#图解教程》 总览
    C#图解教程 第二十五章 其他主题
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/10785235.html
Copyright © 2020-2023  润新知