部署ceph集群架构+Dashboard出图

送分小仙女□ 提交于 2021-02-07 09:29:07

概述

Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。
Ceph是一个开源的分布式文件系统。因为它还支持块存储、对象存储,所以很自然的被用做云计算框架openstack或cloudstack整个存储后端。
当然也可以单独作为存储,例如部署一套集群作为对象存储、SAN存储、NAS存储等。
可以作为k8s的存储类,来方便容器持久化存储。

支持格式

对象存储:即radosgw,兼容S3接口。通过rest api上传、下载文件。
文件系统:posix接口。可以将ceph集群看做一个共享文件系统挂载到本地。
块存储:即rbd。有kernel rbd和librbd两种使用方式。支持快照、克隆。相当于一块硬盘挂到本地,用法和用途和硬盘一样。比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的后端存储

优势

统一存储:虽然ceph底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口
高扩展性:扩容方便、容量大。能够管理上千台服务器、EB级的容量。
高可靠性:支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自管理、自动修复。无单点故障,容错性强。
高性能:因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的IOPS和吞吐量越高。另外一点ceph客户端读写数据直接与存储设备(osd) 交互。

1.集群规划

主机 IP地址 硬件要求 安装软件
admin 10.0.0.130 1核1G ceph-deploy
node1 10.0.0.131 1核1G mon / mgr / osd
node2 10.0.0.132 1核1G osd
node3 10.0.0.133 1核1G osd
ceph-client 10.0.0.134 1核1G 客户端

2.部署过程

1.给三台node节点添加一块大小5G以上的磁盘。
2.所有节点修改主机名并相互解析
3.关闭所有机器的防火墙和selinux

所有节点做hosts解析

#做hosts解析(直接复制粘贴即可)
vim /etc/hosts
i127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.130 admin
10.0.0.131 node1
10.0.0.132 node2
10.0.0.133 node3
10.0.0.134 ceph-client
#hosts文件分发到其他的几台机器使其相同
scp -rp /etc/hosts root@10.0.0.13?:/etc/hosts

做免秘钥登录

#生成秘钥
[cephu@admin ~]$ ssh-keygen
#推送到别的节点
ssh-copy-id root@10.0.0.131
ssh-copy-id root@10.0.0.132
ssh-copy-id root@10.0.0.133
ssh-copy-id root@10.0.0.134
#免秘钥连接
ssh root@node1
ssh root@node2
ssh root@node3
ssh root@ceph-client

添加yum源(所有节点)

#所有节点换yum源(阿里云的源)
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#编写配置软件下载的配置文件
[root@ceph1 ~]# cd /etc/yum.repos.d/
[root@ceph1 yum.repos.d]# vim ceph.repo
[ceph_x86]
name=ceph_x86
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-nautilus/el7/x86_64/
gpgcheck=0

[ceph_noarch]
name=ceph_noarch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-nautilus/el7/noarch/
gpgcheck=0
##复制/粘贴--即可直接编写
vim /etc/yum.repos.d/ceph.repo 
i[ceph_x86]
name=ceph_x86
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-nautilus/el7/x86_64/
gpgcheck=0

[ceph_noarch]
name=ceph_noarch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-nautilus/el7/noarch/
gpgcheck=0

#修改yum,下载的rpm包保存到本地(如果网特别慢的情况下可以使用保存rpm的方式,一台下载完成后scp到另外的几台.)
[root@ceph3 ~]# vim /etc/yum.conf 
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1

##一台机器的yum源做好以后可以使用scp -rp的方式把/etc/yum.repo.d/下的所有源推送到其他的服务器上
scp -rp /etc/yum.repos.d/* root@10.0.0.13?:/etc/yum.repos.d

下载软件

#admin下载
yum -y install ceph-deploy
#node1..3下载
yum -y install ceph-deploy
yum install ceph ceph-mon ceph-mgr ceph-radosgw.x86_64 ceph-mds.x86_64 ceph-osd.x86_64 -y

3.部署ceph集群

#注意!!以下所有操作均是在admin节点
1.创建ceph操作目录
[root@admin ~]$ mkdir my-cluster   #之后,所有ceph-deploy命令操作必须在该目录下执行

2.创建集群---这里报错查看后面的错误整理
首先在这里需要先下载一个包并安装否则会报错,然后在创建集群
[root@admin ~]$ wget https://files.pythonhosted.org/packages/5f/ad/1fde06877a8d7d5c9b60eff7de2d452f639916ae1d48f0b8f97bf97e570a/distribute-0.7.3.zip
[root@admin ~]$ unzip distribute-0.7.3.zip
[root@admin ~]$ cd distribute-0.7.3
[root@admin distribute-0.7.3]$ sudo python setup.py install
创建集群
[root@admin ~]$ cd my-cluster/
[root@admin my-cluster]$ ceph-deploy new node1
[root@admin my-cluster]$ ls
ceph.conf  ceph-deploy-ceph.log  ceph.mon.keyring
创建成功会有三个文件:ceph.conf, ceph.mon.keyring, and a log file

3.测试是否安装成功
#分别在node1,node2.node3中确认安装版本是否是同一版本
[root@node1 ~]$ ceph --version 

4.初始化mon:admin节点
[admin@admin my-cluster]$ ceph-deploy mon create-initial

5.赋予各个节点使用命令免用户名权限:
[cephu@admin my-cluster]$ ceph-deploy admin node1 node2 node3

6.安装ceph-mgr:只有luminous才有,为使用dashboard做准备
[cephu@admin my-cluster]$ ceph-deploy mgr create node1

7.添加osd:
注意:各个节点上提供存储空间的磁盘大小不能太小,最好5G以上,注意检查你的磁盘名字
[root@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node1
[root@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node2
[root@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node3
命令中/dev/sdb是在各个节点上为osd准备的空闲磁盘(无需分区格式化,如果有分区需要指定具体分区),
通过如下命令查看:
[root@admin my-cluster]$ ssh node1 lsblk -f
最后通过如下命令查看集群状态:
[root@admin my-cluster]$ ssh node1 sudo ceph -s
如果显示health_ok,3个osd up就成功了

4.Dashboard的配置

1.下载ceph-mgr-dashboard
yum install -y ceph-mgr-dashboard
2.添加mgr功能
ceph-deploy mgr create node1 node2 node3
3.开启dashboard功能
ceph mgr module enable dashboard
4.创建证书
ceph dashboard create-self-signed-cert
5.创建web登录用户密码
ceph dashboard set-login-credentials user-name password
6.查看服务访问方式
ceph mgr services

www.hyithack.com

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!