Hi

 

I am checking LP183-736

https://bugs.launchpad.net/starlingx/+bug/1830736

 

I find if provision a storage node with add dedicated journal disk with such command, starlingx will assign journal to all osds on this storage node.

system host-stor-add storage-0 journal 7cbc9885-476c-4ad2-9058-466f1e0f9667
system host-stor-add storage-0 osd 46393030-acbf-43f4-8ca9-f705f65bf457 --tier-uuid 4c672ca9-7c4b-472a-b049-eac115c8aef9

 

But after unlock, when as journal path has not been set to ceph:osds in osd.pp, osd will be created with journal this the same disk, for example, /dev/sdc will use /dev/sdc1 or /dev/sdc2 as journal, not journal from /dev/sdb ,which dedicated journal disk with host-strorage-add. Which make this bug.

 

class platform::ceph::osds(

  $osd_config = {},

  $journal_config = {},

) inherits ::platform::ceph::params {

 

  # skip_osds_during_restore is set to true when the default primary

  # ceph backend "ceph-store" has "restore" as its task and it is

  # not an AIO system.

  if ! $skip_osds_during_restore {

    file { '/var/lib/ceph/osd':

      ensure => 'directory',

      path   => '/var/lib/ceph/osd',

      owner  => 'root',

      group  => 'root',

      mode   => '0755',

    }

 

    # Ensure ceph.conf is complete before configuring OSDs

    Class['::ceph'] -> Platform_ceph_osd <| |>

 

    # Journal disks need to be prepared before the OSDs are configured

    Platform_ceph_journal <| |> -> Platform_ceph_osd <| |>

    # Crush locations in ceph.conf need to be set before the OSDs are configured

    Osd_crush_location <| |> -> Platform_ceph_osd <| |>

 

    # default configuration for all ceph object resources

    Ceph::Osd {

      cluster => $cluster_name,

      cluster_uuid => $cluster_uuid,

      journal => “missing journal disk path”   # which make this issue

    }

 

    create_resources('osd_crush_location', $osd_config)

    create_resources('platform_ceph_osd', $osd_config)

    create_resources('platform_ceph_journal', $journal_config)

  }

}

 

My question is how to set journal path to class ceph::osd?  Request advice from puppet expert.

 

Journal path in /opt/platform/puppet/19.01/hieradata/<storage ip>.yaml

platform::ceph::osds::osd_config:

  stor-10:

    data_path: !!python/unicode '/dev/disk/by-path/pci-0000:00:17.0-ata-6.0-part1'

    disk_path: !!python/unicode '/dev/disk/by-path/pci-0000:00:17.0-ata-6.0'

    journal_path: !!python/unicode '/dev/disk/by-path/pci-0000:00:17.0-ata-2.0-part1'

    osd_id: 0

    osd_uuid: !!python/unicode 'a5a0c4c6-207e-408e-a0dd-a7b385f8bab1'

    tier_name: !!python/unicode 'storage'

 

Thanks!

 

Martin, Chen

SSP, Software Engineer

021-61164330