1 初识Ceph

Ceph是加州大学Santa Cruz分校的Sage Weil专为博士论文设计的分布式文件系统,支持对象存储、块存储和文件存储。从2004年新建第一个文件夹至今,经历了多次迭代,目前已是分布式存储的首选。

1.1 Ceph的功能组件

图1.1 Ceph功能组件的整体架构

(1)Ceph核心组件
在Ceph存储中,包含了几个重要的核心组件,分别是Ceph OSD、Ceph Monitor和Ceph MDS。一个Ceph的存储集群至少需要一个Ceph Monitor和至少两个Ceph的OSD。运行Ceph文件系统的客户端时,Ceph的元数据服务器(MDS)是必不可少的。下面来详细介绍一下各个核心组件。

  • Ceph OSD:全称是Object Storage Device,主要功能包括存储数据,处理数据的复制、恢 复、回补、平衡数据分布,并将一些相关数据提供给Ceph Monitor,例如Ceph OSD心跳等。一
    个Ceph的存储集群,至少需要两个Ceph OSD来实现active+clean健康状态和有效的保存数据的双副本(默认情况下是双副本,可以调整)。注意:每一个Disk、分区都可以成为一个OSD。
  • Ceph Monitor:Ceph的监控器,主要功能是维护整个集群健康状态,提供一致性的决策,包含了Monitor map、OSD map、PG(Placement Group)map和CRUSH map。
  • Ceph MDS:全称是Ceph Metadata Server,主要保存的是Ceph文件系统(File System)的元数据(metadata)。温馨提示:Ceph的块存储和Ceph的对象存储都不需要Ceph MDS。Ceph MDS为基于POSIX文件系统的用户提供了一些基础命令,例如ls、find等命令。

(2)Ceph功能特性
Ceph可以同时提供对象存储RADOSGW(Reliable、Autonomic、Distributed、Object Storage Gateway)、块存储RBD(Rados Block Device)、文件系统存储Ceph FS(Ceph File System)3种功能,由此产生了对应的实际场景,本节简单介绍如下。
RADOSGW功能特性基于LIBRADOS之上,提供当前流行的RESTful协议的网关,并且兼容 S3和Swift接口,作为对象存储,可以对接网盘类应用以及HLS流媒体应用等。
RBD(Rados Block Device)功能特性也是基于LIBRADOS之上,通过LIBRBD创建一个块 设备,通过QEMU/KVM附加到VM上,作为传统的块设备来用。目前OpenStack、CloudStack等 都是采用这种方式来为VM提供块设备,同时也支持快照、COW(Copy On Write)等功能。
Ceph FS(Ceph File System)功能特性是基于RADOS来实现分布式的文件系统,引入了 MDS(Metadata Server),主要为兼容POSIX文件系统提供元数据。一般都是当做文件系统来
挂载。

1.2 CentOS7下的安装

1)配置yum源,安装ceph-deploy
本文档采用阿里源,也可用网易源。
在yum仓库新建ceph.repo。

vi /etc/yum.repos.d/ceph.repo

向ceph.repo中写入以下配置。

[norch]
name=norch
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
enabled=1
gpgcheck=0

[x86_64]
name=x86 64
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
enabled=1
gpgcheck=0

更新源并安装ceph-deploy

sudo yum update && sudo yum install ceph-deploy

2)Ceph节点安装
在所有节点上安装NTP服务,以免因时钟漂移导致故障,可以把从机NTP配置文件中的服务器指向主机。

yum install ntp ntpdate ntp-doc

安装SSH服务,使得各个节点能够通过ssh访问

yum install openssh-server

配置host文件,在host文件中添加所有节点的ip地址

{ip_address} node-name
例如:192.168.0.1 node1

配置各个节点SSH免密登录

ssh-keygen

Generating public/private key pair.
Enter file in which to save the key (/ceph-admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /ceph-admin/.ssh/id_rsa.
Your public key has been saved in /ceph-admin/.ssh/id_rsa.pub.

把公钥拷贝到各 Ceph 节点

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

开放所需端口,或者关闭防火墙

sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent

关闭SELINUX

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

创建ceph-deploy目录,今后所有的ceph-deploy操作都在该文件夹内执行

mkdir ceph-deploy
cd ceph-deploy

创建第一个节点,也是创建集群,同时部署monitor节点

ceph-deploy new {monitor-node}

安装Ceph到各个节点

ceph-deploy install {node-name}

3)安装OSD
获取密钥key

ceph-deploy mon create-initial

初始化磁盘,OSD需要安装在空白盘中

ceph-deploy disk zap {node-name:disk-name}

创建OSD

ceph-deploy osd create {node-name}:{disk-name}

分发key

ceph-deploy admin {admin-node} {node-name}

查看集群状态

ceph -s

你可能感兴趣的:(1 初识Ceph)