LVMRAID

  • LVM можно использовать с mdadm
    • mdadm снизу
    • mdadm сверху
    • и у того и у того средства “сверху” и “снизу” блочные устройства, поэтому можем комбинировать как угодно
    • но это не всегда удобно
  • RAID средствами LVM
    • использует DM - device mapper и MD - multiple device - те же подсистемы ядра, что используются и mdadm-ом
    • но управление средствами LVM
    • имеет смысл если управляем томами при помощи LVM
    • использует единый инструмент для работы с блочными устройствами
  • Позволяет создать LV, работающий на различных физических устройствах (PV), входящих в одну группу томов
    • для повышения производительности
    • увеличения надежности хранения данных
  • Поддерживаемые уровни RAID
    • jbod - это просто LVM
    • raid0
    • raid1
    • raid4
    • raid5
    • raid6
    • raid10

  • Создание
$ lvcreate --type raid0 -n <name> -L <size> [OPTIONS] <VG> [<PV>...]
  • Просмотр
$ lvs -o name,segtype <VG>

RAID0 (stripe)

raid0.png
$ lvcreate --type raid0 -n <name> -L <size> 
    [--stripes <number> --stripesize <ssize>] 
    <VG> [<PV>...]
  • –stripes - количество PV, по которым будут распределены данные LV

  • –stripesize - размер единицы данных в Кб


RAID1 (mirror)

raid01.png
$ lvcreate --type raid1 -n <name> -L <size> 
    [--mirrors <number>] 
    <VG> [<PV>...]
  • –mirrors - количество копий данных

RAID4 (non-rotating parity)

raid4.png
$ lvcreate --type raid4 -n <name> -L <size> 
    [--stripes <number> --stripesize <ssize>] 
    <VG> [<PV>...]
  • –stripes - количество PV, по которым будут распределены данные LV, не считая устройства для хранения блоков четности

  • –stripesize - размер единицы данных в Кб


RAID5 (rotating parity)

raid5.png
$ lvcreate --type raid5 -n <name> -L <size> 
    [--stripes <number> --stripesize <ssize>] 
    <VG> [<PV>...]
  • –stripes - количество PV, по которым будут распределены данные LV, не включая дополнительного устройства для хранения блоков четности

  • –stripesize - размер единицы данных в Кб

RAID6 (rotating double parity)

raid6.png
$ lvcreate --type raid6 -n <name> -L <size> 
    [--stripes <number> --stripesize <ssize>] <VG> [<PV>...]
  • –stripes - количество PV, по которым будут распределены данные LV, не включая дополнительных двух устройств для хранения блоков четности

  • –stripesize - размер единицы данных в Кб

RAID10 (RAID1+RAID0)

raid10.png
$ lvcreate --type raid10 -n <name> -L <size> 
    [--mirrors <number> --stripes <number> --stripesize <ssize>] 
    <VG> [<PV>...]
  • –stripes - количество PV, по которым будут распределены данные LV

  • –stripesize - размер единицы данных в Кб

  • –mirrors - количество копий данных

  • Количество используемых устройств = NumberStripes/(NumberMirrors+1)

--mirrors 1 stripes 4

распределение данных между двумя зеркалами RAID 1