Набег 5 восстанавливает с неправильным размером дорожки и никакими неисправными дисками - данные потеряны?

Используйте ifconfig, чтобы обнаружить IP-адрес и ожидать, пока у Вас не будет IP-адреса (то есть, $? == 0) (это принимает ipv4),

$ /sbin/ifconfig |grep "inet " |grep -v "127.0.0.1"
inet 10.2.3.15  netmask 255.255.255.0  broadcast 10.2.3.255
$ echo $?
0

то есть,

#!/bin/bash
while [ 1 ]; do
    ip=`/sbin/ifconfig |grep -v "127.0.0.1" |grep "inet "`
    [[ $? == 0 ]] && break;
    echo "wait for ip"; sleep 1;
done
echo "got ip: $ip"
3
05.09.2014, 09:28
1 ответ

Если вы удалите диск из RAID-массива, но RAID все равно будет работать, так как недостающий диск был покрыт избыточностью, а затем вы добавите запасной диск, то добавленный диск будет перезаписан. При этом не происходит потери данных, поскольку данные, которые вы видите на устройстве /dev/mdX, не меняются. Однако, если на добавленном диске были важные данные, они будут потеряны из-за перезаписи.

Поэтому все зависит от того, были ли данные на оставшихся дисках неповрежденными или нет.

Установите неправильную симметрию, неправильный размер полосы, диски в неправильном порядке и т.д.

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

Если вы должны использовать его, вы должны сделать это в режиме только для чтения: резервное копирование регионов метаданных, на уровне снимка, отсутствующий диск, --assume-clean, чтобы предотвратить его синхронизацию, ...

Уничтожение или изменение данных при плохой синхронизации зависит от того, насколько сильно вы ошиблись в настройках. В основном в RAID5, при условии, что все диски не повреждены и все данные четности корректны, вы можете синхронизироваться с любым порядком дисков и любым размером фрагментов. Тогда сама синхронизация не вызовет никаких повреждений. XOR - это XOR, независимо от порядка и размера, результат один и тот же.

# truncate -s 128M a b c
# losetup -f --show a b c
/dev/loop0
/dev/loop1
/dev/loop2
# mdadm --create /dev/md42 --level=5 --chunk=512 --raid-devices=3 /dev/loop0 /dev/loop1 /dev/loop2
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md42 started.
# shred -n 1 /dev/md42
# mdadm --stop /dev/md42
mdadm: stopped /dev/md42
# dd if=/dev/loop0 bs=1M skip=8 | md5sum
98f23e09198f7943e27030e8e0f9bc30  -
# dd if=/dev/loop1 bs=1M skip=8 | md5sum
90ef43c60e540b930c6db8dae831f8ab  -
# dd if=/dev/loop2 bs=1M skip=8 | md5sum
d010c8ae141fadc3347e8ed319b76db9  -
# mdadm --create /dev/md42 --level=5 --chunk=64 --raid-devices=3 /dev/loop2 /dev/loop0 /dev/loop1
mdadm: /dev/loop2 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Fri Sep  5 11:35:51 2014
mdadm: /dev/loop0 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Fri Sep  5 11:35:51 2014
mdadm: /dev/loop1 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Fri Sep  5 11:35:51 2014
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md42 started.
# mdadm --wait /dev/md42
# mdadm --stop /dev/md42
mdadm: stopped /dev/md42
# echo 3 > /proc/sys/vm/drop_caches
# dd if=/dev/loop0 bs=1M skip=8 | md5sum
98f23e09198f7943e27030e8e0f9bc30  -
# dd if=/dev/loop1 bs=1M skip=8 | md5sum
90ef43c60e540b930c6db8dae831f8ab  -
# dd if=/dev/loop2 bs=1M skip=8 | md5sum
d010c8ae141fadc3347e8ed319b76db9  -

Однако, если диск отсутствует в наборе, или лишний диск в наборе; или если вы измените другие вещи, например, смещение разделов на одном из дисков; или вы используете другой уровень RAID, это больше не будет работать таким образом, и вы потеряете все, что было записано при синхронизации. И сможете ли вы восстановиться оттуда, зависит от того, есть ли у данных на других дисках избыток, чтобы покрыть то, что было перезаписано. Простого решения для восстановления после такой ситуации не существует.

0
27.01.2020, 21:42

Теги

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