@webpixel

Как пересоздать RAID1 без потери данных?

Приветствую, знатоки! Подскажите пожалуйста, есть ли возможность восстановить RAID1 без потери данных? Ситуация такая, пол года назад был ребут, и видимо тогда развалился raid. Заметил только сейчас. Активным оставался диск sdA, но вот что теперь показывает lsblk и /proc/mdstat:

NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda       8:0    0 931.5G  0 disk
├─sda1    8:1    0     1M  0 part
├─sda2    8:2    0   500M  0 part  /boot
├─sda3    8:3    0   7.8G  0 part  [SWAP]
├─sda4    8:4    0     1K  0 part
└─sda5    8:5    0 923.2G  0 part  /
sdb       8:16   0 931.5G  0 disk
├─sdb1    8:17   0   976M  0 part
│ └─md0   9:0    0 975.4M  0 raid1
├─sdb2    8:18   0   7.5G  0 part
│ └─md1   9:1    0   7.5G  0 raid1
└─sdb3    8:19   0 923.1G  0 part
  └─md2   9:2    0 922.8G  0 raid1


cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1]
      998848 blocks super 1.2 [2/1] [_U]

md2 : active raid1 sdb3[1]
      967629824 blocks super 1.2 [2/1] [_U]
      bitmap: 0/8 pages [0KB], 65536KB chunk

md1 : active raid1 sdb2[1]
      7831552 blocks super 1.2 [2/1] [_U]

unused devices: <none>


он показывает, что из рейда удален sdA, и активен sdB. Как я понял, по хорошему, нужно удалить текущие md0-2 и пересоздать raid, но можно ли это сделать без потери данных? Чтобы синхронизировался sdA -> sdB? Большое спасибо.
  • Вопрос задан
  • 900 просмотров
Пригласить эксперта
Ответы на вопрос 3
gbg
@gbg Куратор тега Linux
Любые ответы на любые вопросы
shambler81
@shambler81 Куратор тега Linux
статей куча
вот я писал лет 6 назад
не думаю что там очень все поменялось.
https://klondike-studio.ru/blog/raid-recovery/
Ответ написан
@azrocketa
Если я правильно понял из всех комментариев и обсуждения проблемы, то у вас сейчас рабочие данные на /dev/sda который смонтирован и используется, и еще есть рейд1 из одного диска /dev/sdb который просто существует.

Как я понял, по хорошему, нужно удалить текущие md0-2 и пересоздать raid, но можно ли это сделать без потери данных? Чтобы синхронизировался sdA -> sdB? Большое спасибо.


Не уверен что такое возможно на лету. Я бы всё таки запланировал работы с простоем сервера.

1) Загрузитесь с live_iso и перенёсите актуальные данные с /dev/sda5 на /dev/md2
2) У вас boot на отдельном разделе вам надо так же перенести /boot/ раздел на /dev/md2
3) Убедившись что все актуальные данные на /dev/md2, добавить в текущий рейд /dev/sda
( предварительно пересоздав разделы sfdisk -d /dev/sdb | sfdisk /dev/sda )
4) После того как всё перенесли на рейд, вам надо сделать chroot в систему на /dev/md2 и уже из неё сделать update-grub, обновить конфиг рейда /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf

и можете перезагружаться, но при загрузке выберите диск тот что /dev/sdb что бы с него система начала загружаться.

Лучше дождаться полной синхронизации рейда до конца, но это может затянуться.

Помимо update-grub можете также сделать update-initramfs -k all -u -v
иногда может помочь удаление текущего пакета linux-image и установка его заново.

По сути вам надо смигрировать с диска на raid 1, так что погуглите howto к вашему дистрибутиву линукса о том как правильнее переносить root
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы