Skip to content

SES5: osd.redeploy fails for filestore -> bluestore #1826

@swiftgist

Description

@swiftgist

Description of Issue/Question

For anybody reading this, the workaround is to remove and deploy the osd as two steps.

The comparison in osd.is_incorrect is relying on the pillar. I don't see a quick fix for this.

Here's one example, although many existed in this particular installation. The grains are correct for

       25:
            ----------
            fsid:
                0f85b6ed-cedb-4296-b35e-3cead398f688
            partitions:
                ----------
                journal:
                    /dev/disk/by-id/wwn-0x50014ee2600a9932-part2
                osd:
                    /dev/disk/by-id/wwn-0x50014ee2600a9932-part1

and lists a filestore OSD. Here are the corresponding snipped logs from an osd.redeploy run

[INFO    ] Partition: /dev/disk/by-id/wwn-0x50014ee2600a9932-part1
[INFO    ] readlink -f /dev/disk/by-id/wwn-0x50014ee2600a9932-part1
[DEBUG   ] '/dev/sdad1'
[DEBUG   ] ''
[DEBUG   ] splitting partition /dev/sdad1
[INFO    ] ID: 25
[INFO    ] Disk: /dev/sdad
...
[INFO    ] No journal specified for /dev/sdad
[DEBUG   ] OSD config: 
{'capacity': '3726 GB',
 'db': None,
 'db_size': None,
 'device': '/dev/sdad',
 'disk_format': 'bluestore',
 'encryption': False,
 'journal': False,
 'journal_size': '5242880K',
 'size': 4000787030016,
 'small': False,
 'tli': {'/dev/sda': {'format': 'bluestore'},
         '/dev/sdaa': {'format': 'bluestore'},
         '/dev/sdab': {'format': 'bluestore'},
         '/dev/sdac': {'format': 'bluestore'},
         '/dev/sdad': {'format': 'bluestore'},
         '/dev/sdae': {'format': 'bluestore'},
...

The is_incorrect uses the OSDConfig which inspects the pillar and not the actual disk. The pillar part is

               /dev/disk/by-id/wwn-0x50014ee2600a9932:
                    ----------
                    format:
                        bluestore

The end result is that all disks come back as "bluestore" which matches the desired configuration, so no OSD gets removed and recreated. The disk_format and journal above are correct for the pillar, but not the actual OSD.

This is related to bnc:1157549.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions