ceph部署


1 物理拓扑
ceph部署
使用4台服务器搭建该环境
ceph_node01 172.16.1.141
ceph_node02 172.16.1.142
ceph_node03 172.16.1.143
ceph_node04 172.16.1.144
管理节点和客服端节点都在ceph_node01上,monitor在ceph_node02上,osd在ceph_node03、ceph_node04上。

2 在所有节点上创建用户ceph,并让其具有root权限
     adduser -d /home/ceph -m ceph
     passwd ceph
3 在管理节点(ceph_node01)上配置ceph这个用户的ssh免密码认证
    ssh-keygen   直接全部回车
    cd .ssh/
    ssh-copy-id ceph@ceph_node02
    ssh-copy-id ceph@ceph_node03
    ssh-copy-id ceph@ceph_node04

在.ssh目录下需要创建一个config文件,对ceph的节点做解析,在deploy时会使用到。
[ceph@ceph_node01 .ssh]$ pwd
/home/ceph/.ssh
[ceph@ceph_node01 .ssh]$ mkdir config
[ceph@ceph_node01 .ssh]$ chmod 600 config
    
config文件内容:
[ceph@ceph_node01 .ssh]$ cat config 
Host node1
Hostname ceph_node02
User ceph
Host node2
Hostname ceph_node03
User ceph
Host node3
Hostname ceph_node04
User ceph
Host admin-node
Hostname ceph_node01
User ceph

4 配置ntp时钟同步
如果没有ntp相关命令,则每台都需要安装ntp
yum install ntp ntpdate ntp-doc

执行下面的命令同步时间
/usr/sbin/ntpdate time.windows.com
配置定时任务,每5分钟同步一次
echo "*/5 * * * * /usr/sbin/ntpdate time.windows.com >/dev/null 2>&1" >>/var/spool/cron/root

5 关闭防火墙
    systemctl stop firewalld.service
    systemctl disable firewalld.service
    setenforce 0
6 配置epel源
 sudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/dl.fedoraproject.org*
添加ceph.repo源:
[root@ceph_node01 yum.repos.d]# vim ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://ceph.com/rpm-hammer/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm-hammer/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://ceph.com/rpm-hammer/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
priority=1
7 更新yum源,并部署deploy工具
sudo yum update && sudo yum install ceph-deploy
sudo yum install yum-plugin-priorities
8 在管理节点上,切换到ceph用户下
    mkdir  my-cluster
    cd my-cluster

    创建集群并制定集群的监控节点
    ceph-deploy   new  ceph_node02
    执行该命令后将在当前目录生产ceph.conf 文件,打开文件并增加以下内容:
    osd pool default size = 2

 在所有节点上安装ceph软件
    ceph-deploy install  ceph_node01 ceph_node02 ceph_node03 ceph_node04 

 初始化监控节点并收集keyring
  ceph-deploy mon create-initial

9 为存储节点osd进程分配磁盘空间
 分别登录到ceph_node03 ceph_node04 
    03上创建:
    /ceph/osd0

    04上创建:
    /ceph/osd1


    在管理节点上执行:开启osd进程,并激活
    sudo ceph-deploy  osd prepare ceph_node03:/ceph/osd0  ceph_node04:/ceph/osd1
    sudo ceph-deploy osd activate ceph_node03:/ceph/osd0  ceph_node04:/ceph/osd1

10 在管理节点上执行下面的命令:把管理节点的配置文件与keyring同步至其它节点:
     sudo ceph-deploy admin  ceph_node01 ceph_node02 ceph_node03 ceph_node04 
     sudo chmod +r /etc/ceph/ceph.client.admin.keyring

11 检查集群健康状态,以下两种方式都可以查看
    [ceph@ceph_node01 my-cluster]$ sudo ceph health
    HEALTH_OK
    [ceph@ceph_node01 my-cluster]$ sudo ceph -s
    
12  在客服端上使用ceph存储空间:

准备client-node
通过admin-node节点执行命令:
ceph-deploy  install  client-node
注:本次实验client节点和管理节点都在一台服务器上,所以前面已经安装了ceph,
ceph-deploy admin   client-node  ---推送配置和keying到客户端
 
创建块设备
    sudo  rbd create foo --size 10000   --块设备大小
将ceph提供的块设备映射到client-node
    sudo rbd map foo --pool rbd 

格式化设备
sudo mkfs.xfs  /dev/rbd0
挂载
sudo mount  /dev/rbd0 /mnt/cephdir/
常用命令:
rbd ls  //查看本机的rbd设备
rbd info foo  //查看模块rbd设备的相关信息
rbd showmapped  //查看rbd设备映射信息
ceph health  //ceph健康状态
ceph status  //ceph当前全部状态
ceph -w //实时监控ceph状态及变化
ceph osd dump //所有osd详细状态 
ceph osd tree  //osd所在位置,及状态 
ceph quorum_status //mon优先级状态
ceph mon dump  //mon节点状态
ceph mds dump  //mds详细状态
ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show  //在osd上查看详细的配置信息
上一篇:围绕能源、电力、制造、运输多行业,三大重磅解决方案将发布


下一篇:使用HAproxy为阿里中间件做负载均衡。