Bug 27248 - [FR] avoid adding extra raid* modules
Summary: [FR] avoid adding extra raid* modules
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: make-initrd (show other bugs)
Version: unstable
Hardware: all Linux
: P3 enhancement
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-04-20 15:16 MSK by Michael Shigorin
Modified: 2012-05-08 12:57 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Shigorin 2012-04-20 15:16:56 MSK
(выделил из bug #27229)

> > > > добавляются модули для всех уровней RAID, хотя достаточно одного.
> > > [...] пока не придумал способа правильно детектить нужный модуль.
> > /sys/block/md$THIS/md/level устроит? :)
> Так было раньше и меня это не устраивает :)
А чем не устроило, или что есть правильно?
Comment 1 Alexey Gladkov 2012-04-20 15:49:44 MSK
Тем что, неправильно отождествлять уровень рейда с именем ядерного модуля:

All md devices contain:
  level
     a text file indicating the 'raid level'. e.g. raid0, raid1,
     raid5, linear, multipath, faulty.
     If no raid level has been set yet (array is still being
     assembled), the value will reflect whatever has been written
     to it, which may be a name like the above, or may be a number
     such as '0', '5', etc.

В некоторых случаях это будет работать, а в некоторых нет.
Comment 2 Michael Shigorin 2012-04-20 16:00:31 MSK
Как ты представляешь себе /boot, находящийся на raid неопределённого уровня? :)

Сделал эксперимент с server-mini.iso -- вот на момент установки загрузчика:

==> mdstat <==
Personalities : [raid1] 
md0 : active raid1 dm-1[1] dm-0[0]
      1047488 blocks [2/2] [UU]
      [=>...................]  resync =  6.3% (66176/1047488) finish=15.8min speed=1034K/sec
      
unused devices: <none>

==> md/level <==
raid1

Досинкалось оно уже после загрузки установленного (правда, слишком быстро на tmpfs -- заметить в процессе ещё успел, а скопировать уже нет).

Давай спросим vsu@, можно ли закладываться на данные sysfs в этом вопросе.
Comment 3 Alexey Gladkov 2012-04-20 16:06:23 MSK
(В ответ на комментарий №2)
> Как ты представляешь себе /boot, находящийся на raid неопределённого уровня? :)

Миш, причём тут /boot? Эти рейдовые модули нужны для монтирования корня.

Давай простой случай: в md/level будет raid5. Какой модуль класть ?
Comment 4 Michael Shigorin 2012-04-20 20:17:38 MSK
(In reply to comment #3)
> Миш, причём тут /boot? Эти рейдовые модули нужны для монтирования корня.
Всё тормозил с утра -- изначально подумал именно про корень.

> Давай простой случай: в md/level будет raid5. Какой модуль класть ?
raid456 с зависимостями -- посмотрел, поискал и пока не могу предложить ничего лучше маппинга raid[456] в raid456...
Comment 5 Alexey Gladkov 2012-04-21 13:26:55 MSK
Вот и я пока не придумал. Поэтому пока кладу все.
Comment 6 Sergey Vlasov 2012-04-21 23:30:07 MSK
На самом деле там есть алиасы, причём достаточно давно:

# grep ' md-' /lib/modules/2.6.32-el-smp-alt33/modules.alias
alias md-level--1 linear
alias md-linear linear
alias md-personality-1 linear
alias md-level-0 raid0
alias md-raid0 raid0
alias md-personality-2 raid0
alias md-level-1 raid1
alias md-raid1 raid1
alias md-personality-3 raid1
alias md-level-10 raid10
alias md-raid10 raid10
alias md-personality-9 raid10
alias md-level-6 raid456
alias md-raid6 raid456
alias md-personality-8 raid456
alias md-level-4 raid456
alias md-level-5 raid456
alias md-raid4 raid456
alias md-raid5 raid456
alias md-personality-4 raid456
alias md-level--5 faulty
alias md-faulty faulty
alias md-personality-10 faulty
Comment 7 Alexey Gladkov 2012-04-21 23:42:14 MSK
Т.е. получается, что делать наоборот ничего не нужно. Модуль сам вытянется по modalias.
Comment 8 Alexey Gladkov 2012-04-22 00:02:09 MSK
(В ответ на комментарий №6)
> На самом деле там есть алиасы, причём достаточно давно:
> 
> # grep ' md-' /lib/modules/2.6.32-el-smp-alt33/modules.alias

Хм. Я в /sys/devices/virtual/block/md6 и выше никаких modalias не вижу.
А где эти алиасы найти в /sys ?
Comment 9 Alexey Gladkov 2012-04-26 16:31:03 MSK
$ read level < /sys/devices/virtual/block/md0/md/level
$ depinfo "md-$level"
Comment 10 Repository Robot 2012-05-08 12:57:46 MSK
make-initrd-0.7.6-alt1 -> sisyphus:

* Sun May 06 2012 Alexey Gladkov <legion@altlinux> 0.7.6-alt1
- Rewrite put-file.
- Add support for libkmod >= 8.
- Add autodetection for raid modules (ALT#27248).
- Better handle builtin modules.