четверг, 8 октября 2009 г.

Восстановления Red Hat Enterprise 5.x

Мы рассмотрим процесс восстановления Red hat Enterprise 5.x,за счет использования утилит dump/restore

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

Будет рассмотрена ситуация,при которой сервер полностью вышел из строя или вам нужно перенести полностью работающую систему на другой комп.
В принципе для этого можно использовать и acronis for linux,или к примеру мы решили клонировать нашу систему использую к примеру live cd clonozilа,или старыый добрый tar,или dd.

По умолчанию Red hat Enterprise 5.x,при установки предлагает разметить диск автоматически, создавая одну группу томов Volgroup00 и входящий в нее логический том для корневой системы LogVol00 логический том для swap LogVol01, и создает один раздел для /boot ,если sata/scsi диски то это sda1

Шаг 1

Делаем бекап с помощью dump 0 уровня группы томов и загрузочного раздела

dump -0aj -f /mnt/root.dump /
dump -0aj -f /mnt/boot.dump /boot

/mnt точка монтирования удаленного ресурса где хранятся бекапы
-j использования компрессии,но скорость создания dump понижается,хотя это зависит как от места назначения,так и от объема диска

Заодно сделаем бекап mbr использую команду dd:

dd if=/dev/sda of=/mnt/mbr.backup bs=512 count=1

После этого уже можно решить, сколько уровней использовать dump, для последующих резервных копий


Шаг 2

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

Для начало нужно разбить новый диск,по аналогии эталонного сервера,мы можем использовать gparted-live (как вариант),но он неподдерживает на данный момент LVM для создания группы томов,только видит их и выставляет флаг lvm,хрен с ним...
Для работы и удобства работы с lvm будеи использовать live-cd centos 5.3
Загрузились с него
И будем использовать fdisk
Создаем первый раздел в районе 150 мегов для boot раздела и того sda1
ставим для него метку -a тем самым говорим,что он загрузочный

Создаем второй раздел отдаем ему все место,для работы с ним в окружении LVM изменм метку, по умолчанию проставляется 83, мы делаем 8e и того dev/sda2
Даем команду fdisk /dev/sda ключ -t
После того как все сделано, вбиваем последний ключ для записи,используя ключ -w

Дальше мы создаем группу томов,используя либо консоль либо для быстраты,менеджер LMV
По сути, если мы работаем через консоль достаточно дать команды:
pvcreate /dec/sda2
vgcreate VolGroup00 /dev/sda2,группу специально была названа индентична эталону,что бы не править лишний раз fstab ,grub.conf
vgchange -a y, активировать все группы томов которые имеются,перед этой командой можно просмотреть какие группы томов вообще есть vgscan

После этого нам нужно создать логический том в нашу группу
Нас интересует такой параметр нашей группы томов как Total PE,т.е сколько у нас логических экстентов это можно увидеть среди прочей инфы нашей группы томов, дав команду:

vgdisplay

Пусть количество экстентов будет 100000
тогда даем команду для создания логического тома в группу томов VolGroup00:
lvcreate -l 100000 VolGroup00 -n LogVol00,
LogVol00 имя логического тома эталон нашего сервера

После этого нужно отформатировать в файловую систему ext3

Так как мы еще не отформатировали не /dev/sda1 сделаем это

mkfs.ext3 /dev/sda1
mkfs.ext3 /dev/VolGroup00/LogVol00

Все готово к работе

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

Для того,что вы все было корректно после отформатирования,даем команду:
vgchange -a n деактивируем группу томов,перезагружаемся и сново грузимся c live cd centos 5.3

Шаг 3

Для начало если дать команду df,то можно будет увидеть,что группа томов /dev/sda2 и /dev/sda1 примонтированы, отмонтируйте их

После этого создадим диркторию к примеру /homes
mkdir /homes

Примонтируем туда нашу группу томов:

mount -t ext3 /dev/VolGroup00/LogVol00 /homes

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

yum check-update
yum install dump

После того как утилита dump установлена,нам остается только подключить удаленное хранилище в мое случаи это удаленная шара на другом компе,даем команду:

mount -t cifs //ip адрес компа/шара /точка монтирования(пусть будет /mnt -o username=имя,passwords=пароль

Переходим в нашу папку /homes для восстановлении корневой файловой системы

cd /homes
restore -vrf /mnt/root.dump
Процесс занимает некоторое время...

После этого мы восстановим папку раздел с папкой /boot (sda1)

Для этого примонтируем ее:

mount -t ext3 /dev/sda1 /homes/boot

Зайдем в неё и восстановим :

cd /homes/boot

restore -vrf /mnt/boot.dump

После того как все сделано, нужно восстановить загрузочную запись,использую команду dd

dd if=/mnt/backup.mbr of=/dev/sda

После этого разбираемся с grub:

Даем команды
grub
root (hd0,0)
setup (hd0)

Если выдается ошибка:

error 24: attempt to access block outside partition

решение

mount /dev/sda1 /mnt
grub-install /dev/sda --root-directory=/mnt --recheck

Если по каким-то причинам не пашет, или не помагает команда,а ошибка появляется можно еще раз отформатировать,перезагрузить,восстановить из dump,затем восстанавливать grub

Мы все сделали, отмонтируем папки, деактивируем группу:

umount /homes/boot
umount /homes
umount /mnt
vgchange -a n

Но, опережая события после перезагрузки система red hat Enterprise 5.x будет загружаться, красиво выдаст нам ряд ошибок

mount:could not find filesystem '/dev/root'
setuproot : moving /dev/ failed :No such file or directory
setuproot : error mounting /proc:No such file or directory
setuproot : error mounting /sys:No such file or directory

Шаг 4

Поэтому после того как мы все отматировали нам нужно загрузится с дистрибутива Red Hat Enterprise 5.x в режиме восстановления т.е нажмите f5 и введите или просто введите:

linux rescue

После этого система,пустит несколько мастеров нас интересует последний по поводу мантирования корневой системы,нажимаем продолжить, если все нормально, система ее находит и монтирует в /mnt/sysimage

После этого даем команду:

chroot /mnt/sysimage

mount -t /dev/sda1 /boot

Мы должны поиграться с mkinitrd ,чтобы внести измения для работоспособности системы:

Т.е Мы зайдем в папку /boot там мы увиди версию ядра к примеру:

initd-2.18.16-164.el5.img

тогда нам нужно дать команду для внесения изменений таким образом:

mkinitrd -f initd-2.18.16-164.el5.img 2.18.16-164.el5

После этого выходим из chroot, леактивируем группу:

exit
vgchange -a n

Cистема начинает грузится, видна, что при загрузке не находится логический том LogVol01,который служил swap,хрен с ним с объемом памяти > 2 гига можно забить на него.Вроде система грузится и последняя подстава может быть,в некорректности файла fstab
по поводу boot раздела:

fsck.ext3: Unable to resolve 'Label=/boot

Невопрос,отредактируем файл fstab

vim /etc/fstab
место LABEL пропишем так:

/dev/sda1 /boot ext3 defaults 0 0

Заодно убирем упоминания поповоду swap раздела

И наконец после этого система загрузится корректно.


Шаг 5

Если расмотреть вопрос в сторону различия объем жестких дисков то,если конечный жесткий диск имеет большую емкость нежили старый диск ,в любом менеджере работающими с разделами, мы увидим не размеченный кусок,ну чтож, погоним его в нашу группу томов

Для этого используем fdisk:

fdisk /dev/sda

создаем третий раздел,изменяем для него метку на 8e

После этого если вы работаете с llve cd то при иницилизации дискрипторов группы томов в новый раздел (dev/sda3) мы можем олучить такую ошибку

pvcreate /dev/sda3
device not found (or ignored by filtering)

Есть такое решения в конфиге lmv.conf внести

sysfs_scan = 0

и ввести:

pvcreate -vvv /dev/sda3

Хотя, ошибку такую получил при добавлении данного раздела,правдо я работал с live cd,когда я перезагрузился в нормальный режим я нестал править конфиг lvm.conf, а просто снова ввел:

pvcreate /dev/sda3

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

На этом Все...