Mailinglist Archive: opensuse-features (368 mails)

< Previous Next >
[openFATE 305584] Do not assume fixed and contiguous device numbers in installation and management tools for storage
  • From: fate_noreply@xxxxxxx
  • Date: Wed, 3 Jun 2009 10:31:24 +0200 (CEST)
  • Message-id: <feature-305584-16@xxxxxxxxxxxxxx>
Feature changed by: Arvin Schnell (aschnell)
Feature #305584, revision 16
Title: Do not assume fixed and contiguous device numbers in
installation and management tools for storage

openSUSE-11.2: Rejected by Christoph Thiel (cthiel1)
reject date: 2009-06-03 08:25:13
reject reason: No resources in YaST team for this in 11.2.
Requester: Mandatory
Projectmanager: Important

openSUSE-11.3: Evaluation
Requester: Mandatory
Projectmanager: Important

Requested by: Matthias Eckermann (mge1512)
Requested by: Tejun Heo (teheo)

Subject: [Research] head up on upcoming extended block devt change
From: Tejun Heo <tj@xxxxxxxxxx>
Date: Thu, 18 Dec 2008 12:59:21 +0900
Reply-To: research@xxxxxxx
Hello, all.
From soon to be released 2.6.28, the kernel contains extended block
devt support, which basically allocates block device numbers
dynamically from major number 259 (might expand to other major numbers
if ever necessary). This means that device numbers belonging to the
same device become non-contiguous and can be on different major
This will remove the 15 partition limit on /dev/sdX's and increase the
total number of supported SCSI disks considerably. Also, it's used by
md to allow partitioning of /dev/mdX's thus removing the distinction
of partitionable and non-partitionable md devices.
For example, /dev/sda with 60 partitions can look like as follows.
# cat /proc/partitions
major minor #blocks name
8 0 156290904 sda
8 1 8001 sda1
8 2 8032 sda2
8 3 8032 sda3
8 4 1 sda4
8 15 8001 sda15
259 0 8001 sda16
259 1 8001 sda17
259 2 8001 sda18
259 43 8001 sda59
259 44 8001 sda60
For detailed overview, please take a look at the following message.
As device node creation is completely dynamic these days, installed
systems usually can cope fine with this change; however, in
installation and management tools, there seem to be many places which
assume fixed and contiguous device numbers.
To ease hunting down those areas, a debug option is available which
forces every block device to be allocated on the dynamic major
non-consecutively. With the debug option turned on, the above disk
will look like the following.
# cat /proc/partitions
major minor #blocks name
8 0 156290904 sda
259 262144 8001 sda1
259 786432 8032 sda2
259 131072 8032 sda3
259 655360 1 sda4
259 393216 8001 sda5
259 917504 8001 sda6
259 65536 8001 sda7
259 114688 8001 sda55
259 638976 8001 sda56
259 376832 8001 sda57
259 901120 8001 sda58
259 245760 8001 sda59
259 770048 8001 sda60
So, the installation / management tools need to follow
/sys/block/*/device/driver to determine which type of device it is and
use /sys/block/*/dev to determine its device number.
I'll add a kernel parameter (say, block.force_ext_devt) so that this
debug option can be turned on and off during boot so that people who
don't work on related subsystems don't have to suffer.
I'm not sure how and when to proceed with this yet but I definitely
think we'll need plenty of time to sort this out completely. Any
ideas on how to proceed on this?

#1: Tejun Heo (teheo) (2008-12-22 13:31:11)
So... when and how do we proceed with things like this? I wanna enable
it in HEAD but SLES11 hasn't branched out from HEAD yet but I don't
think we should wait till SLES11 is released.

#2: Matthias Eckermann (mge1512) (2008-12-22 10:24:58) (reply to #1)
SLE 11 has precedence over anything else we currently do - with respect
to focus and time spent on it. Thus we should concentrate on SLE 11 and
wait with those changes after release of SLE 11. There are more than
enough P1 and P2 issues with the SLE 11 kernel to work on, ...

#3: Vojtech Pavlik (vojtech_pavlik) (2008-12-22 12:14:19)
I agree, Matthias, and I see no reason why this couldn't wait until
SLES11 branches out of HEAD.

#4: Tejun Heo (teheo) (2008-12-23 11:52:19)
Alright, then. I'll enable it when SLES11 branches out. Thanks.

#5: Tejun Heo (teheo) (2009-05-29 16:55:23)
Added genhd.mangle_devt parameter and enabled DEBUG_BLOCK_EXT_DEVT for
all configs except for vanilla's and ppc/ps3. Ext major and mangled
minor can be enabled by specifying "genhd.mangle_devt=1" as kernel
parameter. Have fun. :-)

#7: Christoph Thiel (cthiel1) (2009-06-03 08:26:09) (reply to #5)
Tejun, IIUC the options you put in, don't break anything unless genhd.
mangle_devt=1 on kernel cmdline? We won't be able to complete the YaST
part of this for 11.2.

#8: Tejun Heo (teheo) (2009-06-03 15:35:12) (reply to #7)
Yeap, the kernel will behave exactly the same as before if the
parameter isn't specified. Also, we can disable DEBUG_BLOCK_EXT_DEVT
when we're nearing SL112 release (maybe when we enter beta). For now,
I'll leave it there in case someone wants to play with it. Maybe it's
wise to schedule dev resource so that SL113 can have it implemented?

+ #9: Arvin Schnell (aschnell) (2009-06-03 10:30:47) (reply to #8)
+ I don't expect major problems from the mangled node numbers in YaST.
+ For the partitioner the main work is to change the maximal number of
+ partitions for disks and handling it everywhere (from lib to UI).

openSUSE Feature:

< Previous Next >
This Thread