Wymiary: 7200.7, 200, elastyczność kabelka SATA i swoboda <abbrev title="Logical Volume Management">LVM</abbrev>



Tak się złożyło, że mam okazję dokonać zmiany dysku. Pozostaję wierny firmie Seagate, wymieniam moją dwuletnią osiemdziesiątkę na dwusetkę, ale z tej samej rodziny. Jedyna różnica to kabelek SATA zamiast PATA. I to właśnie stanowi problem.

Nowy dysk to ST3200822AS. Mój kontroler SATA to wbudowany w płytę główną Silicon Image 3112. sata_sil + Seagate = SNAFU.

Ta linia Seagetów (i jedna Maxtora) cierpi na znaczną niedoróbkę w implementacji protokołu Serial ATA. Jeśli przesyłane dane są podzielone na pakiety w sposób nieodpowiadaj±cy dyskowi, dochodzi do zjawiska o uroczej nazwie data corruption. Żeby temu zapobiec, sterownik sata_sil.c ogranicza maksymalną wielkość przesyłanych danych do 15 bloków, ponieważ wtedy nie następuje podział.

Przekłada się to na fatalną wydajność - testy nie wykazują wiecej niż 20 MiB/s - u mnie było 19,5 MiB/s.

Na szczęście dotyczy to jedynie zapisu (mniej ważnego w sytuacjach desktopowych), bo wtedy to kontroler przesyła (i dzieli) dane. Przy odczyciu żadne obostrzenia nie są potrzebne. I dzięki łatce spreparowanej przez TeJun Heo - nie są stosowane. Benchmark pokazuje ładne 61 MiB/s, co w porównaniu z 36 MiB/s na poprzednim dysku zwiększa komfort pracy.

Dodatkowo, kierując się opinią Jajcusia, zastąpiłem czteropartycjowy układ dysku zestawem 2 + LVM. Wymagało to wystrugania initrd, w czym wybitnie pomógł Yaird. Do tego jeszcze masaż skryptu rc.S, coby LVMa odpalał przed testowaniem filesystemów. I zhackowanie lvm mkvgnodes, żeby nie przejmował się katalogiem /var będącym tylko-do-odczytu i nie narzekał przy robieniu wpisów w /dev/motherlvm/*.

Na tym, i na przegrywaniu troszkę ponad 70 GiB zeszła cała sobota. Ziew.

Comments


Comments powered by Disqus