概述
ceph是可靠的、可扩展的、统一的、开源分布式的存储系统。
ceph官方文档 http://docs.ceph.org.cn/
ceph中文开源社区 http://ceph.org.cn/
- ceph优点
统一存储
高扩展性
可靠性强
高性能 - ceph应用场景
ceph可以提供对象存储、块设备存储和文件系统服务,其对象存储可以对接网盘应用业务等;其块设备存储可以对接,当前主流的laas云平台软件,如OpenStack、CloudStack、Zstack、Eucalyptus等以及kvm等。 - ceph各组件介绍
OSD:Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。
Monitor:Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。
MDS:Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。
ceph实验集群部署
环境准备
- 需要四台服务器,
- 关闭防火墙和selinux
systemctl stop firewalld && setenforce 0
- 修改域名解析以及更改主机名
hostnamectl --static set-hostname newname
192.168.131.128 ceph01
192.168.131.129 ceph02
192.168.131.130 ceph03
192.168.131.131 ceph04
ceph01-ceph03的配置
- 添加一块磁盘/dev/sdb,创建目录并挂载
mkfs.xfs /dev/vdb #格式化
mkdir -p /var/local/osd0 #创建挂载目录
mount /dev/vdb /var/local/osd0 #挂载
- 编辑hosts文件实现SSH免密登录(多机互信)
在管理节点使用ssh-keygen生成ssh keys 发布到各节点
ssh-keygen
ssh-copy-id ceph01
ssh-copy-id ceph02
ssh-copy-id ceph03
ssh-copy-id ceph04
管理节点安装ceph-deploy工具
vim /etc/yum.repos.d/ceph.repo
[Ceph-SRPMS]
name=Ceph SRPMS packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS/
enabled=1
gpgcheck=0
type=rpm-md
[Ceph-aarch64]
name=Ceph aarch64 packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-jewel/el7/aarch64/
enabled=1
gpgcheck=0
type=rpm-md
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
enabled=1
gpgcheck=0
type=rpm-md
[Ceph-x86_64]
name=Ceph x86_64 packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
enabled=1
gpgcheck=0
yum clean all && yum list
yum -y install ceph-deploy
创建monitor
mkdir /etc/ceph && cd /etc/ceph
ceph-deploy new ceph01 #mon安装ceph01节点
修改副本数
vim ceph.conf
[global]
fsid = 92f5581d-79d2-4c9f-a523-4965eedc846b
mon_initial_members = ceph01
mon_host = 192.168.131.128
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd_pool_default_size = 2
在ceph01执行安装所有节点ceph
如果网络源安装失败,手工安装epel-release 然后安装 yum –y install ceph-release 再 yum –y install ceph ceph-radosgw
ceph-deploy install ceph01 ceph02 ceph03 ceph04
ceph-deploy mon create ceph01
ceph-deploy gatherkeys ceph01
部署osd服务、创建激活osd
- 创建osd
ceph-deploy osd prepare ceph01:/var/local/osd0 ceph02:/var/local/osd1 ceph03:/var/local/osd2 #根据自己的文件填写
- 添加权限
chown -R ceph.ceph /var/local/osd0/ # ceph01
chown -R ceph.ceph /var/local/osd1/ #ceph02
chown -R ceph.ceph /var/local/osd2/ #ceph03
- 激活osd
ceph-deploy osd activate ceph01:/var/local/osd0 ceph02:/var/local/osd1 ceph03:/var/local/osd2
- 查看状态
ceph-deploy osd list ceph01 ceph02 ceph03
统一配置
ceph-deploy admin ceph01 ceph02 ceph03
chmod +r /etc/ceph/ceph.client.admin.keyring
查看osd状态
ceph health
#或 ceph -s
部署mds服务
ceph-deploy mds create ceph02 ceph03 #我们MDS安装2台
ceph mds stat #查看状态
集群状态
ceph -s
创建ceph文件系统
ceph fs ls #创建之前
ceph osd pool create cephfs_data <pg_num>
ceph osd pool create cephfs_metadata <pg_num>
其中:** = 128 ,**关于创建存储池
确定 pg_num 取值是强制性的,因为不能自动计算。下面是几个常用的值:
*少于 5 个 OSD 时可把 pg_num 设置为 128
*OSD 数量在 5 到 10 个时,可把 pg_num 设置为 512
*OSD 数量在 10 到 50 个时,可把 pg_num 设置为 4096
*OSD 数量大于 50 时,你得理解权衡方法、以及如何自己计算 pg_num 取值
*自己计算 pg_num 取值时可借助 pgcalc 工具
随着 OSD 数量的增加,正确的 pg_num 取值变得更加重要,因为它显著地影响着集群的行为、以及出错时的数据持久性(即灾难性事件导致数据丢失的概率)。
创建文件系统
ceph fs new <fs_name> cephfs_metadata cephfs_data
其中:<fs_name> = cephfs 可自定义
ceph fs ls #查看创建后的cephfs
ceph mds stat #查看mds节点状态
挂载ceph文件系统(ceph04----client)
有不同挂载方式
用户控件挂载ceph文件系统
yum install -y ceph-fuse
cat /etc/ceph/ceph.client.admin.keyring
- 然后通过ceph-fuse挂载:
ceph-fuse -m 192.168.131.128:6789 /opt
df -Th
- 取消挂载
fusermount -u /opt
内核驱动挂载ceph文件系统
- 创建挂载点
mkdir /opt
cat /etc/ceph/ceph.client.admin.keyring
- 挂载
mount -t ceph 192.168.11.128:6789:/ /opt -o name=admin,secretfile=/etc/ceph/admin.secret
- 取消挂载
umount /opt