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