Váltottam SSD-re

Címkék

Ezek a solid state diskek már évek óta elérhetőek, s az egyszeri felhasználó lassan képbe kerül az előnyeikkel és a hátrányaikkal kapcsolatban. Amikor három éve berobbantak a piacra az ilyen háttértárolóval rendelkező kis laptopok (vagyis netbookok, hogy a megfelelő buzzvördöt citáljam), az ilyen diskek legfőbb előnyének azt tartottam, hogy nincsen bennük mozgó alkatrész, ezért jól tűrik a mindennapi hurcolászásból fakadó rezgést, mozgást, ütődést. És valóban, az akkori hájp hatására megvásárolt EeePC 901, s benne a két gyári diszk azóta is jól szolgál a mindennapi utazgatásaim során, mondhatni 24/7 alapon.

Az utóbbi időkben ugyanakkor szállingózni kezdtek az olyan hírek, miszerint ezek az SSDk azért tudnak többet is. A hagyományos HDDkhez képest félelmetes írási és olvasási sebességük miatt előbb a szerverekbe, majd az árak esésével párhuzamosan az asztali számítógépekbe is egyre gyakrabban kerülnek beépítésre.
Néhány hete érkezett el az a pillanat, hogy az árak és specifikációk sajátos együttállása alapján úgy éreztem, asztali gépembe az operációs rendszert a hagyományos merevlemezről egy SSDre kell migrálnom. Első dolgom volt kiválasztani a megfelelő modellt. Eleinte az OCZ PCI-E foglalatba helyezhető tárolóival szemeztem, de igen hamar rá kellett jönnöm, hogy a gépem alaplapján már nincs szabad foglalat, ami tudná a 4x PCI-E sebességet. Maradtak hát a hagyományos SATA csatolós megoldások, s végül a választás egy Intel X25-V diskre esett. A kiválasztásnál szempont volt a sokat emlegetett TRIM, amin bizony sok más termék elhasalt.

Dobozból kibontva:

Megrendeltem hát a választottat, posta a komótos tempójában leszállította, s szerdán végre megérkezett. A formátum aprócska, de szerencsére mellékeltek a készülékhez egy beépítő keretet, melynek segítségével a szokásos méretű diszk helyekre is beépíthető az SSD. Sokat olvasgattam az SSDk és a Linux viszonyáról, hogy a marketing szövegnek megfelelően a „legtöbbet hozzam ki a termékből”, és a leghasznosabbnak az Arch Linux SSD beállítását magyarázó oldala bizonyult.

Íme a gép fontosabb adatai, amin a műtétet végrehajtottam:

alaplap: Asus P5Q
processzor: Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
RAM: 4GB 
videó: Vidia Corporation G96 [GeForce 9400 GT]
Hagyományos HDD: Western Digital Caviar Green 500Gb SATA Hard Drive
Operációs rendszer Fedora 13

Beszerelésre készen:

A migráláshoz beszereltem a lemezt, majd a gdisk programmal elvégeztem a particionálást. A fent linkelt oldal szerint a partíciók kialakításánál fontos, hogy a méretek a lemez erase block size (EBS) méretének egész számú többszörösei legyenek. Az idézett lap szerint a gdisk programmal egyszerűbb SSD kompatibilis partíciók létrehozása, mint a hagyományos fdiskkel. Én hittem nekik, ezért használtam a gdisket. Az egész lemezt mint root partíció (37,3 GiB) került kialakításra:

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        78165326   37.3 GiB    0700  Linux/Windows data

Ismét csak az ajánlásoknak megfelelően ext4 fájlrendszer került a lemezre:

mkfs.ext4 /dev/sdb1

Elsőnek a nyers erőt hasonlítottam össze a gépben lévő WD Caviar Green és az új SSD között:

# hdparm -tT /dev/sda # WD HDD

/dev/sda:
 Timing cached reads:   12042 MB in  2.00 seconds = 6036.06 MB/sec
 Timing buffered disk reads:  270 MB in  3.01 seconds =  89.77 MB/sec

# hdparm -tT /dev/sdb # Intel SSD

/dev/sdb:
 Timing cached reads:   12324 MB in  1.99 seconds = 6177.60 MB/sec
 Timing buffered disk reads:  800 MB in  3.00 seconds = 266.46 MB/sec

Ez eddig meggyőzőnek tűnt, következett hát a rendszer migrálása. Előkerestem egy LiveCD-t, ami már támogatja az ext4 fájlrendszert, végül egy Fedora 12 LiveCD került elő az egyik doboz aljáról. Gyors boot, aztán a régi root meg a leendő mountolása egy átmeneti könyvtárba, és már másolódtak is a fájlok:

mount /dev/sda2 /mnt/root
mount /dev/sdb1 /mnt/ssd
cp -RP /mnt/root/* /mnt/ssd/

A másolás után természetesen átírtam a másolt rendszeren az fstabot, lényegében ezt a sort kreáltam:

UUID=27d6157a-d869-42a2-a9b7-b63d86482e6f /  ext4     defaults,noatime,discard  0 1

Ezzel az ajánlásoknak megfelelően ott a noatime flag az írások számának csökkentésére, illetve a discard a TRIM funkció kihasználásához.

Ha már amúgy is az fstabban matattam, átraktam a /tmp könyvtárat a memóriába, szintén sebességnövelés gyanánt:

cat >> /mnt/ssd/etc/fstab
none    /tmp    tmpfs   nodev,nosuid,noatime,size=1000M,mode=1777 0 0

Sok helyen erősen javasolják, hogy az SSDkre használjunk nop vagy deadline I/O schedulert. Máshol azt is mondogatják, hogy az újabb kernelekben a cfq scheduler már olyan okos, hogy észreveszi, hogy SSDvel van dolga, és ennek megfelelően működik. Abban minden forrásom egyetértett, hogy hagyományos merevlemezhez erősen ajánlott a cfq ütemező. Miután a gépemben a boot, a home és a data partíciók maradnak a régi merevlemezen, a swapról nem is beszélve, ezért számomra nem járható út a kernel paraméteres megoldás, mert az az összes merevlemezre egyforma ütemezőt állít be. Ehelyett az rc.local init scriptbe raktam be egy sort, ami csak az SSDre állítja be a deadline schedulert.:

echo deadline > /sys/block/sdb/queue/scheduler

Hogy miért pont azt, és nem a noatimeot? Hasraütés szerűen választottam, miután nem teljesen világos melyik a jobb esetemben.

Eztán már csak a grub.conf fájlt kellet átírni, hogy a bootoláskor az SSD-t használja root partíciónak. (A boot maradt a régi HDDn, így az MBR miatt nem kellett aggódnom.) Egy gyors reboot után már élvezhettem is az új disk áldásait.

És akkor néhány mérési eredmény rendszerindításról, grafikus környezetek betöltődéséről, cammogósabb programok indulásáról. Indulási idők másodpercben:

		Root HDDn	Root SSDn
boot 		59,38 		19,6
kde 		16,65 		12,00
gnome 	        8,97 		3,28
firefox 	6,69  		0,83
oowriter 	3,91 		1,5

(Az 5 másodpercnél rövidebb időkben erősen jelen van a késő esti álmos reflexeim késlekedése.)

Ezek az adatok eléggé meggyőzőek, és érzésre is nagyon fürge lett a rendszer, sokkal gyorsabb, mint amire számítottam. Konklúzióm saját célra: a jövőben az asztali gépeinkbe otthon és a munkahelyemen SSDt fogok építeni rendszerlemezként.

Aki nem hiszi, nézzen bele ebbe a videóba, ahol megmutatom a bootoláskor látható különbséget.

Hozzászólások

Nálam is ma volt karácsony. Ma szereztem be egy Kingston SSDNow V SNV425-S2 128 GB-os modelt laptopba. A 120GB/5400rpm darab elkezdett bad sectoros lenni, így vettem egy nagy levegőt (is) és megléptem.
Mint egy álom. :) És ez még csak egy középerős darab.

+1 Praktikus post, tutorialnak is jó, bookmarkoltam. Jó tudni, hogy mit érdemes beállítani, ha majd SSD-re váltok.

Elsőre félreolvastam a témát: ,,Váltottam BSD-re''. Sebaj, mindkét téma érdekel.

"Az idézett lap szerint a gdisk programmal egyszerűbb SSD kompatibilis partíciók létrehozása, mint a hagyományos fdiskkel. Én hittem nekik, ezért használtam a gdisket."

Igen, mert az fdisk MBR, a gdisk meg GPT partíciós táblát kezel.

http://en.wikipedia.org/wiki/Master_boot_record
http://en.wikipedia.org/wiki/GUID_Partition_Table

A boot loadert is ennek megfelelően kell megválasztani, pl. az Arch Linux telepítője által alapértelmezetten választható GRUB nem kezeli a GPT-t, a GRUB2 vagy a Syslinux azonban már igen.

ha van 4GB RAM-om, akkor már érdemes a /tmp-t memóriába pakolni vagy fordulhat elő időnként komplikáció?

Én csináltam, 1 GB ramos netbookon :)
Mondjuk az kihegyezett gentoo volt.
Látványos volt a gyorsulás és nem volt gond.
(na jó egyszer, amikor forrásból pakoltam az openoffice-t és elkelt volna még 6 GB ram :D).
De más probléma nem volt, ha jól emlékszem talán dinamikus volt a tmpfs mérete.

Én 2 gigánál is megcsináltam, nem akarok "fölösleges" írásokat az SSD-n. Komplikáció akkor lehet, ha valami nem fér bele a megadott méretbe (nálam 500 mega), vagyis teleírja a /tmp "partíciót", illetve ha kifut a memóriából és elkezd swap-pelni, akkor nyilván belassul

Most akkor az a mágikus írási limit elhanyagolható, vagy esetleg érdemes a /var-t is HDD-re rakni?

Az Arch Wiki szerint:
„Cells wear out. Consumer MLC cells at mature 50nm processes can handle 10000 writes each; 35nm generally handles 5000 writes, and 25nm 3000 (smaller being higher density and cheaper). If writes are properly spread out, are not too small, and align well with cells, this translates into a lifetime write volume for the SSD that is a multiple of its capacity. Daily write volumes have to be balanced against life expectancy. ”

Én dec. 15.-én csináltam a partíciót (ext4), átlagosan félig van tele, leltölteni is szoktam rá (iso-kat, és egyéb nagy file-okat, néha csak 1-2 giga marad szabad), rar-okat ezen tömörítek ki és erről másolom hdd-re, szóval nem kímélem, "ölöm".

Eddig összesen 1451 GB írás ment rá (tune2fs -l /dev/sda2 |grep Lifetime).

Mivel 40 gigás a miskulancia, így eddig 36,275-ször írtam tele. De az elején bohóckodtam az align-nal, meg ext3 is volt rajta, meg van rajta swap, néha abba is beleír, szóval legyen inkább 40.
Ha azt mondom, hogy a wear levelig elvitt még 25% írást (ami szerintem barokkos túlzás, de hosszútávú tapasztalat még nincs a sandforce chip-pel), akkor 50x írtam tele 4 hónap alatt, ez 1 év alatt 150x-es írás. Vagyis így tudnám 20 évig használni, ha csak 3000x lehet újraírni, nincsenek tartalék cellák, meg mittudomén.

Szóval én ezért nem izgulnék, ha a 3000x írhatót tönkre akarod írni 3 év alatt, akkor naponta 3x tele kell írnod a lemezt, ami bőven nem reális szerintem.

szerk: ettől függetlenül én is megcsinálom, amit az okosok írnak: ext4, discard, noatime, nodiratime, commit=100, nouser_xattr, tmpfs, aufs, ne legyen tele, stb.

Nálam 2009 december óta van napi használatban egy 32G-s SSD, a / fájlrendszer ext4 (acl, user_xattr), a Lifetime writes 440GB, a fájlrendszer 8GBájt méretű, vagyis sikerült 55 alkalommal felülírnom 16 hónap alatt. Ha ráteszek egy kétszeres szorzót, akkor is kb. havi 10 felülírásnál tartok, ha ezer alkalommal írható felül, akkor is 100 hónapot tud, ami több mint 8 év. Kinek van a gépében 8 évvel ezelőtti HDD?

Ha ehhez hozzáveszem, hogy a /home egy 20G méretű fájlrendszer, amelyre két hónap alatt írtam 46 GB adatot, s ebben benne van az, hogy 18G-t felmásoltam rá, akkor a fenti arány még jobb lesz... szerintem nem kell aggódni, normál HDD eszközként használva tudnak ezek az SSD-k 10-12 évet. Többet nem hinném, hogy kellene tudniuk, ennyi idő alatt az átlag HDD is elpusztul.
--
http://wiki.javaforum.hu/display/~auth.gabor/Home

Erdekelne, hogy mit mond a seeker a WD-n es az SSD-n (yum install seeker, ha esetleg nem lenne fent ;).

At your service:

# seeker /dev/sda  # WD HDD
Seeker v3.0, 2009-06-17, http://www.linuxinsight.com/how_fast_is_your_disk.html
Benchmarking /dev/sda [976773168 blocks, 500107862016 bytes, 465 GB, 476940 MB, 500 GiB, 500107 MiB]
[512 logical sector size, 512 physical sector size]
[1 threads]
Wait 30 seconds..............................
Results: 65 seeks/second, 15.167 ms random access time (494788712 < offsets < 500089695212)
# seeker /dev/sdb  # Intel SSD
Seeker v3.0, 2009-06-17, http://www.linuxinsight.com/how_fast_is_your_disk.html
Benchmarking /dev/sdb [78165360 blocks, 40020664320 bytes, 37 GB, 38166 MB, 40 GiB, 40020 MiB]
[512 logical sector size, 512 physical sector size]
[1 threads]
Wait 30 seconds..............................
Results: 8523 seeks/second, 0.117 ms random access time (409415 < offsets < 40020646597)

Csaba

Én hibrid SSD-HDD cuccokat néztem minap laptopba, ezekkel van valakinek tapasztalata?

Hozzátenném, hogy van egy eSATA-USB csatival ellátott 32G-s SSD-m, de macerás, mert külső, de eSATA csatlakozón van olyan gyors, mint a sima SATA csatlakozós belső... azzal 20-21 másodperc alatt indult el az OpenSUSE KDE-vel üzemkészre. :)
--
http://wiki.javaforum.hu/display/~auth.gabor/Home

Éppen tegnap este tettem át hibrid hdd-re (Seagate Momentus XT 7200) a régi (Seagate Momentus 5400) tartalmát.

Egy kicsit simábban és gyorsabban indul minden program (néhány újraindítás után, amikor az ssd cache már "megtanulta" a használt szektorokat.)
A boot idő nálam kb. 20%-al, a programok indulási ideje kb. 40%-al csökkent. Összességében érezhetően jobb a működés, de persze nincs is nagyságrendnyi változás. Nagyjából erre számítottam.

Hm... hát. Ha csak ennyit javít, akkor sok értelme nincs... vagy még nem tanulta meg a gyakran használt fájlokat... :)

Nálam az eSATA SSD boot idő 20 másodperc volt, a 5400rpm HDD boot idő pedig 45-50 másodperc körül van.
--
http://wiki.javaforum.hu/display/~auth.gabor/Home

Csak hibrid cucc, nem "igazi" ssd, szóval kompromisszumos a dolog (persze mi nem az?). Sajnos nem lesz olcsó, meg nagy kapacitású is egyszerre. Nem véletlen, hogy a valódi ssd drága (az én esetemben 10x annyi lett volna). Annyit meg az ssd nem ér (nekem). Az lenne az igazi, ha a laptopomban lenne két diszknek is hely, de nincs.

Már hetek óta azon gondolkodom hogy nem eszek egy hónapig és megveszem a kiszemelt SSD-t.
Ez most így fokozza a dologot. :)

:o

A mérési adatok szinte hihetetlenek... (subscribe)

vízóraleolvasó haver véleménye szerint ssd helyett inkább sok ramot érdemes venni, mert akkor majd belecachel mindent a kernel

EDIT: most látom hupon is feljött a téma

Anyukám is vízóra leolvasó tehát megvédem a szakmát:) A sok ramtól is begyorsulhat a rendszertöltés illetve a programok elérési ideje, de erre az SSD által nyújtott nagyobb olvasási/írási sebesség rádobhat még egy lapáttal. Tehát szerintem mind a kettő jó ha van.

vízóraleolvasó haver véleménye szerint ssd helyett inkább sok ramot érdemes venni, mert akkor majd belecachel mindent a kernel

Töredelmesen bevallom, én is osztottam e balga nézetet. Amit a link alatt írtam, önmagában talán nem is eget rengető ostobaság, csak éppen nem számít. Amíg a kernel (akármilyen célból) eldobálja a nem dirty lapokat, illetve amíg nem zároljuk be előre az egész /usr-t a RAM-ba, addig a pörgettyűs diszkkel swap nélkül is szopni fogunk.

A munkára való laptopomon két percenként fut az offlineimap, majd a recollindex, inkrementális módban. 4G RAM, Firefox, Thunderbird, Dovecot, IceWM (!), egy rakat xterm, NEdit, git, és a laptop-on még csak nem is fordítok. Amikor a Thunderbird nem reagál, akkor tudom, hogy fut a recollindex. A hajamat tépem.

Jah, csak ezek a tesztek, hogy boot ido, meg mennyi ido alatt indul a firefox, stb, ezen a tobb RAM nem segit, ha boot-rol van szo, vagy az _elso_ inditasrol (pl firefox eseteben), amikor meg nem nagyon van becache-elgetve a cuccos. Bar, mondjuk engem soha nem erdekelt, hogy mennyi a boot ido, ha az nem 2 ora desktop-on pl :) Ilyen 20 vagy 50 masodpercen vitatkozni kar, es szerintem tobbet nyom a latba, hogy a gep _hasznalata_ soran mit tapasztal az ember ahhoz kepest, hogy most mennyi ido alatt boot-ol a gep, meg a gnome hany masodperc alatt all fel stb, ezek olyan muveletek amit az ember azert nem percenkent csinal, hogy _annyira_ zavaro legyen ...

én akárhogy nézem, az ocz jobb választásnak tűnik, mint az intel/kingston, de hát ti dolgotok.

pl. vessünk össze 3 hasonló árkategóriást:

http://lambdacomputer.hu/termekek/reszletek/7070_ocz_3_5_sataii_120gb_s…
http://lambdacomputer.hu/termekek/reszletek/6859_intel_x25-m_120gb_sata…
http://lambdacomputer.hu/termekek/reszletek/6977_kingston_2_5_sata_128g…

lehet nézegetni a sebességeket pl. az intel a leggyatrább (275 vs 100 írásnál elég vicces). persze lehet mondani, hogy jaj de hát ez csak spec, meg csak itthon ennyi, stb. de nem, nézegettem anno sok tesztet, és *tényleg* jobb az ocz :)

ps: nehogy valaki a form factorral jöjjön, hogy hát biztos amiatt lassabb/gyorsabb, a 2.5"-nek is ugyanilyen a spec-e...

http://hup.hu/cikkek/20110408/valtottam_ssd-re#comment-1262593

(a "kisebb érték a jobb" megjegyzés amúgy is teljesen mellékes, mert már megtanultam, hogy ha te valamit mondasz, akkor az úgy van, még akkor is, ha mégse, szóval fölösleges bizonygatnod, mert pont leszarom :)

Kisebb érték a jobb igen, és mit látsz? Hogy a régi, Indilinx Barefoot vezérlős Vertex (igaz RAID0-ban, de) az első helyen figyel, az általad hajtogatott Vertex2-vel megegyező Corsair Force meg az utolsó előtti helyen. Még az ugyanolyan SF-1200 vezérlőket RAID0-ban meghajtó OCZ Revodrive is a végefele kullog.

Az ilyen Sandforce vezérlős SSD-ket, mint a Vertex2 nyugodtan elfelejtheted. A marketing szövegekben és balfasz tesztekben látható 285/275 MB/sec olvasást/írást csak akkor lehet velük elérni, ha csupa nullát írsz és olvasol az SSD-vel, mert az jól tudja tömöríteni a vezérlő és nem kell ténylegesen írnia a memóriacellákba, de hétköznapi használatban nem ilyen adatokkal fogsz dolgozni, úgyhogy ott lassabb lesz, mint a konkurensek.

De nem kell nekem hinni, nyugodtan okoskodjál tovább, te jobban értesz hozzá. Nem nekem van egy rakás különböző SSD-m, amiket napi szinten használok és van róluk tapasztalatom.

Szerintem nem erdemes az IO schedulert CFQ-rol atallitani. Csinaltam nehany gyors tesztet (csak magamnak, nem dokumentaltam rendesen), es nem talaltam kulonbseget a deadline es a cfq kozott. Viszont az ionice-t csak cfq-val tudod hasznalni, es ez sokszor nagyon jol jon.

Az a speed daemon matrica jol nez ki :-)

Jo dolog ez az SSD, de meg mehetne egy picit lejjebb az ara nekije.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal