Używam Linuksa z 4 dyskami twardymi, które używają sektorów 4k. Między moim systemem plików a surowymi urządzeniami istnieje kilka warstw: Dyski> Linux Raid 5> dm-crypt> LVM.
Każdy zasób, który znalazłem, wyjaśniał, jak skonfigurować każdą warstwę, aby zapewnić, że zapisy na tej warstwie zostaną wyrównane do granicy sektora 4k. Nie znalazłem jednak niczego, co wyjaśniałoby, jak sprawdzić, czy zapisy dokonane na dyskach twardych faktycznie mają miejsce na granicy 4k.
Nie jestem zainteresowany ponownym sprawdzaniem mojego zestawu w celu użycia logiki w celu ustalenia, czy jest on poprawnie wyrównany. Chcę zbadać, co się właściwie dzieje, gdy zapisy są zapisywane na dysku.
Jak mogę zalogować lub wyświetlić adresy i rozmiar zapisów dokonywanych na moich dyskach twardych, aby sprawdzić, czy są one prawidłowo wyrównane?
źródło
Napisz blok 4k i obserwuj, ile danych jest odczytywanych / zapisywanych
iostat
(kolumny „Blk_read” „Blk_wrtn”). Jeśli dane nie zostaną wyrównane, zapis rozpocznie wyzwalanie odczytów jako pierwszy i wyzwoli ponad 4k zapisów.Trzeba jednak uważać, aby nie mierzyć żadnych aktualizacji metadanych ... lub po prostu zagłuszyć je, wykonując tysiące zapisów w rozdzielczości 4k .... Więc upewnij się, że nic innego nie skanuje dysków ani nie przechowuje otwartych plików (myślę, że
lsof
byłoby wystarczy?), a następnie otwórz nowy plik, poczekaj, uruchomiostat
, zapisz 4k do pliku, zsynchronizuj zapis (lub po prostu poczekaj chwilę?), a następnie sprawdźiostat
ponownie.Wydaje mi się to rozsądnym wynikiem:
Strona podręcznika notatki
iostat
twierdzi, że ma raport w 512 bajtowych blokach, i widzę, że napisano nieco ponad 80000 dodatkowych bloków i nie odczytano żadnych bloków. Jeśli wyrównanie jest wyłączone, zobaczysz podobną liczbę odczytów (ponieważ napisanie źle wyrównanego 4k wymaga odczytania dwóch dotkniętych bloków, zmutowania ich i odpisania). W rzeczywistości jedynym powodem, dla którego wyrównanie jest ważne, jest unikanie takich odczytów (więc tak naprawdę tego chcesz szukać: czy wyzwalacz obciążenia zapisu czyta?)źródło