Chyba cteni disku
Dan Lukes
dan at obluda.cz
Thu Sep 4 05:55:37 CEST 2014
On 09/03/14 12:22, Jozef Drahovsky:
> 1, Zamyslal som sa na tym, ci je mozne aj teraz vsetky bloky, ktore ma
> jedna fyzicka hlavicka zahrnut do jedneho,
> pripade viacerich BAD suborov. Kedze ako uvadzas dnes prepocet cisla
> bloku na presne miesto je viacmenej nezname,
> tak chapem, za rozmyslat tymto smerom je uz dnes bezpredmetne.
Tohle se delavalo. Dokonce je na UFS pro takovy soubor stale rezervovany
inode tusim #2. Ale uz par let se to oficialne nedela. Ale ani dneska ti
nic nebrani nalezeny soubor s vadnym blokem prejmenovat a v ramci svazku
"schovat" - a tim udrzet vadny sektory alokovany a ve znamem souboru.
> Dnes maju disky spravidla jeden alebo dva taniere cize maximalne 4
> hlavicky.
> Zistil som uz aj taku vec, ze niektore disky maju fyzicky 4 hlavicky ale
> funguje len jedna, ostatne su elektronicky vypnute.
Zrejme je rozdil ceny v trojhlavickove a ctyrhlavickove mechanice
natolik zanedbatelne, ze se proste nevyplati delat oba typy. Totez muze
platit pro plotny. Nebo tam mozna maji ty u nichz jedna strana neprosla
QA. Tohle ale bude vyrobce od vyrobce (a mozna i model od modelu,
pripadne vyrobni sarze od vyrobni sarze) jine.
Mimochodem, ne vzdy jsou vsechny pouzivane plotny datove. Nekdy se jedna
strana jedne z nich pouziva na synchronizacni udaje.
> Otazka je co sa stalo, ze disk hlasi na tom isto mieste chybu bloku a
> nepremapuje si ho?
Pri cteni obvykle ne. On nema data toho sektoru, takze ti ho nemuze tise
zremapovat pri cteni. Leda tak u soft-chyb, kdy data dopocita diky
samoopravnym kodum.
Standardne se realokace dela pouze pri zapisu.
> Zlyhala elektonika alebo pamat premapovania vadnych miest je uz plna
Ano nebo ano.
> 2, Pochopit vyznam rozdielu rezimu SATA diskov medzi IDE a AHCI.
Velmi(!) zjednodusene receno, tim rozdilem je NCQ. Tedy fronta na vic
nez jeden pozadavek. A pak mozna jeste hot-plug - pripravenost na to, ze
disk pripojujes a odpojujes "za ziva".
> Lenze ak je to tak, potom radic musi nejakym sposobom skutocnu vediet
> polohu ramena hlavickiek pre kazdy konkretny blok
> a nemoze tam byt nejaky utajeny prepocet.
Aha, tak tady je zakopany pes nedorozumeni. V pojmu radic. Ano, dneska
se tim pojmem obvykle oznacuje "to v pocitaci" co dela rozhrani k
ATA/SATA/SCSI/FW sbernici po ktere se kominikuje s diskem. Ale on je na
kazdem disku (alespon na kazdem vyrobenem v tomto stoleti) radic toho
disku. O tom (prave proto, ze je na kazdem disku vestaveny) se obvykle
prilis nemluvi, ale pro ucely teto diskuse je pro nas podstatnym radicem
prave tenhle.
To on prijima a resi pokyny "precti sektor X" od pocitace a prevadi je
na pohyby hlavicek, resi cache i realokaci vadnych sektoru - a v
pripade, ze umi NCQ, tak take resi obsluhu (a tedy prioritizaci a
reordering) pozadavku. A ten je duverne obeznamen s interni organizaci
dat na disku - to on ji totiz dela. Takze ma informace potrebne pro
realokaci i pro prioritizaci.
> este som nedostudoval, kto a ako prepocitava rozdielny pocet sektorov na otocku
> a uz vobec nie kto vie o premapovani vadnych blokov a co sa stane s
> optimalizaciou ked niektory blok bude nahradeny inym niekde na okraji
> disku.
To vsechno zajistuje radic *disku*.
On 09/03/14 12:51, Jan Jurák:
> Posledne jsem ... ustoupil z nasazenil na dulezitem stroji. SU+J je pritom oznaceno jako produkcni
Za meho zivota se vyznam oznaceni "produkcni" hodne posunul. Dokonce i u
profesionalnich a drahych vyrobku se stale ve vetsi mire "testuje na
zakaznicich". "Produkcni" stale vic znamena "asi to tak zhruba funguje,
radi bychom, aby to co nejvic lidi zacalo pouzivat a tim se to do
otestovalo".
A u "open source" to plati obzvlast. Nevis, kdo ten kod vlastne napsal.
Nevis jak dalece ho otestoval - a jak dalece ho otestoval v jinych
podminkach, nez tech "svych" pro ktere ho nejspis dela.
Nejvyssi opatrnost s featurami, se kterymi nemas osobni zkusenost - a to
zkusenosti v podminkach blizkych tem, pro ktere se to chystas pouzit -
je vzdycky na miste.
Kdyz jsme u toho GEOMu, tak priklad z jeho oblasti - ja pamatuju dobu,
kdy FreeBSD nenabootovalo pokud bylo v CD mechanice medium (ze ktereho
se ale nebootovalo). GEOM_LABEL se v takovem pripade zadrel. Zrejme to
proste nikdo v tehle podminkach nevyzkousel ...
> Freebsd jsou nadprumerne inteligentni lidi, kteri se neboji implementovat slozitou myslenku do Cecka.
C je jazyk takrka neomezujici a proto celkem oblibeny prave pro tyhle
typy uloh. Stejnej kod by ve vice omezujicim jazyku nekdy neslo napsat
vubec a casto neslo napsat tak efektivne. Jenze nelze oddelit "svobodu
volby" od "moznosti spatne volby". Takze prostor pro chyby je u takoveho
jazyka logicky vetsi.
A to, ze si ten jazyk kazen nevynucuje znamena jen to, ze je vhodnejsi
spis pro nekoho, kdo si dokaze pravidla stanovit (a dodrzet) sam. To, ze
ten jazyk ma spoustu moznosti neznamena, ze je rozumne vsechny pouzivat
- a navic najednou.
> pro tyhle soucasti systemu to chce stabilni testovaci team, ktery je schopny garantovat nejaky seznam setupu pro kazdy releas.
Takhle uz se dneska software nevyviji. Dokonce ani ne-opensource.
Nadseny z toho nejsem, pamatuju i doby, kdy to - i u FreeBSD - bylo
jinak, ale musime zit v tom jedinym svete, kterej mame. Kdybych mel
dojem, ze vim o necem, co vyhovuje mejm potrebam lip nez FreeBSD, tak
bych to uz pouzival.
More information about the Users-l
mailing list