• ceph分布式存储


    ceph特点

    Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储

    是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。

    特点
        1. 统一存储
            虽然 ceph 底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。
        2. 高扩展性
            扩容方便、容量大。能够管理上千台服务器、EB 级的容量。
        3. 可靠性强
            支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自动管理、自动修复。无单点故障,容错性强。
        4. 高性能
            因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的 IOPS和吞吐量越高。另外一点 ceph 客户端读写数据直接与存储设备(osd) 交互。

    搭建ceph准备工作(四台都要操作)

    环境拓扑
        centos1
            monitor
            osd
            192.168.115.3


        centos2
            osd
            192.168.115.4


        centos3
            osd
            192.168.115.5


        centos4
            Client
            192.168.115.6

    环境

    关闭防火墙

    systemctl stop firewalld.service 
    systemctl disable firewalld.service 

    关闭网络图形管理器

    systemctl stop NetworkManager
    systemctl disable NetworkManager

    关闭Selinux


        setenforce 0

    主机名修改


        hostnamectl set-hostname centos{1..4}

    修改ssh配置
        sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config
        systemctl restart sshd

    修改hosts文件

    vim /etc/hosts
        192.168.115.3   centos1
        192.168.115.4    centos2
        192.168.115.5    centos3
        192.168.115.6    centos4

    ssh免密

    ssh-keygen

    ssh-copy-id 192.168.115.3

    for i in3 4 5 6; do ssh-copy-id root@192.168.115.$i;done

    时间同步


        在centos1上开启时间同步服务器
        安装        yum install -y ntp
        配置        vim /etc/ntp.conf


            server 127.127.1.0
                定义时间服务器
            fudge 127.127.1.0 stratum 8
                定义时间层次


        启动
            systemctl start ntpd
            systemctl enable ntpd


        客户端对时
            for i in 4 5 ;do ssh 192.168.115.$i  ntpdate 192.168.115.3;done

    添加磁盘


    热扫描磁盘
        echo "- - -" > /sys/class/scsi_host/host0/scan
        for i in 4 5;do ssh 192.168.115.$i  echo "- - -" > /sys/class/scsi_host/host0/scan && lsblk;done
    格式化
        mkfs.xfs /dev/sdb

    ceph安装(只在centos1执行)

    yum install epel-release -y


    yum install lttng-ust -y

    添加ceph安装源

    1. [Ceph]
    2. name=Ceph packages for $basearch
    3. baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/
    4. enabled=1
    5. gpgcheck=1
    6. type=rpm-md
    7. gpgkey=https://download.ceph.com/keys/release.asc
    8. [Ceph-noarch]
    9. name=Ceph noarch packages
    10. # 清华源
    11. baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/
    12. enabled=1
    13. gpgcheck=1
    14. type=rpm-md
    15. gpgkey=https://download.ceph.com/keys/release.asc
    16. [ceph-source]
    17. name=Ceph source packages
    18. baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/
    19. enabled=1
    20. gpgcheck=1
    21. type=rpm-md
    22. gpgkey=https://download.ceph.com/keys/release.asc

     yum -y install ceph ceph-deploy 

    集群构建


        创建集群目录


            mkdir -p /usr/local/soft/cephcluster
            cd /usr/local/soft/cephcluster


        创建集群


            ceph-deploy new centos1 centos2 centos3


      

     修改配置文件

    1. #对外开放网段
    2. public network = 192.168.115.0/24
    3. # 设置pool池默认分配数量
    4. osd pool default size = 2
    5. # 容忍更多的时钟误差
    6. mon clock drift allowed = 2
    7. mon clock drift warn backoff = 30
    8. # 允许删除pool
    9. mon_allow_pool_delete = true
    10. [mgr]
    11. # 开启WEB仪表盘
    12. mgr modules = dashboard


        安装


            ceph-deploy install centos1 centos2 centos3
     

       初始化monitor


            ceph-deploy mon create-initial


        同步管理信息


            ceph-deploy admin  centos1 centos2 centos3


        安装mgr(管理守护进程)


            ceph-deploy mgr create  centos1 centos2 centos3


        安装rgw


            ceph-deploy rgw create centos1 centos2 centos3


        创建mds服务


            ceph-deploy mds create centos1 centos2 centos3


        OSD安装


            创建OSD
                ceph-deploy osd create --data /dev/sdb centos1
                ceph-deploy osd create --data /dev/sdb centos2
                ceph-deploy osd create --data /dev/sdb centos3

        查看集群状态


            ceph -s

    dashboard安装

     开启dashboard模块


        ceph mgr module enable dashboard
      

       生成签名


        ceph dashboard create-self-signed-cert
          

     创建目录  


        mkdir -p /usr/local/jx/cephcluster/mgr-dashboard
          
        cd /usr/local/jx/cephcluster/mgr-dashboard
        openssl req -new -nodes -x509   -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650   -keyout dashboard.key -out dashboard.crt -extensions v3_ca

    启动服务  

     ceph mgr module disable dashboard
        ceph mgr module enable dashboard

    设置访问地址与端口


        ceph config set mgr mgr/dashboard/server_addr 192.168.115.128
        ceph config set mgr mgr/dashboard/server_port 9001
      

     关闭https

     ceph config set mgr mgr/dashboard/ssl false


          
        ceph mgr services
        ceph dashboard set-login-credentials jx123 123.com
        https://192.168.115.3:8443


      ceph文件系统创建


        创建存储池

    ( 少于5个OSD可把pg_num设置为128,OSD数量在5到10,可以设置pg_num为512,OSD数量在10到50,可以设置pg_num为4096,OSD数量大于50,需要计算pg_num的值)
            ceph osd pool create cephfs_data 128
            ceph osd pool create cephfs_metadata 64
            
               
        查看存储池            ceph osd lspools


        创建文件系统        ceph fs new  fs_test  cephfs_metadata cephfs_data


        查看文件系统        ceph fs ls


        查看mds状态        ceph mds stat

    客户端挂载


        在centos1中


            安装            ceph-deploy install centos4


            同步管理信息          ceph-deploy admin  centos4


            非集群节点,/var/run/ceph 无内容


        在centos4


            yum install -y ceph-fuse

        查看信息


            ls  /etc/ceph
            ceph.client.admin.keyring


        创建挂载目录


            mkdir /ceph


        挂载ceph文件系统


            ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.115.128:6789 /ceph

  • 相关阅读:
    122. 买卖股票的最佳时机 II
    【初识Netty&使用Netty实现简单的客户端与服务端的通信操作&Netty框架中一些重要的类以及方法的解析】
    掏空了各大搜索引擎,整理了154道Java面试题!
    SAS|proc sort(排序)&proc transpose(转置)
    【python版CV】图像轮廓&模板匹配
    力扣刷题篇之数与位1
    性能测试脚本用例【模板】
    谁删了服务器?谈VC源码字符集和回车换行注意事项
    cnpm的安装与使用
    使用Three.js实现神奇的3D文字悬浮效果
  • 原文地址:https://blog.csdn.net/mengjialiang2002/article/details/133143558