Mdadm: различия между версиями
Vaksim (обсуждение | вклад) |
Vaksim (обсуждение | вклад) |
||
Строка 35: | Строка 35: | ||
= Изменение hostname | = Изменение hostname = | ||
Грузимся с Live CD, режим восстановления (например с Server Light) | Грузимся с Live CD, режим восстановления (например с Server Light) | ||
Рэйды соберутся с именами md121,md122 и т.д. т.к. hostname = localhost and != | Рэйды соберутся с именами md121,md122 и т.д. т.к. hostname = localhost and != старое_имя | ||
Останавливаем все рэйды | Останавливаем все рэйды | ||
Строка 47: | Строка 48: | ||
</pre> | </pre> | ||
Cобираем рэйды со старым именем: | |||
<pre> | <pre> | ||
mdadm -A --homehost= | mdadm -A --homehost=старое_имя --scan | ||
cat /proc/mdadm | </pre> | ||
Cмотрим, что все собралось: | |||
<pre> | |||
cat /proc/mdadm | |||
</pre> | </pre> | ||
Подготавливаемся к переименованию | Подготавливаемся к переименованию. | ||
Добавляем информацию в /etc/mdadm.conf | |||
<pre> | <pre> | ||
echo "HOMEHOST | echo "HOMEHOST новое_имя" >> /etc/mdadm.conf | ||
mdadm -D --scan >> /etc/mdadm.conf | mdadm -D --scan >> /etc/mdadm.conf | ||
<pre> | |||
cat /etc/mdadm.conf | |||
MAILADDR root@localhost | |||
PROGRAM /sbin/mdadm-syslog-events | |||
DEVICE partitions | |||
HOMEHOST новое_имя | |||
ARRAY /dev/md/0 metadata=0.90 UUID=edd10aa9:b2be5d13:bfe78010:bc810f04 | |||
ARRAY /dev/md/1 metadata=1.2 name=<старое_имя>:1 UUID=137c3ff2:9aefae7b:ee71cb74:442e0b4e | |||
</pre> | </pre> | ||
</pre> | |||
В рейдах версии 0.9 информация о homehost хранится в UUID рэйда. | |||
Необходимо из /etc/mdadm.conf удалить параметр UUID и добавить информацию о всех устройствах которые используются в рэйдах | |||
В редах версии 1.2 информация о homehost храниться в name. | |||
Необходимо просто удалить параметра name. | |||
После изменений должно выглядеть примерно так: | |||
<pre> | <pre> | ||
cat /etc/mdadm.conf | cat /etc/mdadm.conf | ||
Строка 63: | Строка 85: | ||
PROGRAM /sbin/mdadm-syslog-events | PROGRAM /sbin/mdadm-syslog-events | ||
DEVICE partitions | DEVICE partitions | ||
HOMEHOST | HOMEHOST новое_имя | ||
ARRAY /dev/ | ARRAY /dev/md/0 metadata=0.90 devices=/dev/sdb | ||
ARRAY /dev/ | ARRAY /dev/md/1 metadata=1.2 UUID=137c3ff2:9aefae7b:ee71cb74:442e0b4e | ||
</pre> | </pre> | ||
Cобираем рэйды под новое имя | Cобираем рэйды версии 0.9 под новое имя: | ||
<pre> | |||
mdadm -S /dev/md0 | |||
mdadm --verbose -A /dev/md0 --update=uuid --scan | |||
</pre> | |||
Cобираем рэйды версии 1.2 под новое имя: | |||
<pre> | <pre> | ||
mdadm -S /dev/md1 | |||
mdadm -S | mdadm --verbose -A /dev/md1 --update=name --scan | ||
mdadm --verbose -A /dev/ | |||
</pre> | </pre> | ||
Проверяем | |||
Для версии 0.9 | |||
<pre> | |||
mdadm -D /dev/md0 | |||
</pre> | |||
должно содержать | |||
<pre> | |||
... | |||
UUID : f09038d2:80fbe89e:e76927ce:3fd4fe03 (local to host новое_имя) | |||
... | |||
</pre> | |||
Для версии 1.2 | |||
<pre> | |||
mdadm -D /dev/md1 | mdadm -D /dev/md1 | ||
</pre> | |||
должно содержать | должно содержать | ||
<pre> | |||
... | ... | ||
Name : | Name : новое_имя:1 (local to host новое_имя) | ||
... | ... | ||
</pre> | |||
Если всё так, то mdadm уже по супрблокам сможет определить какое устаройство в каком масиве. | |||
<pre> | |||
mdadm -S /dev/md0 | |||
mdadm -S /dev/md1 | |||
mdadm -A --homehost=новое_имя --scan | |||
cat /proc/mdstat | |||
Personalities : [raid1] | |||
md0 : active raid1 sdb2[0] | |||
194496 blocks [2/1] [U_] | |||
md1 : active raid1 sdb3[0] | |||
34147200 blocks super 1.2 [2/1] [U_] | |||
</pre> | |||
Если hostname будет новое_имя, т.е. уже на реальной машине, определение будет проходить полностью автоматически: | |||
<pre> | |||
mdadm -A --scan | |||
</pre> | |||
Если в реальном рабочем mdadm.conf были данные об этих массивах, но со старым_именем, то его необходимо изменить. Внести в него данные из выхлопа: | |||
<pre> | |||
mdadm -D --scan | |||
</pre> | |||
который уже будет содержать новые данные. | |||
Монтиируем систему и вносим изменения в initrd | Монтиируем систему и вносим изменения в initrd |
Версия от 08:18, 11 февраля 2015
Примеры использования mdadm
Отсканировать устройства и собрать массивы (после взлета с live CD)
mdadm -A --scan
Переименовать /dev/md127 в /dev/md0
mdadm --stop /dev/md127 mdadm -A /dev/md0 --update=super-minor /dev/sda1 /dev/adb1
Собрать массив в ручную
mdadm -A /dev/md1 /dev/sd{a,b}1
Остановить массив
mdadm /dev/md0 --stop
Заменить диск в массиве
mdadm /dev/md0 --fail /dev/sda1 mdadm /dev/md0 --remove /dev/sda1 mdadm /dev/md0 --add /dev/sda1
Собрать raid1 с одним диском
Иногда при миграции на raid1 бывает нужно.
mdadm -C --level=1 -e0.9 --raid-devices=2 /dev/sdb1 missing
Внимание: Если массив будет содержать /boot (в виде отдельной файловой системы, или в составе /), то версия метаданных должна быть 0.9.
Потом добавим второй
mdadm /dev/md0 --add /dev/sda1
Изменение hostname
Грузимся с Live CD, режим восстановления (например с Server Light) Рэйды соберутся с именами md121,md122 и т.д. т.к. hostname = localhost and != старое_имя
Останавливаем все рэйды
mdadm -S /dev/md121 mdadm -S /dev/md122 ...
Cобираем рэйды со старым именем:
mdadm -A --homehost=старое_имя --scan
Cмотрим, что все собралось:
cat /proc/mdadm
Подготавливаемся к переименованию. Добавляем информацию в /etc/mdadm.conf
echo "HOMEHOST новое_имя" >> /etc/mdadm.conf mdadm -D --scan >> /etc/mdadm.conf <pre> cat /etc/mdadm.conf MAILADDR root@localhost PROGRAM /sbin/mdadm-syslog-events DEVICE partitions HOMEHOST новое_имя ARRAY /dev/md/0 metadata=0.90 UUID=edd10aa9:b2be5d13:bfe78010:bc810f04 ARRAY /dev/md/1 metadata=1.2 name=<старое_имя>:1 UUID=137c3ff2:9aefae7b:ee71cb74:442e0b4e
В рейдах версии 0.9 информация о homehost хранится в UUID рэйда. Необходимо из /etc/mdadm.conf удалить параметр UUID и добавить информацию о всех устройствах которые используются в рэйдах В редах версии 1.2 информация о homehost храниться в name. Необходимо просто удалить параметра name. После изменений должно выглядеть примерно так:
cat /etc/mdadm.conf MAILADDR root@localhost PROGRAM /sbin/mdadm-syslog-events DEVICE partitions HOMEHOST новое_имя ARRAY /dev/md/0 metadata=0.90 devices=/dev/sdb ARRAY /dev/md/1 metadata=1.2 UUID=137c3ff2:9aefae7b:ee71cb74:442e0b4e
Cобираем рэйды версии 0.9 под новое имя:
mdadm -S /dev/md0 mdadm --verbose -A /dev/md0 --update=uuid --scan
Cобираем рэйды версии 1.2 под новое имя:
mdadm -S /dev/md1 mdadm --verbose -A /dev/md1 --update=name --scan
Проверяем
Для версии 0.9
mdadm -D /dev/md0
должно содержать
... UUID : f09038d2:80fbe89e:e76927ce:3fd4fe03 (local to host новое_имя) ...
Для версии 1.2
mdadm -D /dev/md1
должно содержать
... Name : новое_имя:1 (local to host новое_имя) ...
Если всё так, то mdadm уже по супрблокам сможет определить какое устаройство в каком масиве.
mdadm -S /dev/md0 mdadm -S /dev/md1 mdadm -A --homehost=новое_имя --scan cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb2[0] 194496 blocks [2/1] [U_] md1 : active raid1 sdb3[0] 34147200 blocks super 1.2 [2/1] [U_]
Если hostname будет новое_имя, т.е. уже на реальной машине, определение будет проходить полностью автоматически:
mdadm -A --scan
Если в реальном рабочем mdadm.conf были данные об этих массивах, но со старым_именем, то его необходимо изменить. Внести в него данные из выхлопа:
mdadm -D --scan
который уже будет содержать новые данные.
Монтиируем систему и вносим изменения в initrd
mount-system chroot /mnt/system1
Изменяем в /etc/sysconfig/network HOSTNAME=<новое имя сервера>
echo "homehost <system>" >> /etc/mdadm.conf mdadm -D --scan >> /etc/mdadm.conf (и в нем удаляем старые ARRAY) make-initrd -k <версия ядра> (смотрим в ls -1 /lib/modules)
P.S. если корень на raid v1.2 то
apt-get install make-initrd-mdadm cat /etc/initrd.mk # trying to detect modules and features to access to root volume AUTODETECT = all FEATURES += mdadm