• Ceph块存储的安装部署和使用


    在Ubuntu18.04上安装部署使用Ceph块存储。

    环境准备

    配置节点名称

    配置集群各节点的hostname,互相可以通过hostname来解析节点ip,不需要通过dns

    配置免密登录

    配置节点ssh免密登录

    添加安装源

    添加安装源。如果使用系统默认的安装源ceph-deploy版本太低,后续操作会有问题。

    $ wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
    $ echo deb https://download.ceph.com/debian-luminous/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list  # 选择安装的Ceph版本是 luminous
    
    • 1
    • 2

    创建集群

    安装ceph-deploy

    $ sudo apt update
    $ sudo apt -y install ceph-deploy
    
    • 1
    • 2

    创建配置文件和key文件

    $ mkdir myceph
    $ cd myceph
    $ ceph-deploy new ubuntu1804-1  # 指定节点名称
    
    • 1
    • 2
    • 3

    修改ceph.conf

    先配置单节点ceph集群,因此将集群的副本数量设置为1

    [global]
    osd pool default size = 1
    osd pool default min size = 1
    
    • 1
    • 2
    • 3

    安装ceph软件

    $ ceph-deploy install --release luminous ubuntu1804-1
    
    • 1

    初始化mon

    初始化mon,生成相关文件。

    $ ceph-deploy mon create-initial # 可以指定多个host。
    
    • 1

    推送keyring

    将当前目录下的ceph.client.admin.keyring推送到各个远程主机的/etc/ceph目录下。

    $ ceph-deploy admin ubuntu1804-1  # 可以指定多个host。 
    
    • 1

    至此,可以 ceph -s 查看集群

    部署mgr

    $ ceph-deploy  mgr create  ubuntu1804-1 // 可以指定多个host。
    
    • 1

    部署osd

    最简单的情况就是一块硬盘全部给一个osd管理,例如sdb是一块空闲硬盘

    $ ceph-deploy osd create  ubuntu1804-1:/dev/sdb  # 将硬盘sdb创建为osd
    
    $ sudo ceph osd tree  # 查看osd
    ID CLASS WEIGHT  TYPE NAME             STATUS REWEIGHT PRI-AFF
    -1       0.00479 root default
    -3       0.00479 host ubuntu1804-1
     0   hdd 0.00479        osd.0             up  1.00000 1.00000
    
    $ lsblk
    sda                         8:0    0    50G  0 disk
    ├─sda1                      8:1    0     1M  0 part
    ├─sda2                      8:2    0     1G  0 part /boot
    └─sda3                      8:3    0    49G  0 part
      └─ubuntu--vg-ubuntu--lv 253:0    0  24.5G  0 lvm  /
    sdb                         8:16   0     5G  0 disk
    ├─sdb1                      8:17   0   100M  0 part /var/lib/ceph/osd/ceph-0  # 数据data分区
    └─sdb2                      8:18   0   4.9G  0 part  # 日志journal分区。 create osd 时不指定分区,则默认将data和journal放在同一个盘上。
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    查看集群

    一个单节点的Ceph集群已经OK

    $ sudo ceph -s
      cluster:
        id:     1c4f5996-dee5-4b25-8dd1-05a3dd1cdbb7
        health: HEALTH_OK
    
    
      services:
        mon: 1 daemons, quorum ubuntu1804-1
        mgr: ubuntu1804-1(active)
        osd: 1 osds: 1 up, 1 in
    
      data:
        pools:   0 pools, 0 pgs
        objects: 0 objects, 0B
        usage:   1.00GiB used, 3.90GiB / 4.90GiB avail
        pgs:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    新增mon节点

    修改配置

    配置文件的global字段,增加扩容信息

    • mon_initial_members 和 mon_host 补充新mon节点
    • public network 补充描述public network的网段
    $ vi /etc/ceph/ceph.conf
    [global]
    fsid = 1c4f5996-dee5-4b25-8dd1-05a3dd1cdbb7
    mon_initial_members = ubuntu1804-1, ubuntu1804-2
    mon_host = 192.168.195.128, 192.168.195.129
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    
    osd pool default size = 1
    osd pool default min size = 1
    
    public network = 192.168.195.0/24
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    推送配置

    把配置文件推送到集群的所有节点

    $ ceph-deploy --overwrite-conf config push ubuntu1804-1  ubuntu1804-2
    
    • 1

    执行新增操作

    $ ceph-deploy mon add node2
    
    • 1

    查询结果

    $ ceph -s
      cluster:
        id:     1c4f5996-dee5-4b25-8dd1-05a3dd1cdbb7
        health: HEALTH_OK
    
      services:
        mon: 2 daemons, quorum ubuntu1804-1,ubuntu1804-2  # mon扩容到2节点
        mgr: ubuntu1804-1(active)
        osd: 2 osds: 1 up, 1 in
    
      data:
        pools:   0 pools, 0 pgs
        objects: 0 objects, 0B
        usage:   1.01GiB used, 3.90GiB / 4.90GiB avail
        pgs:
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    新增osd

    新创建osd

    $ ceph-deploy --overwrite-conf  osd create  ubuntu1804-2:/dev/sdb
    
    [ubuntu1804-2][INFO  ] checking OSD status...
    [ubuntu1804-2][DEBUG ] find the location of an executable
    [ubuntu1804-2][INFO  ] Running command: /usr/bin/ceph --cluster=ceph osd stat --format=json
    [ceph_deploy.osd][DEBUG ] Host ubuntu1804-2 is now ready for osd use.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    查询节点disk状态

    $ ceph-deploy disk list ubuntu1804-2
    
    [ubuntu1804-2][DEBUG ] /dev/sda :
    [ubuntu1804-2][DEBUG ]  /dev/sda1 other, 21686148-6449-6e6f-744e-656564454649
    [ubuntu1804-2][DEBUG ]  /dev/sda2 other, ext4, mounted on /boot
    [ubuntu1804-2][DEBUG ]  /dev/sda3 other, LVM2_member
    [ubuntu1804-2][DEBUG ] /dev/sdb :
    [ubuntu1804-2][DEBUG ]  /dev/sdb1 ceph data, prepared, cluster ceph, block /dev/sdb2
    [ubuntu1804-2][DEBUG ]  /dev/sdb2 ceph block, for /dev/sdb1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    激活data分区

    $ ceph-deploy osd activate ubuntu1804-2:/dev/sdb1  # 激活
    
    $ ceph osd tree  # 新增id=1的osd.1
    
    ID CLASS WEIGHT  TYPE NAME             STATUS REWEIGHT PRI-AFF
    -1       0.00958 root default
    -3       0.00479     host ubuntu1804-1
     0   hdd 0.00479         osd.0             up  1.00000 1.00000
    -5       0.00479     host ubuntu1804-2
     1   hdd 0.00479         osd.1             up  1.00000 1.00000
    
    $ ceph osd status  # 新增id=1的osd
    
    +----+--------------+-------+-------+--------+---------+--------+---------+-----------+
    | id |     host     |  used | avail | wr ops | wr data | rd ops | rd data |   state   |
    +----+--------------+-------+-------+--------+---------+--------+---------+-----------+
    | 0  | ubuntu1804-1 | 1030M | 3988M |    0   |     0   |    0   |     0   | exists,up |
    | 1  | ubuntu1804-2 | 1030M | 3988M |    0   |     0   |    0   |     0   | exists,up |
    +----+--------------+-------+-------+--------+---------+--------+---------+-----------+
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    activate曾出现报错,可能是以前有osd.1相关信息:

    [ubuntu1804-2][WARNIN] command_with_stdin: Running command with stdin: ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring -i - osd new 2cb6d197-1e2b-4731-939a-7bae1bab1d49
    [ubuntu1804-2][WARNIN] command_with_stdin:
    [ubuntu1804-2][WARNIN] command_with_stdin: Error EEXIST: entity osd.1 exists but key does not match
    [ubuntu1804-2][WARNIN]
    [ubuntu1804-2][WARNIN] mount_activate: Failed to activate
    
    • 1
    • 2
    • 3
    • 4
    • 5

    解决方法是删除以前的osd.1相关信息:

    $ ceph auth del osd.1
    $ ceph osd rm 1
    
    • 1
    • 2

    参考资料

    https://zhuanlan.zhihu.com/p/67832892 单机版Ceph环境部署,Linux平台

    http://t.zoukankan.com/chris-cp-p-4822655.html ceph基本操作整理

    https://www.cnblogs.com/sisimi/p/7693130.html mon节点扩容

  • 相关阅读:
    <一>Qt斗地主游戏开发:开发环境搭建--VS2019+Qt5.15.2
    如何用R语言在机器学习中建立集成模型?
    面试笔试题之Linux部分58题(第二部分)
    表单(非常非常重要)
    基于PHP+MySql的酒店信息管理系统的设计与实现
    [附源码]计算机毕业设计JAVAjsp铁路集装箱物流管理信息系统
    工业4.0时代生产系统对接集成优势,MES和ERP专业一体化管理-亿发
    【整顿C盘】pycharm、chrome等软件,缓存移动
    电商前台项目(一):项目前的初始化及搭建
    试编写算法(用C语言)打印值为x的结点的所有祖先,假设值为x的结点不多于一个。(递归实现和非递归实现)
  • 原文地址:https://blog.csdn.net/ruanchao2012/article/details/127931438