zoukankan      html  css  js  c++  java
  • 使用ceph-deploy进行ceph安装

    ceph安装包介绍:

      1.ceph-deploy:

        ceph的部署软件,通过该软件可以简便部署,这个软件并非整个ceph集群系统中必须的

      2.ceph:

        ceph整个服务集群中的每个节点必须的软件。提供分布式的存储与文件系统服务 (osd,mon守护进程)

      3.ceph-mds:

        元数据服务端 (mds 守护进程)

      4.libcephfs:

        客户端的编程接口(c语言)

      5.python-cephfs:

        客户端的编程接口(python)

      6.ceph-common,ceph-fs-common 客户端:

        使用ceph服务的客户端必须

    ceph的配置

      ceph的进程:

        这三种进程分布于集群中的服务器上,服务器中可以只运行一种,也可以多个同时运行,推荐为一个服务器运行一种,使得负载均衡

        osd 守护进程:即为存储守护进程

        mon 守护进程:监视器守护进程

        mds 守护进程:元数据守护进程

      启动本机上所有进程:启动ceph在本机上配置的所有守护进程

    $service ceph start
    $service ceph stop

      查看本机上运行那些ceph进程

    $ps  aux |grep ceph

      ceph的文件:

        可以在配置文件中修改位置

        配置文件:默认 /etc/ceph/ceph.conf

        日志文件:默认 /var/log/ceph

        运行时文件:默认 /var/run/ceph

          每个进程的管理套接字位置:/var/run/ceph/$cluster-$name.asok

          使用管理套接字查看osd.0的运行时配置信息:

    $ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | less

      配置文件ceph.conf

        集群启动后,每个守护进程从配置文件 /etc/ceph/ceph.conf中查看配置信息。(/etc/ceph/ceph.conf 或者 ~/.ceph/config 或者 ./ceph.conf)

        ceph.conf的格式

    [ global ]
    #该配置下设置应用于所有ceph守护进程
    [ osd ]
    #该配置下设置应用于所有osd守护进程
    #或者重写global配置
    [ osd.0 ]
    #该配置设置应用于osd 0进程,或者重写前面配置
    [ mon ]
    #该配置应用于所有监视器进程
    [ mds ]
    #该配置应用于所有元数据服务进程

    配置集群无密码互联:

      整个集群机器一般在一个局域网的内网里,ceph-deploy一般只安装在一台机器上,但可以对集群内任意机器进行安装配置等操作,且该操作是需要具有root权限的。因此可以如下配置无密码操作网内其他机器。

      1.在每台机器上建立root权限用户,名称例如 ceph;

      2.为每台机器设置ssh服务;

        在cesh-deploy上安装ssh服务器 

    $apt-get install openssh-server

        使用ssh-keygen生成私钥,公钥

    $ssh-keygen

        然后将生成的公复制到每台机器,使得ceph-deploy能够访问每台机器

    $ssh-copy-id xxx.xxx.xxx.xxx

        修改~/.ssh/config文件,配置访问ip,以及用户ceph

    使用ceph-deploy进行安装:

    使用ceph-deploy进行卸载:

      对集群中某个节点ceph-node卸载其上的服务

    $stop ceph-all                                                         # 停止所有ceph进程
    
    $ceph-deploy uninstall  [{ceph-node}]                                  # 卸载所有ceph程序
    
    $ceph-deploy purge   [[ceph-node} [{ceph-node}]                        #删除ceph相关的包
    
    $ceph-deploy purgedata {ceph-node} [{ceph-node}]                       # 删除ceph相关的包
    $ceph-deploy forgetkeys                                                #删除key

    错误:  

      安装好之后,查看一下pool,默认只有rbd

    $ ceph osd pool ls

      

      这时查看状态

    $ceph -s

      有时候会出现HEALTH_WARN,先查看一下rbd的大小,如果osd数目小于这个数字,就会出错,所以需要手动将数量设置为与目前osd个数相同。

    $ceph osd pool get rbd size
    $ceph osd pool set rbd size 1
    $ceph osd pool set rbd min_size 1

      

      问题1:ceph-deploy部署的方式。就算我3个osd装在两台机器上,osd pool default size还是要设置为2,才行,不然还是会提示 degraded; pgs stuck unclean  

      答案1:因为ceph deploy 默认吧osd 设置在同一个bucket下面,而ceph算法规则默认将不同的备份数分发到不同的不同的bucket下,所以ceph认为你的bucket少于你的备份 数从而报这个错。要避免这个问题可以手动部署ceph不用cephdeploy,或者手动去修改

       

      由于做试验的时候,使用的机器台数不同,以及osd数量不同,会出现,HEALTH_WARN  pgs degraded,undersized 等警告,这个时候需要调整池子的大小,size,min_size.

      特别是单机安装的时候,容易出现这种错误。

      

      安装的时候某个osd总是down状态,后来重启机器就好了。

    优化:  

    PG Number

    PG和PGP数量一定要根据OSD的数量进行调整,计算公式如下,但是最后算出的结果一定要接近或者等于一个2的指数。

    Total PGs = (Total_number_of_OSD * 100) / max_replication_count
    

    例如15个OSD,副本数为3的情况下,根据公式计算的结果应该为500,最接近512,所以需要设定该pool(volumes)的pg_num和pgp_num都为512.

    ceph osd pool set volumes pg_num 512
    ceph osd pool set volumes pgp_num 512


      

      

  • 相关阅读:
    springMVC(5)---导入excel文件数据到数据库
    springMVC(4)---生成excel文件并导出
    springMVC(3)---利用pdf模板下载
    springMVC(1)---@RequestMapping详解
    springMVC(2)---获取前段数据
    【JS】---5 JS通过事件隐藏显示元素
    【JS】---4用JS获取地址栏参数方法
    【功能代码】---3 JS判断字符串是否包含某个字符串
    基于maven的ssm框架整合
    java提高(9)---HashMap解析
  • 原文地址:https://www.cnblogs.com/yasmi/p/5165829.html
Copyright © 2011-2022 走看看