Ceph分布式存储系统搭建

Ceph分布式存储系统

官方中文文档:http://docs.ceph.org.cn/

核心组件

Ceph的核心组件包括Ceph OSD、Ceph Monitor和Ceph MDS。

Ceph OSD

OSD的英文全称是Object Storage Device,它的主要功能是存储数据、复制数据、平衡数据、恢复数据等,与其它OSD间进行心跳检查等,并将一些变化情况上报给Ceph Monitor。一般情况下一块硬盘对应一个OSD,由OSD来对硬盘存储进行管理,当然一个分区也可以成为一个OSD。

Ceph OSD的架构实现由物理磁盘驱动器、Linux文件系统和Ceph OSD服务组成,对于Ceph OSD Deamon而言,Linux文件系统显性的支持了其拓展性,一般Linux文件系统有好几种,比如有BTRFS、XFS、Ext4等,BTRFS虽然有很多优点特性,但现在还没达到生产环境所需的稳定性,一般比较推荐使用XFS。

Ceph Monitor

由该英文名字我们可以知道它是一个监视器,负责监视Ceph集群,维护Ceph集群的健康状态,同时维护着Ceph集群中的各种Map图,比如OSD Map、Monitor Map、PG Map和CRUSH Map,这些Map统称为Cluster Map,Cluster Map是RADOS的关键数据结构,管理集群中的所有成员、关系、属性等信息以及数据的分发,比如当用户需要存储数据到Ceph集群时,OSD需要先通过Monitor获取最新的Map图,然后根据Map图和object id等计算出数据最终存储的位置。

Ceph MDS

全称是Ceph MetaData Server,主要保存的文件系统服务的元数据,但对象存储和块存储设备是不需要使用该服务的。

环境描述

基于CentOS7

主机名 IP地址 角色
ceph-1 192.168.1.50 mon 管理节点
ceph-1 192.168.1.51 集群成员
ceph-3 192.168.1.52 集群成员

安装

关闭Selinux (三台都执行)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 
关闭防火墙(三台都执行)
systemctl stop firewalld && systemctl disable firewalld
配置hosts文件(管理节点ceph-1执行)
cat /etc/hosts
192.168.1.50 ceph-1
192.168.1.51 ceph-2
192.168.1.52 ceph-3

# 确保每台服务器hosts文件内容一致
for i in {0..2} ; do scp /etc/hosts 192.168.1.5$i:/etc/hosts ; done
配置免密登录(管理节点ceph-1执行)
ssh-keygen #三次回车
ssh-copy-id ceph-1
ssh-copy-id ceph-2
ssh-copy-id ceph-3
安装 yum-plugin-priorities (管理节点ceph-1执行)
sudo yum install yum-plugin-priorities

# 确认 /etc/yum/pluginconf.d/priorities.conf 文件存在。
# 确认 priorities.conf 里面打开了插件支持。
cat /etc/yum/pluginconf.d/priorities.conf
[main]
enabled = 1
配置yum源(三台都执行)

建议参考ceph官方中文文档:http://docs.ceph.org.cn/install/install-storage-cluster/

yum -y install epel-release

vim /etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
enabled=0
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
安装依赖的的软件包(管理节点ceph-1执行)
sudo yum install snappy leveldb gdisk python-argparse gperftools-libs

# 把 ceph.repo 文件放入 /etc/yum.repos.d 之后,你就可以安装 Ceph 软件包了。
安装ceph-deploy(管理节点ceph-1执行)
yum -y install ceph-deploy

# 若执行ceph-deploy命令报错,如:
Traceback (most recent call last):
  File "/usr/bin/ceph-deploy", line 18, in <module>
    from ceph_deploy.cli import main
  File "/usr/lib/python2.7/site-packages/ceph_deploy/cli.py", line 1, in <module>
    import pkg_resources
ImportError: No module named pkg_resources

#请安装python2-pip
yum -y install python2-pip
创建ceph集群(管理节点ceph-1执行)
ceph-deploy new $HOSTNAME
手动安装ceph的软件包(三台都执行)
yum -y install ceph ceph-radosgw
# 相当于执行ceph-deploy install ...命令。若执行此命令,yum源可能会被修改,导致安装失败。
# 建议使用yum -y install ceph ceph-radosgw安装。
初始化ceph集群(管理节点ceph-1执行)
ceph-deploy mon create-initial
ceph-deploy mgr create ceph-1
查看ceph状态(管理节点ceph-1执行)
ceph -s
 
 cluster:
    id:     746cd5aa-feb3-4676-9203-783792f72da3
    health: HEALTH_WARN
            no active mgr
 
  services:
    mon: 1 daemons, quorum ceph-1
    mgr: no daemons active
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0B
    usage:   0B used, 0B / 0B avail
    pgs: 
添加硬盘设备(三台都添加一块5G的硬盘)
# 查看硬盘,sdb为新加的硬盘
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
sr0              11:0    1  4.2G  0 rom
格式化硬盘(管理节点ceph-1执行)
ceph-deploy disk zap ceph-1 /dev/sdb
ceph-deploy disk zap ceph-2 /dev/sdb
ceph-deploy disk zap ceph-3 /dev/sdb
创建osd对象存储(管理节点ceph-1执行)
ceph-deploy osd create --data /dev/sdb ceph-1
ceph-deploy osd create --data /dev/sdb ceph-2
ceph-deploy osd create --data /dev/sdb ceph-3
查看集群状态(管理节点ceph-1执行)
ceph -s
  cluster:
    id:     746cd5aa-feb3-4676-9203-783792f72da3
    health: HEALTH_OK
 
  services:
    mon: 1 daemons, quorum ceph-1
    mgr: ceph-1(active)
    osd: 3 osds: 3 up, 3 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0B
    usage:   3.01GiB used, 12.0GiB / 15.0GiB avail
    pgs:     
 
posted @ 2020-03-10 22:21  zh_Revival  阅读(732)  评论(0编辑  收藏  举报