ceph

Ceph BlueStore 和双写问题

心已入冬 提交于 2019-12-02 14:53:20
论开源分布式存储,Ceph大名鼎鼎。用同一个存储池融合提供块存储、对象存储、集群文件系统。在国内有近年使用量迅速攀升,Ceph Day峰会也搬到北京来开了。 大型公司内部研发云虚拟化平台,常使用开源方案Openstack或者Kubernetes,配套的为虚机或容器提供块存储的开源方案,几乎为Ceph莫属。对象存储几年发展迅速,图像、视频、网站资源等皆可适用,有初创公司基于Ceph搭建存储服务方案。企业存储方面,国外有Redhat收购了Inktank,后者由Ceph初创作者Sage Weil创建;国内有XSky星辰天合,聚集了大量从早期就开始专注Ceph的专家。(P.S.关于国内谁在大规模使用Ceph,上Ceph Day看Slides可以知道。) 可以将Ceph理解为分布式管理层,加上每个存储节点(OSD)的存储后端。社区成熟的存储后端使用FileStore,用户数据被映射成对象,以文件的形式存储在文件系统上。文件系统可以是EXT4、BtrFS、XFS等。最近两年,因为FileStore的种种问题,由Sage Wei推动,Ceph社区合力推出了新的存储后端,BlueStore。 BlueStore有独特的架构,解决了Ceph社区一直烦恼的FileStore的日志双写问题,测试性能比FileStore提高了一倍。这让人非常想深入剖析BlueStore。另一方面

Ceph文件系统存储

蓝咒 提交于 2019-12-02 11:39:24
0.原理介绍   -元数据(Metadata): 任何文件系统中的数据分为数据和元数据 数据是指普通文件中的实际数据 元数据指用来描述一个文件的特征的系统数据(比如:访问权限,文件拥有者,以及文件数据块的分片信息) -一个文件系统是由inode和block两部分组成,效果如图所示。 inode存储文件的描述信息(metadata元数据),block中存储真正的数据。 -ceph MDS ceph MDS 是元数据服务器,只有ceph 文件系统(cephFS)才会需要。 -cephFS cephFS在RADOS 层之上 提供一个兼容POSIX 的文件系统。他是用MDS 作为守护进程,负责管理其元素数据并将它和其他数据分开。  cephFS 需要用到两个pool : fs_data 和fs_metadata。 在初次使用ceph 就能之前需要首先规划,集群一共承载多少存储业务,创建多少个 pool,最后得到每个存储应该分配多少个pg。 -pg 数量计算     集群PG总数:       PG 总数= (OSD 总数* 100 )/最大副本数 (结果舍入到最接近的2的N次方幂的值)   结合本人搭建集群、例: PG总数 = (3*100)/2=150 ≈ 128 个PG。     集群中 每个pool 的pg 总数:       PG 总数= ((OSD总数*100)/ 最大副本数 )

利用ansible书写playbook在华为云上批量配置管理工具自动化安装ceph集群

房东的猫 提交于 2019-12-02 10:52:53
首先在华为云上购买搭建ceph集群所需云主机: 然后购买ceph所需存储磁盘 将购买的磁盘挂载到用来搭建ceph的云主机上 在跳板机上安装ansible 查看ansible版本,检验ansible是否安装成功 配置主机分组 测试结果 书写playbook文件内容如下: 1 --- 2 #将yum文件同步到各个节点 3 - hosts: ceph 4 remote_user: root 5 tasks: 6 - copy: 7 src: /etc/yum.repos.d/ceph.repo 8 dest: /etc/yum.repos.d/ceph.repo 9 - shell: yum clean all 10 #给ceph-0001主机安装ceph-deploy,创建工作目录,初始化配置文件 11 - hosts: ceph-0001 12 remote_user: root 13 tasks: 14 - yum: 15 name: ceph-deploy 16 state: installed 17 - file: 18 path: /root/ceph-cluster 19 state: directory 20 mode: '0755' 21 #给所有ceph节点安装ceph相关软件包 22 - hosts: ceph 23 remote_user: root 24

详解Kubernetes Deployment的描述文件及相关配置

南楼画角 提交于 2019-12-02 04:45:35
Deployment 使用 Kubernetes提供了一种更加简单的更新RC和Pod的机制,叫做Deployment。通过在Deployment中描述你所期望的集群状态,Deployment Controller会将现在的集群状态在一个可控的速度下逐步更新成你所期望的集群状态。Deployment主要职责同样是为了保证pod的数量和健康,90%的功能与Replication Controller完全一样,可以看做新一代的Replication Controller。但是,它又具备了Replication Controller之外的新特性:Replication Controller全部功能:Deployment继承了上面描述的Replication Controller全部功能。 事件和状态查看:可以查看Deployment的升级详细进度和状态。 回滚:当升级pod镜像或者相关参数的时候发现问题,可以使用回滚操作回滚到上一个稳定的版本或者指定的版本。 版本记录: 每一次对Deployment的操作,都能保存下来,给予后续可能的回滚使用。 暂停和启动:对于每一次升级,都能够随时暂停和启动。 多种升级方案:Recreate----删除所有已存在的pod,重新创建新的; RollingUpdate----滚动升级,逐步替换的策略,同时滚动升级时,支持更多的附加参数

ceph源代码部署测试环境

久未见 提交于 2019-12-02 04:12:56
一、下载ceph源代码。 由于通过源代码编译、安装并部署ceph,所以通常从github上下载ceph源代码。 #git clone https://github.com/ceph/ceph.git 二、编译ceph源代码。 最好不要在git的master上编译ceph源代码,会有不少坑。最好使用最新发布的tag上编译,到目前为止ceph最新发布的版本号是v10.2.1,因此在该tag上编译。 #git checkout -b v10.2.1 v10.2.1 #git branch master *v10.2.1 由此可以看到,当前代码即是v10.2.1 tag处的源代码。 编译ceph请参考http://my.oschina.net/linuxhunter/blog/682013 三、安装ceph。 安装编译好的ceph请参考http://my.oschina.net/linuxhunter/blog/682013 四、部署测试环境。 ceph在源代码路径的src目录下有一个vstart.sh脚本,该脚本用来快速搭建由源代码编译出来的ceph集群。使用vstart.sh脚本创建快速ceph集群命令如下: #./vstart.sh -m 192.168.250.93 -n -d -r --mon_num 1 --osd_num 3 --mds_num 0 --bluestore

ceph分布式存储的搭建

南笙酒味 提交于 2019-12-01 23:11:26
发现 ceph 在最近几年发展火热,也有很多案例落地企业。 ceph是无中心化的存储,它没有管理节点、计算节点的之分。 ceph的文件是被分片的,每一个数据块是 一个对象,对象保存在不同的服务器上。当节点失效,自动迁移数据,重新复制副本。可以动态的添加元数据服务器和存储节点,容量可以动态扩展。 ceph分为mon监视器节点(至少一个)、osd对象存储节点(至少2个)、mds元数据节点。 osd 进程负责存储数据、处理数据的复制、恢复、回填、再平衡。并通过其他的osd守护进程的心跳,来向mon提供一些监控信息。当你设置osd有2个副本的时候,至少需要2个osd守护进程才能达到archive+clean的状态,默认有3个副本。 mon 负责维护集群状态的各种图表,包括监视图和osd图等。 mds 负责为ceph文件系统存储数据的时候才使用。 存储的过程 :存储的文件数据归类为对象object;对象放在对应的池子里面(pool);pool由若干个pg组成;pg是由若干个osd组成;osd是由硬盘组成。 环境 node1 172.16.1.201 管理节点 数据节点 node2 172.16.1.202 数据节点 node3 172.16.1.203 数据节点 上述要加入/etc/hosts文件里面。 该实验的操作系统为centos 7,ceph k版本。 ceph的部署 1

ceph 接入OpenStack

偶尔善良 提交于 2019-12-01 23:05:21
创建对应的pool: ceph osd pool create volumes 512 ceph osd pool create images 512 ceph osd pool create vms 512 安装各个节点需要的组件: 在Controller节点安装ceph管理接口: sudo apt-get install python-ceph libvirt-bin 在Glance节点安装python-rbd: sudo apt-get install python-rbd 在Cinder-volume节点和Nova-compute节点安装ceph-common: sudo apt-get install ceph-common 复制Ceph配置文件到各个节点 Glance节点、Cinder-volume节点和Nova-compute节点: ssh (your-openstack-server-node) sudo tee /etc/ceph/ceph.conf </etc/ceph/ceph.conf 创建CephX认证授权用户: ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool

OS Recommendations【推荐操作系统】

♀尐吖头ヾ 提交于 2019-12-01 22:42:34
推荐操作系统(内容提要) 1.Ceph Dependencies(Ceph的依赖) 1.1 Linux Kernel(Linux内核) 1.2 glibc 2.Platforms(平台) 2.1 Dumpling(0.67) 2.2 Cuttlefish(0.61) 2.3 Bobtail(0.56) 2.4 Argonaut(0.48) 2.5 Notes(附注) 2.6 Testing(测试) ‍ 1.Ceph依赖 ‍ 在较新的Linux发行版上部署Ceph,这是我们推荐的通用法则。 1.1Linux内核 —— Ceph的核心客户端: 目前,我们建议: — v3.6.6或更高版本V3.6稳定系列 — v3.4.20或更高版本V3.4稳定系列 —— btrfs文件系统:如果你想在btrfs上运行Ceph,我们推荐使用一个最新的Linux内核(V3.5或更高版本)。 1.2Glibc —— syncfs(2):对非btrfs文件系统(像XFS和ext4)而言,在一台服务器上运行了多个Ceph-osd守护进程时,Ceph使用syncfs(2)系统调用时效率高得多(此功能在2.6.39内核和glibc-2.14加入)。Ceph的新版本(v0.55及更高版本)不依赖于glibc的支持。 2.系统平台 下面的表格展示了Ceph需求和各种Linux发行版的对应关系。一般来说

修改ceph的IP地址

你离开我真会死。 提交于 2019-12-01 22:13:25
目录 修改步骤如下 1.导出mon配置 2.修改mon配置 3.修改ceph的配置文件 4.关闭ceph集群(建议将集群内的所有节点中的ceph都关闭) 5.修改服务器IP 6.导入修改后的mon 7.重启集群 8.查看集群状态是否正常 自己测试的时候用的是虚拟机,在调试过程中遇到切换环境换IP的情况。 那么ceph应该怎样换IP呢? 修改步骤: 1.导出mon的配置; 2.修改mon的配置; 3.修改ceph配置文件 4.关闭ceph集群 5.修改服务器IP,/etc/hosts对应的ip等: 6.导入修改后的mon配置; 7.重启集群 修改步骤如下 1.导出mon配置 ceph mon getmap -o monmap.bin 2.修改mon配置 #打印查看原来的mon配置 monmaptool --print monmap.bin #删除原来mon配置(多个节点直接在后面加"--rm xxxx"即可) monmaptool --rm node1 monmap.bin #添加新的mon配置(多个就多家几个"--add nodeX xxxxx"即可) monmaptool --add node1 192.168.17.15:6789 monmap.bin #修改后打印一下,验证是否修改正确 monmaptool --print monmap.bin 3.修改ceph的配置文件 将

Ceph分布式文件系统

房东的猫 提交于 2019-12-01 21:48:56
什么是分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连 分布式文件系统的设计基于客户机/服务器模式 常用的分布式文件系统: Lustre 、 Hadoop 、 FastDFS 、 Ceph 、 GlusterFS 什么是Ceph Ceph是一个分布式文件系统 具有高扩展、高可用、高性能的特点 Ceph可以提供对象存储、块存储、文件系统存储 Ceph可以提供EB级别的存储空间(EB->PB->TB->GB) 软件定义存储(Software Defined Storage)作为存储行业的一大发展趋势,已经越来越受到市场的认可 Ceph组件 OSDs:存储设备 Monitors:集群监控组件 RBD:对象存储网关 MDSs:存放文件系统的元数据(对象存储和块存储不需要该组件) Client:ceph客户端 准备四台虚拟机,其三台作为存储集群节点,一台安装为客户端,实现如下功能: 创建1台客户端虚拟机 创建3台存储集群虚拟机 配置主机名、IP地址、YUM源 修改所有主机的主机名 配置无密码SSH连接 配置NTP时间同步 创建虚拟机磁盘 拓扑结构如图。 一:安装前准备 (1)物理机为所有节点配置yum源服务器。 [root@room9pc01 ~]# yum -y