目录
一、概述
二、组件
三、架构图
四、搭建
ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。
特点:
1. 统一存储
虽然 ceph 底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。
2. 高扩展性
扩容方便、容量大。能够管理上千台服务器、EB 级的容量。
3. 可靠性强
支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自动管理、自动修复。无单点故障,容错性强。
4. 高性能
因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的 IOPS和吞吐量越高。另外一点 ceph 客户端读写数据直接与存储设备(osd) 交互。
1. Monitor:一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。
2. OSD:OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。
3. MDS:MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
4. Object:Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。
5. PG:PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。
6. RADOS:RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
7. Libradio:Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
8. CRUSH:CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
9. RBD:RBD全称RADOS block device,是Ceph对外提供的块设备服务。
10. RGW:RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
11. CephFS:CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。
1:文件上传,先将文件切片成N个object(如果开启了cephFS,可以使用MDS缓存)
2:切片后的文件object会存入到Ceph中
3:文件存储前,会经过CRUSH算法,计算当前文件存储归结于哪个PG
4:PG是逻辑概念上对文件存储范围划分的索引
5:根据PG索引将文件存储到指定服务器的OSD中
关闭防火墙、关闭图形网络管理器、配置IP、关闭Selinux
1、环境拓扑
centos1:192.168.115.3
centos2:192.168.115.4
centos3:192.168.115.5
centos4:192.168.115.6(Client)
2、主机名修改
192.168.115.3
192.168.115.4
192.168.115.5
192.168.115.6
3、hosts文件修改
每个节点主机都需要操作
vim /etc/hosts
192.168.115.3 centos1
192.168.115.4 centos2
192.168.115.5 centos3
192.168.115.6 centos4
for i in 4 5 6; do scp /etc/hosts 192.168.115.$i:/etc;done
其它节点查看
ping测试一下(只展现一个节点其它的节点省略)
5、ssh免密配置
每个节点都要配置
ssh-keygen
for i in 3 4 5 6; do ssh-copy-id [email protected].$i;done
每个节点查看
测试免密登录(只展现一个节点其它的节点省略)
6、在centos1上开启时间同步服务器
安装 yum install -y ntp
配置
vim /etc/ntp.conf
server 127.127.1.0 定义时间服务器
fudge 127.127.1.0 stratum 8 定义时间层次
启动 systemctl start ntpd
客户端对时 for i in 4 5; do ssh 192.168.115.$i ntpdate 192.168.115.3;done
7、添加磁盘
热扫描磁盘
echo "- - -" > /sys/class/scsi_host/host0/scan
for i in 4 5;do ssh 192.168.115.$i echo "- - -" > /sys/class/scsi_host/host0/scan && lsblk;done
格式化 mkfs.xfs /dev/sdb
8、ceph安装
只在centos1执行
yum install epel-release -y
yum install lttng-ust -y
添加ceph安装源
yum -y install ceph ceph-deploy
2、集群构建
创建集群目录
mkdir -p /usr/local/soft/cephcluster
cd /usr/local/soft/cephcluster
创建集群 ceph-deploy new centos1 centos2 centos3
修改配置文件 vim ceph.conf
安装 ceph-deploy install centos1 centos2 centos3
初始化monitor ceph-deploy mon create-initial
同步管理信息 ceph-deploy admin centos1 centos2 centos3
安装mgr(管理守护进程) ceph-deploy mgr create centos1 centos2 centos3
安装rgw ceph-deploy rgw create centos1 centos2 centos3
创建mds服务 ceph-deploy mds create centos1 centos2 centos3
OSD安装
创建OSD
ceph-deploy osd create --data /dev/sdb centos1
ceph-deploy osd create --data /dev/sdb centos2
ceph-deploy osd create --data /dev/sdb centos3
查看集群状态 ceph -s
dashboard安装
开启dashboard模块 ceph mgr module enable dashboard
生成签名 ceph dashboard create-self-signed-cert
创建目录 mkdir -p /usr/local/jx/cephcluster/mgr-dashboard
cd /usr/local/jx/cephcluster/mgr-dashboard
openssl req -new -nodes -x509 -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650 -keyout dashboard.key -out dashboard.crt -extensions v3_ca
启动服务:
ceph mgr module disable dashboard
ceph mgr module enable dashboard
设置访问地址与端口:
ceph config set mgr mgr/dashboard/server_addr 192.168.115.3
ceph config set mgr mgr/dashboard/server_port 9001
关闭https ceph config set mgr mgr/dashboard/ssl false
ceph mgr services
ceph dashboard set-login-credentials hf123 123.com
https://192.168.115.3:8443
ceph文件系统创建
创建存储池
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 64
少于5个OSD可把pg_num设置为128
OSD数量在5到10,可以设置pg_num为512
OSD数量在10到50,可以设置pg_num为4096
OSD数量大于50,需要计算pg_num的值
查看存储池 ceph osd lspools
创建文件系统 ceph fs new fs_test cephfs_metadata cephfs_data
查看文件系统 ceph fs ls
查看mds状态 ceph mds stat
客户端挂载
在centos1中安装 ceph-deploy install centos4
同步管理信息 ceph-deploy admin centos4
非集群节点,/var/run/ceph 无内容
在centos4
yum install -y ceph-fuse
查看信息
ls /etc/ceph/ceph.client.admin.keyring
创建挂载目录 mkdir /ceph
挂载ceph文件系统
ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.115.3:6789 /ceph
登录查看