All of lore.kernel.org
 help / color / mirror / Atom feed
From: Loic Dachary <loic@dachary.org>
To: Ilya Dryomov <idryomov@gmail.com>
Cc: Ceph Development <ceph-devel@vger.kernel.org>
Subject: Re: /sys/block and /dev and partitions
Date: Sun, 16 Aug 2015 00:10:22 +0200	[thread overview]
Message-ID: <55CFB8CE.10508@dachary.org> (raw)
In-Reply-To: <CAOi1vP--kcWVtWoFCWqgmuB+A0vUX8E3pxoFbVQbTQuLn6hW2Q@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2600 bytes --]



On 16/08/2015 00:00, Ilya Dryomov wrote:
> On Sat, Aug 15, 2015 at 11:56 PM, Loic Dachary <loic@dachary.org> wrote:
>> Hi Ilya,
>>
>> On 15/08/2015 19:42, Ilya Dryomov wrote:
>>> On Sat, Aug 15, 2015 at 6:35 PM, Loic Dachary <loic@dachary.org> wrote:
>>>> Hi Sage,
>>>>
>>>> On 15/08/2015 16:28, Sage Weil wrote:
>>>>> On Sat, 15 Aug 2015, Loic Dachary wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Is there a portable and consistent way to figure out if a given /dev/XXX
>>>>>> path (for instance /dev/dm-1) is a partition of a whole device ?
>>>>>> Although checking /sys/block/dm-1/dm/name for a number at the end (like
>>>>>> mpatha1 or mpatha2) would probably work, it feels like a fragile hack.
>>>>>> Looking into /sys/block/dm-1/slaves will lead to
>>>>>> /sys/block/dm-1/slaves/dm-0 and we can check that
>>>>>> /sys/block/dm-*/subsystem is class/block. But that does not necessarily
>>>>>> mean dm-1 is a partition of dm-0, just that it's a slave of dm-0.
>>>>>
>>>>> Take a look at is_partition in ceph-disk, whih is the best I came up with.
>>>>> Basically it checks if the device name appears as /sys/block/*/$foo...
>>>
>>> For regular devices, you can access() /sys/dev/block/maj:min/partition.
>>> If it's there, it's a partition - no need to iterate over /sys/block.
>>
>> I added http://tracker.ceph.com/issues/12706 for when someone has time to rework that part of the code.
>>
>>>
>>>>
>>>> That is consistently updated for /dev/sdb or /dev/vdb but things are different when using multipath. I'll rely on /sys/block/dm-?/dm/name instead until a better solution is found.
>>>
>>> A better way might be to rely on the fact that a dm partition will
>>> necessarily have its uuid prefixed by "part".  In that case, it should
>>> be safe to assume that the thing in slaves is a whole disk - I think
>>> that's what various util-linux tools do.  However, IIRC the dm uuid is
>>> optional, so that won't work on a dm device without a uuid.
>>
>> It looks like multipath on both CentOS 7 and Ubuntu 14.04 set the uuid in this way.
>>
>> Is it also safe to assume that if the uuid is:
>>
>> $ cat /sys/dev/block/253:?/dm/uuid
>> mpath-353333330000007d0
>> part1-mpath-353333330000007d0
>> part2-mpath-353333330000007d0
>>
>> it means these were created by multipath because of the mpath ? When asking dmsetup with:
> 
> Yes, I think so.  I'm pretty sure these "part<id>-" and "mpath-"
> prefixes were devised for exactly this purpose.
> 

Excellent !

> Thanks,
> 
>                 Ilya
> 

-- 
Loïc Dachary, Artisan Logiciel Libre


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

  reply	other threads:[~2015-08-15 22:10 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-15 11:16 /sys/block and /dev and partitions Loic Dachary
2015-08-15 14:28 ` Sage Weil
2015-08-15 15:35   ` Loic Dachary
2015-08-15 17:42     ` Ilya Dryomov
2015-08-15 20:56       ` Loic Dachary
2015-08-15 22:00         ` Ilya Dryomov
2015-08-15 22:10           ` Loic Dachary [this message]
2015-08-17 21:46             ` Loic Dachary
2015-08-18  9:53               ` Ilya Dryomov
2015-08-18 10:13                 ` Loic Dachary

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55CFB8CE.10508@dachary.org \
    --to=loic@dachary.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=idryomov@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.