Ceph 存储集群搭建
前言
Ceph 分布式存储系统,在企业中应用面较广
初步了解并学会使用很有必要
一、简介
Ceph 是一个开源的分布式存储系统,包括对象存储、块设备、文件系统。它具有高可靠性、安装方便、管理简便、能够轻松管理海量数据。Ceph 存储集群具备了企业级存储的能力,
它通过组织大量节点,节点之间靠相互通讯来复制数据、并动态地重分布数据,从而达到高可用分布式存储功能。
二、组件说明
1.Centos:release 7.6.1810 (Core)
2.Ceph:jewel-10.2.10
3.Openssh-server:version 7.4
4.NTP
三、Ceph 安装前准备
配置节点 host
将所有节点的/etc/hosts文件修改为如下内容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.1.100 admin
172.16.1.101 osd1
172.16.1.102 osd2
安装部署工具 ceph-deploy
ceph-deploy (admin-node) 上执行
# yum 配置其他依赖包
$ yum install -y yum-utils && yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && yum install --nogpgcheck -y epel-release && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && rm /etc/yum.repos.d/dl.fedoraproject.org* # 添加 Ceph 源
$ vim /etc/yum.repos.d/ceph.repo
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-jewel/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1 # 安装 ceph-deploy
$ yum update && sudo yum install ceph-deploy
安装 NTP 和 Openssh
官方建议在所有 Ceph 节点上安装 NTP 服务(特别是 Ceph Monitor 节点),以免因时钟漂移导致故障。
# yum 安装 ntp
sudo yum install ntp ntpdate ntp-doc # 校对系统时钟
ntpdate 0.cn.pool.ntp.org
ceph-deploy 节点需要使用 ssh 方式登录各个节点完成 ceph 安装配置工作,所以要确保各个节点上有可用 SSH 服务
# yum 安装 openssh
$ yum install openssh-server # 查看 ssh 版本
$ ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
创建 Ceph 部署用户
在 Ceph 集群各节点进行如下操作
# 创建 ceph 特定用户
$ useradd -d /home/cephd -m cephd
$ passwd cephd # 添加 sudo 权限
$ echo "cephd ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephd
$ chmod 0440 /etc/sudoers.d/cephd
实现免密登录
ceph-deploy (admin-node) 上执行
# 生成 ssh 密钥
$ ssh-keygen # 将公钥复制到 node0 节点
$ ssh-copy-id cephd@node0 # 将公钥复制到 node1 节点
$ ssh-copy-id cephd@node1
完成后测试一下在 ceph-deploy 管理节点免密码登录各个节点
[cephd@ceph-admin root]$ ssh osd1
Last login: Thu Feb 21 15:56:06 2019 [cephd@ceph-admin root]$ ssh osd2
Last login: Thu Feb 21 15:56:06 2019
测试没有问题,修改 ceph-deploy 管理节点上的 ~/.ssh/config 文件
$ cat ~/.ssh/config
Host osd1
Hostname osd1
User cephd
Host osd2
Hostname osd2
User cephd
注意,此时再执行 ssh node0 会提示报错 Bad owner or permissions on /home/cephd/.ssh/config。原因是 config 文件权限问题,修改权限 sudo chmod 600 config 即可解决
关闭selinux&firewalld
在 Ceph 集群各节点进行如下操作
# 临时生效设置
$ sudo setenforce 0 # 永久生效设置
$ sudo cat /etc/selinux/config
SELINUX=disabled # 这里设置为disabled
SELINUXTYPE=targeted #关闭防火墙去除开机自启
$ sudo systemctl stop firewalld.service #停止 firewall
$ sudo systemctl disable firewalld.service #禁止 firewall 开机启动
四、Ceph 存储集群搭建
创建执行目录(admin执行)
$ mkdir ~/ceph-cluster && cd ~/ceph-cluster
创建集群(admin执行)
$ ceph-deploy new admin
此时,我们会发现 ceph-deploy 会在 ceph-cluster 目录下生成几个文件,ceph.conf 为 ceph 配置文件,ceph-deploy-ceph.log 为 ceph-deploy 日志文件,ceph.mon.keyring 为 ceph monitor 的密钥环。
修改ceph.conf
[global]
fsid = 67eef321-cd4c-488c-b668-89c26233e27f
mon_initial_members = admin
mon_host = 172.16.1.100
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd pool default size = 2
通过 ceph-deploy 在各个节点安装ceph
$ ceph-deploy install admin osd1 osd2
初始化 monitor 节点并收集所有密钥
$ ceph-deploy mon create-initial
有报错,不要慌
ceph_deploy.mon][ERROR ] RuntimeError: config file /etc/ceph/ceph.conf exists with different content; use --overwrite-conf to overwrite
[ceph_deploy][ERROR ] GenericError: Failed to create 1 monitors $ ceph-deploy --overwrite-conf mon create-initial
执行完毕后,会在当前目录下生成一系列的密钥环
$ ll ~/ceph-cluster
-rw-------. 1 cephd cephd 113 Feb 21 15:13 ceph.bootstrap-mds.keyring
-rw-------. 1 cephd cephd 71 Feb 21 15:13 ceph.bootstrap-mgr.keyring
-rw-------. 1 cephd cephd 113 Feb 21 15:13 ceph.bootstrap-osd.keyring
-rw-------. 1 cephd cephd 113 Feb 21 15:13 ceph.bootstrap-rgw.keyring
-rw-------. 1 cephd cephd 129 Feb 21 15:13 ceph.client.admin.keyring
-rw-rw-r--. 1 cephd cephd 222 Feb 21 14:47 ceph.conf
-rw-rw-r--. 1 cephd cephd 120207 Feb 21 15:13 ceph-deploy-ceph.log
-rw-------. 1 cephd cephd 73 Feb 21 14:46 ceph.mon.keyring
创建 OSD
# ceph-deploy (admin-node) 上执行 $ ssh osd1
$ sudo mkdir /var/local/osd1
$ sudo chown -R ceph:ceph /var/local/osd1
$ exit $ ssh osd2
$ sudo mkdir /var/local/osd2
$ sudo chown -R ceph:ceph /var/local/osd2
$ exit
ceph-deploy 节点执行 prepare OSD 操作
$ ceph-deploy --overwrite-conf osd prepare osd1:/var/local/osd1 osd2:/var/local/osd2
激活 activate OSD
$ ceph-deploy osd activate osd1:/var/local/osd1 osd2:/var/local/osd2
通过 ceph-deploy admin 将配置文件和 admin 密钥同步到各个节点
$ ceph-deploy admin admin osd1 osd2
增加权限设置
$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring
查看集群状态
# 查看集群状态
$ ceph -s
cluster 363c3cf4-dba4-4f13-8ec5-ed93416f4e26
health HEALTH_OK
monmap e1: 1 mons at {admin=10.222.77.213:6789/0}
election epoch 6, quorum 0 admin
osdmap e15: 2 osds: 2 up, 2 in
flags sortbitwise,require_jewel_osds
pgmap v9276: 64 pgs, 1 pools, 863 MB data, 226 objects
33440 MB used, 33574 MB / 67015 MB avail
64 active+clean # 或者查看集群健康状况
$ ceph health
HEALTH_OK # 查看集群 OSD 信息
$ ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.06400 root default
-2 0.03200 host osd1
0 0.03200 osd.0 up 1.00000 1.00000
-3 0.03200 host osd2
1 0.03200 osd.1 up 1.00000 1.00000
Ceph 存储集群搭建的更多相关文章
- 初试 Centos7 上 Ceph 存储集群搭建
转载自:https://cloud.tencent.com/developer/article/1010539 1.Ceph 介绍 Ceph 是一个开源的分布式存储系统,包括对象存储.块设备.文件系统 ...
- Ceph 存储集群 - 搭建存储集群
目录 一.准备机器 二.ceph节点安装 三.搭建集群 四.扩展集群(扩容) 一.准备机器 本文描述如何在 CentOS 7 下搭建 Ceph 存储集群(STORAGE CLUSTER). 一共4 ...
- Ceph 存储集群 - 搭建存储集群---教程走到osd激活这一步执行不下去了,报错
目录 一.准备机器 [1. 修改主机名](所有节点)(https://www.cnblogs.com/zengzhihua/p/9829472.html#1-修改主机名) [2. 修改hosts文件] ...
- Ceph 存储集群
Ceph 存储集群 Ceph 作为软件定义存储的代表之一,最近几年其发展势头很猛,也出现了不少公司在测试和生产系统中使用 Ceph 的案例,尽管与此同时许多人对它的抱怨也一直存在.本文试着整理作者了解 ...
- 002.RHCS-配置Ceph存储集群
一 前期准备 [kiosk@foundation0 ~]$ ssh ceph@serverc #登录Ceph集群节点 [ceph@serverc ~]$ ceph health #确保集群状态正常 H ...
- Ceph 存储集群5-数据归置
一.数据归置概览 Ceph 通过 RADOS 集群动态地存储.复制和重新均衡数据对象.很多不同用户因不同目的把对象存储在不同的存储池里,而它们都坐落于无数的 OSD 之上,所以 Ceph 的运营需要些 ...
- Ceph 存储集群4-高级运维:
一.高级运维 高级集群操作主要包括用 ceph 服务管理脚本启动.停止.重启集群,和集群健康状态检查.监控和操作集群. 操纵集群 运行 Ceph 每次用命令启动.重启.停止Ceph 守护进程(或整个集 ...
- Ceph 存储集群2-配置:心跳选项、OSD选项、存储池、归置组和 CRUSH 选项
一.心跳选项 完成基本配置后就可以部署.运行 Ceph 了.执行 ceph health 或 ceph -s 命令时,监视器会报告 Ceph 存储集群的当前状态.监视器通过让各 OSD 自己报告.并接 ...
- Ceph 存储集群1-配置:硬盘和文件系统、配置 Ceph、网络选项、认证选项和监控器选项
所有 Ceph 部署都始于 Ceph 存储集群.基于 RADOS 的 Ceph 对象存储集群包括两类守护进程: 1.对象存储守护进程( OSD )把存储节点上的数据存储为对象: 2.Ceph 监视器( ...
随机推荐
- 转载:Java:字节流和字符流(输入流和输出流)
本文内容: 什么是流 字节流 字符流 首发日期:2018-07-24 什么是流 流是个抽象的概念,是对输入输出设备的抽象,输入流可以看作一个输入通道,输出流可以看作一个输出通道. 输入流是相对程序而言 ...
- matlab FDA
FDA是filter design analysis过滤器设计与分析的缩写.
- 电脑设置自动关机和取消自动关机代码bat命令
一.设置定时关机bat 1.首先在桌面新建一个记事本txt 2.打开记事本,输入“shutdown -s -t 1260 ”1260是指1260秒,即21分钟内关机.可以修改成别的时间. 3.保存后, ...
- P3157 [CQOI2011]动态逆序对 (CDQ解决三维偏序问题)
P3157 [CQOI2011]动态逆序对 题目描述 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一个排列,按照某种顺序依次删除m个元素,你的任 ...
- Python&Selenium借助HTMLTestRunner生成自动化测试报告
一.摘要 本篇博文介绍Python和Selenium进行自动化测试时,借助著名的HTMLTestRunner生成自动化测试报告 HTMLTestRunner.py百度很多,版本也很多,自行搜索下载放到 ...
- c语言第一次作业1
第一次作业 一 你对软件工程或者计算机科学与技术专业的了解是什么? 软件工程是一门研究用工程化方法构建和维护有效的,实用的和高质量的软件的学科,涉及程序语言设计,数据库,软件开发工具,系统平台,设计模 ...
- mysql慢查询配置(5.7)
刚装了Windows版mysql,想开启慢查询日志. 修改D:\mysql-5.7.23-winx64下my.ini配置文件,添加: [mysqld]slow_query_log = onslow_q ...
- 05 vue项目01-组件关系、bootstrap
1.django后端项目 1.项目预期 配置前端静态资源 页面展示 2.django项目代码 主url from django.contrib import admin from ...
- JDBC (Java DataBase Connectivity)数据库连接池原理解析与实现
一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
- SP4546 ANARC08A - Tobo or not Tobo IDA*
题意: