002.RHCS-配置Ceph存储集群
一 前期准备
[kiosk@foundation0 ~]$ ssh ceph@serverc #登录Ceph集群节点
[ceph@serverc ~]$ ceph health #确保集群状态正常
HEALTH_OK
二 存储池概述
2.1 存储池
三 存储池常见操作
3.1 启用存储池
3.2 池相关命令
|
命令
|
含义
|
备注
|
|
ceph osd lspools
|
列出集群中的池
|
|
|
ceph osd pool ls detail
|
获取更多池相关信息
|
|
|
ceph df
|
获取池使用统计数据
|
|
|
ceph osd pool stats
|
获取池性能统计数据
|
|
|
ceph osd df
|
显示OSDs上的磁盘使用统计信息
|
3.3 池配额
3.4 池快照操作
3.5 池的修改操作
3.6 删除池
3.7 池的命名空间
四 复制存储池
4.1 创建复制存储池
五 纠删码池
5.1 纠删码池概述
5.2 创建纠删存储池
5.3 纠删池配置文件
|
参数
|
含义
|
备注
|
|
k
|
跨osd分割的数据块的数量,默认值是2。
|
|
|
m
|
数据变得不可用之前可能失败的osd的数量,默认为1。
|
|
|
directory
|
默认值是/usr/1ib64/ceph/erasure-code,算法插件库的路径。
|
|
|
plugin
|
默认值是jerasure,通常有本地可修复擦除代码(LRC)和ISA(仅限Intel)。
|
|
|
crush-failure-domain
|
定义CRUSH故障域,该域控制块的位置。默认情况下,设置为host,这确保对象的块被放置在不同的主机上。如果设置为osd,则对象的块可以放在同一主机上的osd上。将故障域设置为osd的弹性较小,因为如果主机失败,主机上的所有osd都将失败。还可以定义其他故障域,并使用它们来确保将块放在数据中心不同机架上的主机上的OSDs上,或者进行其他类型的定制。
|
|
|
crush-device-class
|
此可选参数仅为池选择由该类设备支持的OSDs。典型的类可能包括hdd、ssd或nvme。
|
|
|
crush-root
|
这个可选参数设置压碎规则集的根节点。
|
|
|
key=value
|
插件可能具有该插件特有的键值参数。
|
|
|
technique
|
technique为每个插件都提供了一组实现不同算法的不同技术。对于Jerasure插件,默认的技术是reed_sol_van。其他包括:reed_sol_r6_op、cauchy_orig、cauchy_good、liberation、blaum_roth和liber8tion。
|
命令:ceph osd erasure-code-profile set myprofile k=3 m=2 crush-failure-domain=rack
六 Ceph配置文件
6.1 Ceph配置文件介绍
- [global]:存储所有守护进程共有的一般配置和设置。任何进程都会读取该配置,包括客户机。在其他更具体的配置中会重写global设置的参数。
- [mon]:存储与monitors(mon)相关的配置。
- [osd]:存储与osd守护进程相关的配置。
- [mgr]:存储与managers(MGR)相关的配置。
- [mds]:存储与元数据服务器(mds)相关的配置。
- [client]:存储应用于所有Ceph客户机的配置。
6.2 常见配置
|
模块
|
参数
|
含义
|
|
元数据模块
|
$cluster
|
定义RHCS集群的名称。默认设置为ceph,并在/etc/sysconfig/ceph文件中定义。
|
|
$type
|
定义守护进程类型。对于监视器,将其设置为mon, OSDs使用osd,元数据服务器使用mds,管理器使用mgr,客户机应用程序使用client。
|
|
|
$id
|
定义守护进程实例ID。对于客户机应用程序,它是用户名。
|
|
|
$name
|
定义守护进程名和实例ID。相当于$type.$ID的简写。
|
|
|
$host
|
定义守护进程所运行的主机名。
|
global模块定义全局参数,即定义集群范围的参数。它通常包括以下配置设置:
- 带有所有监视器列表的mon主机。
- mon初始成员设置为必须在集群启动时启动的监视器列表,以建立仲裁。
- 启用或禁用Ceph组件之间使用cephx身份验证的设置(默认启用)。
- Ceph环境中使用的网络,通常一个用于OSDs(集群网络),一个用于客户机(公共网络)。
6.3 查看配置
6.4 Ansible Ceph配置文件
七 启动和停止Ceph
7.1 概述
- ceph.target:启动或停止当前节点上的所有守护进程
- ceph-type.target:启动或停止特定类型的所有守护进程
7.2 常见命令
|
命令
|
含义
|
备注
|
|
systemctl stop ceph-$type@$id
|
停止特定守护进程。
|
|
|
systemctl stop ceph-osd.target
|
停止所有OSD守护进程。
|
|
|
systemctl stop ceph.target
|
停止所有ceph守护进程。
|
|
|
systemctl start ceph-$type@$id
|
启动特定守护进程。
|
|
|
systemctl start ceph-osd.target
|
启动所有OSD守护进程。
|
|
|
systemctl start ceph.target
|
启动所有ceph守护进程。
|
|
|
systemctl restart ceph-$type@$id
|
重启特定守护进程。
|
|
|
systemctl restart ceph-osd.target
|
重启所有OSD守护进程。
|
|
|
systemctl restart ceph.target
|
重启所有ceph守护进程。
|
八 管理Ceph认证
8.1 CephX认证
8.2 key-ring密钥环
8.3 权限管理
- 限制对池、池的名称空间或一组基于应用程序标记的池中的数据的访问。
- 授权RHCS集群中的守护进程彼此交互。
- r:授予读权限。每个用户帐户应该至少具有对监视器的读访问权,以便能够检索粉碎地图。
- w:授予写权限。客户端需要写访问来存储和修改OSDs上的对象。对于manager(MGRs),w授予启用或禁用模块的权利。
- x:授予执行扩展对象类的授权。这允许客户端对对象执行额外的操作,例如使用rados lock get设置锁或使用RBD list列出RBD映像。
- *:授予完全访问。
- class-read和class-write:是x的子集,主要在用于RBD的池中使用它们。
8.4 常见授权操作
- 授予权限
- 限定权限
- 特定池权限限定
- 特定对象限定
- 特定命名空间限定
- 特定路径限定
- 特定命令限定
8.5 常见用户管理
|
命令
|
含义
|
备注
|
|
ceph auth list
|
列出用户及其功能
|
|
|
ceph auth get client.admin
|
列出特定帐户的详细信息。
|
|
|
ceph auth print-key client.admin
|
列出特定用户的密钥环信息。
|
|
|
ceph auth export client.operator1 > ~/operator1.export
|
导出和导入用户帐户。
|
|
|
ceph auth import -i ~/operator1.export
|
||
|
ceph auth get-or-create client.application1 \
mon 'allow r' \
osd 'allow rw' \
- o /etc/ceph/ceph.client.application1.keyring
|
创建一个新用户帐户并生成其密钥。
|
创建用户默认情况下将此键输出到stdout,因此建议加-o输入到具体文件,以便保存。
|
|
ceph auth caps client.application1 \
mon 'allow r' \
osd 'allow rw pool=mypool'
|
修改用户功能。
|
ceph auth caps命令覆盖所有现有功能,因此在使用此命令时,必须为所有守护进程指定完整的功能集,而不仅仅是要修改的守护进程。
|
|
ceph auth caps client,application1 osd ''
|
删除所有功能。
|
使用一个空字符串删除所有功能。
|
|
ceph auth del client.application1
|
删除用户。
|
建议同时手动删除key密钥环。
|
九 创建replicated类型池
9.1 创建复制存储池
[ceph@serverc ~]$ ceph osd pool create mytestpool 64 #CRUSH默认使用replicated_rule
9.2 开启rbd
[ceph@serverc ~]$ ceph osd pool application enable mytestpool rbd
9.3 确认验证
[ceph@serverc ~]$ ceph osd pool ls
[ceph@serverc ~]$ ceph df

9.4 改名并查看
[ceph@serverc ~]$ ceph osd pool rename mytestpool mypool
[ceph@serverc ~]$ ceph osd pool ls detail
9.5 其他参数调整
[ceph@serverc ~]$ ceph osd pool set mypool size 3 #修改size为3
[ceph@serverc ~]$ ceph osd pool ls detail

9.6 上传文件测试
[ceph@serverc ~]$ rados -p mypool -N system put testconf /etc/ceph/ceph.conf #上传至mypool池的system命名空间
[ceph@serverc ~]$ rados -p mypool put testkey /etc/ceph/ceph.client.admin.keyring
[ceph@serverc ~]$ rados -p mypool -N system ls
[ceph@serverc ~]$ rados -p mypool ls
[ceph@serverc ~]$ rados -p mypool --all ls

9.7 删除池
[ceph@serverc ~]$ ceph osd pool delete mypool
[ceph@serverc ~]$ ceph osd pool delete mypool --yes-i-really-really-mean-it
十 创建纠删码池
10.1 创建纠删存储池配置文件
[ceph@serverc ~]$ ceph osd erasure-code-profile ls #查看现有配置文件
[ceph@serverc ~]$ ceph osd erasure-code-profile get default #查看默认配置文件相关参数

[ceph@serverc ~]$ ceph osd erasure-code-profile set ceph125 k=3 m=2 crush-failure-domain=osd #创建新的配置文件ceph125
[ceph@serverc ~]$ ceph osd erasure-code-profile get ceph125

10.2 创建纠删存储池
[ceph@serverc ~]$ ceph osd pool create myecpool 64 64 erasure ceph125 #指定配置文件创建纠删码存储池
10.3 开启rgw
[ceph@serverc ~]$ ceph osd pool application enable myecpool rgw
10.4 确认验证
[ceph@serverc ~]$ ceph osd pool ls
[ceph@serverc ~]$ ceph df
[ceph@serverc ~]$ ceph osd pool ls detail

10.5 上传文件测试
[ceph@serverc ~]$ rados -p myecpool put mytest /usr/share/dict/words #作为mytest对象上传
[ceph@serverc ~]$ ceph df
[ceph@serverc ~]$ rados -p myecpool get mytest /tmp/words #下载上传的mytest
[ceph@serverc ~]$ diff /tmp/words /usr/share/dict/words #对比

十一 修改Ceph配置
11.1 查看当前特定参数
[ceph@serverc ~]$ ceph daemon mon.serverc config get mon_allow_pool_delete
[ceph@serverc ~]$ ceph daemon osd.0 config get debug_osd #查看osd debug输出

11.2 部署节点修改相关配置
[ceph@servera ~]$ sudo cp /usr/share/ceph-ansible/group_vars/all.yml /usr/share/ceph-ansible/group_vars/all.yml.bak #建议备份一次
[ceph@servera ~]$ sudo vi /usr/share/ceph-ansible/group_vars/all.yml
ceph_conf_overrides:
global:
mon_osd_allow_primary_affinity: 1
mon_clock_drift_allowed: 0.5
osd_pool_default_size: 2
osd_pool_default_min_size: 1
mon_pg_warn_min_per_osd: 0
mon_pg_warn_max_per_osd: 0
mon_pg_warn_max_object_skew: 0
mon_allow_pool_delete: true #追加
osd:
debug_osd: 10 #追加
client:
rbd_default_features: 1
debug_ms: 1 #追加
11.3 重新刷新配置
[student@servera ~]$ cd /usr/share/ceph-ansible/
[student@servera ceph-ansible]$ ansible-playbook site.yml
11.4 查看修改后的参数
[ceph@serverc ~]$ sudo systemctl restart ceph-mon.target
[ceph@serverc ~]$ ceph daemon mon.serverc config get mon_allow_pool_delete
[ceph@serverc ~]$ ceph daemon osd.0 config get debug_osd #查看osd debug输出

11.5 删除池测试
[ceph@serverc ~]$ ceph osd pool delete myecpool
[ceph@serverc ~]$ ceph osd pool delete myecpool myecpool --yes-i-really-really-mean-it

十二 Ceph用户及授权
12.1 创建用户
[ceph@serverc ~]$ ceph auth get-or-create client.docedit \
mon 'allow r' \
osd 'allow rw pool=mypool namespace=docs' \
-o /etc/ceph/ceph.client.docedit.keyring
[ceph@serverc ~]$ ceph auth get-or-create client.docget \
mon 'allow r' \
osd 'allow r pool=mypool namespace=docs' \
-o /etc/ceph/ceph.client.docget.keyring
12.2 确认验证
[ceph@serverc ~]$ ceph auth list

12.3 复制相关key密钥环
[ceph@serverc ~]$ scp /etc/ceph/ceph.client.docedit.keyring servera:/etc/ceph/
[ceph@serverc ~]$ scp /etc/ceph/ceph.client.docget.keyring servera:/etc/ceph/
12.4 servera节点上传文件进行验证
[ceph@servera ~]$ rados --id docedit -p mypool -N docs put testdoc /etc/services
[ceph@servera ~]$ rados --id docget -p mypool -N docs get testdoc /tmp/test
[ceph@servera ~]$ diff /etc/services /tmp/test
12.5 验证权限
[ceph@servera ~]$ rados --id docget -p mypool -N docs put mywritest /etc/services #验证docget用户对docs命名空间权限

12.6 修改授权
[ceph@serverc ~]$ ceph auth caps client.docget \
mon 'allow r' \
osd 'allow rw pool=mypool namespace=docs,allow rw pool=docarchive' #修改docget用户对mypool池中的docs名称空间和docarchive池进行写访问。
12.7 再次测试
[ceph@servera ~]$ rados --id docget -p mypool -N docs put mywritest /etc/services
[ceph@servera ~]$ rados -p mypool -N docs ls

12.8 删除用户及密钥环
[ceph@serverc ~]$ rm /etc/ceph/ceph.client.docedit.keyring
[ceph@serverc ~]$ ceph auth del client.docedit
[ceph@serverc ~]$ rm /etc/ceph/ceph.client.docget.keyring
[ceph@serverc ~]$ ceph auth del client.docget
[ceph@servera ~]$ rm /etc/ceph/ceph.client.docedit.keyring
[ceph@servera ~]$ rm /etc/ceph/ceph.client.docget.keyring
002.RHCS-配置Ceph存储集群的更多相关文章
- Ceph 存储集群1-配置:硬盘和文件系统、配置 Ceph、网络选项、认证选项和监控器选项
所有 Ceph 部署都始于 Ceph 存储集群.基于 RADOS 的 Ceph 对象存储集群包括两类守护进程: 1.对象存储守护进程( OSD )把存储节点上的数据存储为对象: 2.Ceph 监视器( ...
- Ceph 存储集群第一部分:配置和部署
内容来源于官方,经过个人实践操作整理,官方地址:http://docs.ceph.org.cn/rados/ 所有 Ceph 部署都始于 Ceph 存储集群. 基于 RADOS 的 Ceph 对象存储 ...
- Ceph 存储集群
Ceph 存储集群 Ceph 作为软件定义存储的代表之一,最近几年其发展势头很猛,也出现了不少公司在测试和生产系统中使用 Ceph 的案例,尽管与此同时许多人对它的抱怨也一直存在.本文试着整理作者了解 ...
- Ceph 存储集群 - 搭建存储集群
目录 一.准备机器 二.ceph节点安装 三.搭建集群 四.扩展集群(扩容) 一.准备机器 本文描述如何在 CentOS 7 下搭建 Ceph 存储集群(STORAGE CLUSTER). 一共4 ...
- Ceph 存储集群搭建
前言 Ceph 分布式存储系统,在企业中应用面较广 初步了解并学会使用很有必要 一.简介 Ceph 是一个开源的分布式存储系统,包括对象存储.块设备.文件系统.它具有高可靠性.安装方便.管理简便.能够 ...
- Ceph 存储集群5-数据归置
一.数据归置概览 Ceph 通过 RADOS 集群动态地存储.复制和重新均衡数据对象.很多不同用户因不同目的把对象存储在不同的存储池里,而它们都坐落于无数的 OSD 之上,所以 Ceph 的运营需要些 ...
- Ceph 存储集群4-高级运维:
一.高级运维 高级集群操作主要包括用 ceph 服务管理脚本启动.停止.重启集群,和集群健康状态检查.监控和操作集群. 操纵集群 运行 Ceph 每次用命令启动.重启.停止Ceph 守护进程(或整个集 ...
- Ceph 存储集群2-配置:心跳选项、OSD选项、存储池、归置组和 CRUSH 选项
一.心跳选项 完成基本配置后就可以部署.运行 Ceph 了.执行 ceph health 或 ceph -s 命令时,监视器会报告 Ceph 存储集群的当前状态.监视器通过让各 OSD 自己报告.并接 ...
- Ceph 存储集群 - 搭建存储集群---教程走到osd激活这一步执行不下去了,报错
目录 一.准备机器 [1. 修改主机名](所有节点)(https://www.cnblogs.com/zengzhihua/p/9829472.html#1-修改主机名) [2. 修改hosts文件] ...
随机推荐
- 添加sudo免密码
visudo 添加如下内容即可: lizhaojun ALL=(ALL) NOPASSWD: ALL
- python学习day11 函数Ⅲ (内置函数与lambda表达式)
函数Ⅲ(内置函数&lambda表达式) 1.函数小高级 函数可以当做变量来使用: def func(): print(123) func_list = [func, func, func] # ...
- PMP备考资料和备考经验分享(基于PMP第六版)
之前有不少小伙伴私信我说,你PMP考过了,有没有报班呢,有没有自己看的资料,有没有一些经验分享,今天在这里,就统一给大家分享一下,以便大家备考和学习PMP. 先说我自己的情况,我本身是从事项目管理的, ...
- openCV 3.0 Ubuntu下编译问题
1.有个ipptv啥的东西下布下来,去官网下载放到相应目录 2.把编译器降级到5版本才能编译
- 微服务之路由网关—Nginx
Nginx 简介Nginx 是一款自由的.开源的.高性能的 HTTP 服务器和反向代理服务器,它具有有很多非常优越的特性: • 作为 Web 服务器: 相比 Apache , Nginx 使用更少的 ...
- Windows启动过程(MBR引导过程分析)
catalogue . 电脑启动过程 . MBR分析(master boot record) - 位于整个硬盘的 扇区 . DBR(DOS boot record) - 位于柱面0,磁头1,扇区1,即 ...
- SEO总结
学习了这么久了seo,对学过的知识进行一下总结. 服务器和域名 首先的一个就是对服务器和域名的选择,服务器最好能是独立的,因为如果不是独立服务器很容易被别人放在服务器上的网站所影响,然后就是域名,需要 ...
- iTOP-4418开发板Qt系统下运行摄像头测试程序
编译环境:Ubuntu 12.04 交叉编译工具链:gcc 4.4.1 一.添加编译器的环境变量 打开~/.bashrc文件,修改环境变量,如下图: 修改完后,更新环境变量,使用命令”source ...
- Linux Socket I/O
Ref: 一文读懂Socket通信原理 幽默讲解 Linux 的 Socket IO 模型
- jQuery实现获取选中复选框的值
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Jq ...