创建RBD


ceph集群部署完成之后自带rbd接口,在客户端创建image作为块设备使用,至少需要一个pool。

先创建存储池:

ceph osd pool create rbdpool 64 64

启用rbd功能:

ceph osd pool application enable rbddata rbd

进行rbd初始化:在这个rbd空间中可以创建多个镜像image,每个image代表一个块设备

rbd pool init -p rbdpool

创建image:下面两种方式都可以

rbd create img1 --size 1024 --pool rbdpool
rbd create --size 1G rbdpool/img2

查看rbd:

rbd ls --pool rbdpool

查看详细信息:

rbd info img1 --pool rbdpool
rbd image 'img1':
	size 1 GiB in 256 objects
	order 22 (4 MiB objects)
	id: 85bc6b8b4567
	block_name_prefix: rbd_data.85bc6b8b4567
	format: 2
	features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
	op_features: 
	flags: 
	create_timestamp: Mon Jan  6 14:14:31 2020

删除image:

rbd rm img1 --pool rbdpool


启用radosgw接口


是类似于OSS的存储,会自动在初始化时创建存储池来,需要运行服务,默认是个pool。

[cephadm@ceph01 ceph-cluster]$ ceph-deploy rgw create ceph03

启动好之后可以使用浏览器访问:会显示一些xml信息

http://192.168.1.32:7480/

RGW会创建一系列的存储池:

]$ ceph osd pool ls
.rgw.root
default.rgw.control
default.rgw.meta
default.rgw.log


启用CephFS


CephFS需要至少运行一个元数据服务器MDS的守护进程metadata server,至少两个pool。

启动MDS服务:

ceph-deploy mds create ceph02

查看MDS状态:

]$ ceph mds stat
, 1 up:standby

创建元数据池:

ceph osd pool create cephfs-metadata 32 32

创建数据池:

ceph osd pool create cephfs-data 64 64

将数据池和元数据池关联:

ceph fs new cephfs cephfs-metadata cephfs-data

显示cephfs相关信息:

ceph fs status cephfs
cephfs - 0 clients
======
+------+--------+--------+---------------+-------+-------+
| Rank | State  |  MDS   |    Activity   |  dns  |  inos |
+------+--------+--------+---------------+-------+-------+
|  0   | active | ceph01 | Reqs:    0 /s |   10  |   13  |
+------+--------+--------+---------------+-------+-------+
+-----------------+----------+-------+-------+
|       Pool      |   type   |  used | avail |
+-----------------+----------+-------+-------+
| cephfs-metadata | metadata | 2286  | 32.0G |
|   cephfs-data   |   data   |    0  | 32.0G |
+-----------------+----------+-------+-------+
+-------------+
| Standby MDS |
+-------------+
+-------------+
MDS version: ceph version 13.2.8 (5579a94fafbc1f9cc913a0f5d362953a5d9c3ae0) mimic (stable)


常用状态信息查看


显示pg相关信息:

ceph pg stat

显示pool相关信息:

ceph osd pool stats

显示已用空间:

ceph df
GLOBAL:
    SIZE        AVAIL       RAW USED     %RAW USED 
    114 GiB     108 GiB      6.1 GiB          5.32 
POOLS:
    NAME                    ID     USED        %USED     MAX AVAIL     OBJECTS 
    32                      1          0 B         0        34 GiB           0 
    rbdpool                 2        133 B         0        34 GiB           5 
    .rgw.root               3      1.1 KiB         0        34 GiB           4 
    default.rgw.control     4          0 B         0        34 GiB           8 
    default.rgw.meta        5          0 B         0        34 GiB           0 
    default.rgw.log         6          0 B         0        34 GiB         175 
    cephfs-metadata         7      2.2 KiB         0        34 GiB          22 
    cephfs-data             8          0 B         0        34 GiB           0

显示更加详细的信息:

ceph df detail

查看osd的状态:

]$ ceph osd stat
6 osds: 6 up, 6 in; epoch: e85

跟详细的osd信息:

ceph osd dump

跟美观的方式显示osd信息:

]$ ceph osd tree
ID CLASS WEIGHT  TYPE NAME       STATUS REWEIGHT PRI-AFF 
-1       0.11151 root default                            
-3       0.03717     host ceph02                         
 0   hdd 0.01859         osd.0       up  1.00000 1.00000 
 3   hdd 0.01859         osd.3       up  1.00000 1.00000 
-5       0.03717     host ceph03                         
 1   hdd 0.01859         osd.1       up  1.00000 1.00000 
 4   hdd 0.01859         osd.4       up  1.00000 1.00000 
-7       0.03717     host ceph04                         
 2   hdd 0.01859         osd.2       up  1.00000 1.00000 
 5   hdd 0.01859         osd.5       up  1.00000 1.00000

查看mon信息:

ceph mon stat
ceph mon dump

显示仲裁状态:

ceph quorum_status


socket管理:

可以通过socket文件来管理:只能在socket的当前节点运行不能远程管理

ceph --admin-socket /var/run/ceph/ceph-mon.ceph04.asok help


停止或重启ceph集群


停止集群:

1、告知ceph集群不要将OSD标记为out

]$ ceph osd set noout
]$ ceph osd set nobackfill
]$ ceph osd set norecover

上面的步骤已经足够让ceph安全关闭了,但是如果还想让集群完全暂停的话还可以加上下面的设置,完全暂停的情况下看不到map数据更新。

]$ ceph osd set norebalance
]$ ceph osd set nodown
]$ ceph osd set pause

2、按如下顺序停止守护进程和节点

(1)存储客户端

(2)网关、如NFS Ganesha或对象网关Ceph radosgw

(3)Ceph MDS

(4)Ceph OSD

(5)Ceph Manager

(6)Ceph Monitor

systemctl stop ceph-radosgw.target
systemctl stop ceph-crash.service
systemctl stop ceph-mds.target
systemctl stop ceph-osd.target
systemctl stop ceph-mon.target
systemctl stop ceph-mgr.target
systemctl stop ceph.target


启动集群:

1、以停止顺序相反的过程。

(1)Ceph Monitor

(2)Ceph Manager

(3)Ceph OSD

(4)Ceph MDS

(5)Ceph radosgw

(6)存储客户端

2、删除noout等标志

关闭的时候加了暂停标志开启的时候也要去掉这些标志:

]$ ceph osd unset pause
]$ ceph osd unset nodown
]$ ceph osd unset norebalance

删除标志:

]$ ceph osd unset norecover
]$ ceph osd unset nobackfill
]$ ceph osd unset noout

查看集群:

ceph -s

官方维护文档:

https://ceph.com/planet/how-to-do-a-ceph-cluster-maintenance-shutdown/


ceph.conf配置文件


配置为ini格式,会加载多个配置文件,后面的配置如果相同会覆盖前面的配置,#号和分号都是注释。

[global]
fsid = 4866c43f-bb48-473c-8a41-373e57069690
public_network = 192.168.1.0/24
cluster_network = 192.168.2.0/24
mon_initial_members = ceph02
mon_host = 192.168.1.31
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

主要有以下几个配置段:

[global]
[osd]
[mon]
[client]

依次加载如下位置的环境变量:

$CEPH_CONF

-c path/path

/etc/ceph/ceph.conf

~/.ceph/config

./ceph.conf 用户当前工作目录

常用的元参数:一些变量直接替换为对应的值

$cluster:ceph集群名称

$type:当前服务的类型名称,如:osd或mon

$id:进程标识符,osd.0标识符为0

$host:守护进程所在的主机名

$name:$type.$id

进程运行时配置:在非关闭进程时的配置

获取帮助信息:

ceph daemon {daemon-type}.{id} help

例:

~]# ceph daemon osd.0 config get public_addr
{
    "public_addr": "192.168.1.31:0/0"
}

tell指令:injectagrs后面的为注入的参数

ceph tell {daemon-type}.{daemon id or *} injectargs --{name} {value} [--{name} {value}]

例:

ceph tell osd.0 injectargs '--debug-osd 0/5'

daemon set指令:

ceph daemon {daemon-type}.{id} set {name} {value}

例:

ceph osd.0 config set debug_osd 0/5