RAID0 на основе LVM

    2012-11-15 23:10 | Автор: jekader | Filed under: FedoraMD, Jekader

    Недавно захотел немного поэкспериментировать и использовать "продвинутые" функции менеджера томов LVM2, такие как создание логического раздела на нескольких физических. Расскажу шаги, которые необходимо сделать чтобы получить RAID0 (stripe) на четырёх жёстких дисках: sdb sdc sdd sde, каждый объёмом по 500 ГБ.

    0) для debian - устанавливаем lvm2 (apt-get install lvm), в fedora/rhel ничего доустанавливать не надо.
    1) открываем fdisk и размечаем партиции без файловых систем на всех дисках:
    fdisk /dev/sdb
    По памяти - жмём "n", "p", "1", "enter", "enter", "w". Мы создали /dev/sdb1 размером в 100% диска. Для подробностей - читаем man.
    Повторяем процесс для остальных дисков.
    2) создаём lvm physical volume на всех созданных разделах:
    pvcreate /dev/sdb1
    pvcreate /dev/sdc1
    pvcreate /dev/sdd1
    pvcreate /dev/sde1

    3) объединяем их в группу "stripe_group"
    vgcreate stripe_group /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
    4) проверяем нашу группу разделов командой "vgdisplay"
    root@box:~# vgdisplay
    --- Volume group ---
    VG Name stripe_group
    System ID
    Format lvm2
    Metadata Areas 4
    Metadata Sequence No 3
    VG Access read/write
    VG Status resizable
    MAX LV 0
    Cur LV 2
    Open LV 2
    Max PV 0
    Cur PV 4
    Act PV 4
    VG Size 1.81 TiB
    PE Size 4.00 MiB
    Total PE 476936
    Alloc PE / Size 0 / 0
    Free PE / Size 476936 / 1.90 TiB
    VG UUID 9DpW1d-gf3e-kdF6-eoAB-z12p-jNTW-PEgHC9

    В конце вывода видим общее количество "physical extents" (PE) и размер каждого экстента. Все они свободны. Пора их занять делом!
    5) Самое интересное - размечаем логический раздел командой lvcreate с хитрыми параметрами:
    lvcreate -i4 -I64 -l 100%VG -n data_array stripe_group
    параметр -i указывает количество страйпов для раздела (4 в моём случае)
    параметр -I указывает размер страйпа в килобайтах (то есть первые 64 кб будут на первом диске, вторые - на втором, и т.д.)
    параметр -l указывает размер раздела - у меня он равен 100% размера группы разделов.
    параметр -n указывает название нового раздела
    5.1) Уточнение, Stripe будет работать только с дисками равного размера. Если диски разные, будет выбран наименьший подходящий размер. Если при вводе команды получается ошибка о нехватке "physical extents" - значит диски различаются. Нужно взять общее число PE из вывода vgdisplay и вычесть недостающие экстенты. Затем параметром -l задать полученное число. В итоге после создания массива останется свободное место, его позже можно использовать на что-то ещё.
    6) последний этап - размечаем файловую систему и в бой!
    mkfs.ext4 /dev/mapper/stripe_group-data_array
    7) монтируем и используем наш массив:
    mount /dev/mapper/stripe_group-data_array /mnt/raid

    Увы не удалось протестировать эту связку до того как слепил её в raid, поэтому сравнить производительность не с чем. Работает и хорошо 🙂

    1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4,00 out of 5)
    Loading...

    Метки: ,

    3 комментария »


    комментария 3

    1. Vasile Chelban:

      а что ты на этом диске запускаешь, что требует RAID0 аж на 4 диска?

    2. jekader:

      Всякое малокритичное барахло, требующее много места.
      До этого пытался использовать USB HDD Для тех-же нужд, но производительность и надёжность были просто удручающими.

    3. настройка iSCSI (target и initiator) | Fedora.md:

      […] обладает большим хардом, но слабейшим железом (см. Прошый пост про LVM), и другое, у которого мощное железо, но маленькие […]

    Leave a comment

    *