Mam dysk SSD, który można skonfigurować tak, aby raportował swój rozmiar sektora fizycznego do systemu operacyjnego na dwa różne sposoby:
Opcja 1: Logiczna = 512 bajtów, Fizyczna = 512 bajtów
Opcja 2: Logiczna = 512 bajtów, Fizyczna = 4096 bajtów (4K)
Jakie korzyści czerpie system operacyjny, wiedząc o wielkości sektora fizycznego 4K, biorąc pod uwagę:
System operacyjny musi komunikować się z dyskiem w sektorach 512-bajtowych niezależnie
Wszystkie nowoczesne systemy operacyjne są dostosowane do 4K i wykorzystują 4K lub wielokrotność wejść / wyjść 4K niezależnie
To ustawienie wydaje się bezcelowe, ponieważ nowoczesne systemy operacyjne są już zoptymalizowane pod kątem napędów sektora 4K. Nowoczesne systemy operacyjne nie muszą „pytać” dysku, czy jego sektory to 512b czy 4K, ponieważ system operacyjny domyślnie robi wszystko w sposób przyjazny dla 4K.
Na przykład system Windows 7 wyrównuje partycje do 1 MB (wielokrotność 4K), rozmiar klastra NTFS wynosi 4K lub ich wielokrotność, a wszystkie operacje we / wy są wykonywane w 4K lub ich wielokrotności. Windows nie dba o to, jaki masz dysk twardy, zastosuje powyższe zachowanie we wszystkich przypadkach.
W każdym razie ... mój dysk SSD ma to ustawienie „rozmiaru sektora fizycznego”, więc musi być tam z jakiegoś dobrego powodu ... to jest powód tego szukam.
BTW, za co warto, dysk to dysk SSD Intel SSD DC S3510 . Karta danych napędu zawiera następujące informacje (strona 27):
Używając polecenia SCT 0xD801 ze stanem = 0, opcja = 1, ID słowa 106 można zmienić z 0x6003 na 0x4000 (zmiana obsługi rozmiaru sektora fizycznego 4KB na zmianę rozmiaru sektora fizycznego 512B).
źródło
Odpowiedzi:
Emulacja 512-bajtowa jest przeznaczona do kompatybilności ze starszymi systemami. Jednak zapisy obejmujące tylko część fizycznego sektora 4K mogą powodować obniżenie wydajności, ponieważ sektor musi zostać odczytany i zmodyfikowany, zanim będzie mógł zostać faktycznie zapisany.
Gdy starszy system operacyjny próbuje zapisać na dysk w formacie zaawansowanym, mogą pojawić się problemy z wydajnością, ponieważ zapisane sektory logiczne mogą nie pasować do sektorów fizycznych.
Partycje dysku, które nie są wyrównane do granicy 4K, mogą również powodować obniżenie wydajności.
Tradycyjnie pierwsza partycja na dysku twardym rozpoczyna się w sektorze 63. Windows XP i starsze systemy operacyjne partycjonowały dyski w ten sposób. Nowsze wersje systemu Windows utworzą partycje na granicy 1 MB, zapewniając prawidłowe wyrównanie do sektorów fizycznych. To się nazywa wyrównanie 0 .
Ponieważ LBA 63 nie jest wielokrotnością 8 (osiem starszych 512-bajtowych sektorów mieści się w sektorze 4K), dysk Advanced Format sformatowany w stary sposób będzie miał klastry (najmniejsza jednostka alokacji danych systemu plików, zwykle o rozmiarze 4K ), które nie są wyrównane do sektorów fizycznych na dysku 4K, warunek o nazwie Alignment 1 . W rezultacie operacja we / wy, która inaczej obejmuje 4K danych, obejmuje teraz dwa sektory, prowadząc do operacji odczytu-modyfikacji-zapisu, która zmniejsza wydajność.
Chociaż informacje o rozmiarze sektora fizycznego są niepotrzebne, jeśli system operacyjny zawsze zapisuje dane na granicy 4K, informacje te mogą być nadal potrzebne w aplikacjach, które wykonują operacje We / Wy niskiego poziomu.
Dysk SSD umożliwia zmianę wielkości zgłaszanego sektora fizycznego, ponieważ jest on niezbędny do zapewnienia zgodności z niektórymi macierzami pamięci.
Centra danych często mają tablice pamięci składające się ze starszych dysków 512n. Dyski 4K, nawet te emulujące sektory 512-bajtowe, mogą nie być kompatybilne z takimi macierzami, więc ta funkcja jest niezbędna do zapewnienia zgodności. Zobacz ten wątek na forum :
Pamiętaj, że lepszą wydajność można uzyskać w nowoczesnych systemach, jeśli dysk jest skonfigurowany do korzystania z sektorów 4K.
źródło
Rozmiar logiczny to minimalny rozmiar do przesyłania danych. Ponieważ jest to urządzenie blokowe, każdy transfer danych między komputerem hosta a napędem będzie wielokrotnością tego logicznego rozmiaru bloku.
Rozmiar fizyczny jest optymalnym rozmiarem do przesyłania danych i odzwierciedla rozmiar rzeczywistych operacji odczytu i zapisu na poziomie kontrolera / napędu.
Gdy komputer hosta zażąda odczytu sektora logicznego, kontroler / dysk wykona operację odczytu sektora fizycznego zawierającego sektor logiczny.
Gdy rozmiar sektora logicznego jest równy rozmiarowi sektora fizycznego, operacja jest prosta. Gdy rozmiar sektora logicznego jest mniejszy niż rozmiar sektora fizycznego, sektor logiczny musi zostać wyodrębniony z sektora fizycznego przez kontroler w celu przesłania do komputera hosta.
Gdy komputer hosta zażąda zapisu sektora logicznego, rozmiar sektora fizycznego ma znaczenie.
Gdy rozmiar sektora logicznego jest równy rozmiarowi sektora fizycznego, operacja zapisu jest prosta i może być kontynuowana bezpośrednio. Stan poprzedniej zawartości sektora nie wpłynie na operację zapisu.
Gdy rozmiar sektora logicznego jest mniejszy niż rozmiar sektora fizycznego, kontroler musi najpierw wykonać operację odczytu sektora fizycznego zawierającego sektor logiczny.
Jeśli odczyt się powiedzie, sektor logiczny zostanie wstawiony do sektora fizycznego, a sektor fizyczny zostanie zapisany w całości.
Jeśli odczyt nie powiedzie się (nawet po ponownych próbach), operacja zapisu nie może zostać zakończona.
Jeśli system operacyjny wykonuje operacje odczytu i zapisu z rozmiarem sektora fizycznego (wykorzystując operacje wielosektorowe dostępne w zestawie komend ATAPI), operacje zapisu będą wykonywane wydajniej (bez niepotrzebnej szansy na niekompletność).
Twoje twierdzenie o „bez wyjątków” jest nieprawidłowe.
Zestaw poleceń ATAPI, który został wprowadzony z dyskiem twardym IDE, zawsze miał możliwość wykonywania operacji odczytu i zapisu z
sector count
parametrem. Jest to jedynie rozszerzenie istniejących interfejsów kontrolerów dysków i stacji dyskietek, które były również zdolne do wielosektorowych operacji odczytu / zapisu (o ile sektory znajdowały się na tej samej ścieżce).źródło
sector count
Parametr mówisz ... nawet starożytnych Windows XP odczytuje / zapisuje w I / O wielkości bloku8
sektorów lub ich wielokrotności. Jest już w pełni zoptymalizowany! Dlatego XP działa wyjątkowo dobrze z dyskami SSD, o ile partycja jest wyrównana. Jest wyjątkowo przyjazny dla 4K. Tak więc pytanie wciąż pozostaje bez odpowiedzi. Co więcej system operacyjny może zrobić, znając rozmiar sektora fizycznego, to 4K. Pamiętaj, że system operacyjny jest już zoptymalizowany pod kątem we / wy 4K.Jeśli system operacyjny zna podstawowy rozmiar sektora fizycznego, może zoptymalizować swoje zapytania, aby wymagać jak najmniejszej liczby operacji fizycznych. W szczególności w przypadku dysków SSD fizyczny limit operacji (limit 4KB IOPS) jest często ostatecznym ograniczeniem prędkości urządzenia, dlatego ważna jest możliwość najlepszego wykorzystania tej pojemności.
źródło
Istnieją dwa różne sposoby dostępu do lokalizacji na dysku, jeden to schemat CHS, a drugi to schemat LBA.
CHS to skrót od Cylinder, Head, Sector i jest najbardziej niskopoziomową metodą określania miejsca odczytu lub zapisu z dysku. Mówisz, aby używał cylindra x, głowicy yi sektora z oraz odczytywał lub zapisywał zawartość tej lokalizacji do lub z adresu w pamięci (buforze). Wywodzi się z rzeczywistych fizycznych elementów (tradycyjnej wirującej rdzy) dysku twardego, na którym znajdują się fizyczne cylindry i głowice odczytu. Sektor jest najmniejszą jednostką adresowalną i tradycyjnie był ustalony na 512 bajtów.
LBA jest logicznym adresowaniem bajtów, w którym napęd odczytuje i zapisuje adres sektora poprzez jego przesunięcie, na przykład odczytuje sektor 123837 na dysku lub zapisuje go w sektorze 123734 na dysku (od zera).
Problem? Każda z tych wartości ma ograniczony zakres. W rzeczywistości, z powodu tego, jak poważnie ograniczone było CHS, konieczne było wprowadzenie LBA. W przypadku CHS możliwe wartości dla C (cylinder) to 1023, podczas gdy H (głowice) mogą mieć maksymalnie 255, a S (sektor) może wzrosnąć tylko do 63, co oznacza, że możesz mieć maksymalnie 1024 cylindry x 255 głowic x 64 sektory x 512 bajtów zmapowane w tradycyjnym formacie CHS, co daje w sumie mniej niż 8 GiB! Korzystając z CHS, po prostu nie można uzyskać dostępu do dysku większego niż 8 GiB!
Tak więc LBA został wprowadzony z limitem 32-bitowym, który daje 2 ^ 32 x 512 bajtów lub 2 TiB limit rozmiaru dysku - jest to powód, dla którego dysk MBR nie może przekroczyć 2TiB, ponieważ używa CHS i LBA do określania rozmiarów partycji i żaden z nich nie może obsługuje wszystko ponad 2TiB.
Wprowadzono nowsze, lepsze opcje, takie jak schemat partycjonowania GPT, który rozszerza LBA do 64 bitów, co zapewnia o wiele więcej niż potrzebujesz przy 2 ^ 64 x 512 bajtów - ale jest pewien haczyk: dużo dziedzictwa sprzętowe i starsze systemy operacyjne oraz starsze implementacje BIOS i starsze sterowniki nie obsługują UEFI ani GPT, a wiele osób chciałoby mieć coś, co można łatwiej zaktualizować, aby przekroczyć limit 2TiB bez konieczności przepisywania całego stosu od zera. Nareszcie osiągnęliśmy rozmiar sektora 4096.
Zobacz, przy wszystkich omówionych powyżej ograniczeniach jedno założenie było ustalone: wielkość sektora. Od pierwszego dnia ma 512 bajtów i tak już pozostało. Ale ostatnio producenci dysków twardych zdali sobie sprawę, że jest szansa na odrobinę magii: weź tradycyjny CHS lub 32-bitowy LBA i po prostu zastąp rozmiar sektora 4096 (4k) zamiast 512 bajtów. Kiedy system operacyjny mówi „daj mi drugi sektor na dysku”, prosząc o LBA 1 (ponieważ LBA 0 jest pierwszy), nie będziemy mu dawać bajtów 512–1023, ale raczej bajty 4096–8191.
Nagle nasz limit 2TiB został zaktualizowany do 2 ^ 32 x 4096 bajtów lub 16 TiB, bez konieczności porzucania MBR, przełączania na UEFI lub GPT, ani nic takiego!
Jedynym haczykiem jest to, że jeśli system operacyjny nie wie, że jest to magiczny dysk, który używa 4096 sektorów zamiast 512 bajtów, nastąpi niedopasowanie. Za każdym razem, gdy system operacyjny mówi „hej, ty, napisz mi te 512 bajtów, aby odsunąć xxx”, dysk zużyje 4096 bajtów do przechowywania tych 512 bajtów (reszta to zera lub niepotrzebne dane, zakładając, że nie skończysz z niedomiar pamięci), ponieważ nie komunikują się w bajtach, komunikują się w sektorach.
BIOSy zawierają teraz (czasami) opcję ręcznego określenia, że należy użyć rozmiaru sektora 512-bajtowego zamiast rodzimego rozmiaru sektora 4096 bajtów, z którego korzystają nowsze dyski - z zastrzeżeniem, że nie można go użyć, aby uzyskać dostęp do więcej niż 2 TB dysku w systemie MBR, tak jak w „starych dobrych czasach”. Ale współczesne systemy operacyjne, które są świadome 4k, mogą wykorzystać to wszystko, aby użyć tej magii do czytania i pisania w 4096-bajtowych fragmentach i voilà!
(Dodatkową zaletą jest to, że rzeczy są znacznie szybsze, ponieważ jeśli odczytujesz i zapisujesz 4096 bajtów jednocześnie, jest mniej operacji odczytu lub zapisu, powiedzmy 4GiB danych.)
źródło
n
porcjach po 512 bajtów.n
Jest liczbą, która z systemu Windows XP, nigdy nie jest mniejszy niż 8 i zawsze wielokrotnością 8. Co oznacza, że każdy system operacyjny z XP roku i wierzę we wszystkie nowoczesne dystrybucje linuksowe też są już zoptymalizowane dla 4K napędów. Najmniejszy I / O to 4K, a wszystkie inne rozmiary I / O są wielokrotnościami tego.512/4096 = OS odpowiedzialny za wyrównanie / optymalizację,
512/512 = Dysk odpowiedzialny za to
Zobacz także: http://support.microsoft.com/en-us/kb/2510009
źródło
Chciałem tylko poinformować Cię o sytuacji, w której sektory 4K stanowią problem dla nowoczesnych systemów operacyjnych.
Program Microsoft VSS Writer (Shadow Copy) nie działa dobrze z sektorami 4K. Aby wykonać kopię zapasową folderu udostępniania replikacji systemu plików DFS, nasze oprogramowanie do tworzenia kopii zapasowych „Backup Exec” musi wykonać kopię w tle folderu replikacji systemu plików DFS. Zadanie kończy się niepowodzeniem, jeśli folder replikacji systemu plików DFS znajduje się na dysku z sektorami 4K, ponieważ VSS nie działa poprawnie z sektorami 4K.
Jim
źródło
Fizyczny oznacza rzeczywisty napęd, podczas gdy Logiczny oznacza zdefiniowane w nim podziały. Z PC Mag's Logical vs. Physical:
Aby wyjaśnić to w przyswajalnej formie, wyobraź sobie jabłko o szerokości twojej dłoni. To jest rzeczywisty rozmiar fizyczny jabłka. Oczywiście całe jabłko nie zmieści się w ustach, więc decydujesz się pokroić go na równe plasterki, każdy kawałek ma szerokość palca. Jest to rozmiar logiczny lub rozmiar, który będzie używany przez komputer.
Wyjaśnia to Wikipedia z kilku powodów: obliczenia mocy rzeczywistej oraz mapowanie i korekcja błędów.
Tak jak nie możesz mieć plasterków jabłka bez samego jabłka, nie możesz mieć logiki bez podstawy fizycznej.
źródło