Ceph 介绍
- Ceph 是一个开源的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。它还是一个可靠、自动重均衡、自动恢复的分布式存储系统。主要优点是分布式存储,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,不存在传统的单点故障的问题,可以水平扩展。
ceph 官方文档 http://docs.ceph.org.cn/
ceph 中文开源社区 http://docs.ceph.org.cn/- Ceph 是一个开源的分布式文件系统。因为它还支持块存储、对象存储,所以很自然的被用做云计算框架 openstack 或 cloudstack 整个存储后端。当然也可以单独作为存储,例如部署一套集群作为对象存储、SAN 存储、NAS 存储等。
- 具体信息请查看:
CentOS 7 部署 Ceph 分布式存储架构_高飞的博客-CSDN博客- ceph 实验环境
系统统一使用 CentOS 7.9.2009
192.168.1.90 ceph1 # admin,osd, mon 作为管理和监控节点
192.168.1.91 ceph2 osd, mon
192.168.1.92 ceph3 osd, mon
- 基本准备工作:配置静态 IP、配置主机名、配置SSH免密互信、关闭防火墙、关闭 selinux、配置时间同步。
- 配置 Ceph 安装源
vim /etc/yum.repos.d/ceph-yum.repo[ceph] name=ceph baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/ gpgcheck=0 priority=1 enable=1 [ceph-noarch] name=cephnoarch baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/ gpgcheck=0 priority=1 enable=1 [ceph-source] name=Ceph source packages baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS/ gpgcheck=0 priority=1 enable=1
yum install -y epel-release
安装基础软件包
在 ceph 的每台节点上都操作yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epelrelease openssh-server socat ipvsadm conntrack ntpdate telnet deltarpm
安装 ceph 集群
- 安装 ceph-deploy
#在 ceph1 节点安装 ceph-deploy
yum install python-setuptools ceph-deploy -y
#在 ceph1 ceph2 和 ceph3 节点安装 ceph
yum install ceph ceph-radosgw -y- 创建 monitor 节点
#保存 ceph-deploy 生成的配置文件
ceph-deploy new ceph1 ceph2 ceph3- 安装 monitor 服务
1、修改 ceph 配置文件
#把 ceph.conf 配置文件里的默认副本数从 3 改成 2。把 osd_pool_default_size = 2 加入[global]段,这样只有 2 个 osd 也能达到 active+clean 状态:
osd_pool_default_size = 2
mon clock drift allowed = 0.500
mon_max_pg_per_osd = 1000
mon clock drift allowed #监视器间允许的时钟漂移量默认值 0.05
ceph 对每个 mon 之间的时间同步延时默认要求在 0.05s 之间,这个时间有的时候太短了。如果时钟同步有问题可能导致 monitor 监视器不同步,可以适当增加时间
2、安装 monitor、收集所有的密钥
cd /etc/ceph
ceph-deploy mon create-initial
3、部署 osd 服务
ceph-deploy osd create --data /dev/sdc ceph1
ceph-deploy osd create --data /dev/sdc ceph2
ceph-deploy osd create --data /dev/sdc ceph3
ceph-deploy osd list ceph1 ceph2 ceph3
- 要使用 Ceph 文件系统,你的 Ceph 的存储集群里至少需要存在一个 Ceph 的元数据服务器(mds)。
- 创建 ceph 文件系统
创建 mds
ceph-deploy mds create ceph1 ceph2 ceph3 查看 ceph 当前文件系统
ceph fs ls
一个 cephfs 至少要求两个 librados 存储池,一个为 data,一个为 metadata。
当配置这两个存储池时,注意:
1. 为 metadata pool 设置较高级别的副本级别,因为 metadata 的损坏可能导致整个文件系统无法使用
2. 建议,metadata pool 使用低延时存储,比如 SSD,因为 metadata 会直接影响客户端的响应速度。
创建存储池
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
关于创建存储池
命令:
ceph osd pool create {pool-name} {pg-num}
确定 pg_num 取值是强制性的,因为不能自动计算。下面是几个常用的值&#