LINUX.ORG.RU
ФорумAdmin

Программный RAID 1 - не могу сделать 2 активных диска.

 


0

1

Создаю программный рейд 1, вот такие команды:

sudo mdadm --create /dev/md0 -–level=1 --raid-devices=2 /dev/sda1 /dev/sdc1 --spare-devices=0

sudo cryptsetup --cipher=aes-cbc-essiv --offset=0 --key-file=/mnt/key/key --key-size=256 luksFormat /dev/md127

 sudo cryptsetup luksOpen /dev/md127 drive --key-file=/mnt/key/keycl

sudo mkfs.ext4 /dev/mapper/drive

Далее смотрю рейд, вроде бы всё красиво:

sudo mdadm -D /dev/md127
/dev/md127:
           Version : 1.2
     Creation Time : Wed Apr  1 17:43:38 2020
        Raid Level : raid1
        Array Size : 3906884608 (3725.90 GiB 4000.65 GB)
     Used Dev Size : 3906884608 (3725.90 GiB 4000.65 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Wed Apr  1 17:28:02 2020
             State : active, resyncing 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

     Resync Status : 1% complete

              Name : Cloud:0  (local to host Cloud)
              UUID : c3346f60:f4b02c20:c8e88bf4:3e1d7ea8
            Events : 219

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1

Чтобы перепроверить что информация дублируется и я смогу вытащить её с любого диска, перезапускаю сервер с 1-вым диском, всё отлично, могу расшифровать и посмотреть файлы. Перезапускаю со вторым диском, его видит, но невозможно открыть в рейде/расшифровать. Перезапускаю систему с 2-мя дисками, пишет что второй диск «removed» а первый активный. я добавляю второй обратно командой:

sudo mdadm /dev/md127 --add /dev/sdd1

и оно его ставит в статус «spare rebuilding». Что я млять делаю не так? Я уже что только не пробовал, в чём ошибка? Как мне убедится что рейд работает правильно, чтобы я мог с любого вытащить информацию? Как мне теперь обратно не пересоздавая рейд, поместить второй диск в активную синхронизацию?

★★

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

«spare rebuilding»

Всё ты правильно делаешь. С точки зрения райда у него только что отвалился диск. А потом появился. Естественно райд хочет пересобраться. Это собсно и происходит, просто жди.

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

Естественно райд хочет пересобраться.

И второй диск станет активным для постоянной синхронизации? Там один килобайтный файл)

И почему я не могу вытягивать инфу со второго диска? Или в случае если первый посыпется, то система на второй назначит основным и я со второго тогда тоже смогу вытянуть?

TheLinuxUser ★★
() автор топика
Последнее исправление: TheLinuxUser (всего исправлений: 1)
Ответ на: комментарий от TheLinuxUser

И почему я не могу вытягивать инфу со второго диска? Или в случае если первый посыпется, то система на второй назначит основным и я со второго тогда тоже смогу вытянуть?

Сможешь как только синхронизация завершится. До этого момента у райда доверия к диску нет, ты его только что вставил потому что. Это ТЫ знаешь что там всё в порядке, райд в этом не уверен. Дождись Resync Status : 100% complete

Или в случае если первый посыпется, то система на второй назначит основным и я со второго тогда тоже смогу вытянуть?

В этом и смысл.

Там один килобайтный файл)

Райд не на уровне файлов работает, а на уровне блоков блочного устройства.

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 1)
Ответ на: комментарий от Jameson

Дождись Resync Status : 100% complete

Ок, жду.

Или в случае если первый посыпется, то система на второй назначит основным и я со второго тогда тоже смогу вытянуть?

В этом и смысл.

То есть я не смогу вот при выключенном устройстве так от рабочего рейда отключить второй диск, и снять с него информацию? Или смогу?

TheLinuxUser ★★
() автор топика
Последнее исправление: TheLinuxUser (всего исправлений: 2)
Ответ на: комментарий от TheLinuxUser

Сможешь. Только в райд его не включай обратно, сможешь снять как с отдельного независимого устройства. А при включении обратно в райд будет ребилд, и это вполне логично с точки зрения райда. Он же не может к тебе в голову проникнуть и узнать что ты специально вынул из него абсолютно рабочую половину, а потом её вставил. Для него произошёл сбой зеркала, нужна синхронизация.

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

Только в райд его не включай обратно, сможешь снять как с отдельного независимого устройства.

Ну вот я пробовал же первый отключить, и перезапустить только со вторым диском. Оно как рейд не определило, но и расшифровать как обычный я его не смог.

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

Оно как рейд не определило

А как определило? Если всё правильно сделал система должна с него загрузиться точно так же как с первого, ибо они должны быть идентичны, и сигнализировать о потере первой половины райда.

Возможно ты просто не дождался окончания самой первой синхронизации когда экспериментировать начал? Она после создания райда продолжается в фоне какое то время. До её окончания естественно у тебя вторая половина окажется битой, если ты её выдернешь.

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

https://raid.wiki.kernel.org/index.php/Setting_up_a_(new)_system#Setting_up_t...

И там дальше читай про Grub и UEFI

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 2)
Ответ на: комментарий от Jameson

Возможно ты просто не дождался окончания самой первой синхронизации когда экспериментировать начал?

Да, вот походу моя ошибка, не дождался. Жду сейчас синхронизации.

Система у меня с 3-тего диска грузит. Эти 2 - home

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

То есть я не смогу вот при выключенном устройстве так от рабочего рейда отключить второй диск, и снять с него информацию?

Зачем? RAID не для бэкапа.

zemidius
()

mdadm –create /dev/md0

/dev/md127

Тут ошибок точно нет?

zemidius
()

md127 уже грит о нехорошем.

И еще:

sudo mdadm /dev/md0 --fail /dev/sdb1
В отличии от команды --remove, которая удаляет диск из массива, команда --fail позволяет отключить диск не останавливая работу массива, на загрузочных массивах это единственная возможность отключить дис...

Bootmen ☆☆☆
()
Последнее исправление: Bootmen (всего исправлений: 2)
Ответ на: комментарий от Jameson

Синхронизация прошла, но второй диск в статусе «spare» я его могу как-то вернуть в активную синхронизацию? Или рейд пересоздавать?

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

То есть я не смогу вот при выключенном устройстве так от рабочего рейда отключить второй диск, и снять с него информацию?

Зачем? RAID не для бэкапа.

Чтобы воспроизвести физический сбой и понять что файлы я смогу достать с любого диска.

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

Это странно. Оно восстановилось, далее перезагрузил сервер и пишет рейд 0, хотя был рейд1 и статусы уже не пишето_О:

/dev/md127:
           Version : 1.2
        Raid Level : raid0
     Total Devices : 2
       Persistence : Superblock is persistent

             State : inactive
   Working Devices : 2

              Name : Cloud:0  (local to host Cloud)
              UUID : c3346f60:f4b02c20:c8e88bf4:3e1d7ea8
            Events : 1248

    Number   Major   Minor   RaidDevice

       -       8       49        -        /dev/sdd1
       -       8       33        -        /dev/sdc1

/dev/md127 теперь расшифровать нельзя, пишет «Device /dev/md127 is not a valid LUKS device.»

TheLinuxUser ★★
() автор топика
Последнее исправление: TheLinuxUser (всего исправлений: 1)
Ответ на: комментарий от TheLinuxUser

У тебя изначально был /dev/md0 из sda1 и sdb1 В результате стал md127 из sdb1 и sdc1.

Ну ладно md127, это ты mdadm.conf врядли заполнил, но второе - это странно.

Наведи порядок в системе и в голове.

Вангую, что ты пустой раздел синхронизировал с данными и они (данные) перезатерлись пустотой. Т.к. mdadm не оперирует файлами, он оперирует блоками.

zemidius
()
Последнее исправление: zemidius (всего исправлений: 2)
Ответ на: комментарий от TheLinuxUser

Если у вас State : inactive, то что вы там пытаетсь расшифровать?

Что в /proc/mdstat? И как вы добились этого? А то перечислена куча действий, но в какой-то момент raid создавлся заново?

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

raid, поди, поднимается из initramfs, а вы редактировали mdadm.conf основной системы и не пересоздавали после этого initramfs.

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

Короче. Пересобрал рейд по феншую, он пытался синхронизироватся и в итоге выдал это:

/dev/md0:
           Version : 1.2
     Creation Time : Wed Apr  1 17:40:54 2020
        Raid Level : raid1
        Array Size : 3906884608 (3725.90 GiB 4000.65 GB)
     Used Dev Size : 3906884608 (3725.90 GiB 4000.65 GB)
      Raid Devices : 2
     Total Devices : 1
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Wed Apr  1 18:57:45 2020
             State : clean, degraded 
    Active Devices : 1
   Working Devices : 1
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : Cloud:0  (local to host Cloud)
              UUID : 0d8fcd03:e89973ff:8013bd0d:c9f3a885
            Events : 240

    Number   Major   Minor   RaidDevice State
       0       8       49        0      active sync   /dev/sdd1
       -       0        0        1      removed

Причём пересобирал несколько раз, всё равно один диск выкидывает. Вот что я делаю (не перезагружая систему):

sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdc1 --spare-devices=0


echo "DEVICE partitions" > /etc/mdadm/mdadm.conf

mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf

sudo cryptsetup --cipher=aes-cbc-essiv --offset=0 --key-file=/mnt/key/key --key-size=256 luksFormat /dev/md127

 sudo cryptsetup luksOpen /dev/md127 drive --key-file=/mnt/key/keycl

sudo mkfs.ext4 /dev/mapper/drive

Вроде бы всё правильно, но диск отваливается.. -_-

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

Тогда поиграйся с командой:

 fdisk
Думаю поможет.

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