ceph

ceph crush 策略配置

微笑、不失礼 提交于 2019-12-03 10:59:03
0.问题 一个同事搭建了两个主机的集群。ceph -s 后,集群一直会出现 recovery 32402/195672 objects degraded objects degraded 警告。 原因在于,默认3份副本。crush select策略是从host 选择3副本。所以需要修改crush rules. 1. 获取crushmap二进制文件 # ceph osd getcrushmap -o a.map 2.将二进制文件转成文本文件 # crushtool -d a.map -o b 3.修改rules # vi b rule replicated_ruleset { ruleset 0 type replicated min_size 1 max_size 10 step take default step chooseleaf firstn 0 type osd ### step emit } 4.将文本文件转成二进制文件 # crushtool -c b -o b.map 5.设置crushmap # ceph osd setcrushmap -i b.map 来源: oschina 链接: https://my.oschina.net/u/2407124/blog/497413

kolla-ansible部署容器ceph

吃可爱长大的小学妹 提交于 2019-12-03 10:58:51
kolla是从openstack孵化出的一个项目,kolla项目可以制作镜像包括openstack、ceph等容器镜像, ansible是自动化部署工具,执行playbook中的任务。 kolla-ansible是容器部署工具,部署openstack和ceph;kolla-ansible部署的容器镜像可以是kolla构建的,也可以是从docker register下载来的(本文部署使用kolla-ansible部署ceph采用从docker register下载镜像的方式部署)。 一、节点规划 主机名 ip 角色 localhost 172.16.134.43 master节点,安装kolla-ansible node58 172.16.134.58 ceph节点,至少有一块osd使用的磁盘 node59 172.16.134.59 ceph节点,至少有一块osd使用的磁盘 node61 172.16.134.61 ceph节点,至少有一块osd使用的磁盘 二、搭建master节点 1、安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum install docker-ce -y 2、master和ceph节点之间解决互信 ssh-keygen ssh-copy-id root@172.16

手动编译配置ceph

孤街浪徒 提交于 2019-12-03 10:58:39
一、手工编译ceph源代码。 1、下载ceph源代码。 从阿里云开源镜像网站下载当前最新版本的ceph源代码,具体下载地址如下: http://mirrors.aliyun.com/ceph/tarballs/ceph_10.2.1.orig.tar.gz 2、编译ceph源代码。 1)编译运行环境说明。 使用的编译和运行环境是ubuntu16.04-server-amd64,安装完ubuntu镜像后更新运行环境到最新。 #apt-get update #apt-get upgrade 2)解压缩源代码。 #mkdir -p /root/src #tar -xf ceph_10.2.1.orig.tar.gz -C/root/src 3)安装编译依赖包。 A)执行ceph源代码目录下的install_deps.sh脚本来安装必要的依赖(该脚本并不能完全安装编译ceph源代码所有的依赖) #cd ceph-10.2.1 #./install-deps.sh B)安装额外的依赖包。 #apt-get install libtool automake pkg-config cython libsnappy-dev libleveldb-dev libblkid-dev libudev-dev libkeyutils-dev libcryto++-dev libfuse-dev

Intro to Ceph【介绍CEPH】

岁酱吖の 提交于 2019-12-03 07:04:55
Intro to Ceph【介绍CEPH】 介绍CEPH 无论你想提供 Ceph对象存储和/或Ceph块设备服务至云平台 ,部署Ceph文件系统或者为了其他目的而使用Ceph,所有的 Ceph存储集群部署都是从设置每个Ceph节点,你的网络和Ceph存储集群开始的。一个Ceph存储集群要求至少有一个Ceph监视器和两个Ceph OSD守护进程。当运行Ceph文件系统客户端时,必须要有Ceph元数据服务器。 OSDs: Ceph的 OSD 守护 进程 ( OSD ) 存储数据 , 处理 数据 复制,恢复 , 回填 ,重新调整 ,并通过检查其它Ceph OSD守护程序作为一个心跳 向Ceph的监视器报告一些检测信息。C eph的存储集群需要至少2个OSD守护进程来保持一个 active + clean状态.(Ceph默认制作2个备份,但你可以调整它) Monitors:Ceph的监控保持集群状态映射,包括OSD(守护进程)映射,分组(PG)映射,和CRUSH映射。 Ceph 保持一个在Ceph监视器, Ceph OSD 守护进程和 PG的每个状态改变的历史(称之为“epoch”). MDS: MDS是Ceph的元数据服务器,代表存储元数据的Ceph文件系统(即Ceph的块设备和Ceph的对象存储不使用MDS)。Ceph的元数据服务器使用POSIX文件系统,用户可以执行基本命令如 ls,

Ceph分布式存储(一)

匿名 (未验证) 提交于 2019-12-03 00:43:02
Ceph分布式存储(一) 一、概述 Ceph是可靠的、可扩展的、统一的、分布式的存储系统。可以同时提供对象存储RADOSGW(Reliable、Autonomic、Distributed、Object Storage Gateway)、块存储RBD(Rados Block Device)、文件系统存储Ceph FS(Ceph Filesystem)3种功能。 2、Ceph应用场景 Ceph可以提供对象存储、块设备存储和文件系统服务,其对象存储可以对接网盘(owncloud)应用业务等;其块设备存储可以对接(IaaS),当前主流的IaaS运平台软件,如:OpenStack、CloudStack、Zstack、Eucalyptus等以及kvm等。 3、ceph功能组件 4、Ceph核心组件 OSD(Object Storage Device): 主要功能包括存储数据、处理数据的复制、恢复、回补、平衡数据分布,并将一些相关数据提供给ceph monitor。例如ceph OSD心跳等。一个ceph存储集群,至少需要两个Ceph OSD来实现active+clean健康状态和有效的保存数据的双副本(默认情况下是双副本,可以调整)。注意:每一个disk、分区都可以成为一个OSD。 Monitor: Ceph的监控器,主要功能是维护整个集群健康状态,提供一致性的决策。 MDS(Metadata

部署CEPH集群

匿名 (未验证) 提交于 2019-12-03 00:40:02
什么是CEPH 组件 ceph-topo Ceph的底层是RADOS,它的意思是“A reliable, autonomous, distributed object storage”。 RADOS由两个组件组成: OSD: Object Storage Device,提供存储资源。 Monitor:维护整个Ceph集群的全局状态。 RADOS具有很强的扩展性和可编程性,Ceph基于RADOS开发了 Object Storage、Block Storage、FileSystem。Ceph另外两个组件是: MDS:用于保存CephFS的元数据。 RADOS Gateway:对外提供REST接口,兼容S3和Swift的API。 接下来部署案例 思路如下: 准备四台KVM虚拟机,其三台作为存储集群节点,一台安装为客户端,实现如下功能: 创建1台客户端虚拟机 创建3台存储集群虚拟机 配置主机名、IP地址、YUM源 修改所有主机的主机名 配置无密码SSH连接 配置NTP时间同步 创建虚拟机磁盘 部署ceph集群 沿用练习一,部署Ceph集群服务器,实现以下目标: 安装部署工具ceph-deploy 创建ceph集群 准备日志磁盘分区 创建OSD存储空间 查看ceph状态,验证 原文:http://blog.51cto.com/13857489/2141609

CEPH 13.2

匿名 (未验证) 提交于 2019-12-03 00:40:02
CEPH简介 ceph提供:对象存储,块设备,文件系统。 Ceph存储集群至少需要一个Ceph Monitor,Ceph Manager和Ceph OSD(对象存储守护进程)。 运行Ceph Filesystem客户端时也需要Ceph元数据服务器。 Monitors : ceph-mon 维护集群状态的映射 , 管理守护进程和客户端之间的身份验证 ,高可用至少需要3个 Monitors 节点 Managers: Ceph集群的当前状态 , 高可用性通常至少2 个 Managers 节点 Ceph OSDs: 存储数据,处理数据复制,恢复,重新平衡,并通过检查其他Ceph OSD守护进程来获取心跳,为Ceph监视器和管理器提供一些监视信息。 冗余和高可用性通常至少需要3个Ceph OSD。 MDSs : ceph-mds 文件系统存储原数据服, Ceph块设备和Ceph对象存储不使用MDS 手动部署 ceph版本 minic 13.2 主机名 ip地址 系统版本 ceph版本 节点 node01 172.16.50.104 minic 13.2 mon,osd node02 172.16.50.111 minic 13.2 osd node03 172.16.50.131 minic 13.2 osd 系统初始化 关闭selinux 启用epel源:yum install epel

ceph rbd 入门

匿名 (未验证) 提交于 2019-12-03 00:40:02
1.一个现成的ceph cluster 参考之前写的ceph-deploy 部署ceph cluster 2.配置client与ceph cluster对接 在ceph cluster的管理节点上安装配置ceph client #ansible为此处client的hostname ceph-deploy install ansible #ansible为此处client的hostname ceph -deploy admin ansible 3..在ceph client上创建使用rbd #创建一个pool ceph osd pool create test 128 #在test pool中创建一个rbd卷(image) rbd create volume01 --size 4096 - p test #查看这个卷 rbd ls -p test #定位卷对象数据 ceph osd map test volume01 #在ceph client 将此卷(image) 映射为一个块设备 #在ceph client上创建此卷(image)的文件系统 mkfs.ext4 -m0 /dev/rbd/rbd/volume01 #挂载 sudo mkdir /mnt/ceph-block-device sudo mount /dev/rbd/rbd/volume01 /mnt/ceph

Ceph 基础知识和基础架构认识

匿名 (未验证) 提交于 2019-12-03 00:40:02
Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、Glance的镜像存储和虚拟机的数据存储,比较直观的是Ceph集群可以提供一个raw格式的块存储来作为虚拟机实例的硬盘。 Ceph相比其它存储的优势点在于它不单单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,同时由于Ceph的良好设计,采用了CRUSH算法、HASH环等方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响。 Ceph的核心组件包括Ceph OSD、Ceph Monitor和Ceph MDS。 Ceph OSD:OSD的英文全称是Object Storage Device,它的主要功能是存储数据、复制数据、平衡数据、恢复数据等,与其它OSD间进行心跳检查等,并将一些变化情况上报给Ceph Monitor。一般情况下一块硬盘对应一个OSD,由OSD来对硬盘存储进行管理,当然一个分区也可以成为一个OSD。 Ceph OSD的架构实现由物理磁盘驱动器、Linux文件系统和Ceph

kubernetes的应用数据持久化

匿名 (未验证) 提交于 2019-12-03 00:37:01
1.无状态应用与有状态应用 应用的有状态和无状态是根据应用是否有持久化保存数据的需求而言的,即持久化保存数据的应用为有状态的应用,反之则为无状态的应用。常见的系统往往是有状态的应用,比如对于微博和微信这类应用,所有用户发布的内容和留言都是要保存记录的。但是一个系统往往是由众多微服务或更小的应用模块构成的。有的微服务或模块其实并没有数据持久化的需求。例如,搭建一个Wordpress博客系统需要部署一个前端的PHP应用,以及一个后端的MySQL数据库。虽然整个博客系统有持久化的需求,是一个有状态的系统,但是其子模块前端PHP应用并没有将数据保存在本地,而是存放到MySQL数据库中。所以一个Wordpress系统可以拆解成一个无状态的前端以及一个有状态的后端。有状态和无状态的应用在现实当中比比皆是。从实例数量上来说,无状态的应用应该会更多一些,因为对大多数的系统而言,读请求的数量往往远远高于写请求的数量。 非持久化的容器 容器的一个特点是当容器退出后,其内部所有的数据和状态就会丢失。同样的镜像再次启动一个新的容器实例,该实例默认不会继承之前实例的状态。这对无状态应用来说不是问题,相反是一个很好的特性,可以很好地保证无状态应用的一致性。但是对于有状态的应用来说则是很大的障碍。试想一下,如果你的MySQL容器每次重启后,之前所有的数据都丢失了,那将会是怎样一种灾难! 容器数据持久化