• ceph 源码安装(mkcephfs方式)


    ceph有两种常见的部署方法

    Ceph官网推荐用 Ceph-deploy 进行Ceph集群的部署.

    • Ceph-deploy的工作方式是: 需要有一个admin-node安装Ceph-deploy, 该admin-node需要能够密码free地ssh访问Ceph node.通过在admin-node上执行Ceph-deploy的简单命令一步一步增量式地构建Ceph存储系统. 这种方式部署简单, 在各个Ceph node上安装的是Ceph的binary包(从包管理系统获得)

        如果需要改源码的话, 那么不推荐这种部署方式:因为确实可以先在Ceph的各个node上先源码编译安装好, 然后从Admin-node上用Ceph-deploy构建Ceph存储系统, 但是我在实际中尝试这么做时遇到了很多很多的问题, 虽然最后也成功部署, 但远不如第2种方法省事.

    • 源码编译安装, 然后用mkcephfs脚本来初始化Ceph存储系统. 主要就是 下载源码包 -> 编译安装 -> 编写配置文件,设置分区 -> 执行mkcephfs -> 启动ceph服务.本文重点讲解第二种方法.

      redhat-7.1 (64位), 4 vCpu, 2G内存, 挂载了/dev/sdb, /dev/sda 两块20G的Volume. Ceph环境是: 1个mon, 2个osd, 每个osd的data 和 journal分别写到不同分区

    源码安装及部署过程

      代码下载,编译:

    1  ./autogen.sh                                                                                                          
    2  ./configure     #添加参数                                                                     
    3  make   -j5                                                                                                 
    4  make install   
    5 ldconfig       #加载动态库,否则出现librados.so不存在的错误

    由于Ceph make的时候非常慢, 在make的时候可以用 make -j{CPU Core数目}来加快编译

    4.把ceph作为系统服务

        cp ceph/src/init-ceph /etc/init.d/ceph
    

    5.创建Ceph配置文件 ceph.conf:

      Ceph配置文件主要包含以下几个部分:

        [global]里是全局设置, [mon]里是monitor的一般性设置, [mon.a]里是monitor a的特殊设置, [osd]里是osd的一般设置, [osd.0]是osd.0的特殊设置, 后面以此类推.

     1 [global]
     2 osd pool default size = 2
     3 osd pool default min size = 1
     4 ms_crc_data=false
     5 ms_crs_header=false
     6 admin socket = /var/run/ceph/rbd-$pid.asok
     7 osd crush update on start = 0
     8 public network = 192.168.83.0/8
     9 
    10 [client]
    11 rbd cache = false
    12 
    13 [mon]
    14 mon data = /var/lib/ceph/mon/ceph-$name
    15 
    16 [mon.node1]
    17         host = node1
    18         mon addr = 192.168.83.101:6789
    19 
    20 [osd]
    21         osd mkfs type = xfs
    22         osd data = /var/lib/ceph/osd/ceph-$name
    23 
    24 [osd.0]
    25         host = node1
    26         osd journal = /dev/sdb1
    27         devs = /dev/sdb2
    28 
    29 [osd.1]
    30         host = node2
    31         osd journal = /dev/sdb1
    32         devs = /dev/sdb2
    33 [mds]
    34         host = node1
    35 [mds.node1]     

      注意: 上面提到的/var/lib/ceph相关的路径都是需要手动创建的

      mkdir -pv /var/lib/ceph/osd/ceph-0

      mkdir -pv /var/lib/ceph/mon/ceph-node1

    6.磁盘分区

      以/dev/sdb为例, 小容量的将来存OSD的journal, 大容量的将来存OSD的Data

        parted -a optimal -s /dev/sdb mktable gpt && parted -a optimal -s /dev/sdb mkpart ceph 0% 5GB  parted -a optimal -s /dev/sdb mkpart ceph 5GB 100%

    7.mkcephfs

      mkcephfs是稍微有点老的工具, 在ceph-0.80及之前的版本中存在与src/目录下:

       1、mkdir /root/mkcephfs 

       2、[root@node1 ~]# ls  /root/mkcephfs/

        -rw-r--r--. 1 root root 5940 May 12 2014 ceph_common.sh
        -rwxr-xr-x. 1 root root 13851 May 31 05:01 mkcephfs

        3、ln -s /root/mkcephfs/mkcephfs /usr/bin/mkcephfs  && chmod +x /usr/bin/mkcephfs 

       4、mkcephfs -a -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.keyring --mkfs

      成功的话就完成了初始化工作

    9.启动ceph服务

        /etc/init.d/ceph -c /etc/ceph/ceph.conf -a start
    

      如果报错:

          /etc/init.d/ceph: line 15: /lib/lsb/init-functions: No such file or directory
    

      就在mon结点上

          yum install redhat-lsb
    

    10.ceph服务启动完成后,

        ceph -s
    

       如果显示HEALTH_OK, 则表示ceph存储系统成功创建.

  • 相关阅读:
    ASP.NET Core 集成 WebSocket
    如何在CentOS7上安装桌面环境?
    Visual Studio 2017 远程调试(Remote Debugger)应用
    cmd sc命令进行服务操作
    EntityFrameworkCode 操作MySql 相关问题
    Windows下安装PHP开发环境
    未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
    System.Runtime.InteropServices.COMException (0x800A03EC): 无法访问文件
    c# WinFo判断当前程序是否已经启动或存在的几种方式
    MVC自定义视图引擎地址
  • 原文地址:https://www.cnblogs.com/chris-cp/p/5570878.html
Copyright © 2020-2023  润新知