
Wprowadzenie
System informacyjny z punktu widzenia użytkownika jest dobrze określany w GOST RV 51987 – „system zautomatyzowany, którego wynikiem działania jest przedstawienie informacji wyjściowej do późniejszego wykorzystania”. Rozważając wewnętrzną strukturę, w zasadzie każdy system informacyjny to system zrealizowanych w kodzie powiązanych algorytmów. W szerokim rozumieniu tezy Turinga-Churcha algorytm (a więc system informacyjny) realizuje transformację zestawu danych wejściowych w zestaw danych wyjściowych.
Można nawet stwierdzić, że sens istnienia systemu informacyjnego tkwi w transformacji danych wejściowych. W związku z tym wartość systemu informacyjnego oraz całego kompleksu systemów informacyjnych określa się przez wartość danych wejściowych i wyjściowych.
W związku z tym projektowanie powinno zaczynać się od danych, dostosowując architekturę i metody do struktury i znaczenia danych.
Przechowywane dane
Kluczowym etapem przygotowania do projektowania jest uzyskanie charakterystyki wszystkich zbiorów danych, które mają być przetwarzane i przechowywane. Te charakterystyki obejmują:
— Objętość danych;
— Informacje o cyklu życia danych (przyrost nowych danych, czas życia, przetwarzanie przestarzałych danych);
— Klasyfikację danych z punktu widzenia wpływu na podstawowy biznes firmy (w kontekście triady poufności, integralności, dostępności) wraz z wskaźnikami finansowymi (np. koszt utraty danych w ostatniej godzinie);
— Geografia przetwarzania danych (fizyczna lokalizacja systemów przetwarzania);
— Wymagania regulacyjne dla każdej klasy danych (np. FZ-152, PCI DSS).
Systemy informacyjne
Dane nie tylko są przechowywane, ale również przetwarzane (transformowane) przez systemy informacyjne. Następnym krokiem po uzyskaniu charakterystyki danych jest jak najbardziej pełna inwentaryzacja systemów informacyjnych, ich cech architektonicznych, wzajemnych zależności i wymagań dotyczących infrastruktury w odniesieniu do czterech rodzajów zasobów:
— Moc obliczeniowa procesora;
— Objętość pamięci operacyjnej;
— Wymagania dotyczące objętości i wydajności systemu przechowywania danych;
— Wymagania dotyczące sieci transmisyjnej danych (kanały zewnętrzne, kanały między komponentami systemu informacyjnego).
Wymagania powinny być opracowane dla każdej usługi/mikrousługi w składzie systemu informatycznego.
Osobno należy podkreślić konieczność posiadania danych dotyczących wpływu systemu informatycznego na główny biznes firmy, w postaci kosztów przestoju systemu informatycznego (w rubrach za godzinę).
Model zagrożeń
Obowiązkowo musi być dostępny formalny model zagrożeń, od których planuje się ochronę danych/usług. Model zagrożeń obejmuje nie tylko aspekty poufności, ale także integralności i dostępności. Tzn. na przykład:
— Awaria fizycznego serwera;
— Awaria przełącznika top-of-the-rack;
— Zerwanie optycznego kanału komunikacyjnego między centrów danych;
— Awaria pamięci masowej w całości.
W niektórych przypadkach modele zagrożeń tworzone są nie tylko dla komponentów infrastruktury, ale również dla konkretnych systemów informatycznych lub ich komponentów, jak na przykład awaria systemu zarządzania bazą danych z logicznym zniszczeniem struktury danych.
Wszystkie rozwiązania w ramach projektu dotyczące ochrony przed nieopisanym zagrożeniem są zbędne.
Wymagania regulacyjne
Jeśli przetwarzane dane podlegają specjalnym zasadom ustalanym przez organy regulacyjne, niezbędne jest posiadanie informacji o zestawach danych oraz zasadach przetwarzania/przechowywania.
Wskaźniki celowe RPO/RTO
Projektowanie jakiejkolwiek ochrony wymaga posiadania wskaźników celowej utraty danych oraz celowego czasu przywracania usługi dla każdego z opisanych zagrożeń.
W idealnym przypadku RPO i RTO powinny mieć powiązane koszty utraty danych i przestoju w jednostce czasu.

Podział na pule zasobów
Po zebraniu wszystkich początkowych danych, pierwszym krokiem jest grupowanie zestawów danych i systemów informatycznych w pule, w oparciu o modele zagrożeń oraz wymagania regulacyjne. Określa się sposób podziału różnych pul – programowo na poziomie oprogramowania systemowego lub fizycznie.
Przykłady:
— Kontur przetwarzający dane osobowe jest całkowicie fizycznie oddzielony od innych systemów;
— Kopie zapasowe są przechowywane na oddzielnym systemie pamięci masowej.
Przy tym pule mogą być częściowo niezależne, na przykład definiuje się dwa pule zasobów obliczeniowych (moc obliczeniowa + pamięć RAM), które korzystają z jednego zbioru zasobów pamięci masowej oraz jednego zestawu zasobów przesyłania danych.
Moc obliczeniowa

Abstrakcyjne potrzeby w zakresie mocy procesora w wirtualizowanym centrum danych mierzy się liczbą wirtualnych procesorów (vCPU) oraz współczynnikiem konsolidacji w fizycznych procesorach (pCPU). W tym konkretnym przypadku 1 pCPU = 1 fizyczne rdzeń procesora (nie uwzględniając Hyper-Threading). Liczba vCPU sumuje się dla wszystkich określonych pul zasobów (z których każda może mieć swój współczynnik konsolidacji).
Współczynnik konsolidacji dla obciążonych systemów uzyskuje się empirycznie, w oparciu o już istniejącą infrastrukturę lub podczas pilotażowej instalacji oraz testów obciążeniowych. Dla nieobciążonych systemów stosuje się "najlepsze praktyki". W szczególności VMware podaje średni współczynnik 8:1.
Pamięć operacyjna
Ogólna potrzeba pamięci operacyjnej uzyskiwana jest przez proste sumowanie. Użycie przeszeregowania pamięci operacyjnej nie jest zalecane.
Zasoby magazynowania
Wymagania dotyczące zasobów magazynowych uzyskuje się poprzez proste sumowanie wszystkich pul pod względem pojemności i wydajności.
Wymagania dotyczące wydajności wyrażają się w IOPS w połączeniu ze średnim współczynnikiem odczytu/zapisu i w razie potrzeby maksymalnym opóźnieniem odpowiedzi.
Osobno należy określić wymagania dotyczące zapewnienia jakości usług (QoS) dla określonych pul lub systemów.
Zasoby sieci przesyłowej danych
Wymagania dotyczące sieci przesyłowej danych uzyskuje się przez proste sumowanie wszystkich pul przepustowości.
Osobno należy określić wymagania dotyczące zapewnienia jakości usług (QoS) oraz opóźnień (RTT) dla określonych pul lub systemów.
W ramach wymagań dotyczących zasobów sieci przesyłowej danych określane są również wymagania dotyczące izolacji i/lub szyfrowania ruchu sieciowego oraz preferowanych mechanizmów (802.1q, IPSec itd.).
Wybór architektury
W ramach tego przewodnika nie rozpatruje się innych wyborów poza architekturą x86 i 100% wirtualizacją serwerów. Dlatego wybór architektury systemu obliczeniowego sprowadza się do wyboru platformy wirtualizacji serwerów, formatu serwerów oraz ogólnych wymagań dotyczących konfiguracji serwerów.
Kluczowym aspektem wyboru jest jasno określona decyzja, czy stosować klasyczne podejście z podziałem funkcji przetwarzania, magazynowania i przesyłania danych, czy podejście konwergentne.
Klasyczna architektura zakłada wykorzystanie inteligentnych zewnętrznych systemów przechowywania i przesyłania danych, podczas gdy serwery wnosiłyby do ogólnej puli zasobów fizycznych jedynie moc procesora i pamięć RAM. W skrajnych przypadkach serwery stają się całkowicie anonimowe, nie mające nie tylko własnych dysków, ale nawet identyfikatora systemowego. W takim przypadku używa się uruchamiania systemu operacyjnego lub hyperwizora z wbudowanych nośników flash lub z zewnętrznego systemu przechowywania danych (boot from SAN).
W ramach klasycznej architektury wybór między ostrzami (blade) a serwerami stojącymi (rack) dokonywany jest przede wszystkim według następujących zasad:
— Efektywność ekonomiczna (średnio serwery stojące są tańsze);
— Gęstość obliczeniowa (blady mają wyższą gęstość);
— Zużycie energii i wydzielanie ciepła (u ostrzy jest wyższe na jednostkę);
— Skalowalność i zarządzalność (ostrza w ogóle wymagają mniej wysiłku przy dużych instalacjach);
— Użycie kart rozszerzeń (dla ostrzy dostępny jest bardzo ograniczony wybór).
Architektura konwergentna (znana również jako hiperkonwergentna) zakłada połączenie funkcji przetwarzania i przechowywania danych, co prowadzi do użycia lokalnych dysków serwerów i tym samym do rezygnacji z formatu klasycznych ostrzy. W systemach konwergentnych używa się albo serwerów stojących, albo systemów klastrowych, które łączą w jednej obudowie kilka serwerów ostrzy i lokalne dyski.
CPU / Pamięć
Aby poprawnie obliczyć konfigurację, należy zrozumieć rodzaj obciążenia dla środowiska lub każdego z niezależnych klastrów.
Ograniczenie CPU – środowisko ograniczone mocą procesora. Dodanie pamięci RAM nie zmieni nic w zakresie wydajności (liczby maszyn wirtualnych na serwerze).
Ograniczenie pamięci – środowisko ograniczone pamięcią RAM. Większa ilość pamięci RAM na serwerze pozwala na uruchomienie większej liczby maszyn wirtualnych na serwerze.
GB / MHz (GB / pCPU) – średni stosunek zużycia pamięci RAM i mocy procesora dla tego konkretnego obciążenia. Może być użyty do obliczeń potrzebnej ilości pamięci przy zadanej wydajności i odwrotnie.
Obliczenie konfiguracji serwera

Na początku należy określić wszystkie rodzaje obciążenia i podjąć decyzję o łączeniu lub rozdzielaniu różnych pul obliczeniowych w różnych klastrach.
Następnie dla każdego z określonych klastrów ustala się proporcję GB / MHz przy znanym z góry obciążeniu. Jeśli obciążenie nie jest znane z wyprzedzeniem, ale jest przybliżone zrozumienie poziomu obciążenia mocy procesora, można użyć standardowych współczynników vCPU:pCPU do przeliczenia wymagań pul na fizyczne.
Dla każdego klastra sumę wymagań pul vCPU dzielimy przez współczynnik:
vCPU_sum / vCPU:pCPU = pCPU_sum – wymagane liczba rdzeni fizycznych
pCPU_sum / 1.25 = pCPU_ht – liczba rdzeni z korektą na Hyper-Threading
Załóżmy, że należy wykonać obliczenia klastra na 190 rdzeni / 3.5TB RAM. Przyjmujemy docelowe obciążenie mocy procesora na poziomie 50% oraz 75% dla pamięci operacyjnej.
pCPU
190
Wykorzystanie CPU
50%
Mem
3500
Wykorzystanie pamięci
75%
Gniazdo
Rdzeń
Srv / CPU
Srv Mem
Srv / Mem
2
6
25,3
128
36,5
2
8
19,0
192
24,3
2
10
15,2
256
18,2
2
14
10,9
384
12,2
2
18
8,4
512
9,1
W takim przypadku zawsze używamy zaokrąglenia do najbliższej liczby całkowitej w górę (=ROUNDUP(A1;0)).
Z tabeli wynika, że zoptymalizowane pod kątem celów są różne konfiguracje serwerów:
— 26 serwerów 2*6c / 192 GB
— 19 serwerów 2*10c / 256 GB
— 10 serwerów 2*18c / 512 GB
Wybór spośród tych konfiguracji musi być dokonany na podstawie dodatkowych czynników, takich jak pakiet cieplny i dostępne chłodzenie, już używane serwery lub koszt.
Cechy wyboru konfiguracji serwera
Szerokie VM. W przypadku potrzeby rozmieszczenia szerokich VM (porównywalnych z 1 węzłem NUMA i większymi) zaleca się wybór serwera z konfiguracją, która umożliwia utrzymanie takich VM w obrębie węzła NUMA. Przy dużej liczbie szerokich VM istnieje ryzyko fragmentacji zasobów klastra, w takim przypadku wybierane są serwery, które umożliwiają maksymalne zagęszczenie szerokich VM.
Rozmiar domeny pojedynczej awarii.
Wybór rozmiaru serwera również odbywa się zgodnie z zasadą minimalizacji domeny pojedynczej awarii. Na przykład przy wyborze między:
— 3 x 4*10c / 512 GB
— 6 x 2*10c / 256 GB
Przy innych równych warunkach należy wybierać drugą opcję, ponieważ przy awarii jednego serwera (lub serwisie) nie traci się 33% zasobów klastra, lecz 17%. Tak samo o połowę zmniejsza się liczba VM i IS, na których odzwierciedlona była awaria.
Obliczenia tradycyjnego systemu pamięci masowej według wydajności

Tradycyjny system pamięci masowej zawsze obliczany jest według najgorszego scenariusza, wykluczając wpływ pamięci podręcznej i optymalizacji operacji.
Jako podstawowe wskaźniki wydajności przyjmujemy wydajność mechaniczną dysku (IOPSdisk):
— 7.2k – 75 IOPS
— 10k – 125 IOPS
— 15k – 175 IOPS
Następnie liczba dysków w puli oblicza się według następującego wzoru: = TotalIOPS * ( RW + (1 –RW) * RAIDPen) / IOPSdisk. Gdzie:
— TotalIOPS – całkowita wymagana wydajność w IOPS z puli dysków
— RW – procentowa wartość operacji odczytu
— RAIDpen – kara RAID dla wybranego poziomu RAID
Więcej na temat urządzeń RAID i kary RAID można znaleźć tutaj — i i
Na podstawie uzyskanej liczby dysków oblicza się możliwe warianty, spełniające wymagania dotyczące pojemności przechowywania, w tym opcje z wielopoziomowym przechowywaniem.
Obliczenie systemów z wykorzystaniem SSD jako poziomu przechowywania rozpatrywane jest oddzielnie.
Specyfika obliczania systemów z Flash Cache
Flash Cache – ogólna nazwa dla wszystkich firmowych technologii wykorzystania pamięci flash jako pamięci podręcznej drugiego poziomu. Przy użyciu pamięci podręcznej flash, systemy pamięci masowej zazwyczaj obliczają w celu zapewnienia obciążenia z dysków magnetycznych, podczas gdy szczytowe obciążenie obsługuje pamięć podręczna.
Przy tym необходимо понимание профиля нагрузки i stopnia lokalizacji zapytań do bloków wolumenów storage. Cache flash to technologia dla obciążeń z wysoką lokalizacją żądań i praktycznie niewykonalna dla równomiernie obciążonych wolumenów (jak na przykład w systemach analitycznych).
Obliczenia systemów hybrydowych low-end / mid-range
Hybrydowe systemy klasy podstawowej i średniej wykorzystują wielowarstwowe przechowywanie z przenoszeniem danych pomiędzy warstwami zgodnie z harmonogramem. Przy tym rozmiar bloku przechowywania wielowarstwowego w najlepszych modelach wynosi 256 MB. Te cechy sprawiają, że technologia przechowywania wielowarstwowego nie może być uznawana za technologię zwiększającą wydajność, jak błędnie sądzi wielu. Przechowywanie wielowarstwowe w systemach klasy podstawowej i średniej to technologia optymalizacji kosztów przechowywania dla systemów o wyraźnej nierównomierności obciążenia.
Dla wielopoziomowego przechowywania oblicza się przede wszystkim wydajność na górnym poziomie, podczas gdy dolny poziom przechowywania uznawany jest tylko za dostarczający brakującą pojemność. W przypadku hybrydowego systemu wielopoziomowego obowiązkowe jest wykorzystanie technologii pamięci podręcznej flash dla wielopoziomowej puli, w celu zrekompensowania spadku wydajności dla nagłych danych z dolnego poziomu.
Wykorzystanie SSD w wielopoziomowej puli dysków

Wykorzystanie SSD w wielopoziomowej puli dysków ma wariacje, w zależności od specyfiki realizacji algorytmów pamięci podręcznej flash przez danego producenta.
Ogólna praktyka polityki przechowywania dla puli dysków z poziomem SSD — SSD first.
Pamięć podręczna flash tylko do odczytu. Dla pamięci podręcznej Flash tylko do odczytu poziom przechowywania na SSD pojawia się przy znacznej lokalizacji operacji zapisu, niezależnie od pamięci podręcznej.
Odczyt / Zapis Pamięci Flash. W przypadku pamięci podręcznej Flash do zapisu najpierw ustala się maksymalny rozmiar pamięci podręcznej, a poziom przechowywania na SSD pojawia się tylko przy niedoborze rozmiaru pamięci podręcznej do obsługi całego zlokalizowanego obciążenia.
Obliczenie wydajności SSD i pamięci podręcznej przeprowadzane jest za każdym razem na podstawie zaleceń producenta, ale zawsze dla najgorszego scenariusza.
Źródło: habr.com
