Mam tani 2-kieszeniowy NAS z dyskiem twardym 2 TB. Aby zabezpieczyć się przed awarią dysku, zastanawiam się nad kupnem drugiego dysku twardego o pojemności 2 TB i umieszczeniem go w RAID1 w systemie Linux mdadm. System plików to ext4.
Czy to zwiększy lub zmniejszy wydajność NAS? Co powiesz na wydajność odczytu lub zapisu?
Wydaje się, że w Internecie jest wiele opinii na ten temat, ale nie ma zgody.
Dzięki.
Edytować:
Mam więc już trzy różne odpowiedzi: „nieco szybciej”, „nie zauważysz” i „zmniejszy wydajność, jeśli cokolwiek”. (Interesuje mnie przede wszystkim wydajność odczytu.) Wikipedia mówi: „wydajność odczytu może wzrosnąć mniej więcej jako liniowa wielokrotność liczby kopii”. Który to?
Edycja 2:
Znalazłem dowody na poparcie zwiększania wydajności odczytu RAID1, w tym na stronie MD:
Zmiany są zapisywane na wszystkich urządzeniach równolegle. Dane są odczytywane z dowolnego urządzenia. Sterownik próbuje rozdzielić żądania odczytu na wszystkie urządzenia, aby zmaksymalizować wydajność.
Odkryłem także RAID10 MD --layout=f2
, który zapewnia nadmiarowość RAID1 z wydajnością odczytu RAID0, i może być używany tylko z dwoma dyskami. Wydajność zapisu jest jednak zmniejszona, ponieważ zapis sekwencyjny wymaga, aby oba dyski przeszukiwały tam iz powrotem pomiędzy odległymi częściami napędu. man md
dla szczegółów.
Odpowiedzi:
Tak, implementacja RAID1 w systemie Linux przyspiesza operacje odczytu dysku dwukrotnie, o ile wykonywane są jednocześnie dwie oddzielne operacje odczytu dysku . Oznacza to, że odczyt jednego pliku 10 GB nie zajmie szybciej RAID1 niż na pojedynczym dysku, ale odczyt dwóch odrębnych plików 10 GB * zajmie szybciej.
Aby to zademonstrować, po prostu przeczytaj niektóre dane
dd
. Przed wykonaniem czegokolwiek wyczyść pamięć podręczną odczytu dysku za pomocąsync && echo 3 > /proc/sys/vm/drop_caches
. W przeciwnym raziehdparm
żąda super szybkich odczytów.Pojedynczy plik:
Dwa pliki:
Odczyt 10 GB danych zajął 65 sekund, podczas gdy odczyt 10 GB + 10 GB = 20 GB danych zajął w sumie 68,7 sekundy, co oznacza, że wiele odczytów dysków znacznie korzysta z RAID1 w systemie Linux.
skip=$COUNT
część jest bardzo ważna. Drugi proces odczytuje 10 GB danych z przesunięcia 10 GB.Odpowiedź Jareda i komentarze ssh dotyczące http://www.unicom.com/node/459 są błędne. Test porównawczy pokazuje, że odczyty dysku nie korzystają z RAID1. Jednak test został przeprowadzony za pomocą narzędzia do testowania bonnie ++, które nie wykonuje dwóch osobnych odczytów jednocześnie. Autor wyraźnie stwierdza, że bonnie ++ nie nadaje się do testowania macierzy RAID ( patrz readme ).
źródło
Tak, zwiększysz wydajność czytania + nadmiarowość. Możesz łatwo sobie wyobrazić, ponieważ możesz czytać części plików jednocześnie z dwóch różnych dysków twardych, ponieważ pliki znajdują się na obu dyskach twardych.
Teoretycznie więc, jeśli kontroler RAID wykonuje swoje zadanie prawidłowo, można uzyskać przyspieszenie O (n).
źródło
man 4 md
stwierdza: „… Należy zauważyć, że równoważenie odczytu wykonane przez sterownik nie powoduje, że profil wydajności RAID1 jest taki sam jak dla RAID0 ; pojedynczy strumień danych wejściowych nie będzie przyspieszany (np. pojedynczy dd), ale wiele kolejnych strumieni lub losowy obciążenie będzie korzystało z więcej niż jednego wrzeciona. Teoretycznie posiadanie N-dysku RAID1 pozwoli N na odczyt sekwencyjnych wątków ze wszystkich dysków. ”Na dodatek - w praktyce , w oparciu o
iostat
dane wyjściowe obserwowane w typowej konfiguracji RAID z 2 dyskami twardymi, nie ma równowagi . W rzeczywistości wygląda na tomdadm
, że opcja--write-mostly
jest zawsze włączona.źródło
Nie, nie będziesz otrzymywać żadnych korzyści podczas czytania z mdadm RAID1. Pytałem się o to jakiś czas temu.
dstat
pokazuje użycie dysków, równieżbwm-ng
naprawdę pomaga, szczególnie w tym przypadku, ponieważ może pokazywać użycie odczytu / zapisu na osobnych elementach RAID mdadm. Wystarczy nacisnąć n(dalej) kilka razy, aby przełączyć ze statystyk interfejsu na statystyki dysku. Następnie przełącz na maksymalne wartości za pomocą, taby zobaczyć maksymalny odczyt / zapis z każdego dysku. Zobaczysz:Robienie zapisu na woluminie RAID1 bwm-ng pokazuje 2 x zapisy, zapisywanie na 2 dyskach jednocześnie. Wykonanie odczytu z woluminu RAID1 bwm-ng pokazuje odczyt z pojedynczego napędu (elementu macierzy).
źródło