Üdv!
/// a hozzászólás végén javításra került, amit benne leírok, de már nem akartam az eredetit kitörölni. ///
Ma került hozzám egy 1 terás WD green merevlemez 64 mega cache-sel. Mint kiderült, a 64 mega cache-sel rendelkező WD merevlemezeknek 4k a fizikai szektormérete az 512 bájttal szemben.
Elég sokat gugliztam a témában, de csak összezavart, amit találtam, úgyhogy magam próbáltam utána járni a dolognak.
A probléma itt az, hogy ha a 4k-s logikai szektor nem a 4k-s fizikai szektorra esik, akkor 2 fizikai szektort kell beolvasni 1 logikai bekéréséhez a lemeznek, vagy kiírni, stb. Az volt az első probléma, hogy az fdiskben nem tudtam beállítani, pontosabban menteni 4k-s szektormérettel a partíciókat. Megcsináltam, w, partprobe, de 512 byte-tal jelentek meg a listázásnál, és a méretük is nyolcada volt. Ezt a problémát nem tudtam áthidalni, így maradt az, hogy a partíció eleje és vége is fizikai szektorhatárra essen. A másik gond az volt, hogy a wd oldaláról leszedett specifikációnak nem felelt meg az fdisk által kiírt szektorszám (mellesleg magán a termék adatlapon hibás adat volt, mert eggyel több "User Sectors Per Drive"-ot tűntettek fel (1,953,525,169), ami így nem volt osztható nyolccal (úgy tűnik, ők az 512-es blokkok számát hívják így, amik valójában 4k-sak, tehát az 512-esek száma 8-cal osztható). Egy pdf-et letöltve aztán kiderült, hogy ez valójában 1,953,525,168. Átállítottam ezért a fejek és cilinderek számát szerkesztésnél:
sudo fdisk -H 2 -S 63 /dev/sda
Így már helyesen jelent meg a szektorszám.
Több megoldást is olvastam, jumperrel is lehet variálni a lemezen, de én azt választottam, hogy úgy állítom be a partíciókat, hogy 8-cal osztható számú 512-es blokkon kezdődjenek és végződjenek. Több helyen írták a 64-et, de ez nem vezetett eredményre, hiszen ha 1-gyel kezdünk, akkor a 64 az még a 8. 4k-s blokk utolsó 512 bájtja. Próbáltam 63-mal, mert ezt is írták (indoklás nélkül), ugyanaz volt az eredmény, mint 64-gyel. És akkor a sok rizsa után a számok:
Partíciók:
A eset;
/dev/sda1 64 40000 2516031 83 Linux
/dev/sda2 40001 400000 22680000 83 Linux
/dev/sda3 400001 8000000 478800000 83 Linux
/dev/sda4 8000001 15504168 472762584 83 Linux
illetve
B eset;
/dev/sda1 65 40000 2515968 83 Linux
/dev/sda2 40001 400000 22680000 83 Linux
/dev/sda3 400001 8000000 478800000 83 Linux
/dev/sda4 8000001 15504168 472762584 83 Linux
Az sda1-et és sda2-t teszteltem, több alkalommal, oly módon, hogy az egyik partícióra 4k-s blokkokban a /dev/zero-ból 500 000 blokkot írtam fájlba, majd ugyanezt a másik partícióval is megtettem, illetve visszaolvastam azonos sorrendben. Semmi más nem változott, live cd-ről voltam bootolva, a gépben 1 giga ram van, a felírt fájl mérete 2 giga, tehát nem játszott a cache jelentős szerepet (ezért is választottam ezt a sorrendet az írás/olvasásra).
A eset:
(sda1 write)
500000+0 records in
500000+0 records out
2048000000 bytes (2.0 GB) copied, 50.5476 s, 40.5 MB/s
(sda2 write)
500000+0 records in
500000+0 records out
2048000000 bytes (2.0 GB) copied, 38.2926 s, 53.5 MB/s
(sda1 read)
500000+0 records in
500000+0 records out
2048000000 bytes (2.0 GB) copied, 29.6059 s, 69.2 MB/s
(sda2 read)
500000+0 records in
500000+0 records out
2048000000 bytes (2.0 GB) copied, 24.8064 s, 82.6 MB/s
B eset:
(sda1 write)
500000+0 records in
500000+0 records out
2048000000 bytes (2.0 GB) copied, 35.2296 s, 58.1 MB/s
(sda2 write)
500000+0 records in
500000+0 records out
2048000000 bytes (2.0 GB) copied, 35.7909 s, 57.2 MB/s
(sda1 read)
500000+0 records in
500000+0 records out
2048000000 bytes (2.0 GB) copied, 28.5575 s, 71.7 MB/s
(sda2 read)
500000+0 records in
500000+0 records out
2048000000 bytes (2.0 GB) copied, 25.5112 s, 80.3 MB/s
Természetesen többször megismételtem a kísérletet, az írásnál mindig hasonló eredménnyel, az olvasásnál valami miatt nem mindig volt jelentősen gyorsabb a 65-ön kezdődő partíció, néha felvette az sda2 sebességét, néha nem (de valamennyivel mindig gyorsabb volt).
Amit nem próbáltam, az a kiterjesztett partíció. Mivel ennek információi is tárolódnak valahol, még itt is lehet egy csavar.
Remélem, valakinek segít ez az információ. Ha van tapasztalatotok ezzel kapcsoltban, osszátok meg, ha lehet!
Üdv
///////////////////////////////////////////////////////////////////
!!! Javítva :
Ma reggel frissen elgondolkozva Bambano hozzászólásán megvilágosodtam.
Mivel az fdisk nem enged 64 sector/track-et állítani, így 56-ra állítottam (7 * 8).
sudo fdisk -H 2 -S 56 /dev/sda
Ezzel ugyanúgy kijön a gyártó által megadott 512 bájtos szektorszám, és mivel a sávokon található sectorok száma ostható 8-cal, így elvileg mindegy, hogy hol kezdődik a partíció (jól beállított geometria).
Gyakorlatban is úgy tűnik, ez a probléma megoldása.
Összegezve tehát, a lényeg, hogy az fdisk nem jól ismeri fel (nekem) a sector/track értéket, emiatt a sector szám nem egyezik a gyári specifikációval, és emiatt elcsúszhatnak a logikai/fizikai 4k-s szektorok egymáson.
Ha ezt az értéket beállítom 8-cal oszthatóra (4k / 512 bájt), akkor mindegy, hogy adom meg a partíciókat, elvileg okés lesz az elhelyezkedése a logikai blokkoknak, és jó lesz a sebesség. Nálam gyakorlatban is.
Elnézést a bénázásért, de ez új volt nekem, és túl gyorsan akartam segíteni azoknak, akiknek szintén az. De remélhetőleg minden jó, ha jó a vége. :)
Üdv
- 2414 megtekintés
Hozzászólások
nekem 4-nél nagyobb szorzóval gyorsult ilyen diszk elérése, amikor sikerült eltalálni a jó particionálást. Nekem az segített, hogy más vinyógeometriát hazudtam az fdisknek, mikor particionáltam.
- A hozzászóláshoz be kell jelentkezni
Amit este kijelejtettem: file rendszer ext3 volt.
- A hozzászóláshoz be kell jelentkezni
subscribe.
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 13.1 | 2.6.34.1-janos
- A hozzászóláshoz be kell jelentkezni