|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/16679edac50d1.html, оценка из 5, голосов 10
|