Start » Nowości » Buforowanie SSD w macierzach dyskowych firmy Qsan

Buforowanie SSD w macierzach dyskowych firmy Qsan

Pamięci flash nadal mają strategiczne znaczenie na rynku. Bardziej zaawansowane technologie wprowadziły produkty pamię-ci masowych flash w nową erę, która ostatecznie wpływa na sposób, w jaki ludzie traktują tradycyjne dyski twarde. Zasadnicza różnica między dyskiem wirującym i dyskiem SSD nadal istnieje, ale jest coraz mniejsza. Przed końcem 2015 roku powinny się pojawić dyski o pojemności 8 TB, wielkości 2,5”, o lepszej trwałości i wydajności.

Z uwagi na charakter pamięci flash, dyski SSD mogą służyć jako szybsza warstwa w tradycyjnych pamięciach masowych RAID i zapewnić natychmiastowe korzyści. Firma Qsan opracowuje własną funkcję buforowania SSD w serii AegisSAN i AegisSAN LX. Zapewniają one osiemnastokrotny wzrost wydajności. Buforowanie SSD stanowi największą różnicę w poniższych dwóch scenariuszach.

  • W środowisku produkcyjnym operacje odczytu są częstsze od operacji zapisywania.
  • Wielkość wielokrotnie używanych danych jest niższa od pojemności pamięci podręcznej SSD.

Teoria

Koncepcja jest podobna do warstwowego podziału pamięci masowych, który przesuwa często używane bloki danych i bloki z nimi sąsiadujące do bufora SSD, aby wykorzystywać właściwości dysków SSD. Po przypisaniu pojemności bufora SSD nie można go wykorzystywać do zwykłego przechowywania danych. Maksymalny rozmiar pamięci podręcznej SSD wynosi 2,4 TB.

Bufor SSD dzieli się na grupę sektorów o jednakowych rozmiarach. Każda grupa nazywana jest blokiem pamięci podręcznej; każdy blok dzieli się na bloki podrzędne. Wielkość bloku pamięci podręcznej można regulować w celu dopasowania do określonego zastosowania – takiego jak baza danych lub serwer www.

Działania, które powodują odczytanie danych z dysku twardego, a następnie zapisanie do SSD są nazywane zapełnianiem pamięci podręcznej.  Zazwyczaj jest to czynność wykonywana w tle, która następuje bezpośrednio po operacji odczytu lub zapisu.

Poniżej opisano dwa przypadki. Drugi przypadek pokazuje buforowanie SSD w działaniu:

1

Kolejne etapy to:

  1. Host żąda odczytu danych. System sprawdza, czy dane są w buforze pamięci, czy w buforze SSD. Jeśli ich nie ma, nazywa się to pominięciem bufora.
  2. Z tego powodu dane są odczytywane z dysku twardego.
  3. Żądane dane są zwracane do hosta. System sprawdza, czy żądane dane są danymi aktywnymi.
  4. Jeśli są, napełniany jest bufor SSD

2

Kolejne etapy to:

  1. Host żąda odczytu danych. System stwierdza, że dane są w pamięci podręcznej SSD, dlatego nazywa się to trafieniem bufora.
  2. Dane są odczytywane z pamięci podręcznej SSD.
  3. Żądane dane są zwracane do hosta.
  4. W przypadku błędu bufora SSD, dane są odczytywane z dysku twardego.

3

W przypadku, gdy kolejne żądania odczytu z hosta można znaleźć w buforze SSD, wynikiem netto jest ogromny wzrost wydajności.

Bufor SSD wymaga strojenia

Rozmiar bloku bufora, próg wypełniania przy odczycie i wypełniania przy zapisie to główne parametry do dostrojenia. Poniższa tabela podsumowuje różnice. Jak widać, istnieją kompromisy do uwzględnienia przy zwiększeniu lub zmniejszeniu każdego parametru.  Zrozumienie lokalizacji danych aplikacji jest niezbędne, a najlepsze rozwiązanie można ustalić na podstawie kilku prób.

Wzór na czas rozgrzewki

Podczas testowania funkcji buforowania SSD, nie nastą-pi natychmiastowy wzrost wydajności. Jest tak, ponieważ potrzeba czasu, aby przenieść prawidłowe dane do pamięci podręcznej SSD. Poniżej przygotowaliśmy uproszczony wzór, który pomoże w oszacowaniu, jak długo trzeba czekać.

  • T: Czas rozgrzewki; wymagana liczba sekund.
  • I: Średnia liczba losowych IOPS jednego dysku twardego.
  • S: Wielkość We\Wy.
  • D: Liczba dysków HDD.
  • C: Całkowita pojemność buforowania SSD.
  • P: Wypełnianie przy odczycie lub wypełnianie przy zapisie. Wzór wygląda następująco.

C * P = I * S *D * T

Możemy oszacować minimalny czas rozgrzewki.

T = (C * P) / (I * S * D)

Rzeczywiste przypadki mogą być dłuższe od szacowanego czasu. Oto przykład

  • I: 250 IOPS (losowe IOPS na HDD w układzie 64 KB We/Wy)
  • S: 64 KB (wielkość We/Wy)
  • D: 16 (Razem 16 dysków twardych w grupie RAID)
  • C: 480 GB (1 SSD)
  • P: 2 (próg wypełniania przy odczycie, przeniesienie danych do SSD przy dwukrotnym trafieniu)

Czas rozgrzewki T = (480 GB * 2) / (250 * 64 KB * 16) = 3932,16 sekund = 65,536 minut

Poniżej podano przykład buforowania SSD w działaniu. Na początku wskaźnik trafień danych jest niski i korzyści nie są oczywiste. Po całkowitym wypełnieniu bufora SSD, wydajność osiągnie stały, wyższy poziom.

4

Wynik testu i wniosek

Ten test wykorzystuje następujące urządzenia i ustawienia:

  • Serwer: ASUS RS700-X7/PS4 (×2)
  • Pamięć masowa: AegisSAN LX F630Q-D316 FW 3.4.0
  • Dysk twardy: Seagate Constellation ES, ST500NM0001, 500 GB, SAS 6 Gb/s (×12)
  • SSD: Seagate 1200 SSD, ST400FM0053, 400 GB, SAS 12 Gb/s (×1)
  • Grupa RAID: RAID 0 •  Typ We/Wy Dostosowywanie
  • Rozmiar bloku bufora: 1 MB •  Rozmiar bloku podrzędnego: 8 KB
  • Próg wypełnienia przy odczycie: 1
  • Narzędzie: IOmeter V1.1.0 •  Wzór We/Wy:
  • Pracujące: 2 •  Oczekujące: 64
  • Specyfikacje dostępu: 4 KB, 100% odczytu, 100% losowe

Zgodnie z wzorem zakładamy, że czas rozgrzewki wynosi

T = (C * P) / (I * S * D) = (10 GB * 1) / (430 * 4 KB * 12) = 508,03 sekund = 8,47 minut

Poniżej wynik testu:

5

Będziemy udzielać licencji na funkcję buforowania SSD w serii AegisSAN i AegisSAN LX. Jest to bardzo praktyczne i ekonomiczne rozwiązanie, aby odblokować wąskie gardło operacji wejściowych i wyjściowych w określonych aplikacjach biznesowych. Rozwiązanie to jest kolejnym krokiem, aby zapewnić najlepsze funkcje pamięci masowych klientom w sektorze MŚP.

O Grzegorz Bielawski

Grzegorz Bielawski
Syn, mąż i ojciec dwójki dzieci. Zawsze mówi co myśli i później często żałuje. Posiada kota i rybki, ale woli psy. Obecnie pracownik firmy QNAP, za kołnierz nigdy nie wylewa :). Lubi polemizować, ale tylko na argumenty.