(Новая страница: «=Задача= Произвести перенос рабочей операционной системы на RAID массив любого уровня по сл...») |
Нет описания правки |
||
Строка 5: | Строка 5: | ||
** 2. раздел является хранилищем зеркального тома RAID1 и расположен на каждом физическом диске |
** 2. раздел является хранилищем зеркального тома RAID1 и расположен на каждом физическом диске |
||
** 3. раздел является хранилищем RAID любого уровня внутри которого располагается LVM структура |
** 3. раздел является хранилищем RAID любого уровня внутри которого располагается LVM структура |
||
+ | ** да могу редактировать |
||
* LVM содержит том для данных и для файла подкачки. |
* LVM содержит том для данных и для файла подкачки. |
||
Строка 38: | Строка 39: | ||
* lv_swap для подкачки в начале диска размером 8 Гб |
* lv_swap для подкачки в начале диска размером 8 Гб |
||
* lv_cache под /var/cache |
* lv_cache под /var/cache |
||
− | * lv_root оставшееся место под корневую систему |
+ | * lv_root оставшееся место под корневую систему |
pvcreate /dev/md1 |
pvcreate /dev/md1 |
||
Строка 117: | Строка 118: | ||
Перезагружаем систему. |
Перезагружаем систему. |
||
reboot |
reboot |
||
− | ''ВНИМАНИЕ. Если процесс выполняется удаленно, что выполнено условие: |
+ | ''ВНИМАНИЕ. Если процесс выполняется удаленно, что выполнено условие:'' |
− | В БИОС компьютера должен быть настроен режим последовательной загрузки с жестких дисков, т.е. если загрузиться с первого диска не удалось, должна произойти автоматическая загрука со второго. Если это не так, и система не загружается, необходимо переключить загрузку на второй диск или поменять местами интерфейсные кабели. |
+ | В БИОС компьютера должен быть настроен режим последовательной загрузки с жестких дисков, т.е. если загрузиться с первого диска не удалось, должна произойти автоматическая загрука со второго. Если это не так, и система не загружается, необходимо переключить загрузку на второй диск или поменять местами интерфейсные кабели. |
=Подключение или замена диска в RAID= |
=Подключение или замена диска в RAID= |
Версия от 00:28, 14 апреля 2012
Задача
Произвести перенос рабочей операционной системы на RAID массив любого уровня по следующей схеме:
- Структура разделов на физических носителях GPT (снимает ограничение в 2 Тб на носитель)
- 1 раздел для обеспечения поддержки загрузки BIOS компьютера и размещения менеджера загрузки Linux
- 2. раздел является хранилищем зеркального тома RAID1 и расположен на каждом физическом диске
- 3. раздел является хранилищем RAID любого уровня внутри которого располагается LVM структура
- да могу редактировать
- LVM содержит том для данных и для файла подкачки.
Загрузка и обновление компонентов
apt-get update apt-get install -y mdadm initramfs-tools lvm2 atop htop sysstat smartmontools rsync parted jfsutils
Создание разметки под RAID
Задаем диск, который будем готовить под RAID
newdsk=sdb
Очищаем таблицу разделов на указанном жестком диске и размечаем диск в GPT.
dd if=/dev/zero of=/dev/$newdsk bs=512 count=1 parted /dev/$newdsk mklabel gpt
Определяем максимальный размер диска и создаем разделы на нем
sizedsk=`parted /dev/$newdsk print -m | grep "/dev/$newdsk" | awk -F ":" '{print $2}'` parted /dev/$newdsk mkpart primary 1M 10M parted /dev/$newdsk set 1 bios_grub on parted /dev/$newdsk mkpart primary 10М 128M parted /dev/$newdsk mkpart primary 128M $sizedsk parted /dev/$newdsk print
Предварительная настройка RAID в режиме деградации
Создаем массивы в деградированном состоянии на диске sdb:
- md0 для загрузки (обязательно зеркало -level=1) расположен во 2м разделе GPT
- md1 массив для данных, может быть любого уровня (в примере 1) расположен в 3м, наибольшем разделе GPT
mdadm --create /dev/md0 --metadata=0.90 --level=1 --raid-devices=2 missing /dev/sdb2 mdadm --create /dev/md1 --metadata=0.90 --level=1 --raid-devices=2 missing /dev/sdb3
Сохраним параметры массива в конфигурационном файле:
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
LVM
Создадим структуру разделов в LVM:
- lv_swap для подкачки в начале диска размером 8 Гб
- lv_cache под /var/cache
- lv_root оставшееся место под корневую систему
pvcreate /dev/md1 vgcreate lv /dev/md1 lvcreate -L1024 lv -n lv_swap # 1024 Mb под раздел подкачки lvcreate -l10%FREE lv -n lv_cache # 10% под кеш lvcreate -l100%FREE lv -n lv_root # Оставшееся место под корень vgchange -a y lv
Работа с дополнительным диском
Форматирование разделов
- Загрузочный раздел форматируем в ext2, корень системы в ext4, а данные в кеше будет в файловой системе jfs
mkfs.ext2 /dev/md0 mkfs.ext4 /dev/lv/lv_root mkfs.jfs /dev/lv/lv_cache -ff mkswap /dev/lv/lv_swap
Создадим точки монтирования созданных разделов и примонтируем их
mkdir /mnt/lv_boot mkdir /mnt/lv_root mkdir /mnt/lv_cache mount /dev/md0 /mnt/lv_boot mount /dev/lv/lv_root /mnt/lv_root mount /dev/lv/lv_cache /mnt/lv_cache
Произведем копирование загрузочных файлов и остальных данных исключая служебные каталоги в соответвтующие разделы
rsync -aHEAXh --progress /boot/* /mnt/lv_boot
rsync -aHEAXh --progress / /mnt/lv_root \ --exclude '/boot' \ --exclude '/mnt' \ --exclude '/proc' \ --exclude '/dev' \ --exclude 'lost+found' \ --exclude '/sys' \ --exclude '/var/cache'
rsync -aHEAXh --progress /var/cache/* /mnt/lv_cache
Создадим новые служебные каталоги и назначим на них права
mkdir /mnt/lv_root/dev mkdir /mnt/lv_root/proc mkdir /mnt/lv_root/sys mkdir /mnt/lv_root/boot mkdir /mnt/lv_root/mnt mkdir /mnt/lv_root/var/cache
Войдем в окружение созданой копии системы
mount /dev /mnt/lv_root/dev -o bind mount /proc /mnt/lv_root/proc -o bind mount /sys /mnt/lv_root/sys -o bind chroot /mnt/lv_root /bin/bash
Создадим файл монтирования файловых систем при загрузке
echo "" > /etc/fstab nano /etc/fstab
proc /proc proc nodev,noexec,nosuid 0 0 /dev/md0 /boot ext2 defaults 0 2 /dev/lv/lv_swap none swap sw 0 0 /dev/lv/lv_root / ext4 errors=remount-ro 0 1 /dev/lv/lv_cache /var/cache jfs errors=remount-ro 0 1
Разрешим системе автоматически запускаться, если один из дисков вышел из строя или отсутствует (по умолчанию при загрузке будет выдаваться запрос на разрешение запуска)
echo "BOOT_DEGRADED=true" > /etc/initramfs-tools/conf.d/mdadm
Подмонтируем загрузочный раздел в соответствии с указанными параметрами fstab с генерируем загрузочное ядро
mount /boot mkinitramfs -o /boot/initrd.img-`uname -r`
Отключим графический режим загрузчика из-за которого система может не загружаться с рейда.
nano /etc/default/grub
Раскоментировать строку:
GRUB terminal=console
Выполним запись в загрузочный сектор второго жесткого диска и обновление параметров загрузчика
grub-install --recheck /dev/sdb update-grub
В результате проделанных действий мы получили систему, которая должна запускать с RAID массива, но при этом сам массив находится в состоянии деградации и ожидает, когда будет доступен новый физический диск. В качестве такого диска теперь можно использовать как новый диск, так и диск с исходной системой, который надо предварительно очистить.
Очищаем таблицу разделов на исходном диске. Все данные на нем будут уничтожены! Все изменения в файлах произошедшие со времени начала копирования данных с него на второй диск будут потеряны.
dd if=/dev/zero of=/dev/sda bs=512 count=1
Перезагружаем систему.
reboot
ВНИМАНИЕ. Если процесс выполняется удаленно, что выполнено условие: В БИОС компьютера должен быть настроен режим последовательной загрузки с жестких дисков, т.е. если загрузиться с первого диска не удалось, должна произойти автоматическая загрука со второго. Если это не так, и система не загружается, необходимо переключить загрузку на второй диск или поменять местами интерфейсные кабели.
Подключение или замена диска в RAID
- Далее все действия идентичны как для первичного добавления диска, так и для замены вышедшего из строя
Диск который будет добавляться в массив, должен быть очищен от данных. Выясним, какое имя в системе ему присвоено:
parted -l | grep '/dev/sd'
Наш диск не будет содержать разделов. Выглядит это так:
Error: /dev/sda: unrecognised disk label (так выглядит очищенный) Disk /dev/sdb: 10,7GB
Чтобы не ошибиться в дальнейших действиях и не испортить данные создадим переменные с именами дисков.
cleandsk=sda # чистый, пустой диск workdsk=sdb # Диск, который содержит систему
Произведем копирование структуры разделов с рабочего на чистый диск и подключим его к массиву
dd if=/dev/$workdsk of=/dev/$cleandsk bs=512 count=34 blockdev --rereadpt /dev/$cleandsk mdadm --add /dev/md0 /dev/${cleandsk}2 mdadm --add /dev/md1 /dev/${cleandsk}3
Установим загрузчик на добавленный диск
grub-install /dev/$cleandsk
На этом действия по переносу системы на рейд массив завершены, осталось дождаться окончания синхронизации массива. Контролировать процесс можно с помощью команды:
watch cat /proc/mdstat