Miért választották a cikk témájaként a tároló rendszer fejlesztésétNyilvánvaló, hogy először a következőkre van szükség általában:
- Növelni a RAM-ot. Ez annyira nyilvánvaló lépés, hogy még azt sem tartottam szükségesnek, hogy az alapcikkben írjak róla.
- További processzor(oka)t beszerelni, vagy mindkét processzort a kiszolgálók által támogatott legnagyobb teljesítményű verziókra cserélni.
Régi szerverek esetében a memóriát és a processzorokat általában jó árakon lehet beszerezni.
Egy bizonyos pillanatban minden szerver tulajdonos előtt felmerül a kérdés — frissítés vagy új szerver.
Mivel az új szerver ára mostanában millió rubelben mérhető, sokan a frissítés mellett döntenek.
A sikeres frissítéshez nagyon fontos kompromisszumokat alkalmazni, hogy kis összegért (az új szerver árához képest) jelentős teljesítményfokozatot érjünk el.
A cikk tartalmaz egy listát a jelenleg jelentősen olcsóbb SSD PCI-E 2.0 x8 szerverekről, RAID vezérlőkről SSD cache támogatással, és tesztelt SATA III SSD-ről SATA II interfészen.
A legnyilvánvalóbb módja a tároló rendszer fejlesztésének — a HDD-ről SSD-re történő áttérés. Ez igaz a laptopokra és a szerverekre egyaránt. A szervereken azonban a különbség talán csak annyi, hogy az SSD-ket könnyen RAID-be lehet állítani.
Az igazság az, hogy vannak finomabb részletek, például, hogy lehet, hogy nincsenek SATA III portok a régi szerveren, és akkor le kell cserélni, vagy megfelelő vezérlőt kell beszerelni.
Természetesen vannak köztes megoldások is.
SSD caching.
Összességében ez a módszer jól alkalmazható adatbázisokhoz, 1C-hez és bármilyen véletlenszerű hozzáféréshez. A sebesség valóban nő. Nagy fájlok, videó megfigyelés esetén pedig ez a módszer haszontalan.
LSI RAID vezérlők (IBM, DELL, CISCO, Fujtsu)
A 92xx sorozattól kezdve az LSI-nak van egy CacheCade 2.0 technológiája, amely lehetővé teszi szinte bármilyen SATA SSD RAID tömbként való használatát. Akár olvasásra, akár írásra. Sőt, akár tükörképet is lehet létrehozni a cache SSD-kről.
A márkázott vezérlők esetében a helyzet bonyolultabb. Ez különösen igaz az IBM-re. A CacheCade-hez szükséges kulcsokat és SSD-ket az IBM-től kell megvásárolni horribilis áron, ezért egyszerűbb LSI-re váltani, és olcsón venni egy hardveres kulcsot. A szoftveres kulcsok lényegesen drágábbak, mint a hardveresek.
Adaptec RAID vezérlők
Az Adaptec vezérlőkön van a MaxCache technológia, amely lehetővé teszi az SSD cache-ként való használatát. Azok a verziók érdekelnek minket, amelyek Q betűvel végződnek.
A Q-vezérlők szinte bármilyen SSD-t képesek használni, nemcsak az Adaptec által biztosított SSD-ket.
- Az 5xxx-től kezdve minden vezérlő támogatja a Hybrid RAID-et. Ennek a technológiának az a lényege, hogy az olvasás mindig SSD-ről történik, amikor van tükör, amelyben az egyik lemez SSD.
- 5xxxQ, például 5805ZQ. Ezek a vezérlők támogatják a MaxCache 1.0-t. Csak olvasási cache-elés.
- 6xxQ, például 6805Q. MaxCache 2.0. Olvasási és írási cache-elés.
- 7xxQ, például 7805Q. MaxCache 3.0. Olvasási és írási cache-elés.
- 8xxQ esetében az upgrade szinte nem éri meg a magas árak miatt.
Szoftveres cache-elési technológiák SSD-n.
Nem fogom részletezni ezeket a technológiákat. Gyakorlatilag bármely operációs rendszerben támogatottak. Megjegyeztem, hogy a btrfs használata során automatikusan a legkisebb sorban lévő eszközhöz irányítja az olvasási kéréseket — SSD.
SATA III SSD SATA II interfészen.
Mivel nem mindig van lehetőség és pénz új vezérlőre, felmerül a kérdés, hogy mennyire jól működnek a SATA III SSD-k a már elavult SATA II interfészen.
Végezzünk egy kis tesztet. Alanyunk egy 400GB-os SATA III SSD Intel S3710 lesz.
Véletlenszerű olvasás, IOPS.
Átlagos olvasási késleltetés, mS.
Véletlenszerű írás, IOPS.
Átlagos írási késleltetés, mS.
Lineáris olvasás, MB/s.
Lineáris írás, MB/s.
SATA II.
21241
2
13580
4
282
235
SATA III.
68073
0.468
61392
0.52
514
462
Sebesség tesztelésére használt parancsok.
fio --name LinRead --eta-newline=5s --filename=/dev/sda --rw=read --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
fio --name LinWrite --eta-newline=5s --filename=/dev/sda --rw=write --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
fio --name RandRead --eta-newline=5s --filename=/dev/sda --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=4 --runtime=60 --group_reporting
fio --name RandWrite --eta-newline=5s --filename=/dev/sda --rw=randwrite --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=4 --runtime=60 --group_reporting
Ahogy látható, a különbség lineáris sebesség, IOPS és késleltetések tekintetében jelentős, ezért csak a SATA III interfész használata éri meg, ha viszont az nem áll rendelkezésre, vezérlőt kell beszerelni.
A tisztesség kedvéért elmondom, hogy más kísérletek szerint. A véletlenszerű olvasási és írási sebesség közötti különbség csekélynek bizonyult. Lehetséges, hogy a SATA II és SATA III közötti nagy IOPS különbség azért alakult ki, mert egy rendkívül rossz SATA II vezérlő vagy hibás illesztőprogram volt a rendszerben.
Viszont tény, hogy érdemes ellenőrizni a SATA II sebességét — lehet, hogy hasonlóan lassú vezérlője van. Ebben az esetben kötelező a SATA III vezérlőre való átállás.
PCIe SSD a PCI-e 2.0 vagy 1.0 buszon
Mint ismert, a leggyorsabb SSD-k a PCI-e NVMe, amelyek nincsenek korlátozva SAS vagy SATA protokollok által.
Viszont a modern PCI-e SSD-k telepítésekor figyelembe kell venni, hogy a legtöbbjük csak 4 PCI-e vonalat használ, jellemzően PCI-e 3.0 vagy 3.1.
Most nézzük meg a PCI-e busz sebességeit.
PCI Express sávszélesség, GB/s
Év
gyártás
Verzió
PCI Express
Kódolás
Sebesség
adatok
Sávszélesség x vonalra
×4
×8
×16
2002
1.0
8b/10b
0.50 GB/s
1.0 GB/s
2.0 GB/s
4.0 GB/s
2007
2.0
8b/10b
1.0 GB/s
2.0 GB/s
4.0 GB/s
8.0 GB/s
2010
3.0
128b/130b
1.97 GB/s
3.94 GB/s
7.88 GB/s
15.8 GB/s
Amikor PCI 3.0 x4 SSD-t telepítünk a PCI-e 2.0 buszra, ugyanolyan számú vonalon fog működni, de lényegesen alacsonyabb sebességgel. A probléma az, hogy a modern PCI-e SSD-k vonali sebessége meghaladja a PCI-e 2.0, és még inkább a PCI-e 1.0 sávszélességét.
M.2 SSD és PCI-e átalakító
Van néhány jó lehetőség a frissítésre, amikor 10 dollárért vásárolunk egy átalakítót és M.2 SSD-t telepítünk a szerverbe, de ismételten a jó SSD-k sebessége csökkenni fog (különösen a PCI-e 1.0 esetében), és az M.2 SSD-k nem mindig megfelelőek szerveres munkaterhelésekhez: magas kopásállóság, áramellátás védelme és stabil sebességkarakterisztikák a olcsó modellek SLC-cache telítettsége miatt.
Így ez a módszer csak olyan szerverek számára alkalmas, amelyeken a PCI-e 2.0 busz van és nem kritikus tevékenységet végeznek.
PCI-E 2.0 x8 SSD
A leggazdaságosabb frissítés a PCI-E 2.0 x8 SSD-k használata szerverek számára, amelyek PCI-e 1.0-n (sávszélesség max 2 GB/sec) és PCI-e 2.0-n (max 4 GB/sec) működnek.
Az ilyen szerver SSD-k most már rendkívül olcsón megvásárolhatók különböző piactereken és online aukciókon, beleértve Oroszországot is.
Összeállítottam egy táblázatot az erkölcsileg elavult SSD-kről, amelyek remekül gyorsíthatják a régi szervereket. A táblázat végére néhány PCI-E 3.0 x8 interfészes SSD-t is hozzátettem. Lehet, hogy szerencséd lesz, és ésszerű áron rájuk találsz.
Név
TB
PBW
PCI-E
4k olvasás iops, K
4k írás iops, K
olvasás, MB/s
írás, MB/s
2.4
32.5
2.0 x8
480
490
3000
2500
1.3
4
2.0 x8
225
345
2800
1300
1.3
16
2.0 x8
235
375
2700
1700
1.6
5.5
2.0 x8
270
375
2800
1700
3.2
11
2.0 x8
345
385
2700
2200
3.2
11
2.0 x8
345
385
2800
2200
2.6
32
2.0 x8
350
385
2700
2200
1,6
8,76
2.0 x8
395
270
1550
1100
3,2
17,52
2.0 x8
770
230
3100
2200
2,2
2.0 x8
340
110
2700
1000
2,2
33
2.0 x8
350
103
2700
1000
4,8
10.1
2.0 x8
269
51
2600
900
2,2
7.1
2.0 x8
531
59
2700
1400
Dell Micron P420M
1.4
9.2
2.0 x8
750
95
3300
630
1.4
9.2
2.0 x8
750
95
3300
630
1.6
25.10
3.0 x8
1200
200
6170
2200
3,2
17,52
3.0 x8
1200
200
6170
2200
3,2
17,5
3.0 x8
850
80
4500
2600
3,2
2,78
3.0 x8
1000
180
6800
6000
3.2
29
3.0 x8
750
120
5500
1800
3.2
29
3.0 x8
1000
120
6000
2000
3.2
29
3.0 x8
1000
180
6200
2600
3.2
18
3.0 x8
980
180
6200
2600
Ezekből az SSD-kkel kiemelkednek a Fusion ioMemory. A tudományos igazgató ugyanaz . Később a SanDisk 1,2 milliárd dollárért megvásárolta ezt a céget. Régen darabonként 50 000 dollártól indultak. Ma már néhány száz dollárért megvásárolhatók új állapotban, 1TB kapacitástól kezdődően.
Ha alaposan megnézzük a táblázatot, látható, hogy meglehetősen magas az IOPS írási teljesítményük, szinte megegyezik az olvasási IOPS-szal. Figyelembe véve a jelenlegi árukat, úgy vélem, érdemes figyelmet szentelni ezeknek az SSD-nek.
Igaz, hogy van néhány sajátosságuk:
- Nem indíthatók el
- Illesztőprogram szükséges a használatukhoz. Szinte mindenhez van illesztőprogram, de az utolsó Linux verziókhoz ezeket le kell fordítani.
- Optimális szektor méretük 4096 bájt. (512-t is támogat)
- A legrosszabb forgatókönyvben az illesztőprogram meglehetősen sok RAM-ot használhat (512 bájt méretű szektor esetén)
- A működési sebesség a processzor sebességétől függ, így az energiatakarékos technológiákat érdemes kikapcsolni. Ez egyszerre előny és hátrány, mivel egy erősebb processzor segítségével az eszköz akár gyorsabban is működhet, mint a specifikációkban szerepel.
- Jó hűtésre van szükség. A szerverek számára ez nem jelenthet problémát.
- Nem javasolt ESXi számára, mivel az ESXi a 512N szektorú lemezeket részesíti előnyben, ami az illesztőprogram nagy memóriafogyasztását vonhatja maga után.
- A márkázott verziók esetében az SSD-k általában nem támogatottak a gyártók által, a SanDisk utolsó illesztőprogram szintjéig (2019 március).
Teszteket végeztem a Fusion ioMemory-val összehasonlítva egy viszonylag modern Intel P3700 PCI-E 3.0 x8 szerver SSD-vel (ez utóbbi körülbelül négyszer drágább, mint a hasonló kapacitású Fusion). Közben meg lehet nézni, mennyire csökkenti a sebességet a x4 busz.
Fusion PX600 1,3TB PCI-E 2.0 x8
Intel P3700 1,6TB PCI-E 3.0 x4


Igen, az Intel P3700 olvasási sebessége egyértelműen csökken. A specifikáció szerint 2800 MB/s-nál kellene lennie, míg nekünk 1469 MB/s. Összességében elmondható, hogy PCI-e 2.0 busznál a PCI-E 3.0 x4 szerver SSD-k is használhatóak, ha jó áron sikerül beszerezni őket.
Következtetések
A régi szerverek PCI-E 1.0 vagy 2.0 buszával rendelkező tárolórendszereket fel lehet pörgetni SSD-k használatával, amelyek képesek kihasználni 8 PCI-E vonalat, így akár 4GB/s (PCI-E 2.0) vagy 2GB/s (PCI-E 1.0) sebességet is elérhetnek. A legköltséghatékonyabb megoldás a már elavult PCI-E 2.0 SSD-k használata.
Továbbá, egyszerűen megvalósíthatók kompromisszumos megoldások, például a CacheCade kulcs beszerzése LSI vezérlők számára, vagy az Adaptec vezérlő Q-változatra való cseréje.
És egy teljesen banális megoldás — SATA III (raid) vezérlőt vásárolni, hogy az SSD-k maximális sebességgel működhessenek és mindent kiszolgáljanak, ami sebességet igényel.
Forrás: habr.com
