mdadm raid1 + lvm

Автор exaile, 08 января 2015, 21:14:29

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

exaile

Всем ДВС. Столкнулся с не возможностью загрузки lvm томов после пересоздания рейда mdadm.

Открыть содержимое (спойлер)
root@sysresccd:/# uname -a
Linux sysresccd 3.10.53-std431-i586 #2 SMP Fri Aug 15 21:52:28 UTC 2014 i686 GNU/Linux
root@sysresccd:/# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.7 (wheezy)
Release:        7.7
Codename:       wheezy
[свернуть]

Дело было так.

В mdadm был создан raid1 через графику в debian инсталяторе при установке системы и логические разделы на lvm, физическим  томом являлся /dev/md0. Так уж сложилось, что в рейде был один диск на 2TB (предположительно он уже был на износе) и 2 диск на 250GB исправен. Размера массива был 143GB. Через месяц из рейда вылетел диск на 250GB (новый, заведомо рабочий), и остался один диск которому уже приходил конец. При попытке добавления вылетевшего диска он упорно добавлялся как spare. При этом постоянно сыпались ошибки на середине ребилда.

Открыть содержимое (спойлер)
Цитировать[    7.376475] ata2.00: exception Emask 0x12 SAct 0x0 SErr 0x1000500 action 0x6
[    7.376480] ata2.00: BMDMA stat 0x5
[    7.376483] ata2: SError: { UnrecovData Proto TrStaTrns }
[    7.376489] ata2.00: cmd c8/00:40:20:00:00/00:00:00:00:00/e0 tag 0 dma 32768 in
[    7.376490]          res 51/84:2f:20:00:00/00:00:00:00:00/e0 Emask 0x12 (ATA bus error)
[    7.376493] ata2.00: status: { DRDY ERR }
[    7.376495] ata2.00: error: { ICRC ABRT }
[    7.376504] ata2: hard resetting link
[свернуть]

Похожий случай на toster.ru
Цитировать
Если на единственной активной реплике есть ошибки чтения, репликация с неё будет постоянно перезапускаться и обрываться на первой ошибке, а второй диск будет постоянно считаться spare.

--assemble --scan --force ни к чему не приводили, решено было пересоздать массив, убрав сбойный диск полностью, так как на  рабочем диске метаданные остались. Подключил еще один диск точно такой же (новый, заведомо исправный) на 250 GB, чтобы было уже по нормальному. С systemrescuecd raid был пересоздан такой командой:

mdadm -Cv /dev/md0  --assume-clean --level=1 --chunk=128 --raid-devices=2 /dev/sda1 /dev/sdb1


raid успешно создался:

Открыть содержимое (спойлер)
mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Wed Jan  7 19:27:59 2015
     Raid Level : raid1
     Array Size : 244008512 (232.70 GiB 249.86 GB)
  Used Dev Size : 244008512 (232.70 GiB 249.86 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Thu Jan  8 20:29:38 2015
          State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
  Spare Devices : 0

           Name : sysresccd:0  (local to host sysresccd)
           UUID : bfc78bf1:4b7202e5:e0cb08ce:ea26c4e0
         Events : 2

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8        1        1      active sync   /dev/sda1
[свернуть]

Открыть содержимое (спойлер)
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[0] sda1[1]
      244008512 blocks super 1.2 [2/2] [UU]
      bitmap: 0/2 pages [0KB], 65536KB chunk
[свернуть]

cat /etc/mdadm/mdadm.conf

Открыть содержимое (спойлер)
ARRAY /dev/md/0 metadata=1.2 UUID=bfc78bf1:4b7202e5:e0cb08ce:ea26c4e0 name=sysresccd:0

unused devices: <none>
[свернуть]

fdisk -l

Открыть содержимое (спойлер)
Disk /dev/sdb: 250.0 GB, 250000000000 bytes
5 heads, 2 sectors/track, 48828125 cylinders, total 488281250 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa560fab4

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048   488281249   244139601   fd  Linux raid autodetect

Disk /dev/sda: 250.0 GB, 250000000000 bytes
27 heads, 2 sectors/track, 9042245 cylinders, total 488281250 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00029ee7

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   488281249   244139601   fd  Linux raid autodetect

Disk /dev/sdc: 4016 MB, 4016046080 bytes
255 heads, 63 sectors/track, 488 cylinders, total 7843840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2e63d0aa

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1   *          63     7843839     3921888+   b  W95 FAT32

Disk /dev/md0: 249.9 GB, 249864716288 bytes
2 heads, 4 sectors/track, 61002128 cylinders, total 488017024 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/mapper/pve-root: 20.0 GB, 19998441472 bytes
255 heads, 63 sectors/track, 2431 cylinders, total 39059456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/pve-root doesn't contain a valid partition table

Disk /dev/mapper/pve-swap: 7998 MB, 7998537728 bytes
255 heads, 63 sectors/track, 972 cylinders, total 15622144 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/pve-swap doesn't contain a valid partition table

Disk /dev/mapper/pve-home: 80.0 GB, 79997960192 bytes
255 heads, 63 sectors/track, 9725 cylinders, total 156246016 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/pve-home doesn't contain a valid partition table

Disk /dev/mapper/pve-var: 51.9 GB, 51908706304 bytes
255 heads, 63 sectors/track, 6310 cylinders, total 101384192 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/pve-var doesn't contain a valid partition table
[свернуть]

LVM

Открыть содержимое (спойлер)
pvdisplay -v
    Scanning for physical volume names
  --- Physical volume ---
  PV Name               /dev/md0
  VG Name               pve
  PV Size               232.70 GiB / not usable 448.00 KiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              59572
  Free PE               21448
  Allocated PE          38124
  PV UUID               bNjUh2-loTA-2au2-1BQR-cjXM-uzS9-abVM5R
[свернуть]

Открыть содержимое (спойлер)
vgdisplay -v
    Finding all volume groups
    Finding volume group "pve"
  --- Volume group ---
  VG Name               pve
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  19
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               232.70 GiB
  PE Size               4.00 MiB
  Total PE              59572
  Alloc PE / Size       38124 / 148.92 GiB
  Free  PE / Size       21448 / 83.78 GiB
  VG UUID               uJM0Ta-t90W-cOIW-laq3-Iczd-9VWn-eeE6hG

  --- Logical volume ---
  LV Path                /dev/pve/root
  LV Name                root
  VG Name                pve
  LV UUID                ADSmBv-66Vy-OYVX-o1ts-8RQx-fLKx-xmxMYe
  LV Write Access        read/write
  LV Creation host, time debian, 2014-11-10 22:23:21 +0300
  LV Status              available
  # open                 1
  LV Size                18.62 GiB
  Current LE             4768
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/pve/swap
  LV Name                swap
  VG Name                pve
  LV UUID                3rMPEg-HzKV-cNR2-FyJL-Tpvq-F7ZM-hfLTU3
  LV Write Access        read/write
  LV Creation host, time debian, 2014-11-10 22:23:35 +0300
  LV Status              available
  # open                 0
  LV Size                7.45 GiB
  Current LE             1907
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/pve/home
  LV Name                home
  VG Name                pve
  LV UUID                MKCOZe-G2Lc-KT0U-WXdL-4lr0-ZW03-qQ8upi
  LV Write Access        read/write
  LV Creation host, time debian, 2014-11-10 22:24:36 +0300
  LV Status              available
  # open                 0
  LV Size                74.50 GiB
  Current LE             19073
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Logical volume ---
  LV Path                /dev/pve/var
  LV Name                var
  VG Name                pve
  LV UUID                uQ181H-081o-bQ3W-2iVi-wAgA-fz9B-qXoVx3
  LV Write Access        read/write
  LV Creation host, time debian, 2014-11-10 22:24:53 +0300
  LV Status              available
  # open                 1
  LV Size                48.34 GiB
  Current LE             12376
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

  --- Physical volumes ---
  PV Name               /dev/md0
  PV UUID               bNjUh2-loTA-2au2-1BQR-cjXM-uzS9-abVM5R
  PV Status             allocatable
  Total PE / Free PE    59572 / 21448
[свернуть]

Открыть содержимое (спойлер)

lvscan -v
    Finding all logical volumes
  ACTIVE            '/dev/pve/root' [18.62 GiB] inherit
  ACTIVE            '/dev/pve/swap' [7.45 GiB] inherit
  ACTIVE            '/dev/pve/home' [74.50 GiB] inherit
  ACTIVE            '/dev/pve/var' [48.34 GiB] inherit
[свернуть]

Открыть содержимое (спойлер)

vgchange -ay pve
4 logical volume(s) in volume group "pve" now active
[свернуть]

C чрута df -hT

df: `/livemnt/boot': No such file or directory
df: `/livemnt/squashfs': No such file or directory
df: `/livemnt/memory': No such file or directory
df: `/livemnt/tftpmem': No such file or directory
df: `/tftpboot': No such file or directory
df: `/sys/fs/cgroup/openrc': No such file or directory
df: `/sys/fs/cgroup/cpuset': No such file or directory
df: `/sys/fs/cgroup/cpu': No such file or directory
df: `/sys/fs/cgroup/cpuacct': No such file or directory
df: `/sys/fs/cgroup/memory': No such file or directory
df: `/sys/fs/cgroup/devices': No such file or directory
df: `/sys/fs/cgroup/freezer': No such file or directory
df: `/sys/fs/cgroup/net_cls': No such file or directory
df: `/sys/fs/cgroup/blkio': No such file or directory
df: `/sys/fs/cgroup/perf_event': No such file or directory
Filesystem           Type      Size  Used Avail Use% Mounted on
rootfs               rootfs     19G  2.9G   15G  17% /
udev                 tmpfs      10M     0   10M   0% /dev
none                 aufs       19G  2.9G   15G  17% /
tmpfs                tmpfs      19G  2.9G   15G  17% /run
udev                 devtmpfs   10M     0   10M   0% /dev
mqueue               mqueue     10M     0   10M   0% /dev/mqueue
devpts               devpts     10M     0   10M   0% /dev/pts
shm                  tmpfs      10M     0   10M   0% /dev/shm
tmpfs                tmpfs      19G  2.9G   15G  17% /tmp
/dev/mapper/pve-root ext3       19G  2.9G   15G  17% /mnt
/dev/mapper/pve-var  ext3       19G  2.9G   15G  17% /mnt
/dev/mapper/pve-root ext3       19G  2.9G   15G  17% /
udev                 devtmpfs   10M     0   10M   0% /dev


Все данные остались, с LiveCD всё монтируется и чрутиться, при загрузке с хардов получаю:

Volume group "pve" not found
Skipping volume group pve
Unable to find LVM volume pve/root
Volume group "pve" not found
Skipping volume group pve
Unable to find LVM volume pve/swap

ALERT /dev/mapper/pve-root does not exist. Dropping to a shell!


Пробовал прожигать заново grub-install --recheck /dev/sda /dev/sdb && update-grub, так же выполнил pvresize /dev/md0 - он увеличил том до размера рейда как и нужно, но увы. Как починить ?

qupl

Конфиг grub-а не помешает. И помощь практиков lvm.

exaile

root@sysresccd:/etc# cat default/grub
Открыть содержимое (спойлер)

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
root@sysresccd:/etc#
[свернуть]

qupl


exaile

#4
Да, извините.

root@sysresccd:/etc# cat /boot/grub/grub.cfg


Открыть содержимое (спойлер)
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod raid
insmod mdraid1x
insmod lvm
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(pve-root)'
search --no-floppy --fs-uuid --set=root 1d38c4a0-230a-43c6-aac0-cfdefab14a4f
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
  insmod raid
  insmod mdraid1x
  insmod lvm
  insmod part_msdos
  insmod part_msdos
  insmod ext2
  set root='(pve-root)'
  search --no-floppy --fs-uuid --set=root 1d38c4a0-230a-43c6-aac0-cfdefab14a4f
  set locale_dir=($root)/boot/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod raid
insmod mdraid1x
insmod lvm
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(pve-root)'
search --no-floppy --fs-uuid --set=root 1d38c4a0-230a-43c6-aac0-cfdefab14a4f
insmod png
if background_image /usr/share/images/desktop-base/joy-grub.png; then
  set color_normal=white/black
  set color_highlight=black/white
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-686-pae' --class debian --class gnu-linux --class gnu --class os {
        load_video
        insmod gzio
        insmod raid
        insmod mdraid1x
        insmod lvm
        insmod part_msdos
        insmod part_msdos
        insmod ext2
        set root='(pve-root)'
        search --no-floppy --fs-uuid --set=root 1d38c4a0-230a-43c6-aac0-cfdefab14a4f
        echo    'Loading Linux 3.2.0-4-686-pae ...'
        linux   /boot/vmlinuz-3.2.0-4-686-pae root=/dev/mapper/pve-root ro  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-3.2.0-4-686-pae
}
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-686-pae (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
        load_video
        insmod gzio
        insmod raid
        insmod mdraid1x
        insmod lvm
        insmod part_msdos
        insmod part_msdos
        insmod ext2
        set root='(pve-root)'
        search --no-floppy --fs-uuid --set=root 1d38c4a0-230a-43c6-aac0-cfdefab14a4f
        echo    'Loading Linux 3.2.0-4-686-pae ...'
        linux   /boot/vmlinuz-3.2.0-4-686-pae root=/dev/mapper/pve-root ro single
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-3.2.0-4-686-pae
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
[свернуть]

Фото после граба.

Открыть содержимое (спойлер)
[свернуть]

*только не полноразмерные картинки, пожлуйста , qupl

qupl


exaile

#6
Спасибо за ссылку отчасти и она помогла.
С загрузкой вроде бы разобрался. Помогло что то из grub-install --root-directory=/ /dev/sda /dev/sdb, плюс очередное пересоздание mdadm.conf и update-initramfs -u

Теперь с разделом что-то и с инодами... картинку уменьшил.
Открыть содержимое (спойлер)
[свернуть]

Как раз при первом сбое и вылете диска еще на старом рейде тоже после ребута сыпались ошибки в тот момент когда он /dev/mapper/pve-var пытался чекнуть и смонтировать. Ну в общем здесь я запустил fsck -y /dev/mapper/pve-var как он и просит (исправить в ручную) и уже 200К инодов он зачищает как я понимаю. e2fsck -b 32768 что-то не прокатило, есть шансы что /var будет жив и ОС загрузиться ? Ведь без него считай что система не рабочая...

exaile

#7
ОС не восстановил, раздел чекался очень долго и я на это дело плюнул, как оказалось проблема на сата контроллере матери и южном мосте. Теперь другое хотел спросить, на сервере в логах пару раз заметил такие сообщения:

Feb  1 08:42:11 debian kernel: [6295409.099736] md: md0: data-check done.
Feb  1 08:42:11 debian mdadm[2504]: RebuildFinished event detected on md device /dev/md/0, component device  mismatches found: 2176 (on raid level 1)


Прошел чек массива, а потом какое то не соответствие компонентов, в какую сторону смотреть ? Данные важные.

Похоже на баг ? https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=38;att=0;bug=518834