0%

CEPH-VOLUME

CEPH-VOLUME

使用pluggable(可插拔)工具将 OSDs 与 lvm 或physical disks等不同的device技术部署在一起(lvm本身被视为plugin), 并尝试采用predictable、robust的方法来preparing、activating和starting OSDs。

Overview|Plugin Guide

Command Line Subcommands

目前支持lvm,以及已经使用ceph-disk部署的普通磁盘(带有GPT分区)。

Node inventory

inventory子命令提供有关节点物理磁盘inventory(清单)的信息和元数据。

MIGRATING

从Ceph版本13.0.0开始,不推荐使用ceph-disk。弃用警告中的link会链接到此页面。强烈建议用户开始使用ceph-volume。有两种迁移途径:

1、保留使用ceph-disk部署的OSD:simple 命令在禁用ceph-disk触发的同时,提供了接管管理的方法。

2、用ceph-volume重新部署现存的OSD:详细信息请参照 Replacing an OSD

有关为何删除ceph-disk的详细信息,请参阅Why was ceph-disk replaced? 章节。

NEW DEPLOYMENTS

对于新的部署,推荐使用lvm,它可以使用任何logical volume作为data OSD 的输入, 也可以从device中设置minimal/naive logical volume。

EXISTING OSDS

如果群集已经具有ceph-disk提供的OSDs,则ceph-volume可以用simple的方式接管。在data device或OSD directory上完成扫描,并且ceph-disk被完全禁用。完全支持加密。

LVM

实现此功能需要通过lvm子命令来部署OSDs:ceph-volume lvm

Command Line Subcommands

prepare

prepare

该子命令允许filestorebluestore设置。 建议在使用ceph-volume lvm之前预先配置逻辑卷。除添加额外元数据外,逻辑卷不会改变。

为了帮助识别volumes,preparing的过程中该工具使用LVM tags分配一些元数据信息。

LVM tags使volume易于发现,帮助识别它们作为Ceph系统的一部分,扮演着什么角色(journal, filestore, bluestore, etc…)

虽然最初支持filestore(默认情况下支持),但可以使用以下命令指定:

FILESTORE

这是OSD backend,允许为filestore objectstore OSD 准备逻辑卷。

它可以使用逻辑卷作为OSD data和带分区的physical device或逻辑卷作为journal。除了遵循data和journal的最小大小要求外,这些卷不需要特殊准备。

API调用如下所示:

1
ceph-volume lvm prepare --filestore --data volume_group/lv_name --journal journal

启用encryption(加密),需要使用–dmcrypt标志:

1
ceph-volume lvm prepare --filestore --dmcrypt --data volume_group/lv_name --journal journal

activate

create

list

Internal functionality

lvm子命令的其他部分是internal的,不向用户公开,这些部分解释了如何协同工作,阐明了工具的工作流程。

Systemd Units | lvm

SIMPLE

实现此功能需要通过simple子命令来管理OSD:ceph-volume simple

Command Line Subcommands

通过接管管理,它会disable所有用于在startup时触发device的ceph-disk systemd units,依赖基本的(可定制的)JSON配置和systemd来启动OSD。

此过程包括两个步骤:

1、Scan(扫描)正在运行的OSD或data device

2、Activate(激活)扫描的OSD

扫描将推断出ceph-volume启动OSD所需的所有内容,因此当需要激活时,OSD可以正常启动而不会受到来自ceph-disk的干扰。

作为激活过程的一部分,负责对udev事件作出反应的ceph-disk的systemd units链接到/dev/null,以便它们完全处于非活动状态。

备注

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
ceph-volume lvm(使用LVM和LVM-based技术,像dmcache去部署OSD)
1、activate Discover and mount the LVM device associated with an OSD ID and start the Ceph OSD(Discover并mount与OSD ID关联的LVM设备,然后启动Ceph OSD)
2、prepare Format an LVM device and associate it with an OSD(Format LVM device并将其与OSD关联)
3、create Create a new OSD from an LVM device(从LVM device创建新的OSD)
4、list list logical volumes and devices associated with Ceph(列出与Ceph相关的logical volumes和devices)
5、batch Automatically size devices for multi-OSD provisioning with minimal interaction(自动调整devices大小,以最少的交互进行多OSD配置)
6、trigger systemd helper to activate an OSD(systemd助手来激活OSD)
7、zap Removes all data and filesystems from a logical volume or partition.(从logical volume或分区中删除所有数据和文件系统。)

ceph-volume simple(使用ceph-volume管理已部署的OSD)
1、trigger systemd helper to activate an OSD(systemd助手来激活OSD)
2、activate Enable systemd units to mount configured devices and start a Ceph OSD(使systemd units可以mount已配置的devices,并启动Ceph OSD)
3、scan Capture metadata from all running ceph-disk OSDs, OSD data partition or directory(从所有正在运行的ceph-disk OSDs,OSD数据分区或目录中捕获元数据)

例如:
# ceph-volume simple scan
执行命令后,会生成类似/etc/ceph/osd/0-ab0a204a-42e3-4a47-ab4c-0888edf429cb.json文件,文件内容为:
{
"active": "ok",
"block": {
"path": "/dev/disk/by-partuuid/0818811f-d70e-4ff0-91c9-58cd701c9a19",
"uuid": "0818811f-d70e-4ff0-91c9-58cd701c9a19"
},
"block_uuid": "0818811f-d70e-4ff0-91c9-58cd701c9a19",
"bluefs": 1,
"ceph_fsid": "c4051efa-1997-43ef-8497-fb02bdf08233",
"cluster_name": "ceph",
"data": {
"path": "/dev/vdc1",
"uuid": "ab0a204a-42e3-4a47-ab4c-0888edf429cb"
},
"fsid": "ab0a204a-42e3-4a47-ab4c-0888edf429cb",
"keyring": "AQB1FLFdXVHVARAARTKkxT1xgrDNU/QECUqdxA==",
"kv_backend": "rocksdb",
"magic": "ceph osd volume v026",
"mkfs_done": "yes",
"ready": "ready",
"systemd": "",
"type": "bluestore",
"whoami": 0
}

# ceph-volume simple activate --all
--> activating OSD specified in /etc/ceph/osd/1-fe327306-54a4-4362-870d-92d28cf65e42.json
Running command: ln -snf /dev/vdc2 /var/lib/ceph/osd/ceph-1/block
Running command: chown -R ceph:ceph /dev/vdc2
Running command: systemctl enable ceph-volume@simple-1-fe327306-54a4-4362-870d-92d28cf65e42
Running command: ln -sf /dev/null /etc/systemd/system/ceph-disk@.service
--> All ceph-disk systemd units have been disabled to prevent OSDs getting triggered by UDEV events
Running command: systemctl enable --runtime ceph-osd@1
Running command: systemctl start ceph-osd@1
--> Successfully activated OSD 1 with FSID fe327306-54a4-4362-870d-92d28cf65e42

ceph-volume inventory(获取此节点可用的disk清单)
例如:
ceph-volume inventory
Device Path Size rotates available Model name
/dev/vdb 64.00 MB True True
/dev/vdc 50.00 GB True True
/dev/vda 100.00 GB True False