Pomóż mi wybrać kombinację poziomu RAID dla instancji SQL Server 2008

11

Mam zamiar odbudować jeden serwer IBM 3400 od podstaw. Ten serwer jest dedykowany dla instancji SQL Server 2008 działającej w systemie Windows 2008 R2.

Mam zamiar dokonać nowej konfiguracji RAID. Mam 6 dysków SCSI 73 GB wewnątrz maszyny i kontroler IBM ServerRAID 8K. Jaki byłby dobry sposób na ustawienie poziomów RAID? Czy powinienem mieć dwa, trzy lub jedno pole na moim kontrolerze?

Zastanawiam się nad rozwiązaniem jednego z następujących rozwiązań:

  1. Użyj całego dysku i utwórz pulę RAID 10.
  2. Użyj 4 dysków do puli RAID 1e i użyj go do przechowywania danych bazy danych i systemu operacyjnego, a także użyj 2 innych dysków w puli RAID 0 i użyj tego do przechowywania dzienników bazy danych.
  3. Jakaś inna kombinacja.

Czy większy rozmiar paska jest lepszy?

Ten serwer będzie subskrybentem replikowanej bazy danych. Jego głównym zadaniem będzie raportowanie i wyszukiwanie danych, a tylko agent replikacji będzie zapisywał. Rozmiar bazy danych wynosi około 90 GB.

adopilot
źródło
czy używasz terminów RAID1E i RAID10 zamiennie?
Jack mówi, że spróbuj topanswers.xyz 11.11.11
także 3x73 ~ 220 GB - ile oczekujesz, że Twój 90 GB DB będzie rosnąć każdego roku?
Jack mówi, że spróbuj topanswers.xyz 11.11.11
@JackDouglas Ta baza danych z 90 GB pochodzi z 2006 roku do chwili obecnej, myślę, że może wzrosnąć w ciągu najbliższych dwóch lat maksymalnie o około 30%
adopilot
Lubię nadmiernie rezerwować pamięć masową, gdy tylko jest to możliwe, gdy budujesz serwer od zera. Czy masz również pamięć drugiego poziomu (np. SATA)? Może być bardzo przydatny w przypadku przyzwoitej ilości miejsca do oddychania, szczególnie gdy znajdziesz się w sytuacji DR.
Jack mówi, że spróbuj topanswers.xyz 11.11.11

Odpowiedzi:

6

Głosuję za opcją 1. Pamiętaj, że RAID 0 oznacza „brak ochrony” - czy twoje logi mają znaczenie? (tak, robią).

Ma również zaletę prostoty

Dokumenty programu SQL Server mówią:

Aby zoptymalizować równoległość operacji we / wy, użyj rozmiaru paska 64 KB lub 256 KB.

Ale zwykle dobrze jest użyć domyślnego IMO kontrolera

Jack mówi, że spróbuj topanswers.xyz
źródło
5

Uwagi:

  • Pliki binarne OS + będą miały rozmiar 40 GB
  • 6 dysków nie pozostawia wielu opcji
  • Gdzie chcesz swoich kopii zapasowych?
  • Pozwól kontrolerowi RAID wybrać rozmiar paska (zależy od poziomu RAID). To mikrooptymalizacja, a zobaczysz sprzeczne dane
  • Szybkość zapisu pliku dziennika określa przepustowość
  • Musisz pozwolić na wolne miejsce = 1,2-krotność największej tabeli w twoim MDF na odbudowy indeksu
  • RAID 0 = idiotyczny na serwerze, który ma dane o dowolnej wartości

Wybrałbym jedną macierz RAID 10

gbn
źródło
4

Wybrałbym albo dwa woluminy RAID1 z trzema kopiami lustrzanymi, albo RAID10 z rozłożeniem na dwa zestawy trzech kopii lustrzanych.

Uzasadnienie: dwa lustra to za mało, kropka. Twój serwer nie będzie mógł wykonywać poprawnych kontroli spójności częściej niż raz w miesiącu, więc jest całkiem prawdopodobne, że masz kilka wadliwych bloków. Nie mają one znaczenia, dopóki drugie dublowanie jest nadal nienaruszone, ale gdy jeden dysk ulegnie awarii, prawdopodobnie nie będzie można odzyskać danych z drugiego. Stąd trzy lustra.

RAID6 jest złym pomysłem w konfiguracji bazy danych, ponieważ zapisy są zwykle niewielkie, co powoduje, że w tle stają się operacjami odczytu-modyfikacji-zapisu.

To, czy dwa woluminy RAID1, czy jeden RAID10 będą dla Ciebie lepsze, zależy od Twojej aplikacji. Jeśli prawdopodobne jest, że potrzebujesz całej przestrzeni, wybierz RAID10, w przeciwnym razie sugerowałbym jeden wolumin dla systemu i indeksów, a drugi dla stron danych. Jeśli wybierzesz dwa woluminy, sprawdź, czy kontroler pozwala później rozszerzyć RAID1 na RAID10 na wypadek konieczności rozbudowy.

Simon Richter
źródło
+1 za wzmiankę o problemie z kopią lustrzaną nie rozwiązuje się (przynajmniej samodzielnie). Możliwe jest skonfigurowanie czyszczenia, aby odbywało się ono częściej w systemie Linux, czy to samo dotyczy systemu Windows? Jednak powtórzyć mit, że indeksy i dane powinny być idealnie rozdzielone - nie jest to argument za prowadzenie dzienników oddzielny ale indeksy i dane są najlepiej paski razem (na tyle wrzecion, jak to możliwe)
Jack mówi try topanswers.xyz
Myślę, że powinno być możliwe skonfigurowanie częstszych kontroli - jednak wydajność bazy danych generalnie spada, więc wolę używać dodatkowych dysków i mniej kontroli.
Simon Richter
Zazwyczaj osobne indeksy trzymam osobno, więc mogę używać innego zachowania pamięci podręcznej i readahead - skanowanie pełnej tabeli zwykle korzysta z readahead, podczas gdy skanowanie indeksu robi to rzadziej.
Simon Richter
W moim systemie Debian / usr / share / mdadm / checkarray domyślnie działa z flagą --idle, więc nie spodziewałbym się zauważalnego spadku wydajności. W przypadku PO będzie to obsługiwane przez kontroler RAID i domyślam się, że zrobi to niezależnie od tego, czy masz 2 czy 3 lustra, więc trafienie (jeśli w ogóle) będzie tam.
Jack mówi, że spróbuj topanswers.xyz
ponownie skanuje indeks, słusznie, ale sugeruję, że to mikrooptymalizacja, a nie ogólne porady dotyczące tuningu :) Zamierzam zapytać na czacie, aby zobaczyć, co myślą inni - nie krępuj się ...
mówi Jack spróbuj topanswers.xyz
3

Zgadzam się z Douglasem. Jeden wspólny raid-10 to dobry początek, o ile nie zabraknie ci miejsca na dysku. Mniejszy rozmiar paska byłby lepszy dla dostępu do DB. Używanie różnych partycji powoduje, że szybciej zabraknie Ci miejsca na jednej partycji.

Raid-0 polega nie tylko na tym, że dane mogą być pobierane z kopii zapasowych lub można je usunąć, ale także oznacza przestoje za każdym razem, gdy dysk się psuje. Czy twoja maszyna wykonuje pewne kradzież danych, gdzie kilkudniowe przestoje nie będą miały znaczenia? Nawet przy wsparciu NBD uzyskanie nowego dysku może potrwać około sześciu dni.

Antti Rytsölä
źródło