<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hi<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am checking LP183-736<o:p></o:p></p>
<p class="MsoNormal"><a href="https://bugs.launchpad.net/starlingx/+bug/1830736">https://bugs.launchpad.net/starlingx/+bug/1830736</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Courier New";color:#333333;background:white">system host-stor-add storage-0 journal 7cbc9885-476c-4ad2-9058-466f1e0f9667</span><span style="font-size:9.0pt;font-family:"Courier New";color:#333333"><br>
<span style="background:white">system host-stor-add storage-0 osd 46393030-acbf-43f4-8ca9-f705f65bf457 --tier-uuid 4c672ca9-7c4b-472a-b049-eac115c8aef9</span></span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">class platform::ceph::osds(<o:p></o:p></p>
<p class="MsoNormal">  $osd_config = {},<o:p></o:p></p>
<p class="MsoNormal">  $journal_config = {},<o:p></o:p></p>
<p class="MsoNormal">) inherits ::platform::ceph::params {<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  # skip_osds_during_restore is set to true when the default primary<o:p></o:p></p>
<p class="MsoNormal">  # ceph backend "ceph-store" has "restore" as its task and it is<o:p></o:p></p>
<p class="MsoNormal">  # not an AIO system.<o:p></o:p></p>
<p class="MsoNormal">  if ! $skip_osds_during_restore {<o:p></o:p></p>
<p class="MsoNormal">    file { '/var/lib/ceph/osd':<o:p></o:p></p>
<p class="MsoNormal">      ensure => 'directory',<o:p></o:p></p>
<p class="MsoNormal">      path   => '/var/lib/ceph/osd',<o:p></o:p></p>
<p class="MsoNormal">      owner  => 'root',<o:p></o:p></p>
<p class="MsoNormal">      group  => 'root',<o:p></o:p></p>
<p class="MsoNormal">      mode   => '0755',<o:p></o:p></p>
<p class="MsoNormal">    }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    # Ensure ceph.conf is complete before configuring OSDs<o:p></o:p></p>
<p class="MsoNormal">    Class['::ceph'] -> Platform_ceph_osd <| |><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    # Journal disks need to be prepared before the OSDs are configured<o:p></o:p></p>
<p class="MsoNormal">    Platform_ceph_journal <| |> -> Platform_ceph_osd <| |><o:p></o:p></p>
<p class="MsoNormal">    # Crush locations in ceph.conf need to be set before the OSDs are configured<o:p></o:p></p>
<p class="MsoNormal">    Osd_crush_location <| |> -> Platform_ceph_osd <| |><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    # default configuration for all ceph object resources<o:p></o:p></p>
<p class="MsoNormal">    Ceph::Osd {<o:p></o:p></p>
<p class="MsoNormal">      cluster => $cluster_name,<o:p></o:p></p>
<p class="MsoNormal">      cluster_uuid => $cluster_uuid,<o:p></o:p></p>
<p class="MsoNormal">      <b><span style="color:red">journal => “missing journal disk path”   # which make this issue</span><o:p></o:p></b></p>
<p class="MsoNormal">    }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    create_resources('osd_crush_location', $osd_config)<o:p></o:p></p>
<p class="MsoNormal">    create_resources('platform_ceph_osd', $osd_config)<o:p></o:p></p>
<p class="MsoNormal">    create_resources('platform_ceph_journal', $journal_config)<o:p></o:p></p>
<p class="MsoNormal">  }<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My question is how to set journal path to class ceph::osd?  Request advice from puppet expert.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Journal path in /opt/platform/puppet/19.01/hieradata/<storage ip>.yaml<o:p></o:p></p>
<p class="MsoNormal">platform::ceph::osds::osd_config:<o:p></o:p></p>
<p class="MsoNormal">  stor-10:<o:p></o:p></p>
<p class="MsoNormal">    data_path: !!python/unicode '/dev/disk/by-path/pci-0000:00:17.0-ata-6.0-part1'<o:p></o:p></p>
<p class="MsoNormal">    disk_path: !!python/unicode '/dev/disk/by-path/pci-0000:00:17.0-ata-6.0'<o:p></o:p></p>
<p class="MsoNormal"><span style="color:red">    journal_path: !!python/unicode '/dev/disk/by-path/pci-0000:00:17.0-ata-2.0-part1'<o:p></o:p></span></p>
<p class="MsoNormal">    osd_id: 0<o:p></o:p></p>
<p class="MsoNormal">    osd_uuid: !!python/unicode 'a5a0c4c6-207e-408e-a0dd-a7b385f8bab1'<o:p></o:p></p>
<p class="MsoNormal">    tier_name: !!python/unicode 'storage'<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Martin, Chen<o:p></o:p></p>
<p class="MsoNormal">SSP, Software Engineer<o:p></o:p></p>
<p class="MsoNormal">021-61164330<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>