[Starlingx-discuss] question about ceph.pp

Chen, Haochuan Z haochuan.z.chen at intel.com
Fri Aug 23 02:00:49 UTC 2019


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.starlingx.io/pipermail/starlingx-discuss/attachments/20190823/4776b231/attachment.html>


More information about the Starlingx-discuss mailing list