视频类的网站制作,国际最好的摄影作品网站,防火墙 网站做端口映射,网页好看的网站设计Ceph概述 部署Ceph集群 Ceph存储使用 Pod使用Ceph持久化数据 Ceph监控 Rook部署Ceph 1❖ Ceph概述 Ceph介绍 Ceph架构 Ceph核心概念 Ceph介绍 Ceph是一个开源的分布式存储系统#xff0c;具有高扩展性、高性能、高可靠性等特点#xff0c;提 供良好的性能、可靠性和可扩展…Ceph概述 部署Ceph集群 Ceph存储使用 Pod使用Ceph持久化数据 Ceph监控 Rook部署Ceph 1❖ Ceph概述 Ceph介绍 Ceph架构 Ceph核心概念 Ceph介绍 Ceph是一个开源的分布式存储系统具有高扩展性、高性能、高可靠性等特点提 供良好的性能、可靠性和可扩展性。支持对象存储、块存储和文件系统。 是目前为云平台提供存储的理想方案。 Ceph架构 RBDRADOS Block Device块存储接口 RGWRADOS Gateway对象存储网关接口与S3和Swift兼容 CephFSCeph File System文件级存储接口 RADOSReliable Autonomic Distributed Object Store抽象的对象存储集群Ceph核心实现用户数据分配、故障转移等集群操作 MON集群状态维护例如OSD是否健康、PG状态等 MDS Metadata Server CephFS服务依赖的元数据服务 OSDObject Storage Daemon对象存储设备主要存储数据 Ceph核心概念 Pool存储池是存储对象的逻辑分区它规定了数据冗余的类型和对应的副本分布策略支持两种类型副本replicated和 纠删码Erasure Code PG placement group放置策略组对象的集合该集合里的所有对象都具有相同的放置策略简单点说就是相同PG内的对象都会放到相同的硬盘上 PG是ceph的核心概念 服务端数据均衡和恢复的最小粒度引入PG这一层其实是为了更好的分配数据和定位数据。 右边这张图描述了它们之间的关系 一个Pool里有很多PG 一个PG里包含一堆对象一个对象只能属于一个PG PG属于多个OSD分布在不同的OSD上 2❖ 部署Ceph集群 Ceph版本选择 服务器配置建议 Ceph集群部署规划 操作系统初始化配置 Ceph集群部署 Ceph集群服务管理 Ceph集群常用管理命令 Ceph版本选择 Ceph目前最新版本16P版市面上应用最广泛的是12L版 参考https://docs.ceph.com/en/latest/releases/ 服务器配置建议 Ceph集群部署规划 ceph-deployceph集群部署节点负责集群整体部署这里复用node1节点也可以单独找一台服务器作为部署节点。 monitorCeph监视管理节点承担Ceph集群重要的管理任务负责集群状态维护例如存储池副本数、PG状态、OSD数量等至少部署1个一般需要3或5个节点组建高可用。 osdCeph存储节点实际负责数据存储的节点集群中至少有3个OSD不少于默认副本数每个OSD对应一块硬盘。 操作系统初始化配置 # 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭selinux
sed -i s/enforcing/disabled/ /etc/selinux/config # 永久重启生效
setenforce 0 # 临时
# 关闭swap可选
swapoff -a # 临时
sed -ri s/.*swap.*/#/ /etc/fstab # 永久重启生效
# 根据规划设置主机名
hostnamectl set-hostname hostname
# 在node添加hosts
cat /etc/hosts EOF
192.168.31.71 ceph-node01
192.168.31.72 ceph-node02
192.168.31.73 ceph-node03
EOF# 设置文件描述符
ulimit -SHn 65535
cat /etc/security/limits.conf EOF
* soft nofile 65535
* hard nofile 65535
EOF
# 时间同步
yum install ntpdate -y
ntpdate time.windows.com
# 配置SSH免交互认证
ssh-keygen -t rsa
ssh-copy-id rootceph-node01
ssh-copy-id rootceph-node02
ssh-copy-id rootceph-node03 Ceph集群部署 Ceph集群部署方式 14N版本及之前 yum常规的部署方式 ceph-deployceph提供的简易部署工具可以非常方便部署ceph集群。 ceph-ansible官方基于ansible写的自动化部署工具 14N版本之后 cephadm使用容器部署和管理Ceph集群需要先部署Docker或者Podman和Python3 rook在Kubernetes中部署和管理Ceph集群 Ceph集群部署步骤 配置阿里云yum仓库 安装ceph-deploy工具 创建集群 安装Ceph 部署Monitor服务 部署OSD服务并添加硬盘 部署MGR服务 1、配置阿里云yum仓库 cat /etc/yum.repos.d/ceph.repo EOF
[Ceph]
nameCeph packages for $basearch
baseurlhttp://mirrors.aliyun.com/ceph/rpm-nautilus/el7/\$basearch
gpgcheck0
[Ceph-noarch]
nameCeph noarch packages
baseurlhttp://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch
gpgcheck0
[ceph-source]
nameCeph source packages
baseurlhttp://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
gpgcheck0
EOF 2、安装ceph-deploy工具 yum -y install ceph-deploy 3、创建集群 创建一个my-cluster目录所有命令在此目录下进行 mkdir my-cluster
cd my-cluster
# 创建一个Ceph集群
ceph-deploy new ceph-node01 ceph-node02 ceph-node03 4、安装Ceph 安装Ceph包到指定节点 ceph-deploy install --no-adjust-repos ceph-node01 ceph-node02 ceph-node03 注–no-adjust-repos参数是直接使用本地源不使用官方默认源。 5、部署Monitor服务 初始化并部署monitor收集所有密钥 ceph-deploy mon create-initial 使用ceph-deploy命令将配置文件和 admin key复制到管理节点和Ceph节点以便每次执行ceph CLI命令无需 指定monitor地址和 ceph.client.admin.keyring。 ceph-deploy admin ceph-node01 ceph-node02 ceph-node03 6、部署OSD服务并添加硬盘 创建6个OSD分别对应每个节点未使用的硬盘 ceph-deploy osd create --data /dev/sdb ceph-node01
ceph-deploy osd create --data /dev/sdc ceph-node01
ceph-deploy osd create --data /dev/sdb ceph-node02
ceph-deploy osd create --data /dev/sdc ceph-node02
ceph-deploy osd create --data /dev/sdb ceph-node03
ceph-deploy osd create --data /dev/sdc ceph-node03 7、部署MGR服务 ceph-deploy mgr create ceph-node01 ceph-node02 ceph-node03 注MGR是Ceph L版本新增加的组件主要作用是分担和扩展monitor的部分功能减轻monitor的负担。 建议每台monitor节点都部署一个mgr以实现相同级别的高可用。 查看Ceph集群状态 ceph -s 查看Ceph版本 ceph -v 日志目录/var/log/ceph Ceph集群服务管理 1、启动所有守护进程 # systemctl restart ceph.target 2、按类型启动守护进程 # systemctl restart ceph-osdid
# systemctl restart ceph-osd.target
# systemctl restart ceph-mon.target
# systemctl restart ceph-mgr.target Ceph集群常用管理命令 3❖ Ceph存储使用 三种存储类型介绍 RBD块存储 CephFS文件存储 三种存储类型介绍 块存储RBD 优点存储速度较快 缺点不支持共享存储 应用场景虚拟机硬盘 典型设备硬盘、Raid 文件存储CephFS 优点支持共享存储 缺点读写速度较慢需要经过操作系统处理再转为块存储 应用场景文件共享多台服务器共享使用同一个存储 典型设备FTP、NFS 对象存储Object 优点具备块存储的读写性能和文件存储的共享特性 缺点操作系统不能直接访问只能通过应用程序级别的API访问 应用场景图片存储视频存储 典型设备阿里云OSS腾讯云COS RBD块存储RBD工作流程 1、客户端创建一个pool并指定pg数量创建rbd设备并挂载到文件系统 2、用户写入数据ceph进行对数据切块每个块的大小默认为4M每个块名 字是object序号 3、将每个object通过pg进行副本位置的分配 4、pg根据crush算法会寻找3个osd把这object分别保存在这3个osd上存储 5、osd实际把硬盘格式化为xfs文件系统object存储在这个文件系统就相当 于存储了一个文件rbd0.object1.file。 RBD块存储常用管理命令 RBD块存储RBD创建并使用 1、创建存储池
ceph osd pool create rbd-pool 128 # 格式ceph osd pool create pool-name pg-num
ceph osd pool ls
2、指定存储池使用存储类型
ceph osd pool application enable rbd-pool rbd
3、创建一个10G的块设备
rbd create --size 10240 rbd-pool/image01 # 格式rbd create --size {megabytes} {pool-name}/{image-name}
4、查看块设备
rbd ls -l rbd-pool
rbd info rbd-pool/image01 RBD块存储RBD创建并使用 节点本地挂载使用块设备
1、映射
rbd map rbd-pool/image01
2、格式化块设备
mkfs.xfs /dev/rbd0
3、挂载
mount /dev/rbd0 /mnt
4、取消挂载和内核映射
umount /mnt
rbd unmap rbd-pool/image01 远程挂载使用块设备
1、拷贝配置文件和秘钥
cd my-cluster/
scp ceph.conf root192.168.31.74:/etc/ceph
scp ceph.client.admin.keyring root192.168.31.74:/etc/ceph
2、安装Ceph客户端
yum install epel-release -y
yum -y install ceph-common
3、剩余操作就与左侧一样了 RBD块存储快照 快照在某个时间点的副本当系统出现问题可以通过恢复快照恢复之前副本状态。
1、创建快照
rbd snap create rbd-pool/image01snap01
2、查看快照
rbd snap list image01
rbd snap ls rbd/image01
rbd ls –l
3、还原快照
rbd snap rollback rbd-pool/image01snap01
注还原快照前需先取消挂载和内核映射否则会出错
4、重新映射并挂载验证
rbd map rbd-pool/image01
mount /dev/rbd0 /mnt/
5、删除快照
rbd snap rm rbd-pool/image01snap01 RBD块存储克隆 克隆基于指定的块设备克隆出相同的一份出来
1、创建一个块设备
rbd create --size 10240 rbd-pool/image02
2、创建快照
rbd snap create rbd-pool/image02snap01
3、设置快照处于被保护状态
rbd snap protect rbd-pool/image02snap01
4、通过快照克隆一个新块设备
rbd clone rbd-pool/image02snap01 rbd-pool/image02_clone
rbd info image02_clone
5、就可以按照前面方式使用这个新克隆的块设备了
6、目前克隆的块设备依赖于父块设备也可以将其独立于父块设备
rbd flatten rbd-pool/image02_clone CephFS文件系统 CephFS 是一个基于 ceph 集群且兼容POSIX标准的文件系统。 创建 cephfs 文件系统时需要在 ceph 集群中添加 mds 服务该服务 负责处理 POSIX 文件系统中的 metadata 部分实际的数据部分交由 ceph 集群中的OSD处理。 CephFS文件存储部署MDS服务 部署MDS实例
ceph-deploy mds create ceph-node01 ceph-node02 ceph-node03
ceph mds stat # 查看MDS节点状态 CephFS文件系统创建文件系统 1、创建存储池
ceph osd pool create cephfs_data pg_num
ceph osd pool create cephfs_metadata pg_num
ceph fs ls
2、创建文件系统
ceph fs new cephfs cephfs_metadata cephfs_data # 格式ceph fs new fs_name metadata data
ceph fs ls #查看创建后的cephfs CephFS文件存储部署MDS服务 4❖ Pod使用Ceph持久化数据 5❖ Ceph监控 6❖ Rook部署Ceph