展示型网站 数据库,黑龙江恒泰建设集团网站,网站顶部广告代码,制作logo免费ceph文件系统#xff1a;高度可扩展#xff0c;分布式的存储文件系统#xff0c;旨在提高性能#xff0c;高可靠性和高可用的对
象存储#xff0c;块存储#xff0c;文件系统的存储。使用分布式的算法保证数据的高可用和一致性。 ceph的组件
1、MON#xff1a;ceph m…ceph文件系统高度可扩展分布式的存储文件系统旨在提高性能高可靠性和高可用的对
象存储块存储文件系统的存储。使用分布式的算法保证数据的高可用和一致性。 ceph的组件
1、MONceph monitor负责存储和维护整个ceph集群的状态信息主要是集群的成员信息存
储状态和配置数据等等。
确保集群的一致性处理选举和状态的更新处理集群内部成员的通信包括故障转移ceph当中mon至少要有3个节点确保高可用
2、osdceph object storage daemonceph存储系统的核心组件负责存储数据处理
读写请求数据复制数据恢复。每个osd节点管理一个或多个硬盘驱动。
存储实际的数据和副本处理对象级别的数据操作读、写、删在节点付账时进行数据恢复
3、mdsceph metadata server对ceph的文件系统的元数据进行管理文件和目录的结构文
件的权限mds提供元数据服务。
管理集群的元数据信息处理客户端对文件系统的请求ceph集群中至少要有一个mds节点
4、存储池和pg
存储池poolceph存储数据对象的容器每个存储池可以定义不同的数据冗余的策略副本数
默认都是3crush映射规则等等。存储池是一个逻辑上的概念。
管理和组织数据的对象定义数据的冗余方式主要是开副本3个配置crush映射数据如何在osd之间分布
pgplacement grouppg也是ceph当中的一个逻辑概念用于数据分布的基本单位创建存储
池定义好pg的数量。pg是由一组对象object组成的逻辑集合每个对象都会映射到一个或者
多个pg。作用是数据分布数据写入集群映射到存储池中的一个pg。crush算法决定将pg分布到
哪些osd。在ceph当中pg和osd的数量是相关的设置一个合理的pg数有助于提高集群的性
能。pg数量osd数量*100/存储池的副本数且pg数量应该是2的幂值。以3个osd为例pg的数量
为128为宜。pg的数量一般是osd数量的一百倍左右。 存储池和、pg和osd之间的关系
1、存储池是管理数据的基本单位组成和配置数据存储和冗余的方式。
2、存储池中的数据被划分成多个pg每个pg是数据分布的最小单位pg负责对象存储的位置通过crush算法把数据分布到osd。
3、osd是负责存储数据的基于物理设备的虚拟概念。 数据流向 crush算法ceph自带的一种算法
数据分布的算法把对象分配到集群的osd节点当中。
crush算法使用hash算法来决定数据的存储位置确保数据是均匀的分布在集群的osd上。 存储类型
对象存储ceph object storge云计算的后台的存储方式一般都是用对象存储基于apt接口通过http(s)来对目标发起请求的方式获取数据。
块存储 RDB
文件系统 cephfs ceph的创建
这里我们使用三台服务器完成ceph架构另一台服务器作为客户端具体如下
zw4192.168.254.14mon osd admin
zw5192.168.254.15mon osd
zw6192.168.254.16mon osd
zw7192.168.254.17客户端
我们这里使用的是ceph17版本2024 17.2.4依赖于docker、python3和lvm2所有准备好阿里
源不要使用ubuntu官方源。 1、使用免交户方式对四台主机名都进行主机映射 2、三台集群主机安装docker
apt -y install docker.io apt -y install lvm2 安装cephadm并初始化单节点集群主节点zw4上执行并编译安装
wget https://mirrors.aliyun.com/ceph/debian-17.2.4/pool/main/c/ceph/cephadm_17.2.4-1focal_amd64.deb dkpg -i cephadm_17.2.4-1focal_amd64.deb 3、主节点上开启集群初始化 --mon-ip指定mon进程的节点地址先指定admin节点。--cluster-network集群网络的地址范围ceph节点内部通信。--allow-fqdn-hostname允许ceph集群使用hostname来对节点进行标识节点之间可以通过主机名进行通信 初始化后得到账户密码以及登录地址可以登录ceph可视化界面 4、集群和客户端之间免密登录
主节点zw4和其他三台服务器进行ssh免密登录 主节点与另外两台集群主机进行内部ssh免密登录 5、四台主机安装ceph客户端
apt -y install ceph-common 6、添加osd
ceph添加主机名 查看当前Ceph Orchestrator 管理的所有主机信息包括它们的状态、角色以及其他相关信息 修改mon节点的数量 把zw4、zw5和zw6添加进mon节点 7、三台集群服务器添加硬盘并刷新接口
这里使用命令行刷新你可以选择重启
for host in /sys/class/scsi_host/host*/scan; do echo - - - | sudo tee $host done
作为ceph集群的底层的硬盘必须满足两个条件
容量必须要大于5G不能对硬盘做任何分区和文件系统 8、添加osd硬盘
首先让ceph获取可用的节点并查看 添加osd硬盘 这时候ceph可视化界面显示我们集群搭建成功 ceph的使用
RDB存储方式
ceph RDBrados block device主要用于虚拟化环境和数据库。
虚拟化环境openstack、KVM
数据库性能高延迟低的块存储方式
优点
支持动态扩展支持快照和克隆
缺点
RBD的方式必须要创建文件系统使用方式在云计算的平台经常被使用尤其是大规模存储和高性能场景。 1、在主节点上创建存储池并给存储池创建类型 rdb1存储池的名称不能重复128pg的数量128pgp的数量
查看存储池是否成功ceph osd pool ls 2、在客户端zw7创建RDB镜像前先传送主节点的配置文件和秘钥文件给客户端 在客户端上检查是否成功 3、在客户端zw7创建RDB镜像并做映射 镜像是RDB存储的基本单位是一个虚拟的磁盘。镜像提供了一个虚拟的块设备的接口可以挂载的方式进行使用。创建RDB镜像实际上就是类似磁盘的一个分区
做映射之后会虚拟出一个逻辑上的硬盘rbd0接下来要创建文件系统然后挂载才可以使用。 4、在客户端创建文件系统、挂载使用
mkfs.ext4 /dev/rbd0 #创建文件系统
mount /dev/rbd0 /data/ #挂载 创建一个100M的文件 这时候我们发现这个文件已经开始占用存储池的空间了 cephfs的存储方式
cephfs是分件系统分布存储方式基于内核是实现共享文件的存储方式
大数据存储文件服务器文件共享企业的镜像服务器
优点内核兼容NFS方式也可以实现部署速度较快。跨节点实现
缺点配置比RBD的比较复杂在集群群当中比较复杂。
ceph需要两个存储池
数据池cephfs.data用来存储数据这是根据osd的数量和总空间的大小创建cephfs的时候系统自动分配给cephfs文件系统的大小按照一般情况是总大小的三分之一。
元数据池cephfs.meta保存数据的元信息。 1、在主节点上创建cephfs的存储池 可以看出有两个cephfs存储池 查看cephfs存储池的名称和状态 2、在客户端挂载使用
首先在客户端上获取密钥对ceph auth get-key client.admin 挂载 创建一个100M的文件 这时候我们发现这个文件已经开始占用存储池的空间了 ceph的nfs方式
1、在主节点创建一个nfs服务和一个池
ceph orch apply nfs nfs-share
ceph osd pool create nfs-pools 查看集群当中所有的存储池ceph osd lspools 2、创建一个nfs的高可用名字是my-nfs分别运行在zw4再加入zw5和zw6 ceph orch apply nfs my-nfs nfs-pools --placementzw5,zw6 回到ceph的可视化界面创建NFS 3、客户端挂载使用
mount -t ceph 192.168.254.14:6789,192.168.254.15:6789,192.168.254.16:6789:/ /data2 -o nameadmin,secretAQBTVXdnKEBBKRAA4pFJAA5oG4FwuEIkONCaNg 可以发现使用nfs的挂载目录和cephfs数据池挂载的大小和可用空间都一样是因为通过nfs的挂载
方式依然使用的cephfs.data的数据空间文件实际上还是存储在cephfs.data的数据池当中。 ceph object storge 对象存储
云计算的后台的存储方式一般都是用对象存储。
对象存储高扩展处理文件的级别可以达到PB级别。
缺点如果数据量不是特别的巨大一般不需要该场景。 总结
ceph需要使用分布式文件系统的企业一般都是需要存储海量数据以及保证数据的高可用非常严谨的场景。ceph的存储方式的数据流向主要包括存储池、pg和osd
创建存储池分配pg
数据按照对象分配给pg
pg再数据包分配到osd