Назад | Перейти на главную страницу

Создание массива raid1 с mdadm сокращает пространство

Я пытаюсь создать зеркальные диски RAID1 в уже развернутой системе (CentOS 6.4). У меня два диска: source / dev /sda с ОС и / dev /SDB которое будет зеркалом. Диски подключаются из VMware ESXi как виртуальные диски, они имеют одинаковый размер и толстое / тонкое предоставление.

Я следую этому руководству: http://www.howtoforge.com/how-to-set-up-software-raid1-on-a-running-lvm-system-incl-grub-configuration-centos-5.3

СИСТЕМНАЯ ИНФОРМАЦИЯ:

/ dev / sda размер и перегородки:

Disk /dev/sda: 96.6 GB, 96636764160 bytes
255 heads, 63 sectors/track, 11748 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: 0x00029e34

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26       11749    94166016   8e  Linux LVM

/ dev / sdb был полностью пуст, поэтому после копирования таблицы разделов:

sfdisk -d /dev/sda | sfisk --force /dev/sdb

и изменив разделы / dev / sdb1 и / dev / sdb2 на Linux Raid Autodetect,

/ dev / sdb размер и разделы выглядели так:

Disk /dev/sdb: 96.6 GB, 96636764160 bytes
255 heads, 63 sectors/track, 11748 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: 0x000c1935

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          26      204800   fd  Linux raid autodetect
Partition 1 does not end on cylinder boundary.
/dev/sdb2              26       11749    94166016   fd  Linux raid autodetect

Чтобы убедиться, что нет остатков предыдущих массивов или чего-то еще, что я обнулял суперблоком:

mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2

Создание массивов: Поэтому, когда дело доходит до создания массивов, я использую следующие команды:

[root@testmachine test]# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb1
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? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

и

[root@testmachine test]# mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /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? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.

Массивы можно увидеть:

[root@testmachine test]# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb2[1]
      94100352 blocks super 1.2 [2/1] [_U]

md1 : active raid1 sdb1[1]
      204608 blocks super 1.2 [2/1] [_U]

unused devices: <none>

ЭТА ПРОБЛЕМА: Проблема в том, что / dev / md2 массив имеет размер 94100352 блоков, но / dev / sda имеет немного больший размер (около 50 МБ?) - поэтому, когда я создаю физический том с помощью «pvcreate / dev / md2», размеры томов разные, и я не могу использовать «pvmove», поэтому я могу Не полное зеркалирование томов LVM.

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               vg_testmachine
  PV Size               89.80 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              22989
  Free PE               0
  Allocated PE          22989
  PV UUID               KSqdKU-9ckP-gZ1r-JwYo-QPSE-RFrZ-lAfRBi

  "/dev/md2" is a new physical volume of "89.74 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/md2
  VG Name
  PV Size               89.74 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               LqNUb7-5zsr-kZ7T-L96R-xKjD-OReg-k6BqDV

(Обратите внимание на разницу в размере)

Я не специалист по дисковым блокам и т. Д. Кто-нибудь знает, что может быть причиной этого?

Причина, по которой / dev / md2 меньше, чем / dev / sda2, заключается в том, что в начале раздела / dev / sdb2 есть суперблок RAID. Суперблок содержит уникальный идентификатор, а также информацию о других дисках / разделах, составляющих массив, поэтому ядро ​​Linux может автоматически собрать массив при загрузке, даже если вы измените порядок дисков или скопируете содержимое на полностью новый диск. Вы платите небольшие накладные расходы в обмен на большую гибкость.

Конечно, это не позволяет вам просто зеркалировать / dev / sda2 в / dev / sdb2, поскольку размер другой. Если вы продолжите читать статью, на которую вы ссылаетесь, вам нужно создать файловую систему в своем (деградированном) массиве RAID, скопировать файлы, изменить загрузчик на загрузку с / dev / md1 и смонтировать / dev / md2, и затем наконец, вы можете подключить / dev / sda * в качестве второго диска в вашей конфигурации RAID. Это возможно, но не для слабонервных ... Наверное, быстрее, безопаснее и проще сделать резервную копию и переустановить с RAID с самого начала.