Оптимальна конфігурація накопичувача для SQL Server 2008R2


19

У мене досить зайнятий сервер баз даних, на якому працює SQL Server 2008 R2, який має такі налаштування:

  • SATA RAID 1 (2 диски) - ОС / програми
  • SAS RAID 10 (4 диски) - файли бази даних Sql (дані та журнали)
  • SAS RAID 1 (2 диски) - TempDB (дані та журнали)

Якщо припустити, що я не можу додавати додаткові диски на цей сервер, чи я найкраще скористався доступною конфігурацією? Чи варто розглянути іншу схему, де журнали ізольовані, наприклад, від файлів даних?

Оновлення:

Для тих, хто вимагає додаткових деталей обладнання:

  • SATA-накопичувачі (використовуються для ОС / Програми розділу): WD 7200 RPM 3 Гбіт / с 3,5-дюймовий SATA
  • Пристрої SAS, що використовуються в інших масивах, є: Seagate 15K RPM 6 Гбіт / с 3,5 дюймовим SAS
  • Використовуваний контролер RAID - це порт LSI 9260-8i SAS / SATA 6 Gb 8

Оновлення 2:

Виходячи з відгуку, який я отримав, схоже, що у мене є наступні життєздатні варіанти - я присуджую нагороду тому, хто зможе сказати мені, що, можливо, буде найкращим у тому середовищі, яке я окреслив:

  1. Залиште все так, як є - я, мабуть, краще не зроблю
  2. Перемістіть мої 2 диски SAS RAID 1 у мій існуючий масив RAID 10, щоб він складався з 6 дисків загалом
  3. Перемістити мої файли журналів на SAS RAID 1 та / або перемістити TempDB (дані або журнали) назад до RAID 10

Ваше 2-е оновлення задає абсолютно ті самі запитання, що і ваше оригінальне запитання, тому оригінальна відповідь застосовується. "... що, швидше за все, є найкращим у тому середовищі, яке я окреслив" ... ви не показали нам жодного аналізу навантаження, просто що він "досить зайнятий", тому знову ж таки відповідь стосується .
Марк Сторі-Сміт

Маючи високопродуктивні NVMe та інші диски SSD на ринку, RAID вже не дуже важливий з точки зору кращих практик конфігурації диска SQL-сервера . Дискові пули (місця для зберігання) - це шлях для подальшого розвитку. Однак вам потрібно буде логічно розділити томи, щоб краще усунути проблеми, пов’язані з роботою диска.
Обличчя ІТ

Відповіді:


14

Варіанти цього питання виникають напіврегулярно:

Існують також періодичні поєдинки з бантами з приводу розділення даних / журналу "найкраща практика".

Без більш детального аналізу того, що робить цей сервер, застосовуються ті самі поради, що і раніше.

  • RAID 1 для ОС
  • RAID 10 (6 диск) для даних / журналів / tempdb

Рідко є якась точка розколу з такою кількістю доступних шпинделів. Один масив із більшою ємністю ВГД, як правило, намочує грудочки та грудочки вашої навантаження краще, ніж 2 менші масиви.

Один з варіантів, який може бути вартим тестування, - це розміщення tempdb на дисководі ОС. Зробіть це лише в тому випадку, якщо у вас є репрезентативна навантаження, яку ви можете повторно повторювати, щоб забезпечити справедливе порівняння конфігурації. Якщо ви дотримуєтеся цієї домовленості у виробництві, переконайтесь, що зростання tempdb обмежений, щоб ви ненароком не витрачали весь вільний простір на накопичувачі ОС.

З огляду на те, що ваші диски ОС - це 7200RPM, я буду здивований, якщо налаштування tempdb на накопичувачі ОС матиме якусь користь.


7

Все залежить від вашої завантаженості, але, маючи лише 6 дисків, це обмежує ваші можливості. Якщо ваше навантаження не сильно залежить від tempdb для таких речей, як сортування, хеш-таблиці та ізоляція знімків, можливо, вам буде краще використовувати 6 приводів SAS разом у RAID 10. Однак, якщо ви знаєте чи маєте показники, щоб довести це tempdb сильно використовується, то вам слід тримати його окремо, як у вас є.


Дякую за відповідь, зміна конфігурації діапазонів (на жаль) не є варіантом, оскільки цей сервер виробляється. Мені цікаво переключити tempdb назад до RAID 10 і помістити всі файли журналу на RAID 1, хоча це розумний варіант?
DanP

2
Пам’ятайте, що SQL Server повинен фізично записувати всі транзакції в журнал як частину фіксації, тому ви хочете, щоб у вашому конфігурації була можлива найшвидша швидкість запису. RAID 10 пропонує кращу швидкість запису, ніж RAID 1, тому я б залишав журнали на більш швидкому обсязі.
Патрік Кейслер

2

Це дуже залежить від того, що ви маєте на увазі під "дуже зайнятим": різні схеми навантаження (пишіть важкі чи ні, масові операції звичайні чи ні, рівень одночасного доступу, якщо назвати, але три з багатьох змінних) можуть мати різкий вплив на виконання будь-якої заданої шпинделя.

У важкій ситуації запису відокремлення журналів від даних може суттєво змінитись, оскільки кожне записування передбачає оновлення як журналу, так і файлів даних, тому передбачає велику кількість додаткового гортання голови, якщо обидва набори файлів знаходяться на одному наборі шпинделів .

Без додаткового посилання на ваше навантаження (та специфікацію цих накопичувачів та будь-який контролер, який знаходиться між ними та машиною), я схильний би перейти на три томи: один для ОС + програми та tempdb (дані), один для основної БД даних, третій - для журналів (як tempdb, так і основні БД).

Звичайно, якщо ваші робочі навантаження дуже легкі на операціях запису, тоді вам не слід витрачати занадто багато часу на занепокоєння щодо збереження даних і журналів розділеними, оскільки це призведе до невеликої різниці в продуктивності, а виділення цілого обсягу для них буде досить марно доступним простір.


Я, безумовно, охарактеризував би наше середовище як "важке письмо" - я оновлю своє питання більш детальними технічними характеристиками в понеділок.
DanP

Будь-яке уявлення про кількість накопичувачів, які має ОП? Я більше думаю про Raid 1, який він має для файлів журналів. Це не здається чудовим варіантом для цілей запису, а файли журналів AFAIK не читаються обмежено, але пишуть ..
Marian

Я додав додаткові характеристики щодо апаратних засобів машини.
DanP

1
Це непорозуміння може лежати в корені багатьох даних про поділ даних / журналів, тому вибачтесь, але я збираюся його зателефонувати. "... оскільки кожне записування включає оновлення і журналу, і файлів даних" - ні, це не так. Запис на сторінки даних відбувається на контрольній точці, а не при кожній модифікації.
Марк Сторі-Сміт

1
@DavidSpillett Щоправда, завжди знайдуться випадки, коли розкол вигідний. Ключовим є те, що ви перевірили та підтвердили, що конфігурація була корисною для конкретного навантаження.
Марк Сторі-Сміт

2

Фактична відповідь залежить від ваших потреб, але, як правило, "розміщення даних і ведення журналу на різних масивах" має більш важливе значення, ніж "розміщення tempdb у власному масиві".

З огляду на кількість наявних дисків, моєю відправною точкою буде:

  1. Два накопичувачі, RAID 1 - Операційна система, виконувані файли, файл сторінки.
  2. Чотири диски, RAID 5 - усі файли даних (альтернативно, RAID 1 + 0)
  3. Два накопичувачі, RAID 1 - Усі файли журналу

Що потрібно зробити, це використовувати SQLIO для перевірки працездатності різних конфігурацій приводу.


Це безумовно являє собою "іншу сторону" поради, яку я прочитав. Я хотів би, щоб був визначений метод, який би визначив, який із варіантів буде кращим, не вдаючись до "випробування" у виробничих умовах.
DanP

2
@DanP Ну, я особисто пішов би з порадою Марка і вибрав RAID10 з рештою накопичувачів (крім ОС). Файли журналів пишуть інтенсивно і потребують кращої продуктивності, ніж те, що пропонує RAID 1, наскільки я думаю про це. Але я не фахівець з обладнання. Всього мої 2 копійки.
Маріан

2
Я мушу зазначити, що моя думка виходить лише з досвіду минулої (різновиди) невдалої міграції на кращий сервер, але з гіршими показниками. Ми ніколи не перевіряли реальне навантаження на цей новий сервер, у нас ніколи не було шансів, сервер не був готовий вчасно. Виявляється тестування сервера ПЕРЕД переходом на виробництво повинно бути ОБОВ'ЯЗКОВО. Вибачте за наголос. Тож моя мантра щодо всіх міграцій / оновлень така: ТЕСТ, ТЕСТ, ТЕСТ, ... чутливий тест наскільки це можливо.
Маріан

1
Не впевнений, чи варто починати з RAID 5 або SQLIOSIM ... давайте продовжимо пізніше, як колишній говорить сам за себе. SQLIOSIM - це інструмент на перевірку правильності та напруги , це не інструмент для перевірки продуктивності та навантаження. Це абсолютно не місце для порівняння продуктивності config-X vs config-Y для робочого навантаження Z. Все, що вам скаже, - це наскільки добре config-X працює проти config-Y під час запуску SQLIOSIM. Якщо ви хочете порівняти продуктивність для завантаження-Z, тестуйте навантаження-Z.
Марк Сторі-Сміт

1
@GreenstoneWalker "RAID1 швидше для запису, ніж RAID1 + 0" - це нісенітниця. Звідки виникла ця ідея?
Марк Сторі-Сміт

-1

Залежно від того, для чого ви використовуєте БД для (OLTP проти складування), ваш конфігурація виглядає як хороша загальна конфігурація. Якби у вас було більше дисків, у вас було б більше варіантів.

Ви можете досягти кращої продуктивності, якщо переключити диск для свого TempDB на RAID 0 (смуга). Це збільшує ризик відмови, але оскільки TempDB буферує лише дані, ви не можете зазнати втрати даних. Тому більшість людей вважають це розумним компромісом. Просто тримайте запас (або гарячий запас).

Одне, що ви не згадували, але можете спробувати (якщо ви ще цього не зробили): Microsoft рекомендує розділити ваш TempDB на кілька файлів (один на центральний процесор). Звичайно, найкраще, якщо вони знаходяться на окремих дисках, але просто мати окремі файли допомагає. http://msdn.microsoft.com/en-us/library/ms175527(v=SQL.105).aspx


4
Tempdb використовується для багатьох речей, але не сприймайте його як викидну базу даних і не розміщуйте її на RAID 0. Майте на увазі, якщо цей обсяг RAID 0 не вдасться, SQL Server не зможе запуститися.
Патрік Кейслер

Я дійсно створив один темп дб на ядро, як було запропоновано, але дякую за те, що підняв цю точку :)
DanP

1
Ну ці пропозиції не дуже хороші і не підходять для кожного середовища. Перший згадується раніше @PatrickKeisler. Другий - міф, який Пол Рандал дебютував деякий час тому. Стаття така: Міф про DBA SQL Server на день: (12/30) tempdb завжди повинен мати один файл даних на ядро ​​процесора . Тож документація MS може бути помилковою, не сприймайте її напам’ять.
Маріан

2
"оскільки TempDB буферизує дані, ви не можете зазнати втрати даних" ... і я впевнений, що користувачі системи оцінять, що протягом X годин простою вони страждають, а) ops копаються в підвалі за Замінний диск або б) DBA намагається пояснити довідковій службі, як перемістити tempdb зі свого мобільного телефону.
Марк Сторі-Сміт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.