zoukankan      html  css  js  c++  java
  • CentOS7部署ceph

    CEPH 简介

    不管你是想为云平台提供Ceph 对象存储和/或 Ceph 块设备,还是想部署一个 Ceph 文件系统或者把 Ceph 作为他用,所有 Ceph 存储集群的部署都始于部署一个个 Ceph 节点、网络和 Ceph 存储集群。 Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server )。

    • Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。
    • Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。
    • MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。

    Ceph 把客户端数据保存为存储池内的对象。通过使用 CRUSH 算法, Ceph 可以计算出哪个归置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个 OSD 守护进程持有该归置组。 CRUSH 算法使得 Ceph 存储集群能够动态地伸缩、再均衡和修复。

    环境说明:

    服务器

    节点
    类型
    ip
    CPU
    内存
    硬盘
    ceph-deploy
    管理平台
    192.168.68.50
    2
    4G
    /dev/sdb
    /dev/sdc
    ceph1
    Monitor osd
    192.168.68.51
    2
    4G
    /dev/sdb
    /dev/sdc
    ceph2
    osd
    192.168.68.52
    2
    4G
    /dev/sdb
    /dev/sdc
    ceph3
    osd
    192.168.68.53
    2
    4G
    /dev/sdb
    /dev/sdc

    系统环境

    ceph version: 14.2.22 nautilus
    OS: CentO7.9
    内核:5.4.161

    升级内核可参考: https://www.cnblogs.com/Sunzz/p/15624582.html

    转载请在文章开头附上原文链接地址:https://www.cnblogs.com/Sunzz/p/15624370.html

    环境准备

    修改/etc/hosts

    每个服务器都要修改
    192.168.68.50 ceph.local
    192.168.68.51 ceph1.local ceph1
    192.168.68.52 ceph2.local ceph2
    192.168.68.53 ceph3.local ceph3

    新增用户

    各ceph节点新增cephuser用户

    useradd cephuser
    echo "123456" | passwd --stdin cephuser
    echo "cephuser ALL = (root) NOPASSWD:ALL" > /etc/sudoers.d/cephuser

    安装rpm包

    ceph-deploy节点安装所需的包,root用户操作
    yum install ceph-deploy python2-pip.noarch ceph-common -y

    部署节点新增用户

    deploy管理节点新增manager用户

    useradd manager echo "123456" | passwd --stdin manager

    copy密钥

    在ceph-deploy节点上生成并copy密钥,做免密登陆
    su - manager
    ssh-keygen #一顿回车或者根据自己情况选择
    ssh-copy-id cephuser@192.168.68.51
    ssh-copy-id cephuser@192.168.68.52
    ssh-copy-id cephuser@192.168.68.53

    简化ssh配置

    ceph-deply节点的manger用户家目录下,
    修改config后deploy节点所建的用户名登录Ceph节点无需每次指定 --username cephuser ,简化了ssh和scp的用法
    vim /home/manager/.ssh/config
    Host ceph1
       Hostname ceph1
       User cephuser
    Host ceph2
       Hostname ceph2
       User cephuser
    Host ceph3
       Hostname ceph3
       User cephuser 
    chmod 600 .ssh/config

    创建集群

    创建工作目录

    mkdir ceph-cluster
    cd ceph-cluster

    创建集群

    ceph-deploy new ceph1
    或 指定网段,如果有多个网卡,可使用不同的网段
    ceph-deploy new --cluster-network 192.168.68.0/24 --public-network 192.168.68.0/24 ceph1

    安装ceph

    ceph-deploy install ceph1 ceph2 ceph3 --stable --release nautilus --repo-url=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/ --gpg-url=https://mirrors.aliyun.com/ceph/keys/release.asc
    --stable 指名为稳定版
    --release 指定版本 nautilus ,即就是14.2版本
    可指定repo为国内源
    --repo-url=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/ --gpg-url=https://mirrors.aliyun.com/ceph/keys/release.asc

    初始化monitor

    ceph-deploy mon create-initial    #初始monitor、并收集所有密钥

    部署MGR

    部署mgr

    ceph-deploy mgr create ceph1 ceph2 ceph3

    复制key

    ceph-deploy admin ceph1 ceph2 ceph3
    给deploy本身也复制一份,需要用root操作,以方便用deploy管理ceph集群
    cp /home/manager/ceph-cluster/ceph.client.admin.keyring /etc/ceph/ chmod 644 /etc/ceph/ceph.client.admin.keyring

    查看集群状态

    ceph -s 

    WARN解决

    1. Module 'restful' has failed dependency: No module named 'pecan' (这个在centos7上安装13版本不会出现)
    yum install python36-devel
    pip3 install werkzeug pecan
    systemctl restart ceph-mon.target
    systemctl restart ceph-mgr.target
    2. mon is allowing insecure global_id reclaim
    如果有警告,则禁用安全模式
    ceph config set mon auth_allow_insecure_global_id_reclaim false
    3.OSD count 0 < osd_pool_default_size 3
    这个是因为还没有添加osd,等一会添加后就好了

    添加OSD

    列出磁盘

    ceph-deploy disk list ceph1 【ceph2 ceph3】

    添加osd 

    ceph-deploy osd create --data /dev/sdb ceph1
    ceph-deploy osd create --data /dev/sdc ceph1
    ceph-deploy osd create --data /dev/sdb ceph2
    ceph-deploy osd create --data /dev/sdc ceph2
    ceph-deploy osd create --data /dev/sdb ceph3
    ceph-deploy osd create --data /dev/sdc ceph3

    扩展高可用

    ceph-deploy mon add ceph2

    开启dashboard

    提示:默认情况下,dashboard的所有HTTP连接均使用SSL/TLS进行保护。以上内置命令可快速生成并安装自签名证书。
     

    各ceph节点安装dashboard

    yum install ceph-mgr-dashboard.noarch -y

    启用dashboard

    ceph mgr module enable dashboard
    ceph dashboard create-self-signed-cert
    echo admin > pass.txt  #设置管理员密码
    ceph dashboard ac
    -user-create admin -i pass.txt #创建管理员

    或者 ceph dashboard set-login-credentials admin -i pass.txt ceph mgr services #确认验证

    或者关闭ssl

    ceph mgr module enable dashboard
    ceph config set mgr mgr/dashboard/ssl false
    echo admin > pass.txt  #创建管理员
    ceph dashboard set-login-credentials admin -i pass.txt

     阿里云镜像源

    aliyun-base.repo

    [base]
    name=CentOS-$releasever - Base - mirrors.aliyun.com
    failovermethod=priority
    baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
            http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
            http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
     
    #released updates 
    [updates]
    name=CentOS-$releasever - Updates - mirrors.aliyun.com
    failovermethod=priority
    baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
            http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
            http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
     
    #additional packages that may be useful
    [extras]
    name=CentOS-$releasever - Extras - mirrors.aliyun.com
    failovermethod=priority
    baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
            http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
            http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    base.repo

    阿里云epel源

    aliyun-epel.repo
    [epel]
    name=Extra Packages for Enterprise Linux 7 - $basearch
    baseurl=http://mirrors.aliyun.com/epel/7/$basearch
    failovermethod=priority
    enabled=1
    gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    eple.repo

    阿里云ceph源

    [ceph-noarch]
    name=Ceph noarch packages
    baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/noarch/
    #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.repo

    总结

    octopus ,即就是15.2版本,在centos7上问题比较多,dashboard没法使用。
    yum install ceph-mgr-dashboard
     

     缺的这三个报在centos8上有,centos7上没有。

  • 相关阅读:
    和远哥一起了解Hadoop的MapReduce是如何运行的
    远哥跟你说 Spring的 classpath 通配符加载配置文件
    远哥Amoeba源码分析之:核心类说明
    远哥推荐:面向网络的数据库 Neo4j
    Hadoop 1.0.3 在CentOS 6.2上安装过程 [个人安装通过的全程记录]
    OpenShift 添加 URL Rewrite 重写支持
    Access中空值处理
    解决EOS启动“不能连接到Server”的问题
    [原创]用递归写的一个object 转换成JSON的函数
    JSON反序列的问题原因查找
  • 原文地址:https://www.cnblogs.com/Sunzz/p/15624370.html
Copyright © 2011-2022 走看看