понедельник, 4 августа 2014 г.

миграция PROXMOX 3.2 в softRAID1на GPT-разделах

Миграция PROXMOX 3.2 в softRAID1 на GPT-разделах


Перевод proxmox на softRAID на GPT разделах

Идем стандартным путем и ставим все необходимое ПО. И тут нас ждет еще один сюрприз связанный с тем, что с версии 3.1 репозиторий у Proxmox стал платным. Поэтому перед установкой нужных пакетов его нужно отключить (возможно, правильнее указать вместо него бесплатный тестовый репозитарий, но у меня получилось и просто закомментировать платный). Откройте его в любом редакторе

# nano /etc/apt/sources.list.d/pve-enterprise.list
и закомментируйте единственную строку.

Если вы все же хотите добавить бесплатный репозитарий, то выполните команду:
echo "deb http://download.proxmox.com/debian wheezy pve pve-no-subscription" >> /etc/apt/sources.list.d/proxmox.list



Теперь ставим необходимые пакеты:

# aptitude update && aptitude install mdadm initramfs-tools screen
последний нужен если вы проделываете это удаленно. Перенос LVM в RAID длится долго и желательно это делать через screen.

Проверяем что создание массивов теперь доступно:

# modprobe raid1
Далее мы копируем разделы с sda на sdb. Вот тут то и начинаются отличия в MBR и GPT. Для GPT это делается так:
# sgdisk -R /dev/sdb /dev/sda
The operation has completed successfully.
Присвоим новому жесткому диску случайный UUID.
# sgdisk -G /dev/sdb
The operation has completed successfully.
# sgdisk --randomize-guids --move-second-header /dev/sdb
The operation has completed successfully.


Проверим что разделы созданы так как мы хотели:

диск sdaдиск sdb
# parted -s /dev/sda print
Model: ATA WDC WD5000AAKS-0 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  2097kB  1049kB               primary  bios_grub
 2      2097kB  537MB   535MB   ext3         primary  boot
 3      537MB   500GB   500GB                primary  lvm
# parted -s /dev/sdb print
Model: ATA ST3500320NS (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  2097kB  1049kB               primary  bios_grub
 2      2097kB  537MB   535MB                primary  boot
 3      537MB   500GB   500GB                primary  lvm


Меняем флаги разделов sdb2 и sdb3 на raid:

# parted -s /dev/sdb set 2 "raid" on
# parted -s /dev/sdb set 3 "raid" on
# parted -s /dev/sdb print
Model: ATA ST3500320NS (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  2097kB  1049kB               primary  bios_grub
 2      2097kB  537MB   535MB                primary  raid
 3      537MB   500GB   500GB                primary  raid
Все получилось правильно.

Идем дальше и на всякий случай очищаем суперблоки:

# mdadm --zero-superblock /dev/sdb2
mdadm: Unrecognised md component device - /dev/sdb2
# mdadm --zero-superblock /dev/sdb3
mdadm: Unrecognised md component device - /dev/sdb3
Вывод «mdadm: Unrecognised md component device — /dev/sdb3» означает, что диск не участвовал в RAID.
Собственно, пора создавать массивы:
# mdadm --create /dev/md1 --level=1 --raid-disks=2 <b>missing</b> /dev/sdb2
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? <b>y</b>
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
# mdadm --create /dev/md2 --level=1 --raid-disks=2 <b>missing</b> /dev/sdb3
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? <b>y</b>
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.


На вопрос «Продолжить создание массива?» отвечаем утвердительно.

Посмотрим, что у нас получилось:

# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[1]
      487731008 blocks super 1.2 [2/1] [_U]

md1 : active raid1 sdb2[1]
      521920 blocks super 1.2 [2/1] [_U]


В выводе видно состояние массивов — [_U]. Это обозначает, что в массиве есть лишь один диск. Так и должно быть, ведь второй (первый) мы в массив еще не включили. (missing).

Добавляем информацию о массивах в конфигурационный файл:

# cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
# mdadm --examine --scan >> /etc/mdadm/mdadm.conf


Скопируем раздел boot на соответствующий массив:

# mkfs.ext3 /dev/md1
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
130560 inodes, 521920 blocks
26096 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
64 block groups
8192 blocks per group, 8192 fragments per group
2040 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

# mkdir /mnt/md1
# mount /dev/md1 /mnt/md1
# cp -ax /boot/* /mnt/md1
Далее нам нужно закоментировать в /etc/fstab строку описывающую монтирование boot-раздела с UUID и пропишем монтирование соответствующего массива:

# nano /etc/fstab


# <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=d097457f-cac5-4c7f-9caa-5939785c6f36 /boot ext3 defaults 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
/dev/md1 /boot ext3 defaults 0 1


Должно получиться примерно так.
Перезагружаемся:

# reboot


Настраиваем GRUB (делаем это абсолютно так же как и в оригинальной статье):
# echo 'GRUB_DISABLE_LINUX_UUID=true' >> /etc/default/grub
# echo 'GRUB_PRELOAD_MODULES="raid dmraid"' >> /etc/default/grub
# echo 'GRUB_TERMINAL=console' >> /etc/default/grub
# echo raid1 >> /etc/modules
# echo raid1 >> /etc/initramfs-tools/modules


Переустанавливаем GRUB:

# grub-install /dev/sda --recheck
Installation finished. No error reported.
# grub-install /dev/sdb --recheck
Installation finished. No error reported.
# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-27-pve
Found initrd image: /boot/initrd.img-2.6.32-27-pve
Found memtest86+ image: /memtest86+.bin
Found memtest86+ multiboot image: /memtest86+_multiboot.bin
done
# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-2.6.32-27-pve


Теперь добавим раздел boot с первого (sda) диска в массив. Сначала пометим его флагом «raid»:

# parted -s /dev/sda set 2 "raid" on


А затем и добавим:
# mdadm --add /dev/md1 /dev/sda2
mdadm: added /dev/sda2


Если посмотреть теперь состояние массивов:

# cat /proc/mdstat
Personalities : [raid1]
md2 : active (auto-read-only) raid1 sdb3[1]
      487731008 blocks super 1.2 [2/1] [_U]

md1 : active raid1 sda2[2] sdb2[1]
      521920 blocks super 1.2 [2/2] [UU]

unused devices: <none>


то мы увидим, что md1 стал «двухдисковым» — [UU]

Теперь нужно перенести основной раздел — LVM. Тут нет никаких отличий от «оригинала», за исключением другой нумерации разделов и:

# screen bash
# pvcreate /dev/md2
  Writing physical volume data to disk "/dev/md2"
  Physical volume "/dev/md2" successfully created
# vgextend pve /dev/md2
  Volume group "pve" successfully extended
# pvmove /dev/sda3 /dev/md2
  /dev/sda3: Moved: 2.0%
 ...
  /dev/sda3: Moved: 100.0%
# vgreduce pve /dev/sda3
  Removed "/dev/sda3" from volume group "pve"


Добавляем раздел sda3 в массив:

# parted -s /dev/sda set 3 "raid" on
# mdadm --add /dev/md2 /dev/sda3
mdadm: added /dev/sda3
# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[2] sdb3[1]
      487731008 blocks super 1.2 [2/1] [_U]
      [>....................]  recovery =  0.3% (1923072/487731008) finish=155.4min speed=52070K/sec

md1 : active raid1 sda2[2] sdb2[1]
      521920 blocks super 1.2 [2/2] [UU]

unused devices: <none>


и видим, что он добавляется.

Так как я действую по оригинальной статье, то я пошел наливать кофе.

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


Комментариев нет:

Отправить комментарий