美文网首页
Ceph (J)集群部署

Ceph (J)集群部署

作者: 小白说互联网 | 来源:发表于2018-08-10 12:32 被阅读0次

    基于CentOS 7 x86_64

    可参考:https://blog.csdn.net/dylloveyou/article/details/79054120

    一、简单介绍

    Ceph的部署模式下主要包含以下几个类型的节点

    Ø Ceph OSDs: A Ceph

    OSD 进程主要用来存储数据,处理数据的replication,恢复,填充,调整资源组合以及通过检查其他OSD进程的心跳信息提供一些监控信息给Ceph Monitors . 当Ceph Storage Cluster 要准备2份数据备份时,要求至少有2个Ceph OSD进程的状态是active+clean状态 (Ceph 默认会提供两份数据备份).

    Ø Monitors: Ceph

    Monitor 维护了集群map的状态,主要包括monitor map, OSD map, Placement Group (PG) map, 以及CRUSH map. Ceph 维护了 Ceph Monitors, Ceph OSD Daemons, 以及PGs状态变化的历史记录 (called an

    “epoch”).

    Ø MDSs: Ceph

    Metadata Server (MDS)存储的元数据代表Ceph的文件系统 (i.e., Ceph Block

    Devices 以及Ceph Object Storage 不适用 MDS). Ceph Metadata Servers 让系统用户可以执行一些POSIX文件系统的基本命令,例如ls,find 等.

    二、节点规划

    节点规划

    主机名IP角色ceph版本

    Server-200192.168.100.200Admin/monitorjewel

    Server-201192.168.100.201Osd,/dev/sdb,/dev/sdc,/dev/sddjewel

    Server-202192.168.100.202Osd,/dev/sdb,/dev/sdc,/dev/sddjewel

    Server-203192.168.100.203Osd,/dev/sdb,/dev/sdc,/dev/sddjewel

    三、预部署

    配置各所有节点hosts

    192.168.100.200server-200

    192.168.100.201server-201

    192.168.100.202server-202

    192.168.100.203server-203

    关闭防火墙和selinux, 确保时间一致

    所有节点安装ntpd,确保时间一致

    更新yum 为国内阿里源

    #rm -rf/etc/yum.repos.d/*.repo

    #wget -O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo

    #wget -O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-7.repo

    #sed -i'/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo

    #sed -i's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo

    #sed -i'/aliyuncs/d' /etc/yum.repos.d/epel.repo

    #yum clean all

    #yum makecache fast

    admin节点 安装部署工具 ceph-deploy

    #yum installhttp://mirrors.163.com/ceph/rpm-jewel/el7/noarch/ceph-deploy-1.5.38-0.noarch.rpm

    所有节点创建cephd用户,并确保 管理节点 ssh秘钥无密码登录,添加sudo权限

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

    测试没有问题,接下来,修改 ceph-deploy 管理节点上的 ~/.ssh/config 文件,这样无需每次执行 ceph-deploy 都要指定 –username cephd 。这样做同时也简化了 ssh 和 scp 的用法。

    $vim .ssh/config

    Host server-200

    Hostnameserver-200

    Usercephd

    Host server-201

    Hostnameserver-201

    Usercephd

    Host server-202

    Hostnameserver-202

    Usercephd

    Host server-203

    Hostnameserver-203

    Usercephd

    $chmod 600.ssh/config

    确保网络畅通~

    经过上边一系列的预检设置后,我们就可以开始Ceph 存储集群搭建了,集群结构为 admin-node (ceph-deploy、Monitor)、node1(osd.1)、node2(osd.2)。首先要提一下的是,如果我们在安装过程中出现了问题,需要重新操作的时候,例如想清理我搭建的这个集群的话,可以使用以下命令。

    #

    ceph-deploy (admin-node) 上执行

    清理配置

    #ceph-deploypurgedata server-200 server-201 server-202 server-203

    #ceph-deployforgetkeys

    清理 Ceph 安装包

    #ceph-deploypurge server-200 server-201 server-202 server-203

    四、部署集群

    [if !supportLists]1.[endif]安装ceph

    我们需要通过admin ceph-deploy在各个节点安装ceph

    $ceph-deploy installserver-200 server-201 server-202 server-203

    如果安装失败,可以手动安装

    #vim /etc/yum.repos.d/ceph.repo

    [Ceph]

    name=Cephpackages for $basearch

    baseurl=http://download.ceph.com/rpm-jewel/el7/$basearch

    enabled=1

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    priority=1

    [Ceph-noarch]

    name=Cephnoarch packages

    baseurl=http://download.ceph.com/rpm-jewel/el7/noarch

    enabled=1

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    priority=1

    [ceph-source]

    name=Cephsource packages

    baseurl=http://download.ceph.com/rpm-jewel/el7/SRPMS

    enabled=1

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    priority=1

    [ceph]

    name=Cephpackages for $basearch

    baseurl=http://download.ceph.com/rpm-jewel/el7/$basearch

    enabled=1

    priority=2

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    [ceph-noarch]

    name=Cephnoarch packages

    baseurl=http://download.ceph.com/rpm-jewel/el7/noarch

    enabled=1

    priority=2

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    [ceph-source]

    name=Cephsource packages

    baseurl=http://download.ceph.com/rpm-jewel/el7/SRPMS

    enabled=0

    priority=2

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    #yum install snappyleveldb gdisk python-argparse gperftools-libs

    #yum install ceph

    [if !supportLists]2.    [endif]创建集群,因暂只使用一个monitor,所以这里只初始admin监控节点

    #su - cephd

    $mkdir ceph-cluster

    $cd ceph-cluster

    $ceph-deploy new server-200

    [if !supportLists]3.[endif]添加监控器

    $ceph-deploy  mon create server-200

    $ceph-deploy moncreate-initial

    执行完毕后,会在当前目录下生成一系列的密钥环,应该是各组件之间访问所需要的认证信息吧

    到此,ceph monitor 已经成功启动了。接下来需要创建 OSD 了,OSD 是最终数据存储的地方,这里我们准备了两个 OSD 节点,分别为 osd.0 和 osd.1。官方建议为 OSD 及其日志使用独立硬盘或分区作为存储空间

    $ceph-deploy osdprepare server-201:sdb:/dev/sdd server-201:sdc:/dev/sdd server-202:sdb:/dev/sddserver-202:sdc:/dev/sdd server-203:sdb:/dev/sdd server-203:sdc:/dev/sdd

    $ceph-deploy osdactivate server-201:sdb1:/dev/sdd1 server-201:sdc1:/dev/sdd2server-202:sdb1:/dev/sdd1 server-202:sdc1:/dev/sdd2 server-203:sdb1:/dev/sdd1server-203:sdc1:/dev/sdd2

    也可以考虑同步配置到其他节点,这样其他节点也可以查看

    $ceph-deploy admin server-200server-201 server-202 server-203

    $sudo chmod +r/etc/ceph/ceph.client.admin.keyring

    $ceph -s

    相关文章

      网友评论

          本文标题:Ceph (J)集群部署

          本文链接:https://www.haomeiwen.com/subject/udukbftx.html