Dyski 4k sector size

Tylko tematy nie mieszczące się powyżej.
Awatar użytkownika
dk75
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1142
Rejestracja: 07 mar 2007, 22:59
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64

Dyski 4k sector size

Post autor: dk75 »

Zakładam ten temat aby nie śmiecić po innych.

Wielu z was zapewne zdaje sobie sprawę z zamieszania jakie powstało wraz z wprowadzeniem przez producentów dysków o sektorach 4k. Do tej pory dyski używały sektory 512B i wiele programów, zwłaszcza pod Windows sobie z tym nie radzi.
Niby w kernelu Linuxa od wersji 2.6.28 są już poprawki które ten problem załatwiają ale jednak było dużo zgłoszeń użytkowników o problemach.
Największym z nich jest ten, że obecnie dostępne dyski 4k działają w emulacji 512B i tak zgłaszają się systemowi i sterownikom. Linux jest w tej dobrej sytuacji, że sterowniki SATA już jakiś czas temu przestały być tworzone na bazie sterownika ATA i są robione na bazie sterownika SATA więc ich ten problem teoretycznie nie dotyczy.
Pozostaje jedynie kwestia tablicy partycji i to, czy program partycjonujący używa poleceń ATA do sprawdzenia geometrii dysku i otrzymuje dane z emulatora czy poleceń SCSI i otrzymuje prawdziwe dane fizyczne dysku z pominięciem emulacji.

Obecnie najczęściej używana jest tablica MBR gdyż to jest podstawa dla Windows i ograniczenie do sektorów 512B ale Linux może skorzystać z tablicy GUID (GUID Partition Table = GPT) dla której nie jest problemem zmienna wielkość sektorów na dysku.

W rezultacie, na dyskach z sektorami 4k gdy założy się partycje które nie zaczynają się od sektora wyrównanego co 4096B tylko co 512B są problemy z prędkością zapisu - prawdopodobnie przez konieczność synchronizacji sektorów co wymaga dodatkowego pustego obrotu talerza więc na dysku o prędkości 7200obr/min mamy prędkość zapisu jak dla dysku 3600obr/min.
Poczytajcie na sieci o nowych dyskach z prędkością zapisu rzędu 4-8MiB/s


Dobra, koniec przynudzania. Teraz praktyka.
Kupiłem dysk Samsung F4G 204UI 2T który jest dyskiem z sektorami 4k z emulacją sektorów 512B bez przełącznika.
Również Western Digital ma takie dyski, jest to seria WD Green WDxxEARS gdzie xx to 10 (1TB), 15 (1,5TB) i 20 (2TB) które również są dyskami 4k sector size z emulacją 512B ale posiadają zworkę aby tą emulację wyłączyć.

Producenci dysków WD i Samsung oferują dla Windows specjalne programiki które przesuwają partycje tak aby ich początki pokrywały się sektorami 4k aby obejść ten problem gdyż podobno dopiero Windows7 potrafi obsługiwać takie dyski bez emulacji.

Więc co z moim dyskiem? Nic. Nie robiłem nic. Włożyłem w kieszeń eSATA aby sprawdzić jak to jest i zrobiłem serię testów.
Oto program testowy:

Kod: Zaznacz cały

#!/bin/bash
	for x in 512 1024 4096 8192 16384 32768
	do
		_COUNT=$(echo "scale=0; 2^30 / ${2}" |bc -l)
		for y in {1..5}
		do 
			(dd if=/dev/zero bs=${x} count=${_COUNT} of=/media/HD204UI/1Gdisk.test) 2>/tmp/dd.log && \
			(awk '/skopiowane/ {print '${x}'";"$6";"$8}' /tmp/dd.log) >>/tmp/4ksector.test.log
		done
	done
czyli zapisywałem na system plików nie bezpośrednio do sektorów

Sformatowałem dysk w gParted z tablicą MBR i EXT4

Kod: Zaznacz cały

kitsune@kitsunes-zotac:~$ sudo parted /dev/sdf unit s print
Model: SAMSUNG HD204UI (scsi)
Dysk /dev/sdf: 3907029168s
Rozmiar sektora (logiczny/fizyczny): 512B/512B
Tablica partycji: msdos

Numer  Początek  Koniec       Rozmiar      System plików  Nazwa  Flaga
 1     63s       3907029134s  3907029074s  ext4

kitsune@kitsunes-zotac:
czyli partycje wyrównane do sektorów 512B

a oto wyniki (wielkość bloku danych; czas wykonania; prędkość w MB/s):

Kod: Zaznacz cały

512;48,5484;22,1
512;48,2837;22,2
512;48,9893;21,9
512;49,4604;21,7
512;48,1856;22,3
1024;27,1202;39,6
1024;28,1869;38,1
1024;28,7515;37,3
1024;28,2582;38,0
1024;27,5813;38,9
2048;16,8999;63,5
2048;17,0137;63,1
2048;16,8786;63,6
2048;17,0091;63,1
2048;17,081;62,9
4096;11,5174;93,2
4096;12,3651;86,8
4096;11,9812;89,6
4096;12,1045;88,7
4096;11,4113;94,1
16384;9,05405;119
16384;9,04635;119
16384;9,16957;117
16384;9,11231;118
16384;9,10361;118
32768;9,11906;118
32768;9,64798;111
32768;10,1718;106
32768;8,8966;121
32768;8,90196;121

Potem sformatowałem z GPT i EXT4

Kod: Zaznacz cały

kitsune@kitsunes-zotac:~$ sudo parted /dev/sdf unit s print
Model: SAMSUNG HD204UI (scsi)
Dysk /dev/sdf: 3907029168s
Rozmiar sektora (logiczny/fizyczny): 512B/512B
Tablica partycji: gpt

Numer  Początek  Koniec       Rozmiar      System plików  Nazwa  Flaga
 1     34s       3907029134s  3907029101s  ext4

kitsune@kitsunes-zotac:
czyli wyrównanie do 512B

a oto wyniki

Kod: Zaznacz cały

512;47,6996;22,5
512;48,6056;22,1
512;48,4047;22,2
512;49,3063;21,8
512;48,3339;22,2
1024;27,6635;38,8
1024;27,4038;39,2
1024;27,8167;38,6
1024;26,5115;40,5
1024;27,6227;38,9
2048;17,0104;63,1
2048;17,9731;59,7
2048;17,7795;60,4
2048;17,8089;60,3
2048;17,2595;62,2
4096;11,5843;92,7
4096;11,7736;91,2
4096;12,2645;87,5
4096;11,3233;94,8
4096;11,4354;93,9
16384;9,01469;119
16384;9,07027;118
16384;9,05964;119
16384;9,08232;118
16384;9,0815;118
32768;8,7088;123
32768;8,68712;124
32768;8,85407;121
32768;8,98628;119
32768;8,78074;122
Ja jakoś nie widzę aby było wolniej pomimo tego, że sektory nie są poprawnie wykrywane bez względu na to jaka tablica partycji jest na dysku więc chyba Ubuntu 10.04 nie cierpi z tego powodu.

Z chęcią po testowałbym dysk w Phoronix Test Suite ale na razie nie mam pomysłu jak go zmusić aby zrobił test na wybranym dysku zamiast na "/".
Linux Mint Debian Edition x86_64/2.6.39, Conky 1.8.0, Xorg 7.6/1.10.4 - GNOME 2.30.2, nVidia 285.03
Lenovo T61p, HITACHI HTS722010K9SA00 100GB, ST9250827AS 250GB
http://linuxcounter.net/user/483055.html
ODPOWIEDZ

Wróć do „Inne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 4 gości