[so2] [Tema3] About Raid1

Alexandru Preda alexandru.preda91 at gmail.com
Wed Jul 23 03:21:59 EEST 2014


2014-07-22 23:58 GMT+03:00 Catalin Poida <poida.catalin at gmail.com>:
> Salut,
>
> Am o nelamurire legat de cum trebuie sa functioneze tema.
>
> ------
> Dacă în cazul unei citiri un sector al primei partitii deține date corupte
> (valoarea CRC este greșit), se va citi sectorul de pe cea de-a doua
> partiție; în acelasi timp se va corecta sectorul primei partiții. Similar în
> cazul unei citiri a unui sector corupt de pe a doua partiție. În cazul în
> care ambele sectoare au valori CRC greșite, se va returna un cod de eroare
> corespunzător.
> -------
>
> Verificarea CRC-ului se fac si intre partitii? Dupa ce citest din prima
> partitie, verific si a doua partitie daca corespunde?

Da, așa sunt cerințele temei și în acest fel se efectuează testarea
(deși are mai mult sau mai puțin sens din punct de vedere al
performanței).

> Incepand cu testul 46 din directorul _test-ng imi pica majoritatea testelor
> si nu prea inteleg de ce. Din cate am observat la verificare, bufferul logic
> contine PHYS1_DISK_DIRTY_DATA, iar bufferul fizic contine PHYS_FILL_DATA.
> Cam care ar fi problema?

Ce ai întrebat mai sus nu are legătură directă cu testul 46 (read one
sector after physical write (correct CRC)).

În final ar trebui ca bufferele phys1_wr_buf, phys2_wr_buf, log_rd_buf
să conțină PHYS_FILL_DATA.

Datele se consideră valide pe ambele discuri fizice (PHYS_FILL_DATA cu
CRC corect), iar dacă tu redirectezi cererea de citire pe oricare
dintre ele (indiferent dacă verifici sau nu CRC-ul) ar trebui să îți
treacă testul.

E o problemă la citire, dar nu îmi dau seama exact. Mi se pare destul
de dubios că îți trec testele de scriere, iar citirea nu, deși este
aproape identică (ignorând operațiile de CRC).

--
Alex


More information about the so2 mailing list