zoukankan      html  css  js  c++  java
  • ceph 部署步骤和原理理解

    1.ceph的官方源在国外,网速比较慢,此处添加ceph源为阿里源(每个节点上均执行)

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

    [Ceph] name=Ceph packages for $basearch

    baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/

    enabled=1

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    [Ceph-noarch]

    name=Ceph noarch packages

    baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/

    enabled=1

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    [ceph-source]

    name=Ceph source packages

    baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/

    enabled=1

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    2.需要在 每一个节点 为 ceph 创建用户, 并设置 sudo 权限, 虽然可以拥有不同的用户名,但是这里为了省事都叫 uceph

    useradd -d /home/uceph -m uceph
    passwd uceph
    echo "uceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/uceph
    chmod 0440 /etc/sudoers.d/uceph

    3.切到 uceph 用户,让 admin-node 能无密钥 ssh 到各节点

    ssh-keygen
    ssh-copy-id uceph@{node1}

    安装 EPEL(各个节点都要先安装)

    sudo yum install yum-plugin-priorities


    其他步骤可以参考官网或者

    ceph 安装记录
    http://makaidong.com/kischn/10225_12616314.html

     
     
     

    概念:Ceph是一个支持大量小文件和随机读写的分布式文件系统,在维护 POSIX 兼容性的同时加入了复制和容错功能。

    生产环境主要的两种应用:

    • 对象系统,类似Swift, 这里是RADOS, Reliable Autonomic Distributed Object Store, 可靠的自主分布式对象存储。在每台host上都要运行OSD(Object Storage Daemon)进程,当然,如果已经用RAID, LVM或btrf,xfs(最好别用ext4)将每台host上的硬盘都做成一个池了的话,运行一个OSD就可以了。OSD会默认创建三个池:data, metadaRBD 。同时,在每台host上还要运行MON (Monitor)进程。
    • 块存储类似Cinder

    云平台架构。

    ceph架构图如下:

    基础存储系统RADOS     ------->   可靠的自主的分布式对象存储

    这一层本身就是一个完整的对象存储系统,所有存储在Ceph系统中的用户数据事实上最终都是由这一层来存储的。RADOS由大量的存储设备节点组成,每个节点拥有自己的硬件资源(CPU、内存、硬盘、网络),并运行着操作系统和文件系统。

    基础库librados

    这一层的功能是对RADOS进行抽象和封装,并向上层提供API,以便直接基于RADOS(而不是ceph)进行应用开发。物理上libradios和基于其上开发的应用位于同一台机器,因此也被成为本地API。应用调用本机上的libradios API,再由后者通过socket与RADIOS集群中的节点通信完成各种操作。

    高层应用接口

    这一层包括了三个部分:RADOS GW(RADOS Gateway)、RBD(Reliable Block Device)、Ceph FS(Ceph File System),其作用时在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。

    RBD则提供了一个标准的块设备接口,常用于在虚拟化的场景下创建volume。

    RADOS的逻辑结构图如下:

    RADOS集群主要由两种节点组成。一种是为数众多的、负责完成数据存储和维护功能的OSD(Object Storage Device),另一种则是若干个负责完成系统状态监测和维护的monitor。

    OSD和monitor之间互相传输节点状态信息,共同得出系统的总体工作状态,并形成一个全局系统状态记录数据结构,即cluster map。这个数据结构与RADOS提供的特定算法相配合,以便实现了Ceph”无须查表,算算就好”的核心机制以及若干优秀特性。

    Ceph中的寻址至少要经历以下三次映射:

    File -> object映射:其映射十分简单,本质上就是按照object的最大size对file进行切分,相当于RAID中的条带化过程。

    Object -> PG映射:在file被映射为一个或多个object之后,就需要将每个object独立地映射到一个PG中去。

    PG -> OSD映射:将作为object的逻辑组织单元的PG  ----> 映射到数据的实际存储单元OSD。

    注意:映射过程中使用cluster map中的placement group map,OSDmap。

    3.openstack和ceph结合

    1.OpenStack Cinder、Glance 和 Nova 分别会将卷、镜像和虚机镜像保存到 Ceph 分布式块设备(RBD)中 Nova 将虚机的镜像文件放在本地磁盘或者Cinder 卷上。 为了与 Ceph 集成,Nova 中添加了新的代码来将镜像文件保存在 Ceph 中。

    2.OpenStack Cinder 组件和 Ceph RBD 集成的目的是将 Cinder 卷(volume)保存在 Ceph RBD 中。当使用 Ceph RBD 作为 Cinder 的后端存储时,不需要单独的一个 Cinder-volume 节点.

    OpenStack 和 Ceph 之间还有其它的集成点:

    使用 Ceph 替代 Swift 作为对象存储

    CephFS 作为 Manila 的后端(backend)

    Keystone 和 Ceph Object Gateway 的集成

    1.OSD磁盘的格式:Btrfs:与使用XFS和ext4文件系统的OSD相比,使用Btrfs文件系统的OSD能够提供更佳的性能。Btrfs目前还不具备应用于生产系统的条件。

  • 相关阅读:
    Oracle第一课
    Web前端试题
    E
    Kingdom of Black and White
    D. Let's Go Hiking
    2021牛客寒假 第一场
    Codeforces Round #691 (Div. 2)
    CF1461D
    CF1461B
    浙财16th校赛 F因子
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/8322119.html
Copyright © 2011-2022 走看看