Blog Archive - RAID0 на основі LVM

RAID0 на основі LVM

2012-11-15 23:10 Автор: jekader Записано: 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-z12 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, тому порівняти продуктивність ні з чим. Працює і добре 🙂