Замена мягких дисков RAID1 LUKS на диски большего размера

Я не уверен, что вы получите, используя <(...)вместо простого трубопровода:

journalctl... |
jq -r... |
while read LOG_FACILITY LOG_SEVERITY LOG_TAG LOG_MESSAGE
do logmessage...
done

Конечно, обе версии имеют одинаковую проблему с буферизацией.

Однако в любом случае, если вы хотите использовать socatдля запуска команды jq, вы можете сделать это, заменив jq -r...на

socat -u EXEC:'jq -r...',pty,ctty STDIO

, но есть большая проблема с необходимостью заключать аргументы jqв кавычки, так как socatнемного искажает их, и сложно правильно передать строку. Один из способов обойти это — сохранить команду в переменной оболочки, а затем использовать ее позже :

.
export cmd="$(cat <<\! 
jq -r '"\(.SYSLOG_FACILITY // 3) \(.PRIORITY // 6 ) \(.SYSLOG_IDENTIFIER // "journald") \(.MESSAGE | sub("\\n";" ";"g") // "no message")"'
!
)"

socat -u SYSTEM:'eval $cmd',pty,ctty STDIO

Но, наконец, ни в чем из этого не должно быть необходимости, так как jqпринимает вариант --unbuffered, который позволит достичь желаемого эффекта.

0
21.11.2021, 11:46
1 ответ

Похоже, что все ваши /media/*монтирования используют диск ->часть ->raid1 ->слои шифрования.

Обратите внимание: если ваши существующие диски емкостью 2 ТБ разбиты на разделы в стиле MBR, вы не сможете сделать это с новыми большими дисками, так как вы достигнете предела максимальной емкости MBR. К счастью, программный RAID для Linux не требует, чтобы вы имели один и тот же тип разбиения на отдельные половины набора RAID (или, фактически, с загрузочными дисками, отличными от -, у вас будет возможность не использовать какую-либо схему разбиения. вообще ).

Итак, предположим, что md2— это набор RAID, который вы хотите перенести на большие диски, и сначала вы захотите поменять местами sdh:

  1. Отметить sdh1как неисправный компонент RAID1:mdadm --manage /dev/md2 --fail /dev/sdh1
  2. Удалите его из md2RAID-набора:mdadm --manage /dev/md2 --remove /dev/sdh1
  3. Сообщить ядру, что диск будет горячим -отключенным:echo 1 > /sys/block/sdh/device/delete. В зависимости от контроллера и модели диска, диск может фактически останавливаться, а может и не останавливаться, когда вы это делаете.
  4. Физически заменить sdhдиск новым.
  5. Узнать имя нового дискового устройства (оно может быть, а может и не быть /dev/sdh;назовем этоsdX).
  6. Если вы хотите использовать разбиение на разделы, используйте тип разбиения GPT и создайте один раздел, охватывающий весь диск. Установите тип раздела «Linux RAID» (GUID типа раздела GPT A19D880F-05FC-4D3B-A006-743F0F84911E; большинство инструментов разметки GPT имеют более удобный для пользователя -способ указать это. )Этот раздел будет больше, чем существующая половина этого набора RAID; это совершенно нормально на данный момент. mdadmбудет использовать столько, сколько необходимо для зеркального отображения раздела sdi1, пока вы не дадите ему разрешение на использование полной емкости на шаге #10 позже.

(Если вы используете разбиение на разделы, вы можете захотеть использовать какой-то конкретный размер вместо того, чтобы просто использовать весь диск, чтобы предотвратить возможность того, что вам может понадобиться заменить диск в будущем, и вы не сможете получить исходный код. замена дисков с точно таким же количеством блоков. Опять же, будущие диски, вероятно, будут больше, чем текущие, что сделает эту проблему не -.)

  1. Добавьте новый диск в набор RAID. Если вы разбили диск, используйте mdadm --manage /dev/md2 --add /dev/sdX1; если вы решили использовать весь диск в качестве неразделенного RAID-устройства, используйте mdadm --manage /dev/md2 --add /dev/sdX.
  2. Следите за /proc/mdstat, чтобы увидеть, когда синхронизация завершена.
  3. Повторите шаги 1 -8 для второго диска sdj.
  4. Когда оба диска заменены и синхронизированы, используйте mdadm --grow /dev/md2 --size=max, чтобы md2RAID-устройство могло полностью использовать увеличенную емкость.

(Если вы решили не использовать разделение на шаге #6 выше, вы также можете использовать определенный размер вместо --size=maxздесь по той же причине, что и на шаге #6.)

  1. После успешного изменения размера устройства md2используйте cryptsetup resize /dev/mapper/backupдля изменения размера зашифрованного устройства поверх набора RAID md2.
  2. Наконец, измените размер файловой системы поверх зашифрованного устройства с помощью fsadm resize /dev/mapper/backup,или с помощью специального инструмента файловой системы -(resize2fs /dev/mapper/backupдля типов файловых систем ext2/ext3/ext4, xfs_growfs /media/backupдля XFS и т. д.)
1
24.11.2021, 09:51

Теги

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