Porównaj ceny domen i usług IT, sprzedawców z całego świata

jak uzyskać rozmiary bloków większe niż 4k podczas odczytu z woluminu md raid1


Chciałem ustawić konfigurację raid01 (raid1 składającą się z dwóch raid0s) z jednym z woluminów raid0 skonfigurowanym głównie do zapisu, tak aby wszystkie odczyty trafiały do ​​drugiego (tj. Jeden to dysk, drugi to flash). Jednak cały ten plan napotkał problem, że czytanie bezpośrednio z raid0 jest poprawne przy 64 KB na dysk (rozmiar bloku), ale kiedy dodam raid1 do raid0, wszystkie odczyty spadają tylko do 4KB, więc wydajność jest straszna. Domyślam się, że dzieje się tak, ponieważ md (lub coś na stosie) zdecydowało, że 4k to ziarnistość błędów, więc czyta w tym rozmiarze, ale to tylko założenie. W każdym razie naprawdę muszę znaleźć sposób, aby to naprawić.
Aby to przetestować, używam raid1 z tylko jedną stroną dla uproszczenia, tj. został stworzony za pomocą
mdadm --create/dev/md2 -l 1 -n 2/dev/md1 "missing"

Innym interesującym punktem jest to, że dd bs = 512K na raid0 md1 pokazuje 64K odczytów na md1 i wszystkich jego składnikach, podczas gdy spodziewałem się, że iostat pokaże md1 z odczytami 512KB, a dyski składowe na 64KB. Dd bs = 512K z md2 pokazuje odczyty 4K dla wszystkiego. Obliczam rozmiar bloku, po prostu dzieląc MB/s przez tps, czyli = MB/transakcja.
Oto wszystkie szczegóły.
[root@pe-r910 ~]# mdadm --detail/dev/md2
/dev/md2:
Version : 1.2
Creation Time : Tue Jul 26 23:13:59 2011
Raid Level : raid1
Array Size : 1998196216 (1905.63 GiB 2046.15 GB)
Used Dev Size : 1998196216 (1905.63 GiB 2046.15 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent Update Time : Thu Jul 28 08:29:35 2011
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0 Name : pe-r910.ingres.prv:2 (local to host pe-r910.ingres.prv)
UUID : 299ea821:756847a0:4db591e4:38769641
Events : 160 Number Major Minor RaidDevice State
0 9 1 0 active sync/dev/md1
1 0 0 1 removed

[root@pe-r910 ~]# mdadm --detail/dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Jul 26 01:05:05 2011
Raid Level : raid0
Array Size : 1998197376 (1905.63 GiB 2046.15 GB)
Raid Devices : 14
Total Devices : 14
Persistence : Superblock is persistent Update Time : Tue Jul 26 01:05:05 2011
State : clean
Active Devices : 14
Working Devices : 14
Failed Devices : 0
Spare Devices : 0 Chunk Size : 64K Name : pe-r910.ingres.prv:1 (local to host pe-r910.ingres.prv)
UUID : 735bd502:62ed0509:08c33e15:19ae4f6b
Events : 0 Number Major Minor RaidDevice State
0 8 17 0 active sync/dev/sdb1
1 8 33 1 active sync/dev/sdc1
2 8 49 2 active sync/dev/sdd1
3 8 65 3 active sync/dev/sde1
4 8 81 4 active sync/dev/sdf1
5 8 97 5 active sync/dev/sdg1
6 8 113 6 active sync/dev/sdh1
7 8 129 7 active sync/dev/sdi1
8 8 145 8 active sync/dev/sdj1
9 8 161 9 active sync/dev/sdk1
10 8 177 10 active sync/dev/sdl1
11 8 193 11 active sync/dev/sdm1
12 8 209 12 active sync/dev/sdn1
13 8 225 13 active sync/dev/sdo1
[root@pe-r910 ~]# dd if=/dev/md1 bs=512K count=10000 iflag=nonblock,direct of=/dev/null
10000+0 records in
10000+0 records out
5242880000 bytes (5.2 GB) copied, 3.45236 s, 1.5 GB/s
[root@pe-r910 ~]# dd if=/dev/md2 bs=512K count=10000 iflag=nonblock,direct of=/dev/null
10000+0 records in
10000+0 records out
5242880000 bytes (5.2 GB) copied, 6.81182 s, 770 MB/s
[root@pe-r910 ~]#

aktualizacja: wygląda to na problem tylko z MD do MD. Jeśli zrobię raid1 bezpośrednio na dysk, jego prędkość odczytu będzie taka sama jak z dysku. Myślę więc, że mogę zmienić konfigurację na raid10 (zestaw raid1 przekonwertowany na radi0) zamiast raid01 (2 raid0 przekonwertowane na raid1).
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

podczas tworzenia urządzenia użyj --chunk = 64k lub --chunk = 128k. Sprawdź specyfikację/test porównawczy dysku, aby sprawdzić rzeczywisty rozmiar bloku.
niestety nie ma sposobu, aby to zmienić po stworzeniu.
istnieje również parametr stripe cache side, który może mieć wpływ
zobacz ten artykuł

http://www.amiryan.org/2009/04 ... slow/
http://www.amiryan.org/2009/04 ... slow/
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Może to być oczywiste, ale czy próbowałeś określić --chunk = 64k podczas tworzenia urządzenia?

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się