метаданные mdadm: я должен принять меры предосторожности для предотвращения перезаписи суперблока?

#!/bin/bash

names= find /home/devuser -name 'BI*'
echo $names

for name in {names[@]}
do    
 echo $name
 var=$var$name //$ should be removed which is prefixed before var. Blank space before and after equal sign should be removed to run this code.   
done

echo $var
2
03.08.2014, 18:32
2 ответа

Все дело в слоях.

У вас есть диск (нижний слой). На этот диск вы помещаете таблицу разделов. На него вы помещаете RAID. На RAID вы помещаете LUKS. На LUKS вы добавляете LVM. В LVM, наконец, файловая система (высший слой).

Disk -> Partition -> RAID -> LUKS -> LVM -> Filesystem

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

Пока никаких проблем. Все должно быть хорошо.

Пока каждый из этих слоев соблюдается, конфликтов нет. Каждый из этих слоев имеет метаданные, но каждый слой предоставляет только то, что может быть использовано без повреждения этих метаданных. Нельзя создать простенок, который начинается с сектора 0, так как это приведет к столкновению с самой таблицей простенков. Нельзя повредить метаданные md, записав их на устройство md. Вы можете заполнить файловую систему до краев, это не повредит ни метаданные файловой системы, ни любые слои под ней, потому что каждый слой заботится о себе сам.

Как таковой, вам не нужно ни о чем беспокоиться.

Если вы не перестанете уважать эти слои.

Вы упоминаете RAID и GPT. Вы можете поместить RAID на раздел GPT, или GPT на RAID. До тех пор, пока это один слой на другом слое, это совсем не проблема. Но предположим, что вы пытались использовать оба слоя одновременно? Вы разбиваете диск на разделы с помощью GPT, и в то же время делаете весь диск членом RAID.

На самом деле это не работает.

GPT имеет метаданные в начале и в конце; RAID имеет метаданные в начале и в конце (для md это зависит от версии метаданных). Метаданные RAID могут полностью перезаписать GPT (или наоборот). Или может показаться, что это работает, так как смещения немного отличаются, но все равно это ужасная ситуация.

Предположим, вы хотели использовать другой слой вместе с ним, куда вы его помещаете? Если вы поместите его на RAID, он может пересекать границы создаваемых разделов. Если же вы поместите его на разделы, он обойдёт слой RAID и как таковой не будет зеркалироваться. RAID верит в синхронизацию, в то время как данные повреждены.

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

.
3
27.01.2020, 22:00

Вам не о чем беспокоиться. Данные в томе не будут перекрываться с метаданными. Иначе было бы очень сложно справиться! Например, так будет выглядеть каждый из ваших дисков (без масштабирования):

[--------------------- sda ------------------------]
[---][------------------ sda1 ---------------------]
     [---][----------------------------------------]
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one copy of the data in /dev/md0
     ^^^^ superblock
^^^^ partition table

Таблица разделов не содержится в разделе, а метаданные RAID не содержатся внутри тома RAID. Когда вы помещаете содержимое в том RAID, это содержимое будет занимать часть, не занятую метаданными. Никаких особых договоренностей делать не нужно.

1
27.01.2020, 22:00

Теги

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