Ceph 集群的扩展

前文讲述了如何创建一个集群,结构如下,本文讲述如何对该集群进行扩展

IP hostname 描述
192.168.40.106 dataprovider 部署管理节点

192.168.40.107
mdsnode MON节点

192.168.40.108
osdnode1 OSD节点

192.168.40.148
osdnode2
OSD节点

扩展主要包括以下几点:

  1. 在mdsnode上添加OSD进程以及CephMetadata服务
  2. 在osdnode1,osdnode2节点上添加Ceph Monitor服务
  3. 添加一个新的OSD节点osdnode3

最终结果如下:

IP hostname 描述
192.168.40.106 dataprovider 部署管理节点

192.168.40.107
mdsnode MDS,MON节点,OSD节点

192.168.40.108
osdnode1 OSD节点,MON节点

192.168.40.148
osdnode2
OSD节点,MON节点

192.168.40.125
osdnode3
OSD节点

扩展MON节点的OSD功能

  • 在dataprovider上切换到leadorceph用户,并进入/home/leadorceph/my-cluster目录
  • 添加mdsnode节点的OSD服务
    ssh node1

    sudo mkdir /var/local/osd2

    exit
  • 使用ceph-deploy命令创建osd.
ceph-deploy --overwrite-conf osd prepare mdsnode:/var/local/osd2
  • 激活刚才创建的osd
ceph-deploy osd activate mdsnode:/var/local/osd2

当执行完上面的命令后,Ceph会重新调整整个集群,并且会将PG迁移到新的OSD上,可以通过ceph -w发现集群的状态发生了变化

增加一个新的OSD节点

在已有的MON节点上添加完OSD功能后,接下来将在一个全新的osdnode3上增加OSD的功能

  • 修改dataprovider节点的/etc/hosts信息

添加192.168.40.125 osdnode3到其/etc/hosts文件中

    yum install -y ntp ntpdate ntp-doc
    yum install -y openssh-server 

    sudo useradd -d /home/leadorceph -m leadorceph

    sudo passwd leadorceph

    echo "leadorceph  ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/leadorceph

    sudo chmod 0440 /etc/sudoers.d/leadorceph

使用leadorceph用户的身份执行sudo visudo命令,然后修改Defaults requiretty 为Defaults:ceph !requiretty

  • 在dataprovider节点上将无密码的SSH key拷贝到osdnode3上
ssh-copy-id [email protected]
  • 在dataprovider上安装osdnode3的ceph
 ceph-deploy install osdnode3<br style="background-color: inherit;" />
  • 在dataprovider上创建以及激活osdnode3上的进程
ceph-deploy osd prepare osdnode3:/var/local/osd3
ceph-deploy osd activate osdnode3:/var/local/osd3
  • 检测集群的状态

从上图可以看出,此时pg的数量太少了,每个OSD平均只有16个,所以此时需要添加一些pg

    ceph osd pool set rbd pg_num 100
    ceph osd pool set rbd pgp_num 100

添加一个Metadata Server

如果想要使用CephFS,则必须要包含一个metadata server,通过下面的方式来创建metadata 服务:

ceph-deploy mds create mdsnode

添加Ceph Mon

Mon的扩展比较复杂,搞不好会导致整个集群出错,所以建议开始的时候对MON做好规划,尽量不要对其进行修改。

ceph monitor的个数是2n+1(n>=0)个(为奇数),在线上至少3个,只要正常的节点数>=n+1,ceph的paxos算法能保证系统的正常运行。所以,对于3个节点,同时只能挂掉一个。

  • 修改dataprovider上的ceph.conf文件,把要添加的MON节点的信息追加进去,修改如下
    [global]

    auth_service_required = cephx

    osd_pool_default_size = 2

    filestore_xattr_use_omap = true

    auth_client_required = cephx

    auth_cluster_required = cephx

    public_network = 192.168.40.0/24

    mon_initial_members = mdsnode,osdnode1,osdnode2

    fsid = 1fffdcba-538f-4f0d-b077-b916203ff698

    [mon]

    mon_addr = 192.168.40.107:6789,192.168.40.108:6789,192.168.40.148:6789

    mon_host = mdsnode,osdnode1,osdnode2

    debug_mon = 20

    [mon.a]

    host = mdsnode

    addr = 192.168.40.107:6789

    [mon.b]

    host = osdnode1

    addr = 192.168.40.108:6789

    [mon.c]

    host = osdnode2

    addr = 192.168.40.148:6789
  • 执行ceph-deploy mon create osdnode1 osdnode2

当添加完新的节点后,可以通过下面的方式来查询结果

ceph quorum_status --format json-pretty

存储以及检索对象

Ceph客户端通过最新的cluster map以及CRUSH算法决定怎么把一个对象映射到PG中,然后决定如何把该PG映射到OSD上
  • 添加对象
echo {Test-data} > testfile.txt
rados put test-object-1 testfile.txt --pool=data
  • 验证对象是否添加成功
rados -p data ls
  • 标出对象的位置
ceph osd map data test-object-1

输出的信息可能如下:

osdmap e537 pool ‘data‘ (0) object ‘test-object-1‘ -> pg 0.d1743484 (0.4) -> up [1,0] acting [1,0]
  • 删除对象
rados rm test-object-1 --pool=data

由于集群节点的变化,位置的信息可能会动态的发生变化

时间: 2024-07-31 18:39:48

Ceph 集群的扩展的相关文章

(10)横向扩展ceph集群

当集群容量或者计算资源达到一定限定时,就需要对集群进行扩容,扩容操作主要可以分为两种 :1.纵向扩展:向已有节点中添加磁盘,容量增加,集群计算性能不变:2.横向扩展:添加新的节点,包括磁盘.内存.cpu资源,可以达到扩容性能提升的效果: 一. 在生产环境中避免新增节点影响性能,添加标识位 生产环境中,一般不会在新节点加入ceph集群后,立即开始数据回填,这样会影响集群性能.所以我们需要设置一些标志位,来完成这个目的.[[email protected] ~]##ceph osd set noin

centos7部署ceph集群(正确)

环境介绍 主机名 系统 ip地址 ceph版本 ceph-node1 CentOS Linux release 7.2.1511 192.168.1.120 jewel ceph-node2 CentOS Linux release 7.2.1511 192.168.1.121 jewel ceph-node3 CentOS Linux release 7.2.1511 192.168.1.128 jewel 准备工作 ◆ 1-7在三台ceph节点上都需要进行操作 ◆ 8只在ceph1操作即可

Ubuntu 14.04 部署 CEPH集群

注:下文的所有操作都在admin节点进行 1.准备三台虚拟机,其中一台作为admin节点,另外两台作为osd节点,并相应地用hostname命令将主机名修改为admin,osd0,osd1,最后修改/etc/hosts文件如下所示 127.0.0.1 localhost 10.10.102.85 admin 10.10.102.86 osd0 10.10.102.87 osd1 2.配置免密码访问 ssh-keygen //一直按回车即可,产生公钥私钥对 ssh-copy-id -i /root

Openstack之Ceph集群操作

Oepnstack之CEPH系列是根据Ceph Cookbook整理的笔记,分为以下几个部分: 1. <Ceph简介> 2. <Ceph集群操作> 3. <Ceph块设备管理与Openstack配置> 4. <深入Ceph> 5. <ceph优化与性能测试> **注意:此文对应ceph版本为10.1.2** ~~~bash #ceph -v ceph version 10.1.2(4a2a6f72640d6b74a3bbd92798bb913ed

ceph分布式存储实战(2)——从0开始创建第一个ceph集群

一.在每台节点的/etc/hosts文件中增加如下内容 192.168.89.101 ceph-node1 192.168.89.102 ceph-node2 192.168.89.103 ceph-node3 二.节点1配置免密码登录其他节点 [[email protected] ~]# yum install openssh-clients #安装ssh客户端 [[email protected] ~]# ssh-keygen #生成密钥对 [[email protected] ~]# ss

部署Ceph集群--jluocc

一 前言 分布式文件系统(Distributed File System):文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.分布式文件系统的设计基于C/S模式 1,什么是Ceph?Ceph:是一个 Linux PB 级分布式文件系统特点:具有高扩展,高可用,高性能的特点可以提供对象存储,块存储,文件存储可以提供PB级别的存储空间(PB->TB->GB)帮助文档:http://docs.ceph.org/start/intro中文文档:http://docs.

Ceph 集群搭建

Ceph 存储集群 - 搭建存储集群 2019年8月1日 16:12 Ceph 存储集群 - 搭建存储集群 目录 一.准备机器 二.ceph节点安装 三.搭建集群 四.扩展集群(扩容) 一.准备机器 本文描述如何在 CentOS 7 下搭建 Ceph 存储集群(STORAGE CLUSTER). 一共4台机器,其中1个是管理节点,其他3个是ceph节点: hostname ip role 描述 admin-node 192.168.0.130 ceph-deploy 管理节点 node1 192

ceph集群常用命令

结合网络.官网.手动查询等多方渠道,整理ceph维护管理常用命令,并且梳理常规命令在使用过程中的逻辑顺序.另外整理期间发现ceph 集群的命令体系有点乱,详细情况各自体验. 一:ceph集群启动.重启.停止 1:ceph 命令的选项如下: 选项简写描述 --verbose-v详细的日志. --valgrindN/A(只适合开发者和质检人员)用 Valgrind 调试. --allhosts-a在 ceph.conf 里配置的所有主机上执行,否 则它只在本机执行. --restartN/A核心转储

ceph集群osd故障修复实例演示

集群安装方式:1: ceph-deploy 方式安装ceph集群,模拟osd磁盘损坏: 分别采用如下两种方式修复: 1:使用ceph-deploy 方式修复故障osd: 2:手动修复故障osd: #######使用ceph-deploy方式修复过程演示######## 1:停止osd/etc/init.d/ceph stop osd.3 2:查看osd磁盘挂载情况:[[email protected] ceph]# lsblk NAME   MAJ:MIN RM  SIZE RO TYPE MO