Centos7安装ceph集群

ceph的特点及介绍

高性能

  • 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。

  • 考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。

  • 能够支持上千个存储节点的规模,支持TB到PB级的数据。

高可用性

  • 副本数可以灵活控制。

  • 支持故障域分隔,数据强一致性。

  • 多种故障场景自动进行修复自愈。

  • 没有单点故障,自动管理。

高可扩展性

  • 去中心化。

  • 扩展灵活。

  • 随着节点增加而线性增长。

特性丰富

  • 支持自定义接口,支持多种语言驱动。
  • 支持三种存储接口:块存储、文件存储、对象存储。

Ceph是一个高性能、可扩容的分布式存储系统,它提供三大功能:
对象存储(RADOSGW):提供RESTful接口,也提供多种编程语言绑定。兼容S3、Swift;
对象存储(RADOSGW):也就是通常意义的键值存储,其接口就是简单的GET、PUT、DEL 和其他扩展,代表主要有 Swift 、S3 以及 Gluster 等;
块存储(RDB):由RBD提供,可以直接作为磁盘挂载,内置了容灾机制;
块存储(RDB):这种接口通常以 QEMU Driver 或者 Kernel Module 的方式存在,这种接口需要实现 Linux 的 Block Device 的接口或者 QEMU 提供的 Block Driver 接口,如 Sheepdog,AWS 的 EBS,青云的云硬盘和阿里云的盘古系统,还有 Ceph 的 RBD(RBD是Ceph面向块存储的接口)。在常见的存储中 DAS、SAN 提供的也是块存储;
文件系统(CephFS):提供POSIX兼容的网络文件系统CephFS,专注于高性能、大容量存储;
文件系统(CephFS):通常意义是支持 POSIX 接口,它跟传统的文件系统如 Ext4 是一个类型的,但区别在于分布式存储提供了并行化的能力,如 Ceph 的 CephFS (CephFS是Ceph面向文件存储的接口),但是有时候又会把 GlusterFS ,HDFS 这种非POSIX接口的类文件存储接口归入此类。当然 NFS、NAS也是属于文件系统存储;

Ceph介绍及原理架构分享

部署

环境(本文采取的是centos7.5)

client外其它每台准备一个空闲磁盘
admin节点可与本文的node1整合在一台上

ip 主机名 角色
10.125.7.54 admin ceph-deploy
10.125.7.28 client ceph-client
10.125.7.65 node1 mon / osd / mgr
10.125.7.81 node2 osd
10.125.7.68 node3 osd

Client客户端:负责存储协议的接入,节点负载均衡
MON监控服务:负责监控整个集群,维护集群的健康状态,维护展示集群状态的各种图表,如OSD Map、Monitor Map、PG Map和CRUSH Map。
OSD存储服务:主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查等。一般情况下一块硬盘对应一个OSD。
admin管理节点:即安装ceph-deploy的节点(此节点可与本文的node1整合在一台上)

1、准备工作

1.1、修改主机名(每台分别执行)
hostnamectl set-hostname admin
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname client
1.2、配置hosts(每台执行)
vim /etc/hosts
10.125.7.54 admin
10.125.7.28 client
10.125.7.65 node1
10.125.7.81 node2
10.125.7.68 node3
1.3、创建用户组(每台执行)
groupadd ceph
useradd ceph -g ceph
passwd ceph
1.4、ceph用户添加sudo权限(每台执行)
vim /etc/sudoers
ceph    ALL=(ALL)       NOPASSWD:ALL
注释:Defaults   !visiblepw
1.5、关闭防火墙及selinux(每台机器上执行)
systemctl disable firewalld && systemctl stop firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
1.6、免密码登录(admin节点执行)
su - ceph
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub ceph@node1
ssh-copy-id -i ~/.ssh/id_rsa.pub ceph@node2
ssh-copy-id -i ~/.ssh/id_rsa.pub ceph@node3
ssh-copy-id -i ~/.ssh/id_rsa.pub ceph@client
//添加~/.ssh/config配置文件
vim .ssh/config
Host node1
Hostname node1
User ceph
Host node2
Hostname node2
User ceph
Host node3
Hostname node3
User ceph
1.7、时间同步(每台机器上执行)
yum -y install chrony
//修改配置文件/etc/chrony.conf
echo allow >> /etc/chrony.conf //admin执行,允许所有网段同步时间
echo server admin iburst >> /etc/chrony.conf //除admin都执行,获取admin时间并同步
systemctl enable chronyd  //开启时间同步
systemctl restart chronyd  //重启
1.8、配置yum源(admin节点)
vim /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
//更新yum源,安装ceph-deploy
yum makecache
yum install ceph-deploy python-setuptools -y
ceph-deploy --version

若python3x版本可能报错:Traceback (most recent call last):
File “/usr/bin/ceph-deploy”, line 18, in
from ceph_deploy.cli import main
ModuleNotFoundError: No module named ‘ceph_deploy’
解决办法:需要导入ceph-deploy模块
/opt/app/python3/bin/pip3 install ceph-deploy

2、安装ceph集群

2.1、创建ceph操作目录(admin节点ceph用户执行)
su - ceph
mkdir my-cluster
cd my-cluster
//创建集群
ceph-deploy new node1
//注:若安装ceph后遇到麻烦可以使用以下命令进行清除包和配置:
// 删除安装包
$ ceph-deploy purge admin-node node1 node2 node3
// 清除配置
$ ceph-deploy purgedata admin-node node1 node2 node3
$ ceph-deploy forgetkeys
2.2、安装luminous(admin节点ceph用户执行)
ceph-deploy install --release luminous node1 node2 node3
//安装ceph
ssh ceph@node1 //之后的步骤均可以在node1节点上直接执行,截止至第二大步完成
sudo yum install -y epel-release ceph ceph-radosgw
//确认安装版本
]$ ceph --version
2.3、初始化mon
ceph-deploy mon create-initial
2.4、赋予各个节点使用命令免用户名权限:
ceph-deploy admin node1 node2 node3
2.5、安装ceph-mgr:
ceph-deploy mgr create node1
2.6、添加osd:
ceph-deploy osd create --data /dev/sdb node1
ceph-deploy osd create --data /dev/sdb node2
ceph-deploy osd create --data /dev/sdb node3
//需要说明的是该/dev/sdb是在各个节点上为osd准备的空闲磁盘(无需分区格式化,如果有分区需要指定具体分区),通过如下命令查看:
ssh node1 lsblk -f
//最后通过如下命令查看集群状态:
ssh node1 sudo ceph -s
ssh node1 sudo ceph osd df
//如果显示health_ok,3个osd up就成功了

3、Dashboard的配置:

3.1、创建管理域秘钥:(node1节点执行)
sudo ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *'
3.2、开启 ceph-mgr 管理域:(node1节点执行)
sudo ceph-mgr -i node1
3.3、查看ceph的状态:(node1节点执行)
sudo ceph status
3.4、打开dashboard模块:(node1节点执行)
sudo ceph mgr module enable dashboard
3.5、绑定开启dashboard模块的ceph-mgr节点的ip地址:(node1节点执行)
sudo ceph config-key set mgr/dashboard/node1/server_addr 10.125.7.65
3.6、web登录

浏览器访问http://10.125.7.65:7000/

3.7、创建存储池rbd(node1节点执行)
sudo ceph osd pool create rbd 128 128
//获取现有的PG数和PGP数值(扩展)
sudo ceph osd pool get rbd pg_num
sudo ceph osd pool get rbd pgp_num
//修改存储池的PG和PGP数量(扩展)
ceph osd pool set rbd pg_num 512
ceph osd pool set rbd pgp_num 512

ceph集群中的PG总数:
PG总数 = (OSD总数 * 100) / 最大副本数
结果必须舍入到最接近的2的N次方幂的值。
一般情况下:
5个以下的osd节点的PG数量建议为128
5-10个osd节点的PG数量建议为512
10-50个osd节点的PG数量建议为1024
ceph集群中每个pool中的PG总数:
存储池PG总数 = (OSD总数 * 100 / 最大副本数) / 池数
PGP是为了实现定位而设置的PG,它的值应该和PG的总数(即pg_num)保持一致。对于Ceph的一个pool而言,如果增加pg_num,还应该调整pgp_num为同样的值,这样集群才可以开始再平衡。
参数pg_num定义了PG的数量,PG映射至OSD。当任意pool的PG数增加时,PG依然保持和源OSD的映射。直至目前,Ceph还未开始再平衡。此时,增加pgp_num的值,PG才开始从源OSD迁移至其他的OSD,正式开始再平衡

3.8、初始化存储池rbd:(node1节点执行)
sudo rbd pool init rbd

4、部署ceph客户端

4.2、配置yum源(client节点执行)

vim /etc/yum.repos.d/ceph.repo

[ceph]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc
[ceph-deploy]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc
4.3、安装epel仓库(client节点执行)
yum install epel-release -y
4.4、安装ceph(client节点执行)
yum -y install --release luminous ceph
//验证ceph版本
ceph -v
4.5、创建ceph块客户端用户名和认证密钥(node1节点执行)
ceph auth get client.admin //验证
4.6、将密钥文件和配置文件拷贝到客户端(node1节点执行)
Chmod +x /etc/ceph/ceph.client.admin.keyring
scp /etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.conf root@:10.125.7.28/etc/ceph

这里使用的admin的用户所以将admin的秘钥拷贝至客户端,生产环境中尽量使用普通用户秘钥,因为admin权限太大可能会删除其他pool下的块设备,可以使用以下命令设置对pool等的读写执行权限,然后将keyring和配置文件拷贝至客户端
ceph auth get-or-create client.rbd mon ‘allow r’ osd ‘allow class-read object_prefix rbd_children, allow rwx pool=rbd’ | tee ./etc/ceph/ceph.client.rbd.keyring

4.7、在客户端上验证ceph(client节点执行)
ceph df
ceph -s
ceph osd lspools //查看ceph池
4.8、客户端创建块设备(client节点执行)
//在rbd上创建一个RBD镜像,默认是M,不指名存储池默认在rbd存储池上创建。rbd create {poolname}/{imagename} --image-format 1 --size  {megabytes}
rbd create rbd/client.test --image-format 1 --size 8G
rbd info rbd/client.test //验证
//列出块设备及删除块设备:
rbd list
//查看已挂载块设备
rbd showmapped
//删除块设备:rbd rm {poolname}/{imagename}.如下:
rbd rm rbd/client.test
rbd: error: image still has watchers    //若删除报错
rbd status image.test    //解决办法
ceph osd blacklist add 10.125.7.28:0/363532294    //加入黑名单
rbd rm image.test    //再删除

4.9、将映像映射为块设备(client节点执行)
rbd map rbd/client.test
4.10、查看块映射map和创建文件系统(client节点执行)
rbd showmapped
rbd unmap /dev/rbd0  //卸载块设备命令
4.11、格式化磁盘,则使用/dev/rbd0创建文件系统(client节点执行)
mkfs.ext4 /dev/rbd0

4.12、创建目录挂载块设备(client节点执行)
mkdir /opt/app
mount /dev/rbd0 /opt/app/
df -h /opt/app/
块设备在线扩容(扩展)
rbd resize rbd/client.test --size 8G
resize2fs /dev/rbd0

4.13、写入数据测试(client节点执行)
dd if=/dev/zero of=/opt/app/file1 count=100 bs=1M

4.14、重启osd,mon(client节点执行)
//查看osd及mon状态
systemctl status ceph-osd.target
systemctl status ceph-mon.target
//重启
systemctl restart ceph-osd.target
systemctl restart ceph-mon.target
4.15、osd扩容

参考上面osd部署过程,将新服务器部署ceph并在admin节点可以无密码登录,在admin节点使用ceph-deploy osd create --data /dev/sdb node4 即可实现osd扩容

4.16、image快照与pool快照

image快照与pool快照是互斥的,创建了image的存储池无法创建存储池的快照,因为存储池当前已经为unmanaged snaps mode了,而没有创建image的就可以做存储池快照。而如果创建了pool快照则无法创建image快照。
image快照的创建命令形如:rbd snap create {pool-name}/{image-name}@{snap-name}回滚命令形如:rbd snap rollback {pool-name}/{image-name}@{snap-name}

本集群验证测试(client节点执行)

//测试写入数据:
dd if=/dev/zero of=/opt/app/test_file1 count=100 bs=1M
//rbd保存快照:
rbd snap create rbd/client.test@client.test_snap1
rbd snap ls rbd/client.test
//删除数据:
rm -f /opt/app/test_file1
//卸载rbd:
umount /dev/rbd0
rbd unmap /dev/rbd0
//快照回滚:
rbd snap rollback rbd/client.test@client.test_snap1
//重新挂载:
rbd map rbd/client.test
mount /dev/rbd0 /opt/app/

ceph常用命令集合

查看状态命令:
查看ceph集群状态:ceph -s
查看mon状态:ceph mon stat
查看msd状态:ceph msd stat
查看osd状态:ceph osd stat
查看osd目录树(可以查看每个osd挂在哪台机,是否已启动):ceph osd tree启动ceph进程命令:
需要在对应的节点进行启动(如果对应节点没有该服务,会进行提示)
启动mon进程:service ceph start mon
启动msd进程:service ceph start msd
启动osd进程:service ceph start osd查看机器的监控状态
# ceph health查看ceph的实时运行状态
# ceph -w检查信息状态信息
# ceph -s查看ceph存储空间
[root@client ~]# ceph df删除一个节点的所有的ceph数据包
# ceph-deploy purge ceph-node1
# ceph-deploy purgedata ceph-node1为ceph创建一个admin用户并为admin用户创建一个密钥,把密钥保存到/etc/ceph目录下:
# ceph auth get-or-create client.admin mds 'allow' osd 'allow ' mon 'allow ' > /etc/ceph/ceph.client.admin.keyring
或
# ceph auth get-or-create client.admin mds 'allow' osd 'allow ' mon 'allow ' -o /etc/ceph/ceph.client.admin.keyring为osd创建一个用户并创建一个key
# ceph auth get-or-create osd mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph/keyring为mds创建一个用户并创建一个key
# ceph auth get-or-create mds mon 'allow rwx' osd 'allow ' mds 'allow ' -o /var/lib/ceph/mds/ceph-ceph-node1/keyring查看ceph集群中的认证用户及相关的key
ceph auth list删除集群中的一个认证用户
ceph auth del osd.0查看集群的详细配置
# ceph daemon mon config show | more查看集群健康状态细节
# ceph health detail查看ceph log日志所在的目录
# ceph-conf –name mon.node1 –show-config-value log_file=================关于mon节点的相关操作命令====================
查看mon的状态信息
# ceph mon stat查看mon的选举状态
# ceph quorum_status查看mon的映射信息
# ceph mon dump删除一个mon节点
# ceph mon remove node1获得一个正在运行的mon map,并保存在1.txt文件中
# ceph mon getmap -o 1.txt查看上面获得的map
# monmaptool --print 1.txtmap注入新加入的节点(如新节点主机名为ceph-node4)
# ceph-mon -i ceph-node4 --inject-monmap 1.txt查看mon的amin socket
# ceph-conf --name mon.ceph-node1 --show-config-value admin_socket查看mon的详细状态(ceph-node1为mon节点主机名)
# ceph daemon mon.ceph-node1 mon_status删除一个mon节点
# ceph mon remove=================msd节点相关操作命令====================
查看msd状态
# ceph mds stat查看msd的映射信息
# ceph mds dump删除一个mds节点
# ceph mds rm 0 mds
=================osd节点相关操作命令====================
查看ceph osd运行状态
# ceph osd stat查看osd映射信息
# ceph osd dump查看osd的目录树
# ceph osd treedown掉一个osd硬盘(比如down掉osd.0节点磁盘)
# ceph osd down 在集群中删除一个osd硬盘
# ceph osd rm 0在集群中删除一个osd 硬盘 crush map
# ceph osd crush rm osd在集群中删除一个osd的host节点
# ceph osd crush rm node1查看最大osd的个数(默认最大是4个osd节点)
# ceph osd getmaxosd设置最大的osd的个数(当扩大osd节点的时候必须扩大这个值)
# ceph osd setmaxosd 10设置osd crush的权重为1.0
ceph osd crush set {id} {weight} [{loc1} [{loc2} ...]]
例如:
[root@ceph-node1 ~]# ceph osd crush set 3 3.0 host=ceph-node4
set item id 3 name 'osd.3' weight 3 at location {host=node4} to crush map
[root@ceph-node1 ~]# ceph osd tree
# id weight type name up/down reweight
-1 6 root default
-2 1 host ceph-node1
0 1 osd.0 up 1
-3 1 host ceph-node2
1 1 osd.1 up 1
-4 1 host ceph-node3
2 1 osd.2 up 1
-5 3 host ceph-node4
3 3 osd.3 up 0.5或者用下面的方式
[root@ceph-node1 ~]# ceph osd crush reweight osd.3 1.0
reweighted item id 3 name 'osd.3' to 1 in crush map
[root@ceph-node1 ~]# ceph osd tree
# id weight type name up/down reweight
-1 4 root default
-2 1 host node1
0 1 osd.0 up 1
-3 1 host node2
1 1 osd.1 up 1
-4 1 host node3
2 1 osd.2 up 1
-5 1 host node4
3 1 osd.3 up 0.5设置osd的权重[root@ceph-node1 ~]# ceph osd reweight 3 0.5
reweighted osd.3 to 0.5 (8327682)
[root@ceph-node1 ~]# ceph osd tree
# id weight type name up/down reweight
-1 4 root default
-2 1 host node1
0 1 osd.0 up 1
-3 1 host node2
1 1 osd.1 up 1
-4 1 host node3
2 1 osd.2 up 1
-5 1 host node4
3 1 osd.3 up 0.5把一个osd节点逐出集群[root@ceph-node1 ~]# ceph osd out osd.3
marked out osd.3.
[root@ceph-node1 ~]# ceph osd tree
# id weight type name up/down reweight
-1 4 root default
-2 1 host node1
0 1 osd.0 up 1
-3 1 host node2
1 1 osd.1 up 1
-4 1 host node3
2 1 osd.2 up 1
-5 1 host node4
3 1 osd.3 up 0
# osd.3的reweight变为0了就不再分配数据,但是设备还是存活的把逐出的osd加入集群[root@ceph-node1 ~]# ceph osd in osd.3
marked in osd.3.
[root@ceph-node1 ~]# ceph osd tree
# id weight type name up/down reweight
-1 4 root default
-2 1 host node1
0 1 osd.0 up 1
-3 1 host node2
1 1 osd.1 up 1
-4 1 host node3
2 1 osd.2 up 1
-5 1 host node4
3 1 osd.3 up 1暂停osd (暂停后整个集群不再接收数据)
[root@ceph-node1 ~]# ceph osd pause
# set pauserd,pausewr再次开启osd (开启后再次接收数据)
[root@ceph-node1 ~]# ceph osd unpause
# unset pauserd,pausewr查看一个集群osd.2参数的配置
# ceph –admin-daemon /var/run/ceph/ceph-osd.2.asok config show | less======================PG组相关操作命令=======================
查看pg组的映射信息
# ceph pg dump查看一个PG的map[root@client ~]# ceph pg map 0.3f
osdmap e88 pg 0.3f (0.3f) -> up [0,2] acting [0,2]
#其中的[0,2]代表存储在osd.0、osd.2节点,osd.0代表主副本的存储位置查看PG状态
[root@client ~]# ceph pg stat
v1164: 448 pgs: 448 active+clean; 10003 MB data, 23617 MB used, 37792 MB / 61410 MB avail查询一个pg的详细信息
[root@client ~]# ceph pg 0.26 query查看pg中stuck的状态
[root@client ~]# ceph pg dump_stuck unclean
ok
[root@client ~]# ceph pg dump_stuck inactive
ok
[root@client ~]# ceph pg dump_stuck stale
ok显示一个集群中的所有的pg统计
# ceph pg dump –format plain恢复一个丢失的pg
# ceph pg {pg-id} mark_unfound_lost revert显示非正常状态的pg
# ceph pg dump_stuck inactive|unclean|stale======================pool相关操作命令========================
查看ceph集群中的pool数量
[root@ceph-node1 ~]# ceph osd lspools
0 data,1 metadata,2 rbd,在ceph集群中创建一个pool
# ceph osd pool create kevin 100
这里的100指的是PG组,kevin是集群名称为一个ceph pool配置配额
# ceph osd pool set-quota data max_objects 10000在集群中删除一个pool(集群名字需要重复两次)
# ceph osd pool delete kevin kevin --yes-i-really-really-mean-it显示集群中pool的详细信息
[root@ceph-node1 ~]# rados df
pool name category KB objects clones degraded unfound rd rd KB wr wr KB
data - 475764704 116155 0 0 0 0 0 116379 475764704
metadata - 5606 21 0 0 0 0 0 314 5833
rbd - 0 0 0 0 0 0 0 0 0
total used 955852448 116176
total avail 639497596
total space 1595350044
[root@ceph-node1 ~]#给一个pool创建一个快照
[root@ceph-node1 ~]# ceph osd pool mksnap data date-snap
created pool data snap date-snap删除pool的快照
[root@ceph-node1 ~]# ceph osd pool rmsnap data date-snap
removed pool data snap date-snap查看data池的pg数量
[root@ceph-node1 ~]# ceph osd pool get data pg_num
pg_num: 64设置data池的最大存储空间为100T(默认是1T)
[root@ceph-node1 ~]# ceph osd pool set data target_max_bytes 100000000000000
set pool 0 target_max_bytes to 100000000000000设置data池的副本数是3
[root@ceph-node1 ~]# ceph osd pool set data size 3
set pool 0 size to 3设置data池能接受写操作的最小副本为2
[root@ceph-node1 ~]# ceph osd pool set data min_size 2
set pool 0 min_size to 2查看集群中所有pool的副本尺寸
[root@admin mycephfs]# ceph osd dump | grep 'replicated size'
pool 0 'data' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 26 owner 0 flags hashpspool crash_replay_interval 45 target_bytes 100000000000000 stripe_width 0
pool 1 'metadata' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1 owner 0 flags hashpspool stripe_width 0
pool 2 'rbd' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1 owner 0 flags hashpspool stripe_width 0设置一个pool的pg数量
[root@ceph-node1 ~]# ceph osd pool set data pg_num 100
set pool 0 pg_num to 100设置一个pool的pgp数量
[root@ceph-node1 ~]# ceph osd pool set data pgp_num 100
set pool 0 pgp_num to 100=================================rados指令====================================
查看ceph集群中有多少个pool (只是查看pool)
[root@ceph-node1 ~]# rados lspools
rbd
cephfs_data
cephfs_metadata查看ceph集群中有多少个pool,并且每个pool容量及利用情况
[root@ceph-node1 ~]# rados df
pool name                 KB      objects       clones     degraded      unfound           rd        rd KB           wr        wr KB
cephfs_data                0            0            0            0           0            0            0            0            0
cephfs_metadata           21           20            0            0           0            0            0           45           36
rbd                        0            0            0            0           0            0            0            0            0total used        15833064           20total avail       47044632total space       62877696创建一个pool,名称为kevin
[root@ceph-node1 ~]# rados mkpool kevin
successfully created pool kevin查看ceph pool中的ceph object (这里的object是以块形式存储的)
[root@ceph-node1 ~]# rados ls -p kevin|more创建一个对象object(下面的kevin是pool名称)
[root@ceph-node1 ~]# rados create kevin-object -p kevin
[root@ceph-node1 ~]# rados -p kevin ls
kevin-object删除一个对象
[root@ceph-node1 ~]# rados rm kevin-object -p kevin
[root@ceph-node1 ~]# rados -p kevin ls=================================rbd命令的用法=====================================
查看ceph中一个pool里的所有镜像
# rbd ls kevin     //kevin是一个pool名
或者
# rbd list kevin查看ceph pool中一个镜像的信息(kevin是pool名,zxy是镜像名)
[root@ceph ~]# rbd info -p kevin --image zxy在kevin池中创建一个命名为wangshibo的10000M的镜像
[root@ceph-node1 ~]# rbd create -p kevin --size 10000 zxy
[root@ceph-node1 ~]# rbd -p kevin info zxy                 //查看新建的镜像的信息
rbd image 'zxy':size 10000 MB in 2500 objectsorder 22 (4096 kB objects)block_name_prefix: rb.0.1079.2ae8944aformat: 1删除一个镜像
[root@ceph-node1 ~]# rbd rm -p kevin zxy
Removing image: 100% complete...done.调整一个镜像的尺寸(前提是zxy镜像已经创建并没有被删除)
[root@ceph-node1 ~]# rbd resize -p kevin --size 20000 zxy
Resizing image: 100% complete...done.查看调整后的zxy镜像大小
[root@ceph-node1 ~]# rbd -p kevin info zxy
rbd image 'zxy':size 20000 MB in 5000 objectsorder 22 (4096 kB objects)block_name_prefix: rb.0.107d.2ae8944aformat: 1给一个镜像创建一个快照(如下,池/镜像@快照 )
[root@ceph-node1 ~]# rbd snap create kevin/zxy@test查看快照
[root@ceph-node1 ~]# rbd info kevin/zxy@test
rbd image 'zxy':size 20000 MB in 5000 objectsorder 22 (4096 kB objects)block_name_prefix: rb.0.107d.2ae8944aformat: 1protected: False查看一个镜像文件的快照
[root@ceph-node1 ~]# rbd snap ls -p kevin zxy
SNAPID NAME             SIZE4 wangshibo123 20000 MB删除一个镜像文件的一个快照
[root@ceph-node1 ~]# rbd snap rm kevin/zxy@test
[root@ceph-node1 ~]# rbd snap ls -p kevin zxy        //test快照已经被删除如果发现不能删除显示的报错信息是此快照备写保护了,下面命令是删除写保护后再进行删除。
# rbd snap unprotect kevin/zxy@test
# rbd snap rm kevin/zxy@test删除一个镜像文件的所有快照
[root@ceph-node1 ~]# rbd snap purge -p kevin zxy
Removing all snapshots: 100% complete...done.把ceph pool中的一个镜像导出
[root@ceph-node1 ~]# rbd export -p kevin --image zxy
Exporting image: 100% complete...done.把一个镜像导入ceph中 (但是直接导入是不能用的,因为没有经过openstack,openstack是看不到的)
[root@ceph-node1 ~]# rbd import /root/ceph_test.img -p kevin --image zxy

Centos7安装ceph集群相关推荐

  1. 离线安装ceph集群(ceph-13.2.10)

    记录:332 场景:在CentOS 7.9操作系统上,使用ceph的rpm-mimic的ceph-13.2.10安装ceph集群.应用ceph对象存储(ceph object store):应用cep ...

  2. Ceph (2) - 安装Ceph集群方法 2:使用cephadm配置Nautilus版Ceph集群

    <OpenShift 4.x HOL教程汇总> 文章目录 安装环境说明 Ceph集群节点说明 Ceph集群主机环境说明 用cephadm部署Ceph集群 准备节点环境 设置环境变量 设置h ...

  3. Ceph (1) - 安装Ceph集群方法 1:使用ceph-deploy安装Nautilus版Ceph集群

    <OpenShift 4.x HOL教程汇总> 文章目录 环境说明 Ceph集群节点说明 Ceph集群主机环境说明 用ceph-deploy部署Ceph集群 准备节点环境 设置环境变量 设 ...

  4. Ceph (3) - 安装Ceph集群方法3:使用 ceph-ansible 离线安装 Red Hat Ceph Storage 4.1 集群

    <OpenShift 4.x HOL教程汇总> 文章目录 安装前说明 准备主机环境 创建虚拟主机并配置网络 配置主机名和域名 设置环境变量 设置主机hosts 配置免密登录 设置节点主机名 ...

  5. CentOS7安装k8s集群

    一.安装前准备 我准备了三台CentOS7.6 mini虚拟机 192.168.3.170 master 2核4G 192.168.3.171 node1 2核4G 192.168.3.172 nod ...

  6. CentOS7安装RabbitMQ集群

    实验环境 RabbitMQ 集群 server1.example.com    IP: 10.10.10.11    Node: disk server2.example.com    IP: 10. ...

  7. centos7安装flink集群_《从0到1学习Flink》—— Flink 写入数据到 Kafka

    前言 之前文章 <从0到1学习Flink>-- Flink 写入数据到 ElasticSearch 写了如何将 Kafka 中的数据存储到 ElasticSearch 中,里面其实就已经用 ...

  8. 手把手教你在centos7安装k8s集群

    最近在整理回顾k8s相关的知识,实操手动去搭建一个简易的k8s集群环境(作者本人搭建的是k8s集群version v1.23.3),花了挺多时间,踩了不少坑.不过最终还是把环境跑起来了,大家按照我的方 ...

  9. centos7安装hadoop集群

    一.准备工作 准备3台centOS 7 虚拟机的安装我这边就不写了,给两个教程链接把: centOS7安装教程:https://www.centos.net.cn/archive/1518 centO ...

最新文章

  1. 127 - Accordian Patience
  2. Qt中的缓冲区QBuffer
  3. 腾讯下载的视频转换为MP4
  4. java redis快速入门_SpringDataRedis快速入门
  5. leetcode @python 120. Triangle
  6. mysql bit php,Bit Web Server (PHP,MySQL,PMA) 安卓WEB服务器
  7. 手写简化版printf函数
  8. 文字和表单(checkbox/radio)元素垂直对齐方法,兼容Firefox和IE。
  9. php 投票评选插件,jQuery_投票系统显示结果--jQuery插件,投票系统是网站中十分常见的 - phpStudy...
  10. neatupload上传文件配置
  11. 计算机网络自顶向下方法 第六章 复习题答案
  12. Office 之将 PPT 图片完美插入 Word
  13. (1)前言-JsDroid引流脚本混合式开发技术系列教程By飞云脚本学院
  14. 2021李林精讲精练880题 【数学二 解析分册】
  15. 大数据有哪些基本特征,有什么作用和用途?
  16. 数独高级算法,直接复制到网页,即可结题
  17. RK3399 Android7.1修改安兔兔等读到的cpu最大频率为1.992GHz
  18. 统计输入数据的个数、求和、平均值、方差、中位数
  19. Python面试题 附 答案
  20. 【uniapp】uniapp安卓APP在线自动升级功能

热门文章

  1. (二)CCD传感器1000帧(可调)采集,fpga主控,sdram存储 68013usb2.0传输到上位机保存显示:fpga逻辑程序
  2. 当代罪恶:山西黑砖窑
  3. 使用Pandas进行数据清洗
  4. 企业ERP实施之反思
  5. 电商项目中订单系统到底该怎么设计才好?(至尊典藏版)
  6. thinkcmf 去掉index.php,thinkcmf thinkphp隐藏后台地址
  7. 信息学奥赛一本通(C++版)NOIP提高组微信步数
  8. BIOS编译(e3845):MinnowBoard Max/Turbot 1.01 UEFI Firmware
  9. TLA+ TLC模型检查器使用指南(持续更新中)
  10. matlab 图像 高通滤波器,基于matlab数字图像处理之高通滤波器