20 января 2023 25 января 2023 Linux dd losetup pvcreate vgcreate lvcreate vgchange


Задача: выжать максимум производительность из шины материнской платы.

Цель: raid массив построенный на программной технологии LVM

RAID массив 0 уровня состоит из 4 виртуальных устройств Linux созданных на основе пустых файлов размером по 512 мегабайт

Процедура создания программного LVM/RAID0

# создание пустых файлов
dd if=/dev//zero of=sda1.dd bs=1M count=512
dd if=/dev//zero of=sda2.dd bs=1M count=512
dd if=/dev//zero of=sda3.dd bs=1M count=512
dd if=/dev//zero of=sda4.dd bs=1M count=512


# создание виртуальных устройств
losetup --partscan --find --show  sda1.dd
losetup --partscan --find --show  sda2.dd
losetup --partscan --find --show  sda3.dd
losetup --partscan --find --show  sda4.dd


# создание PV
pvcreate /dev/loop15
pvcreate /dev/loop16
pvcreate /dev/loop17
pvcreate /dev/loop18


# создание VG
vgcreate vgdata /dev/loop15 /dev/loop16 /dev/loop17  /dev/loop18


# создание LVM/RAID0
lvcreate -i4 -I64  -l 100%VG -n lvmirror vgdata

Файлы блоков LVM/RAID0 будут размещать на 3 типах физических устройств

  1. Шпиндельный диск HDD с интерфейсом SATA
  2. Твердотельное хранилище SSD с интерфейсом SATA
  3. NVME с интерфейсом M2

Для перемещения блоков LVM/RAID0 необходимо остановить VG, удалить виртуальные устройства, перенести файлы, создать устройства, запустить VG по следующему сценарию

# остановка VG
vgchange -a n vgdata


# деактивация виртуальных устройств
losetup -d /dev/loop15
losetup -d /dev/loop16
losetup -d /dev/loop17
losetup -d /dev/loop18


# перемещение файлов-блоков LVM/RAID0
mv sda* /путь/


cd /путь/

# создание виртуальных устройств
losetup --partscan --find --show  sda1.dd
losetup --partscan --find --show  sda2.dd
losetup --partscan --find --show  sda3.dd
losetup --partscan --find --show  sda4.dd


# запуск VG
vgchange -a y vgdata

Ниже будут показаны три комбинации конфигураций, в каждой конфигурации по два скриншота замеров производительности диска на котором размещёны блоки LVM/RAID0 и замер производительности LVM/RAID0

Первая, самая медленная, конфигурация: здесь блоки raid размещаются на SSD с интерфейсом SATA

средняя скорость чтения с SSD/SATA диска 540Мб/с

SSD/SATARAID0/LVM on SSD SATA

 

Вторая конфигурация: здесь блоки raid размещаются на обычном шпиндельном SATA диске

Средняя скорость чтения SATA 144Мб/с

SATARAID0/LVM on SATA

 

 

Последняя, самая быстрая конфигурация: здесь блоки raid размещаются на скоростном NVME установленнам через переходник в слот PCI-Express

Средняя скорость чтения NVME 2,7Гб/м

NVME/M2RAID0/LVM on NVME

Вывод: с помощью LVM/Raid можно получить повышение производительности цифрового хранилища.

Получается, можно взять обычный шпиндельный SATA диск, разделить его на 4 раздел, на их основе создать LVM/RAID0 и получить увеличение скорости чтения в несколько раз

даже звучит дико

сводная таблица, в кавычках количество разделов используемых в LVM/RAID0

SATA (WDC WD3000FYYZ-01UL1B0) 143,3 Мб/с  
LVM/RAID0(1) SATA 3,0 Гб/с 117,1 Мб/с
LVM/RAID0(2) SATA 3,1 Гб/с 64,9 Мб/с
LVM/RAID0(3) SATA 3,9 Гб/с 85,9 Мб/с
LVM/RAID0(4) SATA 5.2 Гб/с 92.8 Мб/с
LVM/RAID0(6) SATA 5,5 Гб/с 73,3 Мб/с
SSD/SATA (Samsung SSD 870 QVO) 540.9 Мб/с  
LVM/RAID0(1) SSD/SATA 2,2 Гб/с 74,5 Мб/с
LVM/RAID0(2) SSD/SATA 3,7 Гб/с 66,7 Мб/с
LVM/RAID0(3) SSD/SATA 5,7 Гб/с 72,4 Мб/с
LVM/RAID0(4) SSD/SATA 5.1 Гб/с 71.7 Мб/с
LVM/RAID0(6) SSD/SATA 7,4 Гб/с 70,9 Мб/с
NVME/M2 (Samsung SSD 970 EVO Plus) 2.7 Гб/с  
LVM/RAID0(1) NVME/M2 2,4 Гб/с 457,3 Мб/с
LVM/RAID0(2) NVME/M2 3.7 Гб/с 351,9 Мб/с
LVM/RAID0(3) NVME/M2 4,2 Гб/с 453,1 Мб/с
LVM/RAID0(4) NVME/M2 5.5 Гб/с 522.4 Мб/с
LVM/RAID0(6) NVME/M2 7,9 Гб/с 462,7 Мб/с