В существует возможность аренды серверов с большими дисками по 3 Tb. Ниже пойдет речь о том, как запустить сервер с 4 x 3 Tb Software RAID-5 и создать диск размером 9 Tb.
Заказываем RESCUE-mode из панели управления Hetzner.
Заходим по SSH и запускаем установку ОС из образа:
installimage
Выбираем CentOS 6 64bit, а в файле конфигурации прописываем следующие параметры:
SWRAIDLEVEL 1 PART /grub ext3 128M PART swap swap 8G PART / ext3 30G PART /vz ext4 all
После установки запрашиваем еще раз в панели управления Hetzner RESCUE-mode и запускаем
reboot
После перезагрузки удаляем ненужные массивы:
mdadm -S /dev/md0 mdadm -S /dev/md3 mdadm --zero-superblock /dev/sda1 mdadm --zero-superblock /dev/sdb1 mdadm --zero-superblock /dev/sdc1 mdadm --zero-superblock /dev/sdd1 mdadm --zero-superblock /dev/sda5 mdadm --zero-superblock /dev/sdb5 mdadm --zero-superblock /dev/sdc5 mdadm --zero-superblock /dev/sdd5
Конвертируем partition table из MSDOS в GPT (запускаем и нажимаем «w», после чего подтверждаем):
gdisk /dev/sda gdisk /dev/sdb gdisk /dev/sdd gdisk /dev/sdc
Задаем загрузочный раздел для GRUB:
parted /dev/sda set 1 bios_grub on parted /dev/sdb set 1 bios_grub on parted /dev/sdc set 1 bios_grub on parted /dev/sdd set 1 bios_grub on
Дублируем таблицу партиций из GPT в MSDOS:
apt-get install gptsync gptsync /dev/sda gptsync /dev/sdb gptsync /dev/sdc gptsync /dev/sdd
Загружаем GRUB и перезагружаем сервер:
mount /dev/md2 /mnt mount --bind /sys /mnt/sys mount --bind /proc /mnt/proc mount --bind /dev /mnt/dev chroot /mnt grub-install /dev/sda grub-install /dev/sdb grub-install /dev/sdd grub-install /dev/sdc
Удаляем из /etc/fstab следующие строки:
/dev/md0 /grub ext3 defaults 0 0
И перезагружаем:
reboot
Устанавливаем parted:
yum install -y parted
Удаляем маленькие партиции, создаем большие и перезагружаем сервер (чтобы перечиталась таблица партиций):
parted /dev/sda rm 5 parted /dev/sdb rm 5 parted /dev/sdd rm 5 parted /dev/sdc rm 5 parted /dev/sda mkpart RAID ext4 40.9GB 2960GB parted /dev/sdb mkpart RAID ext4 40.9GB 2960GB parted /dev/sdd mkpart RAID ext4 40.9GB 2960GB parted /dev/sdc mkpart RAID ext4 40.9GB 2960GB parted /dev/sda set 4 raid on parted /dev/sdb set 4 raid on parted /dev/sdd set 4 raid on parted /dev/sdc set 4 raid on reboot
И, после перезагрузки, заново создаем RAID-5 с использованием всех 4-х дисков (ключи «--spare-devices=0» и «--force» принуждают mdadm использовать все 4 диска для RAID-5, в ином случае 4-й диск становится резервным):
mdadm --create /dev/md3 --raid-devices=4 --spare-devices=0 --force --level=5 /dev/sda4 /dev/sdb4 /dev/sdc4 /dev/sdd4
Записываем в /etc/mdadm.conf новые данные о массивах. Получаем новый вывод командой
mdadm --examine --scan
и копируем его в /etc/mdadm.conf.
Дальше проще всего обновить ядро. ![]()
При обновлении ядра, создается новый initrd с правильным mdadm.conf, что исключает появление /dev/md127 вместо /dev/md3.
Для примера, устанавливаем vzkernel из (этот файл можно положить в /etc/yum.repos.d/). И перезагружаем сервер.
yum install vzkernel reboot
Создаем файловую систему
mkfs.ext4 -m0 /dev/md3
И дожидаемся, когда синхронизируется рейд:
watch cat /proc/mdstat
Похожие записи:
* чтобы перечитывать таблицу разделов без перезагрузки partprobe
* наверное, опечатка «apt-get install gptsync» видимо, все же, «yum»? или это какая-то виртуализация с дебианом снаружи? (тогда прошу прощения)
Victor
24.01.2012 в 13:43
apt-get — потому что RESCUE в Hetzner работает на Debian
Игорь Олемской
24.01.2012 в 15:35