Метки
amd bittorrent bug centos debian enlightenment fedora fedora 8 fedora 9 fedora 10 fedora 11 fedora 12 fedora 13 fedora 15 fedora 16 FedoraMD fglrx firefox flash player gnome google intel interview java kde kernel linux livecd migrate moldova nvidia openoffice OpenStreetMap opera Orange ovirt radeon red hat rpmfusion Sandel skype video virtualisation vmware wine
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, поэтому сравнить производительность не с чем. Работает и хорошо 🙂
16, 2012 9:21
а что ты на этом диске запускаешь, что требует RAID0 аж на 4 диска?
16, 2012 9:50
Всякое малокритичное барахло, требующее много места.
До этого пытался использовать USB HDD Для тех-же нужд, но производительность и надёжность были просто удручающими.
3, 2013 23:51
[…] обладает большим хардом, но слабейшим железом (см. Прошый пост про LVM), и другое, у которого мощное железо, но маленькие […]