К сожалению, в процессе установки Proxmox нет возможности установить его на программный рейд. Об этом даже упоминается в официальной вики. Оно и понятно, учитывая что основной упор в плане высокой доступности и избыточности Proxmox возлагает на кластеризацию. Однако, когда в нашем распоряжении есть только один сервер с Proxmox, хотелось бы иметь возможность обеспечить избыточность хотя бы на уровне дисков в виде программного рейд-массива.
Итак, мы имеем следующую конфигурацию: 2 идентичных диска - /dev/sda и /dev/sdb, Proxmox 3.3 установлен на sda, второй диск чистый. Мы создадим raid 1 взяв за основу диск sda.
Установим mdadm:
root@proxmox:~# apt-get update root@proxmox:~# apt-get install mdadm
root@proxmox:~# gdisk -l /dev/sda GPT fdisk (gdisk) version 0.8.5 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sda: 16777216 sectors, 8.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): 7FC0CE80-7258-4231-8F88-F336FF77C998 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 16777182 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 4095 1024.0 KiB EF02 primary 2 4096 1048575 510.0 MiB EF00 primary 3 1048576 16777182 7.5 GiB 8E00 primary
Мы видим, что у нас есть 3 раздела: первый раздел (EF02) - это bios_grub, на котором у нас находится grub, второй раздел (EF00)- /boot раздел с файловой системой ext3, третий раздел (8E00) отдан под lvm. Для нашей задачи нам достаточно сделать два отдельных зеркальных рейда для второго и третьего раздела.
Перенесем таблицу разделов с sda на sdb:
sgdisk -R=/dev/sdb /dev/sda sgdisk -G /dev/sdb
Примечание: некоторые авторы советуют помечать разделы специальным флагом FD, чтобы mdadm смог их автоматически распознать. Однако это действие излишне, поскольку mdadm способен автоматически распознать raid-разделы путем сканирования заголовка разделов на предмет размещения в них суперблоков особого вида.
Скопируем раздел /boot с /dev/sda2 на свеже созданный /dev/md/boot:
Изменим в /etc/fstab путь монтирования раздела /boot на новый:
Убедимся, что mdadm у нас автоматически запускается при старте и активирует все найденные массивы. В файле /etc/default/mdadm должно быть следующее:
Перезагружаемся:.
И проверяем:
Добавим нужные модули для grub и initrd:
Установим загрузчик на оба диска:
Добавим /dev/sda2 в raid:
Поскольку поверх /dev/sda3 поднят lvm, нам необходимо сделать то же самое на /dev/md/root и клонировать его:
В зависимости от объема раздела /dev/sda3 данная процедура может занять определенное время.
После этого мы можем удалить /dev/sda3 из lvm:
Добавляем /dev/sda3 в raid:
Статус синхронизации дисков в raid можно посмотреть следующей командой:
По ее завершению мы получим работающий Proxmox в софт-рейде!
За основу взята следующая статья:
http://blog.synyx.de/2015/01/running-proxmox-ve-3-3-on-a-software-raid/
root@[server]:/# mdadm --create boot --level=1 --raid-disks=2 missing /dev/sdb2 root@[server]:/# mdadm --create root --level=1 --raid-disks=2 missing /dev/sdb3
root@proxmox:~# mkdir /mnt/boot root@proxmox:~# mkfs.ext3 /dev/md/boot root@proxmox:~# mount /dev/md/boot /mnt/boot/ root@proxmox:~# cp -ax /boot/* /mnt/boot/ root@proxmox:~# umount /mnt/boot root@proxmox:~# rmdir /mnt/boot/
# <file system> <mount point> <type> <options> <dump> <pass> /dev/pve/root / ext3 errors=remount-ro 0 1 /dev/pve/data /var/lib/vz ext3 defaults 0 1 #UUID=b4c01a34-b56b-4d52-8678-02f1b79b16a4 /boot ext3 defaults 0 1 /dev/md/boot /boot ext3 defaults 0 1 /dev/pve/swap none swap sw 0 0 proc /proc proc defaults 0 0
INITRDSTART='all' AUTOSTART=true
root@proxmox:~# reboot
root@proxmox:~# mount | egrep boot /dev/md126 on /boot type ext3 (rw,relatime,errors=continue,user_xattr,acl,barrier=0,data=ordered)
root@proxmox:~# echo 'GRUB_DISABLE_LINUX_UUID=true' >> /etc/default/grub root@proxmox:~# echo 'GRUB_PRELOAD_MODULES="raid dmraid"' >> /etc/default/grub root@proxmox:~# echo raid1 >> /etc/modules root@proxmox:~# echo raid1 >> /etc/initramfs-tools/modules
root@proxmox:~# grub-install --recheck /dev/sda root@proxmox:~# grub-install --recheck /dev/sdb root@proxmox:~# update-grub root@proxmox:~# update-initramfs -u -k all
root@proxmox:~# mdadm --manage /dev/md/boot --add /dev/sda2
root@proxmox:~# pvcreate /dev/md/root root@proxmox:~# vgextend pve /dev/md/root root@proxmox:~# pvmove /dev/sda3 /dev/md/root
После этого мы можем удалить /dev/sda3 из lvm:
root@proxmox:~# vgreduce pve /dev/sda3 root@proxmox:~# pvremove /dev/sda3
root@proxmox:~# mdadm --manage /dev/md/root --add /dev/sda3
root@proxmox:~# cat /proc/mdstat
За основу взята следующая статья:
http://blog.synyx.de/2015/01/running-proxmox-ve-3-3-on-a-software-raid/
Комментариев нет:
Отправить комментарий