Виртуализация · 6 min read · Nov 28, 2025
Proxmox VE 2.x с программным RAID
Proxmox VE 2.x с программным RAID
Proxmox Virtual Environment — это простая в использовании платформа виртуализации с открытым исходным кодом для запуска виртуальных устройств и виртуальных машин. Proxmox официально не поддерживает программный RAID, но я обнаружил, что программный RAID очень стабилен, и в некоторых случаях мне везло с ним больше, чем с аппаратным RAID.
Я не даю никаких гарантий, что это сработает для вас!
Обзор
Сначала установите Proxmox V2 обычным способом с CD, загруженным с Proxmox. Затем мы создаем массив RAID 1 на втором жестком диске и перемещаем установку proxmox на него.
Затем мы настраиваем параметры Grub, чтобы он загружался с новой конфигурацией.
Благодарности
Эти следующие учебники — это то, что я использовал:
Особая благодарность Фалко из HowtoForge, так как много из этого материала повторно используется из его руководства. https://www.howtoforge.com/linux_lvm
Установка Proxmox
Установите proxmox с последнего загруженного CD с Proxmox http://www.proxmox.com/downloads/proxmox-ve/17-iso-images
Если вы хотите установить ext4, введите это на экране загрузки:
linux ext4Инструкции по установке здесь: http://pve.proxmox.com/wiki/Quick_installation
Затем войдите через ssh и выполните:
apt-get update
apt-get upgrade
Установка RAID
Примечание: этот учебник предполагает, что proxmox установлен на /dev/sda, а запасной диск — это /dev/sdb. Используйте следующую команду, чтобы отобразить текущее разделение:
fdisk -l
Вывод должен выглядеть следующим образом:
root@proxmox:/# fdisk -l
Диск /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009f7a7
Device Boot Start End Blocks Id System
/dev/sda1 * 1 66 523264 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 66 121602 976237568 8e Linux LVM
Диск /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00078af8
Device Boot Start End Blocks Id System
Здесь больше информации, но нас сейчас интересуют только первые два диска. Мы видим, что /dev/sda имеет установку proxmox, а /dev/sdb не имеет разделов.
Сначала мы устанавливаем программный RAID, также известный как mdraid:
apt-get install mdadm
В окне конфигурации пакета выберите ok, затем all.
Затем мы запускаем модули ядра с помощью modprobe:
modprobe linear
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10
Теперь выполните:
cat /proc/mdstat
Вывод должен выглядеть следующим образом:
root@proxmox:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices:
root@proxmox:~#
Теперь нам нужно скопировать таблицу разделов с sda на sdb:
sfdisk -d /dev/sda | sfdisk –force /dev/sdb
Вывод должен быть:
root@proxmox:/# sfdisk -d /dev/sda | sfdisk –force /dev/sdb
Проверка, что никто не использует этот диск прямо сейчас …
OK
Диск /dev/sdb: 121601 cylinders, 255 heads, 63 sectors/track
Старая ситуация:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sdb1 0 - 0 0 0 Empty
/dev/sdb2 0 - 0 0 0 Empty
/dev/sdb3 0 - 0 0 0 Empty
/dev/sdb4 0 - 0 0 0 Empty
Новая ситуация:
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 2048 1048575 1046528 83 Linux
/dev/sdb2 1048576 1953523711 1952475136 8e Linux LVM
/dev/sdb3 0 - 0 0 Empty
/dev/sdb4 0 - 0 0 Empty
Предупреждение: раздел 1 не заканчивается на границе цилиндра
Успешно записана новая таблица разделов
Повторное чтение таблицы разделов …
Если вы создали или изменили раздел DOS, /dev/foo7, скажем, то используйте dd(1),
чтобы обнулить первые 512 байт: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(См. fdisk(8).)
root@vmh:/# root@vmh:/# sfdisk -d /dev/sda | sfdisk –force /dev/sdb
-bash: root@vmh:/#: Нет такого файла или каталога
Проверка, что никто не использует этот диск прямо сейчас …
OK
Диск /dev/sdb: 121601 cylinders, 255 heads, 63 sectors/track
Старая ситуация:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sdb1 * 0+ 65- 66- 523264 83 Linux
/dev/sdb2 65+ 121601- 121536- 976237568 8e Linux LVM
/dev/sdb3 0 - 0 0 0 Empty
/dev/sdb4 0 - 0 0 0 Empty
Новая ситуация:
Разделы не найдены
sfdisk: нет таблицы разделов.
Теперь нам нужно изменить типы разделов на linux raid autodetect:
fdisk /dev/sdb
root@proxmox:/# fdisk /dev/sdb
ПРЕДУПРЕЖДЕНИЕ: Режим, совместимый с DOS, устарел. Настоятельно рекомендуется
отключить режим (команда ‘c’) и изменить единицы отображения на
сектора (команда ‘u’).
Команда (m для помощи): t
Номер раздела (1-4): 1
Шестнадцатеричный код (введите L для отображения кодов): fd
Изменен системный тип раздела 1 на fd (Linux raid autodetect)
Команда (m для помощи): t
Номер раздела (1-4): 2
Шестнадцатеричный код (введите L для отображения кодов): fd
Изменен системный тип раздела 2 на fd (Linux raid autodetect)
Команда (m для помощи): p
Диск /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00078af8
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 66 523264 fd Linux raid autodetect
Partition 1 does not end on cylinder boundary.
/dev/sdb2 66 121602 976237568 fd Linux raid autodetect
Команда (m для помощи): w
Таблица разделов была изменена!
Вызов ioctl() для повторного чтения таблицы разделов.
Синхронизация дисков.
Как мы видим, теперь у нас есть два раздела linux raid autodetect на /dev/sdb.
Чтобы убедиться, что на /dev/sdb нет остатков от предыдущих установок RAID, мы выполняем следующие команды:
mdadm –zero-superblock /dev/sdb1
mdadm –zero-superblock /dev/sdb2
Если остатков от предыдущих установок RAID нет, каждая из вышеуказанных команд выдаст ошибку, подобную этой (что не является поводом для беспокойства):
root@proxmox:~# mdadm –zero-superblock /dev/sdb1
mdadm: Неизвестное устройство компонента md - /dev/sdb1
root@server1:~#
В противном случае команды не отобразят ничего вообще.
Теперь нам нужно создать наши новые массивы RAID:
mdadm –create /dev/md0 –level=1 –raid-disks=2 missing /dev/sdb1
mdadm –create /dev/md1 –level=1 –raid-disks=2 missing /dev/sdb2
Это покажет (ответьте да):
root@proxmox:/# mdadm –create /dev/md0 –level=1 –raid-disks=2 missing /dev/sdb1
mdadm: Примечание: этот массив имеет метаданные в начале и
может не подходить в качестве загрузочного устройства. Если вы планируете
хранить ‘/boot’ на этом устройстве, пожалуйста, убедитесь, что
ваш загрузчик понимает метаданные md/v1.x, или используйте
–metadata=0.90
Продолжить создание массива? y
mdadm: По умолчанию используется версия 1.2 метаданных
mdadm: массив /dev/md0 запущен.
root@proxmox:/#
Команда
cat /proc/mdstat
root@proxmox:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active (auto-read-only) raid1 sdb1[1]
523252 blocks super 1.2 [2/1] [_U]
md1 : active (auto-read-only) raid1 sdb2[1]
976236408 blocks super 1.2 [2/1] [_U]
unused devices:
Get new posts in your inbox
No spam. Unsubscribe anytime.