基于ceph分布式存储架构设计及ceph块存储创建

2019-09-10 07:22程旺刘嵩岩
信息技术时代·上旬刊 2019年2期
关键词:集群

程旺 刘嵩岩

摘要:分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。ceph是一个分布式文件系统,具有高扩展、高可用、高性能的特点。本文进行ceph集群存储部署和ceph块存储创建,完成是基于ceph分布式存储架构设计与实现。

关键词:分布式文件系统;ceph;集群;块存储

1.Ceph基础介绍

Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、Glance的镜像存储,比较直观的是Ceph集群可以提供一个raw格式的块存储来作为虚拟机实例的硬盘。

Ceph提供了RADOS、OSD、MON、RBD和Ceph FS等功能组建,但底层仍然使用RADOS存储来支撑上层的那些组件。由于Ceph采用了CRUSH算法、HASH环等的良好方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响。Ceph组件包括OSDs(存储设备)、Monitors(集群监控组件)、MDSs(存放文件系统的元数据)、Client(ceph客户端)组成。

2.实验环境准备

实验准备四台KVM虚拟机,其中三台作为存储集群节点,另一台作为客户端。所有主机名及其对应的ip地址为client(eth0:192.168.4.10),node1(eth0:192.168.4.11),node2(eth0:192.168.4.12);node3(eth0:192.168.4.13)。实验环境准备主要包括节点yum源,所有虚拟主机均需要挂载安装光盘,包括rhel光盘和ceph光盘;修改/etc/hosts并同步到所有主机,配置无密码连接;配置NTP时间同步和准备存储磁盘,并且物理机上的每个虚拟机创建3个磁盘。

3.部署ceph集群存储

首先进行安装部署软件,实验使用node1为部署主机,通过操作部署主机来完成ceph集群的搭建,首先进行的是ceph_deploy的部署工具的安装。Ceph_deploy工具可用于简单、快速地部署ceph集群。它在node1管理节点上通过ssh获取其他ceph节点的访问权、通过sudo获取其上的管理权限,通过底层python脚本自动化各节点上的ceph安装进程。用ceph_deploy工具可以远程节点上安装ceph软件包、创建集群、增加监视器、收集或忘记密钥、增加OSD和元数据服务器、配置管理主机或拆除集群。通过执行mkdir ceph-cluster命令为部署工具创建目录,存放密钥与配置文件。

创建ceph集群配置(所有节点都为mon) ,给所有节点安装ceph软件包;初始化所有节点的mon服务。执行命令:[root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3;[root@node1 ceph-cluster]# ceph-deploy install node1 node2 node3。

创建OSD,一般来说,每块参与存储的磁盘都需要一个 OSD 进程。所有节点准备磁盘分区,然后通过node1主控制节点进行初始化清空磁盘数据,最后创建OSD存储空间。主要包括:创建osd存储设备,vdc为集群提供存储空间,vdb1提供JOURNAL日志,一个存储设备对应一个日志设备对应一个日志设备,日志需要SSD,不需要很大。三个存储节点执行(node1为例)[root@node1 ~]# ceph-deploy osd create node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2 。

通过ceph集群的部署,对集群进行验证。执行命令:ceph –s进行集群状态查看。若为正常,可以看到health HEALTH_OK,说明ceph集群搭建完成。

4.Ceph块存储创建

块存储可以看作为是裸盘,可以通过划分逻辑卷、做RAID、LVM等方式将它格式化,可以格式化为指定的文件系统,然后才能被操作系统访问。块存储是ceph三大存储类型终最为常用的存储方式,Ceph的块存储是基于RADOS的,因此它也借助RADOS的快照、复制和一致性等特性提供了快照、克隆和备份等操作。使用ceph集群的块存储功能,可以实现:创建块存储镜像;客户端映射镜像;创建镜像快照等功能。Ceph块设备也叫做RADOS块设备。RBD(RADOS block device)驱动已经很好的集成在Linux内核中,支持內部缓存从而提高性能,并且RBD具有快照、COW克隆等企业功能。Linux内核可用直接访问ceph块存储,KVM可用借助于librbd访问。

首先创建镜像。块设备存在于存储池中,默认ceph集群已有一个存储池。主要查看存储池;在默认池里创建一个名为demo-image的镜像,镜像可当成远程主机的硬盘,镜像大小为10G;指定在rbd这个池中创建一个名为image的镜像;查看镜像信息查看镜像信息执行[root@node1 ~]# rbd list;[root@node1 ~]# rbd info demo-image。

集群内通过KRBD访问使用ceph块存储,通过将镜像映射为本地磁盘,执行命令然后查看会发现多了一个10GB的/dev/rbd0。进行格式化操作再进行挂载。主要执行[root@node1 ~]# rbd map demo-image;[root@node1 ~]# mkfs.xfs /dev/rbd0。客户端通过KRBD访问,需要安装ceph-common软件包,让客户端能够访问集群,需要集群配置文件ceph.client。客户端需要授权访问集群,可以为客户端创建用户,也可用默认创建的admin账户。最后使用ceph块存储设备。执行rbd showmapped命令查看ceph块设备信息,显示 id pool image snap device;0 rbd image-/dev.rbd0,说明ceph块存储创建完成。

5.结语

Ceph是主流的开源分布式存储操作系统,云服务商和企业用户把它作为构建统一存储和软件定义存储的可信解决方案,根据ceph主要运用在块存储设备的部署和运用,因此本文通过设计和搭建,完成了ceph集群部署和ceph块存储创建的工作。未来,ceph凭借其优越的性能和稳定性,在云技术领域将成为最热门的分布式存储系统。

参考文献

[1]谢超群.基于Ceph的云存储应用研究[J].洛阳师范学院学报,2019,38(02):43-47.

[2]凌升杭.基于Ceph分布式存储系统的安全访问控制设计和实现[D].东南大学,2016.

作者简介:程旺(1995-),男,河南周口人,哈尔滨黑龙江大学,电子与通信工程专业2018级,硕士在读,研究方向:嵌入式系统;

通讯作者:刘嵩岩(1969-),男,黑龙江哈尔滨人,博士,副教授,研究方向:嵌入式系统。

猜你喜欢
集群
以产业集群引领中国品牌腾飞
欧洲集群观察站、欧洲集群和产业变化观察站研究
培育世界级先进 制造业集群之关键问题
小议产业集群内涵
勤快又呆萌的集群机器人
集群品牌是集群整体的品牌还是集群产品的品牌?
中小企业集群潜在融资优势的发挥机制研究
数字集群的未来之路
数字集群的未来之路(上篇)