Ceph部署

来源:互联网 发布:手机怎么申请做淘宝客 编辑:程序博客网 时间:2024/04/29 16:23

1、首先获得相应的部署资源,多台主机或相应数量的虚拟机资源

示例:

Ip Hostname 节点 10.10.21.54 admin 部署节点 10.10.21.55 node1 MON节点 10.10.21.56 node2 OSD0节点 10.10.21.57 node3 OSD1节点

2、ifconfig查看基本网络配置信息,尝试ping连外网如:ping www.baidu.com

问题1:执行ifconfig命令,无相应的输出响应

一般纯净的Centos7系统会出现上述这个问题
显示:ifconfig Command not found
解决:下载相应的NET管理工具:net-tools
那么首先需要在/etc/yum.repo/目录下创建如:Centos-local.repo的源库下载脚本

这里写图片描述

注:若当前源库目录下有其它的脚本,则最好将上图示priority置0 使之遍历优先级最高

然后执行 # yum install net-tools*
最后执行 ifconfig命令便可看到熟悉的信息:

这里写图片描述

问题2:ping www.baidu.com 不通,即不能实现外网链接

解决:若是企业有MAC限制,想在公司上外网,首先解决MAC限制,若是虚拟机不能有MAC冲突的问题。之后还不能实现外网链接,则需添加DNS解析
首先:vi /etc/sysconfig/network-scripts/ifcfg-eno16777984 (本人配置信息)
添加:DNS1=10.10.10.1
若有MAC冲突可修改HWADDR或MACADDR项,配置如下:

这里写图片描述

3、在10.10.21.54主机(管理点)上以root用户模式完成以下操作

  1. 修改主机名,以便后面切换部署时识别相应节点
    配置:
    # vi /etc/hostname 修改主机名 这里命名为admin

    这里写图片描述

    # vi /etc/hosts 修改127.0.0.1 后主机名为admin
    并添加如下信息:
    10.10.21.54 admin
    10.10.21.55 node1
    10.10.21.56 node2
    10.10.21.57 node3

    这里写图片描述

  2. 创建用户并修改主机名

    • 切换到各个主机上创建ceph用户 命名:ceph
      # ssh username@host-serverip 如username: root host-serverip: 10.10.21.55
      # useradd –d /home/ceph –m ceph
      # passwd ceph
      $ exit
    • exit前修改各个主机名称,实现步骤同理(1)示
      测试:ping xxx节点

      这里写图片描述

    • 切换至各个Ceph节点的ceph用户,为用户增加root权限
      # ssh username@hostname 如:ssh ceph@node1
      $ echo “ceph ALL=(root) NOPPASSWD:ALL” | sudo tee /etc/sudoers.d/ceph
      $ sudochmod 0440 /etc/sudoers.d/ceph
      $ exit

    • 实现ssh无密码登录

      • 切换至ceph用户,生成公钥以及私钥于当前用户.ssh目录下,id_rs is_rsa.pub
        # ssh ceph@admin
        $ ssh-keygen
        $ exit
      • exit前将生成的密钥拷贝到各个Ceph节点的ceph用户的 ~/.ssh/目录下
        $ ssh-copy-id ceph@node1
        $ ssh-copy-id ceph@node2
        $ ssh-copy-id ceph@node3
    • admin主机上添加~/.ssh/config配置文件 注:并非ceph用户

      这里写图片描述

4、创建集群

  1. 在admin主机切换至ceph用户,创建文件夹
    # ssh ceph@admin
    $ mkdir my-cluster
    $ cd my-cluster
  2. ceph-deploy部署集群 注:使用ceph-deploy部署集群均在my-cluster目录中

    • 更新软件源并安装ceph-deploy工具:
      $ sudo yum update && sudo install ceph-deploy
    • 同步每台主机的时间,需切换至每个节点:
      $ ssh {node} 如:ssh node1
      $ sudo yum install ntp
      $ sudo yum install openssh-server (如果有必要可安装)
    • 清除之前的配置数据:
      卸载ceph:
      $ ceph-deploy uninstall admin node1 node2 node3
      清除远程主机/var/lib/ceph /etc/ceph中的包和数据
      $ ceph-deploy purgeadmin node1 node2 node3
      清除/var/lib/ceph及/etc/ceph下ceph目录及以下内容全部:
      $ ceph-deploy purgedata admin node1 node2 node3
      清除my-cluster目录中的认证密钥文件:
      $ ceph-deploy forgetkeys
    • 关闭所有节点的防火墙及安全防护项,切换到所有节点执行:
      $ ssh {node} 如:ssh node1
      $ sudo systemctl stop firewalld
      $ sudo setenforce 0
    • 之后就可正真的来实现创建集群:
      $ ceph-deploy new node1
      成功执行后当前目录增加三个文件:

      这里写图片描述

  3. 系统默认的osd pool的为3 目前osd为2 即需修改默认的副本数为2
    $ vi ./ceph.conf 添加:osd pool default size=2

    这里写图片描述

  4. 部署安装ceph
    $ ceph-deploy install admin node1 node2 node3
    安装成功后:

    这里写图片描述

  5. 创建Ceph mon
    $ ceph-deploy mon create-initial
    若无法创建则使用如下命令:
    $ ceph-deploy mon create node1
    $ ceph-deploy gatherkeys node1
    成功后当前目录ls -l

    这里写图片描述

  6. 创建两个osd

    • 首先切换到node2中ceph用户,创建OSD0
      $ ssh ceph@node2
      df –mh 查看可知sdc可用,故可将sdc xfs格式化 并实现挂载
      $ sudo mkfs.xfs –f /dev/sdc
      $ sudo mkdir /var/lib/ceph/osd/osd-0
      $ sudo mount /dev/sdc /var/lib/ceph/osd/osd-0
      $ exit
    • 同理创建OSD1
      $ ssh ceph@node3
      $ sudo mkfs.xfs –f /dev/sdc
      $ sudo mkdir /var/lib/ceph/osd/osd-1
      $ sudo mount /dev/sdc /var/lib/ceph/osd/osd-1
      $ exit
  7. 准备并激活osd
    $ ceph-deploy osd prepare node2: /var/lib/ceph/osd/osd-0
    node3: /var/lib/ceph/osd/osd-1
    $ ceph-deploy osd activate node2: /var/lib/ceph/osd/osd-0
    node3: /var/lib/ceph/osd/osd-1

  8. 实现拷贝配置文件以及key文件
    $ ceph-deploy admin admin node1 node2 node3
  9. 为ceph.client.admin.keyring添加可读权限
    通常管理部署节点和监控节点须得设置,以便于查看集群状态。OSD节点设置与否,看能给予的权限。命令如下:
    $ sudo chmod +r /etc/ceph/ceph.client.admin.keyring
  10. 查看集群状态

    • 集群整体状态:ceph –s

      这里写图片描述

    • 集群OSD状态:ceph osd tree

      这里写图片描述

    • ceph {xxx} dump 如:ceph osd dump; ceph mon dump; ceph mds dump ceph osd dump

      这里写图片描述

    • 集群动态部署:ceph –w
      这里写图片描述

    • 查看mon状况
      $ sudo mon mon.{node} mon_status 如:node3 为mon节点

      这里写图片描述

  11. 操作OSD

    • 将OSD踢出集群out 并实现数据重新均衡
      $ ceph osd out osd.2
    • 停止OSD设备 (需切换到当前节点中,实现osd的停止)

      这里写图片描述

    • 从CRUSH中移除
      $ ceph osd crush remove osd.2

      这里写图片描述

    • 从认证中删除
      $ ceph auth del osd.2

      这里写图片描述

    • 删除osd
      $ ceph osd rm 2

5. 附录(问题)

*问题:添加新osd集群试图实现均衡失败后,集群不正常

情景:    集群:[(osd pool default size = 2) admin node1(mon) node2(osd0) node3(osd1) ]    创建后 集群active+clean 处于正常状况,之后向node1节点添加osd2 添加成功后:开始时:osd2 处于down + in状态一段时间后:osd2处于 up + in 同时使得 osd1处于 down + out    再之后显示如下:

这里写图片描述

原因:

  1. 可能是系统为防止集群崩溃,mon的防火墙会自行启动,使得其它的osd节点无法访问mon节点(注:并非是说ping不同)
  2. 有些软件(进程)的启动需要依赖防火墙去实现解决:

解决:

  1. 此时首先关闭firewalld:
    $ sudo systemctl stop firewalld
    $ firewall-cmd –-state
    这里写图片描述

  2. 尝试重新启动ceph集群,看是否能够起来(各个节点均执行),命令:
    $ sudo service ceph start

0 0
原创粉丝点击