Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как правильно нужно разбить диски для ms sql  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
Как правильно нужно разбить диски для ms sql?
Диск С - ОС
Диск D - базы
Диск F - логи баз
Диск G - бэкапы

Так?
14 авг 19, 17:42    [21949510]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
базу tempdb нужно выносить на отдельный физический диск?
14 авг 19, 17:43    [21949511]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
_human
Member

Откуда:
Сообщений: 556
trew,

пишут что да
14 авг 19, 18:30    [21949552]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
uaggster
Member

Откуда:
Сообщений: 770
А речь не о виртуалке, случайно?
Потому что в случае виртуалки - приоритеты в другом.
И потом, о каком разбиении идет речь?
Это будут отдельные логические диски в пределах одного виртуального тома? Отдельные виртуальные тома?
Что для вас "диск"?
14 авг 19, 20:22    [21949606]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30830
trew
Так?
Да. Если речь о физических дисках.

trew
базу tempdb нужно выносить на отдельный физический диск?
Вышеупомянутое разделение делают из за разного характера нагрузки.
А разнесение разных баз (в т.ч. tempdb) на разные диски делают из за разделения самой нагрузки. Так что, если диск (рейд) справляется с нагрузкой от всех баз, включая tempdb, то можно не выносить.
14 авг 19, 22:02    [21949651]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Даже если это логические диски, то я бы выносил просто хотя бы для удобства мониторинга. Ну и чтобы tempdb не заняла весь диск данных. Можно конечно ограничить рост tempdb, но кто это реально делает и кто это делает правильно?
14 авг 19, 22:10    [21949657]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
uaggster
Member

Откуда:
Сообщений: 770
Значтица так. Мне, как админу, это близкое и родное, поэтому отвечу развернуто:
а). Если речь идет о виртуальной машине:
Всё зависит от того, как, в каком месте, будут расположены файлы с вашими дисками.
Разделять всё по дискам имеет смысл только в том случае, если вы этот вопрос - контролируете.
Например, в состоянии разместить какой-то файл (диск) на быстром ресурсе, какой-то - на медленном и т.д.
Если вы этот вопрос - не контролируете, и никак не можете управлять, например, минимальным количеством iops количеств к вашему файлу с диском - просто забейте на всё, и заведите два файла - один с диском под систему, второй - подо всё остальное.
На что обратить внимание:
1. Крайне желательно, чтобы файл с диском был не динамически расширяемым, а фиксированного размера.
2. Крайне желательно, чтобы на него не распространялась политика фоновой дедубликации, которую включают на уровне ресурса хранения данных (ну, дисковой полки).
3. Крайне желательно, выбить из админов виртуальной среды ограничение по минимальному количеству iops к вашему файлу.
Учтите, что одна операция вставки, удаления, модификации данных - требует как минимум 2 io операции на файле, в котором хранятся логи. Поэтому, например, если у вас минимальное количество операций на томе, где лежат логи - 300 iops (соответствует одиночному шпиндельному диску) - вы сможете вставлять/обновлять данные чуть больше 150 раз в секунду.
4. Поэтому, если количество операций ввода вывода контролируется не для всей ВМ целиком, а для ее отдельных виртуальных дисков - выносите логи в отдельный файл/диск, и выбивайте на нее максимальную квоту на io.
5. Данные, как не странно, менее зависимы от iops, для них важнее пропускная способность. Чем больше мегабайт в секунду, тем лучше.
Промежуточный вывод:
Если размещаетесь на ССД ресурсе, с его космическими iops-ами, забейте на всё, и держите всё (ну, кроме системы) - в одном файле/диске. Только tempdb ограничьте, чтобы всё место не сожрало и всё.
Если ресурс гибридный, и всё не влазит, то логи, tempdb - на ССД или 10К, а данные вполне поживут на 7200. Если вариант с претензией на богатство - порежьте данные на горячие/холодные, и файловые группы с горячими данными - тоже, вслед за логами, переместите на ССД ресурс.

б) Если речь идет о системе, имеющей физический доступ к подсистеме хранения, и вы контролируете разбиение подсистемы хранения на тома, диски энд етц, т.е. "железной"
1. Вариант "совсем по богатому": Система, данные, логи, tempdb, оперативный бэкап (если база маленькая) - на отдельных дисках, размещенных на разных томах рэйд контроллера.
Промежуточный вывод-2:
Если у вас один виртуальный том на рэйд контроллере, например все 8 дисков завернуты в RAID10, или, не дай бог, в RAID6, а поверх этого вы выделяете логические диски - то это целиком ситуация из предыдущего параграфа.
Не парьтесь. Разбейте всё на 2 диска, система - данные, ограничьте темпдб, и нефиг огород городить.
Всё даже хуже, чем в виртуальной среде, потому что если вы, например, выделите отдельный логический диск под логи - минимальное количество iops вы для него на уровне виртуального тома рэйд контроллера - не вырежете.
Так что оно будет делить иопсы сразу со всей нагрузкой. И если это шпиндели, то максимум иопсов, которые у вас будут - 1000. Ну, 4000, если всё совсем замечательно. Вообще на всё-всё-всё. На систему, данные, логи, темдб, бэкапы. Поэтому см. выше про обновления.
2. Однако если вы контролируете нарезание батона, то правила - прежние:
- логи на ресурсы с минимальной латентностью, максимальными иопсами.
- данные - фиг с ними, с иопсами, могут и на рэйд-6 пожить.
- темпдб - можно даже на одиночном ссд разместить, или на паре дисков в страйпе, без избыточности (ну, правда оно когда-нибудь аварийно встанет, и вам отвесят пендель). Поэтому лучше без экстремизма, на рэйд10 или на зеркало из ССД.

А вот сколько при этом будет дисков, как они будут называться, и как будут видиться в системе - имеет чисто эстетическое значение.
И чем больше разбиение - тем больше геморроя потом :-)

Всё целиком ИМХО, как говорится.
Открыт для замечаний и всё такое.
15 авг 19, 09:23    [21949803]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3466
Т.е. получается, если на сервере SSD, то старый добрый вопрос, преследовавший юзеров с давних пор - уже практически не стоит
15 авг 19, 11:30    [21949913]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
uaggster,
alexeyvg,

Это не виртуальная машина.
15 авг 19, 12:17    [21949978]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
alexeyvg
Так что, если диск (рейд) справляется с нагрузкой от всех баз, включая tempdb, то можно не выносить.

Подскажите пожалуйста как понять, справляется или нет?
Сервер новый, пока данных нет.
Как это проверяется? (каким скриптом или командами)
15 авг 19, 12:18    [21949980]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
aleks222
Member

Откуда:
Сообщений: 858
trew
alexeyvg
Так что, если диск (рейд) справляется с нагрузкой от всех баз, включая tempdb, то можно не выносить.

Подскажите пожалуйста как понять, справляется или нет?
Сервер новый, пока данных нет.
Как это проверяется? (каким скриптом или командами)


Это проверяется только реальной нагрузкой.
15 авг 19, 13:08    [21950026]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
rahzer
Member

Откуда:
Сообщений: 2278
trew,
автор
Сервер новый, пока данных нет.

Опишите конфигурацию сервера, а так же предполагаемую нагрузку на него (количество пользователей, баз, ПО)
Запустить SQLIO, и померять..
Но, как уже сказали, синтетика - это одно, реальная нагрузка - это другое.
15 авг 19, 13:26    [21950054]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7407
trew,

не забудьте отформатировать 64к на кластер.
15 авг 19, 15:29    [21950214]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
Владислав Колосов,
а можно ссылку на источник? где рассказано почему так нужно.
15 авг 19, 17:56    [21950410]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
trew
Владислав Колосов,
а можно ссылку на источник? где рассказано почему так нужно.

Вот тут, например:

https://blogs.msdn.microsoft.com/docast/2018/02/01/operating-system-best-practice-configurations-for-sql-server/
15 авг 19, 18:19    [21950426]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7407
trew,

потому, что это размер экстента.
15 авг 19, 20:31    [21950490]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
uaggster
Member

Откуда:
Сообщений: 770
Владислав Колосов
trew,

не забудьте отформатировать 64к на кластер.

Ага, и выключить виндовое индексирование на томе, где будут данные.
А если у вас есть Filestream - то до кучи еще отключить генерацию 8.3 имен и last access time.
Кстати, почему то в гайде, который дал Minamoto - этого нет.
16 авг 19, 08:39    [21950686]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10715
Блог
Владислав Колосов
trew,

потому, что это размер экстента.


Не по этому, просто больше нету.

ЗЫ: Если диски SSD, то зачастую лучше всё в один массив собрать и всё на него закинуть. Прошли старые времена, когда это было важно... Следите потом за очередями, если не будет долгих очереде за сто, то значит диск/контроллер/шина справляются.


ЗЫ2: про SQLIO забудьте, качайте diskspd

Сообщение было отредактировано: 16 авг 19, 13:17
16 авг 19, 13:14    [21950978]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
А если диски SSD, имеет смысл разделять по физическим дискам?

Диск С - ОС
Диск D - базы
Диск F - логи баз
Диск G - бэкапы
19 авг 19, 10:39    [21952250]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
982183
Member

Откуда: VL
Сообщений: 3350
На бэкапы SSD то зачем?
19 авг 19, 10:58    [21952279]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
982183,

Кроме бэкапов, разбивать есть смысл на физические диски?
19 авг 19, 11:04    [21952286]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
982183
Member

Откуда: VL
Сообщений: 3350
Единственную SSD разбивать на логические диски смысла нет.

SSD+ HD - SSD-ОС,БД; HD-бэкап
2SSD+ HD - 1SSD-ОС; 2SSD-БД; HD-бэкап

В случае проблем с производительностью возможно отделения на отдельный/е SSD логов и TMP
Помогает не всегда.
19 авг 19, 11:14    [21952294]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
982183
Member

Откуда: VL
Сообщений: 3350
Это те. простейшие случае, когда необходимости в RAIDах нет.
19 авг 19, 11:16    [21952297]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
982183
Member

Откуда: VL
Сообщений: 3350
uaggster
Открыт для замечаний и всё такое.

Всё вроде правильно, но сегмент рынка не тот.
Тут скорее всего "простой дешевый локальный сервер."
19 авг 19, 11:25    [21952308]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно нужно разбить диски для ms sql  [new]
tunknown
Member

Откуда:
Сообщений: 748
982183
На бэкапы SSD то зачем?
Не уверен, что нужно автору, но иногда нужно снимать бекап максимально быстро. Поэтому SSD для снятия бекапа может быть полезен. Но SSD для хранения, скорее всего- избыточен.
19 авг 19, 17:43    [21952732]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить