list
This subcommand will list any devices (logical and physical) that may be associated with a Ceph cluster, as long as they contain enough metadata to allow for that discovery.
Output is grouped by the OSD ID associated with the devices, and unlike
ceph-disk
it does not provide any information for devices that aren’t
associated with Ceph.
Command line options:
--format
Allows ajson
orpretty
value. Defaults topretty
which will group the device information in a human-readable format.
Full Reporting
When no positional arguments are used, a full reporting will be presented. This means that all devices and logical volumes found in the system will be displayed.
Full pretty
reporting for two OSDs, one with a lv as a journal, and another
one with a physical device may look similar to:
# ceph-volume lvm list
====== osd.1 =======
[journal] /dev/journals/journal1
journal uuid C65n7d-B1gy-cqX3-vZKY-ZoE0-IEYM-HnIJzs
osd id 1
cluster fsid ce454d91-d748-4751-a318-ff7f7aa18ffd
type journal
osd fsid 661b24f8-e062-482b-8110-826ffe7f13fa
data uuid SlEgHe-jX1H-QBQk-Sce0-RUls-8KlY-g8HgcZ
journal device /dev/journals/journal1
data device /dev/test_group/data-lv2
devices /dev/sda
[data] /dev/test_group/data-lv2
journal uuid C65n7d-B1gy-cqX3-vZKY-ZoE0-IEYM-HnIJzs
osd id 1
cluster fsid ce454d91-d748-4751-a318-ff7f7aa18ffd
type data
osd fsid 661b24f8-e062-482b-8110-826ffe7f13fa
data uuid SlEgHe-jX1H-QBQk-Sce0-RUls-8KlY-g8HgcZ
journal device /dev/journals/journal1
data device /dev/test_group/data-lv2
devices /dev/sdb
====== osd.0 =======
[data] /dev/test_group/data-lv1
journal uuid cd72bd28-002a-48da-bdf6-d5b993e84f3f
osd id 0
cluster fsid ce454d91-d748-4751-a318-ff7f7aa18ffd
type data
osd fsid 943949f0-ce37-47ca-a33c-3413d46ee9ec
data uuid TUpfel-Q5ZT-eFph-bdGW-SiNW-l0ag-f5kh00
journal device /dev/sdd1
data device /dev/test_group/data-lv1
devices /dev/sdc
[journal] /dev/sdd1
PARTUUID cd72bd28-002a-48da-bdf6-d5b993e84f3f
For logical volumes the devices
key is populated with the physical devices
associated with the logical volume. Since LVM allows multiple physical devices
to be part of a logical volume, the value will be comma separated when using
pretty
, but an array when using json
.
Note
Tags are displayed in a readable format. The osd id
key is stored
as a ceph.osd_id
tag. For more information on lvm tag conventions
see Tag API
Single Reporting
Single reporting can consume both devices and logical volumes as input (positional parameters). For logical volumes, it is required to use the group name as well as the logical volume name.
For example the data-lv2
logical volume, in the test_group
volume group
can be listed in the following way:
# ceph-volume lvm list test_group/data-lv2
====== osd.1 =======
[data] /dev/test_group/data-lv2
journal uuid C65n7d-B1gy-cqX3-vZKY-ZoE0-IEYM-HnIJzs
osd id 1
cluster fsid ce454d91-d748-4751-a318-ff7f7aa18ffd
type data
osd fsid 661b24f8-e062-482b-8110-826ffe7f13fa
data uuid SlEgHe-jX1H-QBQk-Sce0-RUls-8KlY-g8HgcZ
journal device /dev/journals/journal1
data device /dev/test_group/data-lv2
devices /dev/sdc
Note
Tags are displayed in a readable format. The osd id
key is stored
as a ceph.osd_id
tag. For more information on lvm tag conventions
see Tag API
For plain disks, the full path to the device is required. For example, for
a device like /dev/sdd1
it can look like:
# ceph-volume lvm list /dev/sdd1
====== osd.0 =======
[journal] /dev/sdd1
PARTUUID cd72bd28-002a-48da-bdf6-d5b993e84f3f
json
output
All output using --format=json
will show everything the system has stored
as metadata for the devices, including tags.
No changes for readability are done with json
reporting, and all
information is presented as-is. Full output as well as single devices can be
listed.
For brevity, this is how a single logical volume would look with json
output (note how tags aren’t modified):
# ceph-volume lvm list --format=json test_group/data-lv1
{
"0": [
{
"devices": ["/dev/sda"],
"lv_name": "data-lv1",
"lv_path": "/dev/test_group/data-lv1",
"lv_tags": "ceph.cluster_fsid=ce454d91-d748-4751-a318-ff7f7aa18ffd,ceph.data_device=/dev/test_group/data-lv1,ceph.data_uuid=TUpfel-Q5ZT-eFph-bdGW-SiNW-l0ag-f5kh00,ceph.journal_device=/dev/sdd1,ceph.journal_uuid=cd72bd28-002a-48da-bdf6-d5b993e84f3f,ceph.osd_fsid=943949f0-ce37-47ca-a33c-3413d46ee9ec,ceph.osd_id=0,ceph.type=data",
"lv_uuid": "TUpfel-Q5ZT-eFph-bdGW-SiNW-l0ag-f5kh00",
"name": "data-lv1",
"path": "/dev/test_group/data-lv1",
"tags": {
"ceph.cluster_fsid": "ce454d91-d748-4751-a318-ff7f7aa18ffd",
"ceph.data_device": "/dev/test_group/data-lv1",
"ceph.data_uuid": "TUpfel-Q5ZT-eFph-bdGW-SiNW-l0ag-f5kh00",
"ceph.journal_device": "/dev/sdd1",
"ceph.journal_uuid": "cd72bd28-002a-48da-bdf6-d5b993e84f3f",
"ceph.osd_fsid": "943949f0-ce37-47ca-a33c-3413d46ee9ec",
"ceph.osd_id": "0",
"ceph.type": "data"
},
"type": "data",
"vg_name": "test_group"
}
]
}
Synchronized information
Before any listing type, the lvm API is queried to ensure that physical devices
that may be in use haven’t changed naming. It is possible that non-persistent
devices like /dev/sda1
could change to /dev/sdb1
.
The detection is possible because the PARTUUID
is stored as part of the
metadata in the logical volume for the data lv. Even in the case of a journal
that is a physical device, this information is still stored on the data logical
volume associated with it.
If the name is no longer the same (as reported by blkid
when using the
PARTUUID
), the tag will get updated and the report will use the newly
refreshed information.