Do RAID lub nie do RAID: dyski SSD i wirtualizacja

8

Zbliżam się do tego czasu, kiedy mój główny komputer zwolnił wystarczająco z powodu zgnilizny systemu Windows , że prawdopodobnie powinienem ponownie zainstalować. Zamiast spędzać tydzień arm-wrestlingu, ponownej instalacji i konfiguracji tylko do stwierdzenia, że zapomniałem kopię zapasową programu Visual Studio ustawienia jeszcze raz , idę do aktualizacji. Kupiłem już wszystkie części i jestem w trakcie testów porównawczych w celu znalezienia najlepszej konfiguracji.

Kupiłem dwa dyski SSD Crucial M4 120 GB (zaktualizowane do najnowszego oprogramowania układowego od kwietnia '12:) 00Fi korzystałem z szybkich testów porównawczych przy użyciu CrystalDiskMark . Oto kilka wyników:

Pojedynczy dysk:

Wydajność pojedynczego dysku

RAID 0poprzez kontroler mikroukładu Intel Z77 :

RAID 0

Te testy porównawcze oczywiście nie są wyczerpujące, ale myślę, że dają mi dobre wyobrażenie o tym, czego mogę się spodziewać między różnymi konfiguracjami.

Rozumiem, że w przypadku większości typowych wzorców użytkowania, a mianowicie programowania w programie Visual Studio (moje podstawowe użycie), 4Kodczyty i zapisy są znacznie częstsze, nawet podczas kompilacji. Pomiędzy RAID 0i nie ma niewielkiej różnicy. Ale z 512Ki SequentialR / W różnice są wystarczające, aby zasługiwać na uwagę.

Chodzi o to, aby uniknąć problemów z zgnilizną w przyszłości - i, szczerze mówiąc, ponieważ mogę - będę polegać w większym stopniu na wirtualizacji. Moim planem jest podzielenie różnych części mojego środowiska programistycznego na maszyny wirtualne za pomocą VMware Workstation : Visual Studio i towarzyszące im narzędzia na jednym, SQL Server na innym, Adobe Design Suite na innym itd. Wykorzystując migawki VM i łatwe przez które mają tworzyć lub klonować nowe, wierzę, że zauważę poprawę długoterminowej niezawodności (i zawsze zobaczę wyskakujące okienka Adobe, kiedy tylko chcę).

Więc moje pytanie brzmi: czy wirtualizacja zasługuje na użycie RAID 0konfiguracji SSD w porównaniu z tradycyjną konfiguracją (w moim przypadku system operacyjny i aplikacje bez systemu operacyjnego na jednym dysku SSD, maszyny wirtualne na drugim)? Będzie wirtualizacji wykorzystać 512Ki SequentialR / W mocnych RAID 0?


Spostrzeżenie:

Czytałem, że niektóre współczesne dyski SSD są w stanie samodzielnie zarządzać odzyskiwaniem śmieci, więc ich brak TRIMjest mniejszym problemem. Nie wiem jednak, jak to włączyć na moich dyskach SSD, a nawet nie wiem, czy to obsługują.


Edytować:

Jeśli chodzi o odzyskiwanie po awarii, system ten ma również duże standardowe napędy talerzowe do przechowywania plików i dodatkowy kontroler RAID, którego w końcu będę używać w lustrzanej macierzy. W połączeniu z nocnymi lokalnymi kopiami zapasowymi, ciągłymi kopiami zapasowymi poza witryną za pośrednictwem Carbonite i spójnymi kontrolami kontroli źródeł poza lokalizacją, mam wystarczające środki, aby zapobiec utracie danych.

Chad Levy
źródło
1
Unikałbym RAID 0 bez wyczerpującego planu odzyskiwania po awarii, ale wirtualizacja z pewnością skorzysta z lepszej prędkości dysków SSD w tej konfiguracji.
Słuszna uwaga. Zapomniałem wspomnieć, że mam też kilka standardowych napędów na pokładzie i mam wiele kopii zapasowych na miejscu i poza nim. Więc nie jestem do końca przykręcony, jeśli dysk umrze, ale to dobra uwaga, ponieważ zapomniałem, że jeśli jeden dysk w macierzy RAID 0 pójdzie, wszystkie dane zostaną utracone.
Chad Levy,
1
Kolejny możliwy problem, który może wymagać uwagi: Uruchomienie RAID może wymagać, aby wszystkie wejścia / wyjścia były w jednostkach o określonym rozmiarze paska. Maszyny wirtualne prawdopodobnie nie będą wykonywać operacji we / wy dopasowanych do tych rozmiarów pasków, co spowoduje ogromne wzmocnienie zapisu, które może znacznie skrócić żywotność dysków.
afrazier

Odpowiedzi:

5

Po pierwsze, wiadomo, że kod kompilacji jest w dużej mierze związany z procesorem, więc nie oczekuj ulepszeń w stosunku do jednego dysku SSD.

W teście porównawczym, mimo że wydajność 4k 0-głębokości kolejki nie wzrasta, głębokość 4k 32-kolejki (QD32) zwiększa się prawie liniowo. IMO, ten wynik powinien wpłynąć na twoją decyzję.

Mimo że stacje robocze nie są serwerami baz danych z ciągle dużymi głębokościami kolejek, głębokości kolejek 2-20 są powszechne przynajmniej w serii podczas korzystania z częściowo intensywnych stacji roboczych - w takich przypadkach losowe IO rzeczywiście poprawi się z RAID 0. Biorąc pod uwagę, że VM dodaje kolejna warstwa równoczesnej aktywności systemu operacyjnego (i może ostatecznie skończyć się na jednoczesnym korzystaniu z maszyny wirtualnej 2+), sądzę, że ta metryka powinna poprawić sytuację w twoim scenariuszu.

Możesz monitorować bieżące wykorzystanie głębokości kolejki w Monitorze wydajności systemu Windows (Dodaj licznik ... Dysk fizyczny ... Śr. Głębokość odczytu / zapisu kolejki), aby uzyskać pomysł.

RAID dodaje warstwę złożoności (i problemy z kopiami zapasowymi / odzyskiwaniem), ale posiadanie większej partycji 240 GB jest zdecydowanie plus IMO. Przed użyciem macierzy RAID z dyskami sprawdź, czy nie występują problemy z TRIM - może to być przeszkodą.

mtone
źródło
Świetna informacja, dzięki. Jeśli chodzi o obsługę TRIM - myślę, że TRIM działa lub przynajmniej jest włączony zgodnie z fsutil. Czy system Windows włączy TRIM, jeśli polecenia nie będą przekazywane przez interfejs RAID?
Chad Levy,
1
Nie jestem zbyt zaznajomiony (mam tutaj tylko 1 dysk SSD ..), ale wierzę, że ponieważ kontrolery RAID nie obsługują TRIM, nigdy nie zobaczysz odniesienia do niego nigdzie. Innymi słowy, TRIM byłby technicznie wyłączony, więc musisz mieć pewność, że oprogramowanie wewnętrzne twojego dysku SSD porządnie zarządza śmieciami (nie cytuj mnie jednak). Pamiętaj, że sterowniki Intel RST powinny obsługiwać RAID TRIM czasami w 2012 roku, jeśli tego właśnie używasz. Inni kontrolerzy prawdopodobnie nadążą.
mtone
3

Szybkość dysku twardego jest ważna dla ogólnej wydajności programu Visual Studio. Scott Guthrie dobrze to porusza w tym poście :

W ciągu ostatnich kilku lat procesory wielordzeniowe na komputerach stały się wystarczająco szybkie, że w większości typowych scenariuszy zwykle nie blokuje się dostępnej mocy procesora na komputerze.

Podczas programowania w Visual Studio kończy się czytanie / pisanie wielu plików i spędzanie dużej ilości czasu na wykonywaniu operacji we / wy dysku. Duże projekty i rozwiązania mogą zawierać setki (lub tysiące) plików źródłowych (w tym obrazy, css, strony, elementy sterowania użytkownika itp.). Po otwarciu projektu program Visual Studio musi odczytać i przeanalizować wszystkie zawarte w nim pliki źródłowe, aby zapewnić intellisense. Gdy jesteś zapisany do kontroli źródła i pobierasz plik, aktualizujesz pliki i znaczniki czasu na dysku. Podczas kompilacji rozwiązania program Visual Studio sprawdzi zaktualizowane zestawy z wielu lokalizacji ścieżek dysku, wypisze wiele nowych zespołów na dysk po zakończeniu kompilacji, a także zachowa na nich pliki symboli debugowania .pdb na dysku (wszystkie jako osobne operacje zapisywania plików).

Z mojego osobistego doświadczenia korzystanie z SSD bardzo mi pomogło, ale biorąc pod uwagę, że duża część dysku I / O to prawdopodobnie małe losowe odczyty, RAID 0 może nie być ogromną poprawą. Inną rzeczą, którą możesz znaleźć, jest to, że wirtualne operacje we / wy dysku pochłaniają niektóre korzyści.

Brad Patton
źródło
3

Intel Z77 obsługuje Trim z RAID i jest jednym z pierwszych niskobudżetowych chipsetów. Ale musisz określić w konfiguracji pamięci, że używasz dysku SSD.

Daniel
źródło