Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Pavel Pavlov                         2:5020/400     19 Apr 2006  23:23:13
 To : All
 Subject : Soft RAID - проблемы
 -------------------------------------------------------------------------------- 
 
 Hi All,
 
 Дистрибьютив - Mandriva-Linux-Free-2006.x86_64
 
 Хочу софт-рэйд1. Пересобираю ядро, добавляю поддержку raid1:
 
 # Multi-device support (RAID and LVM)
 CONFIG_MD=y
 CONFIG_BLK_DEV_MD=y
 CONFIG_MD_LINEAR=y
 CONFIG_MD_RAID1=y
 CONFIG_MD_MULTIPATH=y
 CONFIG_MD_FAULTY=y
 CONFIG_BLK_DEV_DM=y
 CONFIG_DM_CRYPT=y
 CONFIG_DM_SNAPSHOT=y
 CONFIG_DM_MIRROR=y
 CONFIG_DM_ZERO=y
 CONFIG_DM_MULTIPATH=y
 CONFIG_DM_MULTIPATH_EMC=y
 Копирую разделы с /dev/sda на чистый /dev/sdb:
 
 sfdisk -d /dev/sda | sfdisk /dev/sdb
 
 Ставлю тип разделов на sdb как Linux raid autodetect,
 в итоге получаю:
 
 Disk /dev/sdb: 200.0 GB, 200049647616 bytes
 255 heads, 63 sectors/track, 24321 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
    Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1   *           1         637     5116671   fd  Linux raid autodetect
 /dev/sdb2             638       24321   190241730    5  Extended
 /dev/sdb5             638         908     2176776   fd  Linux raid autodetect
 /dev/sdb6             909         958      401593+  fd  Linux raid autodetect
 /dev/sdb7             959        1722     6136798+  fd  Linux raid autodetect
 /dev/sdb8            1723        1866     1156648+  fd  Linux raid autodetect
 /dev/sdb9            1867       24321   180369756   fd  Linux raid autodetect
 Disk /dev/sda: 200.0 GB, 200049647616 bytes
 255 heads, 63 sectors/track, 24321 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
    Device Boot      Start         End      Blocks   Id  System
 /dev/sda1   *           1         637     5116671   83  Linux
 /dev/sda2             638       24321   190241730    5  Extended
 /dev/sda5             638         908     2176776   82  Linux swap / Solaris
 /dev/sda6             909         958      401593+  83  Linux
 /dev/sda7             959        1722     6136798+  83  Linux
 /dev/sda8            1723        1866     1156648+  83  Linux
 /dev/sda9            1867       24321   180369756   83  Linux
 
 Создаю md0:
 # mdadm -C /dev/md0 --level raid1 --raid-disks 2 missing /dev/sdb1
 # mkfs.ext3 /dev/md0
 # cp -axu / /mnt/md0
 
 # mdadm --detail /dev/md0
 /dev/md0:
         Version : 00.90.01
   Creation Time : Wed Apr 19 16:50:28 2006
      Raid Level : raid1
      Array Size : 5116544 (4.88 GiB 5.24 GB)
     Device Size : 5116544 (4.88 GiB 5.24 GB)
    Raid Devices : 2
   Total Devices : 1
 Preferred Minor : 0
     Persistence : Superblock is persistent
 
     Update Time : Wed Apr 19 23:00:58 2006
           State : clean, degraded
  Active Devices : 1
 Working Devices : 1
  Failed Devices : 0
   Spare Devices : 0
 
            UUID : 3d01a893:ce77bfee:7aa8b5b4:121bb58b
          Events : 0.79
 
     Number   Major   Minor   RaidDevice State
        0       0        0        -      removed
        1       8       17        1      active sync   /dev/sdb1
 Добавляю в /etc/fstab:
 /dev/md0 /mnt/md0 ext3 defaults 0 0
 
 Создаю /etc/raidtab:
 =========================
 raiddev /dev/md0
     raid-level 1
     nr-raid-disks 2
     nr-spare-disks 0
     chunk-size 64
     persistent-superblock 1
     device /dev/sdb1
     raid-disk 0
     device /dev/sda1
     raid-disk 1
 =========================
 
 Перезагружаюсь и вижу:
 
  EXT3-fs: unable to read superblock
 mount: wrong fs type, bad option, bad superblock on /dev/md0,
        missing codepage or other error
        (could this be the IDE device where you in fact use
        ide-scsi so that sr0 or sda or so is needed?)
        In some cases useful info is found in syslog - try
        dmesg | tail  or so
 
 Hеудивительно, в /proc/mdstat md0 отсутствует. Почему?
 Автоопределение не работает?
 Ладно, пойдем другим путем. Меняю initrd:
 (добавляю строчку "raidautorun /dev/md0" в linuxrc)
 
 Перезагружаюсь, массив есть:
 
  md: Autodetecting RAID arrays.
  md: considering sdb1 ...
  md:  adding sdb1 ...
  md: created md0
  md: bind<sdb1>
  md: running: <sdb1>
  raid1: raid set md0 active with 1 out of 2 mirrors
  md: ... autorun DONE.
 
 Ок, пытаюсь сделать его корневым. Меняю в fstab:
 /dev/md0 / ext3 defaults 0 0
 
 Меняю lilo.conf:
 =================================================
 default="my_initrd_root_md0"
 boot=/dev/sda
 map=/boot/map
 prompt
 nowarn
 timeout=100
 message=/boot/message
 
 image=/boot/vmlinuz-2.6.12-12mdkcustom
         label="my_initrd_root_md0"
         root=/dev/md0
         initrd=/boot/initrd-raid.img
 ==================================================
 
 Синхронизирую содержимое md0 и sda1:
 
 # mount /dev/md0 /mnt/md0
 # cp -axu / /mnt/md0
 
 Перезагружаюсь и вижу:
 ==========================================
 Initrd finished 
 Warning: unable to open initial console
 ==========================================
 И все. В чем проблема?  console и
 null в /dev существуют.
 
 Хорошо, указываю в lilo.conf: 
 root=/dev/sda1
 
 Hормально загружаюсь, md0 вроде бы cмонтировано на /
 
 # df
 Файловая система      Разм  Исп  Дост  Исп% смонтирована на
 /dev/md0              4,9G  244M  4,4G   6% /
 /dev/sda6             380M   15M  346M   4% /boot
 /dev/sda8             1,1G   33M  1,0G   4% /tmp
 /dev/sda7             5,8G  1,5G  4,1G  26% /usr
 /dev/sda9             170G  2,1G  159G   2% /var
 
 Пытаюсь добавить /dev/sda1 в массив:
 
 # mdadm /dev/md0 -a /dev/sda1
 mdadm: Cannot open /dev/sda1: Device or resource busy
 
 Фигвам получается. Долго думаю, чем занято /dev/sda1
 
 # mount /dev/sda1 /mnt/sda1
 
 Создаю файл в /mnt/sda1, он появляется в /
 
 # mount /dev/md0 /mnt/md0
 
 Сравниваю с / - файлы имеют разное время.
 
 # mount
 /dev/md0 on / type ext3 (rw)
 /dev/md0 on /mnt/md0 type ext3 (rw)
 /dev/sda1 on /mnt/sda1 type ext3 (rw)
 ...
 
 Так что реально в корень смонтировано /dev/sda1,
 а не md0, как показывают mount и df. 
 И как это понимать?
 Пытаюсь убедить lilo грузиться с /dev/md0:
 
 =========lilo.conf=========
 boot=/dev/md0
 root=/dev/md0
 raid-extra-boot="/dev/sdb,/dev/sda" 
 ===========================
 
 # lilo 
 Fatal: Trying to map files from unnamed device 0x0000 (NFS/RAID mirror down ?)
 Различные варианты типа:
 raid-extra-boot=auto
 raid-extra-boot=mbr
 raid-extra-boot=mbr-only
 raid-extra-boot=none
 raid-extra-boot=/dev/sdb
 raid-extra-boot=/dev/sda
 или вообще без raid-extra-boot заканчиваются тем же:
 Fatal: Trying to map files from unnamed device 0x0000 (NFS/RAID mirror down ?)
 Что lilo этим хочет сказать??? Какая ему разница, 1 или 2 раздела
 включает md0?
 
 Hа всякий случай:
 
 # lilo -v5
 
 LILO version 22.6.1, Copyright (C) 1992-1998 Werner Almesberger
 Development beyond version 21 Copyright (C) 1999-2004 John Coffman
 Released 17-Nov-2004, and compiled at 14:16:24 on Sep 12 2005
 
 raid_setup: dev=000C  rdev=0900
 pf_hard_disk_scan: (9,0) /dev/md0
 pf_hard_disk_scan: (8,0) /dev/sda
 pf_hard_disk_scan: (8,1) /dev/sda1
 lookup_dev:  number=0800
 lookup_dev:  number=0800
 pf:  dev=0800  id=CB2ECB2E  name=/dev/sda
 geo_query_dev: device=0800
 lookup_dev:  number=0800
 lookup_dev:  number=0300
 exit geo_query_dev
 bios_dev:  device 0800
 lookup_dev:  number=0800
 bios_dev:  masked device 0800, which is /dev/sda
 bios_dev: geometry check found 0 matches
 bios_dev: (0x81)  vol-ID=3001092F  *PT=0807A536
 bios_dev: (0x80)  vol-ID=CB2ECB2E  *PT=0807A4EE
 bios_dev: PT match found 1 match (0x80)
 pf_hard_disk_scan: (8,2) /dev/sda2
 pf_hard_disk_scan: (8,5) /dev/sda5
 pf_hard_disk_scan: (8,6) /dev/sda6
 pf_hard_disk_scan: (8,7) /dev/sda7
 pf_hard_disk_scan: (8,8) /dev/sda8
 pf_hard_disk_scan: (8,9) /dev/sda9
 pf_hard_disk_scan: (8,16) /dev/sdb
 pf_hard_disk_scan: (8,17) /dev/sdb1
 lookup_dev:  number=0810
 lookup_dev:  number=0810
 pf:  dev=0810  id=3001092F  name=/dev/sdb
 geo_query_dev: device=0810
 lookup_dev:  number=0810
 lookup_dev:  number=0300
 exit geo_query_dev
 bios_dev:  device 0810
 lookup_dev:  number=0810
 bios_dev:  masked device 0810, which is /dev/sdb
 bios_dev: geometry check found 0 matches
 bios_dev: (0x81)  vol-ID=3001092F  *PT=0807A536
 bios_dev: (0x80)  vol-ID=CB2ECB2E  *PT=0807A4EE
 bios_dev: PT match found 1 match (0x81)
 pf_hard_disk_scan: (8,18) /dev/sdb2
 pf_hard_disk_scan: (8,21) /dev/sdb5
 pf_hard_disk_scan: (8,22) /dev/sdb6
 pf_hard_disk_scan: (8,23) /dev/sdb7
 pf_hard_disk_scan: (8,24) /dev/sdb8
 pf_hard_disk_scan: (8,25) /dev/sdb9
   0800  CB2ECB2E  /dev/sda
   0810  3001092F  /dev/sdb
 pf_hard_disk_scan: ndevs=2
   0800  CB2ECB2E  /dev/sda
   0810  3001092F  /dev/sdb
 Resolve invalid VolumeIDs
 Resolve duplicate VolumeIDs
   0800  CB2ECB2E  /dev/sda
   0810  3001092F  /dev/sdb
 device codes (user assigned pf) = 0
 device codes (user assigned) = 0
 device codes (BIOS assigned) = 3
 device codes (canonical) = 3
 lookup_dev:  number=0900
 RAID info:  nr=1, raid=2, active=1, working=1, failed=0, spare=0
 md: RAIDset device 0 = 0x0000
 md: RAIDset device 1 = 0x0811
 lookup_dev:  number=0811
 geo_get: device 0811, all=1
 geo_query_dev: device=0811
 lookup_dev:  number=0811
 lookup_dev:  number=0300
 exit geo_query_dev
 bios_dev:  device 0811
 lookup_dev:  number=0810
 bios_dev:  masked device 0810, which is /dev/sdb
 bios_dev: geometry check found 0 matches
 bios_dev: (0x81)  vol-ID=3001092F  *PT=0807A536
 bios_dev: (0x80)  vol-ID=CB2ECB2E  *PT=0807A4EE
 bios_dev: PT match found 1 match (0x81)
 Device 0x0811: BIOS drive 0x81, 255 heads, 24321 cylinders,
                63 sectors. Partition offset: 63 sectors.
 registering bios=0x81  device=0x0811
 Using Volume ID 3001092F on bios 81
 RAID scan: geo_get: returns geo->device = 0x81 for device 0811
 
 disk->start = 63                raid_offset = 0 (00000000)
 
 lookup_dev:  number=0810
 Name: /dev/sdb1  yields MBR: /dev/sdb  (without primary partition check)
 Using BIOS device code 0x81 for RAID boot blocks
 raid_setup returns offset = 00000000  ndisk = 1
  BIOS   VolumeID   Device
   80    CB2ECB2E    0800
   81    3001092F    0810
 raid flags: at bsect_open  0x02
 Reading boot sector from /dev/md0
 geo_get: device 0900, all=1
 geo_query_dev: device=0000
 Fatal: Trying to map files from unnamed device 0x0000 (NFS/RAID mirror down ?)
 
 --- ifmail v.2.15dev5.3
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Soft RAID - проблемы   Pavel Pavlov   19 Apr 2006 23:23:13 
 Re: Soft RAID - проблемы   Ilya Anfimov   20 Apr 2006 07:38:28 
 Re: Soft RAID - проблемы   Alex Korchmar   20 Apr 2006 09:06:05 
 Re: Soft RAID - проблемы   Ilya Anfimov   20 Apr 2006 12:56:26 
 Soft RAID - проблемы   Anton Gorlov   20 Apr 2006 20:01:44 
 Re: Soft RAID - проблемы   Ilya Anfimov   21 Apr 2006 09:05:08 
 Soft RAID - проблемы   Anton Gorlov   21 Apr 2006 19:31:42 
 Re: Soft RAID - проблемы   Aleksey Barabanov   22 Apr 2006 12:27:39 
 Soft RAID - проблемы   Nikolay Staver   20 Apr 2006 08:53:44 
 Re: Soft RAID - проблемы   Aleksey Barabanov   20 Apr 2006 11:14:03 
 Soft RAID - проблемы   Nikolay Staver   20 Apr 2006 12:42:00 
 Re: Soft RAID - проблемы   Aleksey Barabanov   20 Apr 2006 14:29:41 
 Re: Soft RAID - проблемы   Slava Astashonok   20 Apr 2006 15:50:46 
 Re: Soft RAID - проблемы   Aleksey Barabanov   20 Apr 2006 11:10:29 
Архивное /ru.linux/16679edac50d1.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional