Оптимальная настройка RAID для SQL-сервера
У нас есть бэкэнд базы данных SQL 2005 для нашего сайта, в настоящее время размер которого составляет около 10 ГБ. Есть намного больше чтений, чем пишет, хотя у меня нет точной статистики.
Мы обновляем наш сервер базы данных, и я думал о том, чтобы получить 4 диска и настроить их в двух массивах RAID 1 - один для файлов данных, а другой для файлов ОС и журналов. Будет ли это оптимальной настройкой или RAID 5 будет лучше для файлов данных? RAID 10 становится немного дорогим и, вероятно, слишком утомительным для нас.
На этом этапе SQL Server должен хранить большую часть базы данных в ОЗУ (8 ГБ), но он будет расти, поэтому я не хочу полностью полагаться на это.
Изменить: мы определенно хотим избыточности на рабочем сервере, поэтому RAID 0 сам по себе отсутствует. RAID 10 хорош, но может быть немного дороже для нас.
Ответы
Ответ 1
Ваша концепция использования независимых зеркал RAID 1 является правильной стратегией.
Мы реализовали аналогичные сценарии в моей работе, и они работают очень хорошо.
RAID 1
RAID 1 дает вам скорость 1 диска для записи, но 2 диска для чтения.
Когда вы записываете данные в массив RAID 1, он должен записывать эти данные на оба диска, чтобы вы не увеличивали прирост производительности, однако именно здесь вы получаете защиту данных.
При чтении из массива RAID 1 контроллер будет считывать данные с обоих дисков, поскольку они имеют одинаковые данные.
RAID 5
Это полезно для защиты больших объемов данных. Стоимость RAID 5 увеличивается намного медленнее, чем RAID 1 (или RAID 0 + 1, когда вы делаете емкость, превышающую размер отдельных дисков) для того же объема данных.
Если вы хотите защитить 600 ГБ с помощью RAID 5, вы можете добиться этого с помощью дисков 4x200gb или 3x300gb дисков, требующих 800-900 гб всего приобретенного дискового пространства. RAID 1 - это диски 2x600gb, требующие 1,200 гб приобретенного пространства (при этом диски на 600 гб стоят намного дороже) или RAID 0 + 1, что позволяет использовать менее дорогие диски (т.е. 4x300gb или 6x200gb), но все еще требует в общей сложности 1,200 гб приобретенное пространство.
RAID 0 + 1
Предлагает аналогичные преимущества по сравнению с RAID 1, занимая второе место с чередованием дисков. Я предполагаю, что если вас беспокоит более высокое одновременное чтение, вы также будете использовать многопроцессорные/многоядерные процессоры. Вы будете обрабатывать сразу несколько запросов, поэтому чередование не поможет. Лучшее преимущество RAID 0 + 1 для одиночных приложений вы бы получили, используя большие файлы данных, такие как редактирование видео.
Когда я недавно исследовал эту проблему для клиента, я нашел эту статью очень интересной http://blogs.zdnet.com/Оу/? р = 484. На второй странице он обсуждает изменения с RAID 0 + 1 на независимые массивы RAID 1, создающие много улучшений производительности. Это было в гораздо большем масштабе (20 дисков и 16 дисков SAN), но те же понятия. Возможность SQL Server для балансировки данных между несколькими томами вместо использования простого базового неинформированного чередования RAID 0 + 1 - отличная концепция.
Ответ 2
Я потратил бы немного времени на то, чтобы ваша база данных была проиндексирована эффективно; контролируйте его для полноэкранных сканирований, убедитесь, что наиболее частые запросы читаются как можно меньше данных; Я бы взял эффективно спроектированную базу данных на медленной установке диска по базе данных с неправильными индексами на SSD.
Ответ 3
Учитывая, что есть намного больше Reads than Writes, RAID 5 будет быстрее для ваших файлов данных.
Если возможно, используйте отдельный массив RAID 1 + 0 для файлов журнала транзакций.
EDIT: вам понадобится как минимум 3 диска для создания массива RAID 5.
Ответ 4
Имейте в виду, что ключевой показатель производительности будет скоростью поиска, а не скоростью передачи данных. То есть типичная база данных, привязанная к диску (по мере того, как ваша может стать по мере ее роста) будет ограничена тем, сколько МО в секунду могут поддерживать диски, а не максимальная скорость передачи данных, которую они могут поддерживать для последовательных чтений.
Это означает, что если вам интересно, как использовать 4 диска (например), две пары RAID1 должны дать вам лучшую производительность, чем один RAID-массив на 4 диска. Конечно, вы не получите столько полезного хранилища из двух пар RAID1.
Ответ 5
Учитывая небольшой размер базы данных, я бы использовал четыре диска SFF SAS с частотой 15krpm 2,5 ", настроенных как два отдельных зеркала RAID 1. Я бы запускал их через нечто вроде контроллера SAS Adaptec 5805 PCI-e x 8. d помещает данные в один массив и журналы на другой для обеспечения безопасности. Базовая память - отображение всей базы данных, очень большой/дорогостоящей SAN или SSD. Я вполне уверен, что это будет самая быстрая настройка для денег.
Надеюсь, что это поможет.
Ответ 6
Две вещи,
Теория RAID 1 дает вам два диска для чтения, но не думайте, что это в два раза превышает производительность. На самом деле это не так, обычно последовательное чтение spee заканчивается точно таким же, как один диск. Удивительно, но верно.... делайте тесты в реальном мире, не полагайтесь на теорию.
С учетом сказанного я бы пошел с двумя RAID 1... но не так, как вы сказали, один для ОС, а другой для данных. У меня был бы небольшой раздел ОС на одном из них, но явным образом давал бы оба рейда серверу sql для данных. Дайте серверу sql все доступные вам наборы.
SQL Server может перебирать пары, вы абсолютно не хотите идти с 0 + 1, несмотря на то, что здесь говорят. Они снова смотрят на теоретические тесты, не понимая, что сервер sql может разбить все свои данные на дисках и может сделать это оптимизированным образом.
Raid 1 предназначен только для избыточности данных... кроме этого, отдайте столько, сколько вы можете на сервер sql, и пусть это будет делать... очень хорошо, что он делает.
У вас есть 0 + 1 и разбейте его на два рейда 1.... сделайте тестирование в реальном мире, вы будете удивлены тем, что быстрее работает sql-сервер.
Ответ 7
RAID 5 хорош, если вы используете аппаратный контроллер с достаточным количеством оперативной памяти с батарейным питанием. Выберите размер блока и сконфигурируйте БД так, чтобы размер полосы (размер дисков данных * размер блока) был равен размеру записи БД. Убедитесь, что ваш раздел данных [выровнен/кратен] размер полосы.
В противном случае RAID 1 + 0 всегда является хорошим выбором для серверов БД.
Ответ 8
Я бы также рекомендовал установить набор базовых значений, которые позволят вам сделать еще несколько основанных предсказаний, чем просто поместить свой палец в воздух (или спросить StackOverflow, кажется смутно и странно похожим на эти две концепции).
С некоторыми базовыми значениями вы также можете измерить эффективность ваших изменений и стать хорошей основой для будущих обновлений...
(Если не известно, возьмите какую-нибудь литературу (или википедию) по Performance Engineering. Это целая отрасль вещей, которая касается именно такого рода проблем).
Ответ 9
btw, где я работаю, у них есть высокий конец san, который делает таблицы примерно через 2 минуты. Я разбил диски на простые рейдовые 1 комплекты, и пусть сервер sql обрабатывает полосу... не сан. 2 минуты опустились до 45 секунд.
есть другие статьи в сети об этом... очень сложно получить рейд "истинные верующие", чтобы принять это, поэтому я так категоричен, об этом.
Ответ 10
Я предпочитаю raid 10, который уже настроен на моем Linux-сервере dell r210-II. Удивительная производительность...