LINUX.ORG.RU
ФорумAdmin

Загрузка с software raid1 в CentOS 6

 , , , ,


0

2

Всем привет. Разбираюсь с этим впервые, так что сильно не пинайте :)

Не могу разобраться что к чему с загрузкой с software raid1 (md1). Сервер достался от предыдущего админа и там была настроена загрузка только с одного из дисков (sda1), т.е. если бы он умер, то всё. Был настроен md0 raid для раздела с данными и всё. Поэтому я создал md1 raid1 для /boot с помощью

# mdadm -Cv --metadata=0.90 --level=1 --raid-devices=2 /dev/md1 /dev/sda1 missing

Предварительно размонтировав /boot, т.к. mdadm ругался, что он busy

# umount /boot

И потом добавил туда sdb1

# mdadm --manage /dev/md1 --add /dev/sdb1

И смонтировал md1 в /boot

# mount /dev/md1 /boot

Но есть вещи, которые меня беспокоят, и я не пойму загрузится ли вообще сервер после перезагрузки с такой конфигурацией и что ещё надо добавить/поменять?

# cat /proc/mdstat
Personalities : [raid1] [linear] [raid0] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sdb1[1] sda1[0]
      1060160 blocks [2/2] [UU]

md0 : active raid1 sdb2[2] sda2[1]
      487192512 blocks super 1.2 [2/2] [UU]

unused devices: <none>
# lsblk
NAME                           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                              8:0    0 465.8G  0 disk
├─sda1                           8:1    0     1G  0 part
│ └─md1                          9:1    0     1G  0 raid1 /boot
└─sda2                           8:2    0 464.8G  0 part
  └─md0                          9:0    0 464.6G  0 raid1
    ├─vg_moscow-lv_root (dm-0) 253:0    0   450G  0 lvm   /
    └─vg_moscow-lv_swap (dm-1) 253:1    0     8G  0 lvm   [SWAP]
sdb                              8:16   0   3.7T  0 disk
├─sdb1                           8:17   0     1G  0 part
│ └─md1                          9:1    0     1G  0 raid1 /boot
└─sdb2                           8:18   0 464.8G  0 part
  └─md0                          9:0    0 464.6G  0 raid1
    ├─vg_moscow-lv_root (dm-0) 253:0    0   450G  0 lvm   /
    └─vg_moscow-lv_swap (dm-1) 253:1    0     8G  0 lvm   [SWAP]
#blkid | grep md
/dev/md0: UUID="JqLBXu-0DJJ-H9D1-Xb58-2Ukh-3iqU-JM4OLn" TYPE="LVM2_member"
/dev/md1: UUID="789955dc-a785-4e4d-b57d-8443ecc546dc" TYPE="ext3"
# mount | column -t
/dev/mapper/vg_moscow-lv_root  on  /                              type  ext4         (rw)
proc                           on  /proc                          type  proc         (rw)
sysfs                          on  /sys                           type  sysfs        (rw)
devpts                         on  /dev/pts                       type  devpts       (rw,gid=5,mode=620)
tmpfs                          on  /dev/shm                       type  tmpfs        (rw)
none                           on  /proc/sys/fs/binfmt_misc       type  binfmt_misc  (rw)
/dev/md1                       on  /boot                          type  ext3         (rw)

Вот тут странность с упоминанием ubuntu, т.к. сервер на CentOS 6. Что с этим делать?

mdadm --examine --scan >> /etc/mdadm.conf
ARRAY /dev/md/ubuntu:0 metadata=1.2 name=ubuntu:0 UUID=b696e922:34e2f717:fddf7751:57df981e
ARRAY /dev/md1 UUID=a7b07422:d65adaf6:a9f8978e:e41cd9f4
ARRAY /dev/md/0  metadata=1.2 UUID=b696e922:34e2f717:fddf7751:57df981e name=ubuntu:0

Также странно, что записи ARRAY'ев аж 3 и с какими-то странными путями. Ожидал увидеть:

ARRAY /dev/md1 UUID=a7b07422:d65adaf6:a9f8978e:e41cd9f4
ARRAY /dev/md0 metadata=1.2 UUID=b696e922:34e2f717:fddf7751:57df981e

Далее, сейчас в /etc/fstab:

UUID=413772a4-8d9d-4741-a4a7-f5810df117ea /                       ext4    defaults        1 1
UUID=789955dc-a785-4e4d-b57d-8443ecc546dc /boot                   ext4    defaults        1 2
/dev/mapper/vg_moscow-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

Нужно поменять тип /boot с ext4 на ext3?

UUID=413772a4-8d9d-4741-a4a7-f5810df117ea сменить на JqLBXu-0DJJ-H9D1-Xb58-2Ukh-3iqU-JM4OLn от md0?

И какой ему ставить тип файловой системы, если sudo blkid | grep md выдаёт TYPE=«LVM2_member» ?

Т.е. в итоге /etc/fstab должен быть таким?

UUID=JqLBXu-0DJJ-H9D1-Xb58-2Ukh-3iqU-JM4OLn /                       LVM2_member    defaults        1 1
UUID=789955dc-a785-4e4d-b57d-8443ecc546dc /boot                   ext3    defaults        1 2
/dev/mapper/vg_moscow-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

Далее, /boot/grub/grub.conf выглядит вот так:

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-696.1.1.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-696.1.1.el6.x86_64 ro root=UUID=413772a4-8d9d-4741-a4a7-f5810df117ea rd_LVM_LV=vg_moscow/lv_swap rd_NO_$
        initrd /initramfs-2.6.32-696.1.1.el6.x86_64.img
При этом
# uname -r
2.6.32-696.1.1.el6.x86_64

Что-то ещё не учёл/поменять надо?

Спасибо!



Последнее исправление: vainkop1 (всего исправлений: 3)

Вот тут странность с упоминанием ubuntu, т.к. сервер на CentOS 6. Что с этим делать?

Раздел создавался с какого-то live-дистрибутива Ubuntu

Что-то ещё не учёл/поменять надо?

initrd можно на всякий пожарный сгенерить заново. Там статья как это сделать из rescue, не обращай на это внимания - смотри на опции для dracut

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Так и какой же у меня в итоге должен быть fstab? UUID для / делать = UUID=JqLBXu-0DJJ-H9D1-Xb58-2Ukh-3iqU-JM4OLn и тип файловой системы прописать «LVM2_member» или как-то по-другому (просто lvm или ещё как)? А для /boot только сменить ext4 на ext3?

И как сделать так, чтобы mdadm --examine --scan >> /etc/mdadm.conf нормально 2 строки с двумя ARRAY выводил с нормальными путями, а не 3? Или это нормально в этом случае?

vainkop1
() автор топика
Ответ на: комментарий от vainkop1

Без перезагрузки сгенерировать initramfs нельзя?

Можно, в чруте

UUID для / делать = UUID=JqLBXu-0DJJ-H9D1-Xb58-2Ukh-3iqU-JM4OLn и тип файловой системы прописать «LVM2_member» или как-то по-другому (просто lvm или ещё как)? А для /boot только сменить ext4 на ext3?

Ты вообще в курсе как работает lvm? Зачем монтировать по UUID, монтируй по имени /dev/mapper/yourvg-yourrootlv

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

По вашей ссылке https://wiki.centos.org/TipsAndTricks/CreateNewInitrd, на 4м шаге запинаюсь на:

# mount --bind /proc /mnt/sysimage/proc
# mount --bind /dev /mnt/sysimage/dev
# mount --bind /sys /mnt/sysimage/sys
# chroot /mnt/sysimage
chroot: failed to run command `/bin/bash': No such file or directory
Как лечить?

Тип файловой системы в fstab всё же LVM2_member ставить? Если да, то, значит, fstab должен выглядеть так?

/dev/mapper/vg_moscow-lv_root /                       LVM2_member    defaults        1 1
UUID=789955dc-a785-4e4d-b57d-8443ecc546dc /boot                   ext3    defaults        1 2
/dev/mapper/vg_moscow-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

Спасибо!

vainkop1
() автор топика
Ответ на: комментарий от vainkop1

Эм... а что в /mnt/sysimage лежит? Там должна быть примонтирована целевая корневая ФС(/dev/mapper/vg_moscow-lv_root).

Тип файловой системы в fstab всё же LVM2_member ставить?

нет, туда надо указать реальный тип ФС от твоего logical volume - ext4, ext3.

Поясняю - LVM2_member - это не ФС! Это тип раздела для physical volume. Покури иерархию LVM, что такое physical volume(/dev/sda1 например), volume group(vg_moscow) и logical volume(lv_root). Файловая система располагается на LV, которые являются частью VG, который в свою очередь состоит из PV.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Спасибо за разъяснения! :)

Для перегенерации initramfs воспользовался: http://thegeekdiary.com/centos-rhel-6-how-to-rebuild-initial-ramdisk-image/ http://kelerus.livejournal.com/15242.html/

# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

# dracut -f

fstab получился такой:

/dev/mapper/vg_moscow-lv_root /                       ext4    defaults        1 1
/dev/md1 /boot                   ext3    defaults        1 2
/dev/mapper/vg_moscow-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

Сегодня буду перезапускать :)

vainkop1
() автор топика
Ответ на: комментарий от Pinkbyte

Так я же давал вывод mount:

# mount
/dev/mapper/vg_moscow-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/md1 on /boot type ext3 (rw)

Соответственно /dev/mapper/vg_moscow-lv_root у меня на / смонтирована, а не на /mnt/sysimage

Я делал так:

# mkdir /mnt/sysimage
# mkdir /mnt/sysimage/proc
# mkdir /mnt/sysimage/dev
# mkdir /mnt/sysimage/sys
# mount --bind /proc /mnt/sysimage/proc
# mount --bind /dev /mnt/sysimage/dev
# mount --bind /sys /mnt/sysimage/sys
# chroot /mnt/sysimage
chroot: failed to run command `/bin/bash': No such file or directory

Но это уже, видимо, не актуально, раз я dracut воспользовался?

vainkop1
() автор топика

Просто мимокрокодил, пользуюсь lvm + raid1 на ubuntu 16.04, я когда настраивал не смог загрузится с /boot в raid, по этой причине этот раздел у меня не в raid.

Aber ★★★★★
()
Ответ на: комментарий от vainkop1

/dev/mapper/vg_moscow-lv_root у меня на / смонтирована, а не на /mnt/sysimage

Ну так тогда chroot делать не надо и монтировать все те ФС - тоже

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Да, естественно. Все эти # mount --bind /proc /mnt/sysimage/proc # mount --bind /dev /mnt/sysimage/dev # mount --bind /sys /mnt/sysimage/sys я размонтировал.

vainkop1
() автор топика
Ответ на: комментарий от vainkop1

Я хотел сделать все разделы на двух дисках в raid1, но если логический раздел boot ставить под raid1 или mirror то grub не может с него загрузить ядро. Т.е. с boot под raid есть некоторая сложность которую я не смог решить сходу.

Поэтому я создал md1 raid1 для /boot с помощью

Может предыдущий админ столкнувшись с точно такой проблемой и как я решил не делать raid для этого логического раздела.

Aber ★★★★★
()
Ответ на: комментарий от vainkop1

raid добавить и допилить

Нет смысла, потому как в boot нет ничего уникального и ценного, т.е если умрет тот диск на котором сейчас boot, то воспользовавшись live cd можно воссоздать boot раздел на оставшемся диске. Главное место под boot оставить, а то уменьшать размер fs это тот еще квест.

Aber ★★★★★
()
Ответ на: комментарий от Pinkbyte

Итак, перезагрузка показала, что я сделал ПОЧТИ всё так, как надо :)

А именно: в /etc/fstab было прописано:

/dev/mapper/vg_moscow-lv_root /                       ext4    defaults        1 1
/dev/md1 /boot                   ext3    defaults        1 2
/dev/mapper/vg_moscow-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

А нужно было вместо 1 2 напротив /boot ставить 0 0, т.е. правильный, загружающий /etc/fstab выглядит так:

/dev/mapper/vg_moscow-lv_root /                       ext4    defaults        1 1
/dev/md1 /boot                   ext3    defaults        0 0
/dev/mapper/vg_moscow-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

И после этого система загрузилась!

Вопрос, а почему с обычным разделом нужно было 1 2 прописывать, а с raid1 0 0 ?

vainkop1
() автор топика
Ответ на: комментарий от Aber

Может быть и похоже, что я эту проблему решил :)

vainkop1
() автор топика
Ответ на: комментарий от vainkop1

https://wiki.archlinux.org/index.php/Fstab_(Русский)

Но вообще не должно быть таких проблем. Ты сейчас отключил проверку fsck при загрузке, это может потенциально вылезти боком. Хотя зависит конечно от того как ведет себя система инициализации, но ЕМНИП в CentOS 6 она строго следует заданным в fstab правилам

Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.