Назад | Перейти на главную страницу

Масштабирование баз данных с помощью дешевых жестких дисков SSD

Я надеюсь, что многие из вас работают с веб-сайтами с высоким трафиком, управляемыми базами данных, и, скорее всего, ваши основные проблемы с масштабируемостью связаны с базой данных. Недавно я заметил пару вещей:

  1. Для масштабирования большинства больших баз данных требуется команда администраторов баз данных. Они постоянно борются с ограничениями жестких дисков и в конечном итоге получают очень дорогие решения (SAN или большие RAID-массивы, частые окна обслуживания для дефрагментации и повторного разбиения на разделы и т. Д.). Фактическая годовая стоимость обслуживания таких баз данных составляет от 100 тыс. До 1 млн долларов, что составляет слишком круто для меня :)

  2. Наконец, у нас есть несколько компаний, таких как Intel, Samsung, FusionIO и т. Д., Которые только что начали продавать чрезвычайно быстрые, но доступные жесткие диски SSD на основе технологии SLC Flash. Эти диски в 100 раз быстрее при произвольном чтении / записи, чем лучшие вращающиеся жесткие диски на рынке (до 50 000 произвольных операций записи в секунду). Их время поиска практически равно нулю, поэтому стоимость случайного ввода-вывода такая же, как и у последовательного ввода-вывода, что отлично подходит для баз данных. Эти SSD-диски стоят от 10 до 20 долларов за гигабайт, и они относительно небольшие (64 ГБ).

Таким образом, кажется, есть возможность избежать ОГРОМНЫХ затрат на масштабирование баз данных традиционным способом, просто построив достаточно большой массив SSD-накопителей RAID 5 (который будет стоить всего несколько тысяч долларов). Тогда нас не волнует, фрагментирован ли файл базы данных, и мы можем позволить себе в 100 раз больше операций записи на диск в секунду без необходимости распределять базу данных по 100 шпинделям. .

Кого-нибудь еще это интересует? Я тестировал несколько SSD-накопителей и могу поделиться своими результатами. Если кто-то на этом сайте уже решил свои проблемы с вводом-выводом с помощью SSD, я хотел бы услышать ваши военные истории!

PS. Я знаю, что существует множество дорогих решений, которые помогают с масштабируемостью, например, проверенные временем сети SAN на основе оперативной памяти. Я хочу прояснить, что даже 50 тысяч долларов - это слишком дорого для моего проекта. Мне нужно найти решение, которое стоит не более 10 тысяч долларов и не требует много времени на внедрение.


Дэйв, NXC и Берли,

Спасибо за ответы! Хочу уточнить, что слово «дешевый» в моей ситуации очень важно. Итак, мне приходится использовать дешевые серверы Dell (2950 долларов за 4К, у которых всего 8 банков памяти). У меня уже установлено 32 ГБ ОЗУ, поэтому я не могу продолжать масштабирование таким образом. Кроме того, добавление ОЗУ не избавляет вас от узких мест, связанных с записью на диск, что сейчас является моей основной проблемой.

Раньше я беспокоился о сроке службы SSD, но, прочитав о современных алгоритмах выравнивания износа, я почти уверен, что эти диски прослужат достаточно долго. Моя база данных записывает 300 ГБ в день, а в 2009 году прогнозируется, что она превысит 1 ТБ в день. Корпоративные твердотельные накопители предназначены для обработки около 10 ТБ записей в день в течение нескольких лет.

Я бы не согласился с точкой зрения Берли, что для перехода с SAS на SSD требуется слишком много труда. Моя база данных является синхронным зеркалом, поэтому я могу обновить одну сторону зеркала, затем наблюдать за ней в течение нескольких месяцев, и если она сработает, я могу переключиться на второй сервер, на котором все еще есть старые хорошие жесткие диски SAS ...

Возможные проблемы

У меня есть пара проблем с использованием SSD для производственных баз данных в настоящее время.

  • Большинство транзакций с базой данных на большинстве веб-сайтов читаются, а не записываются. Как сказал Дэйв Маркл, вы сначала максимизируете эту производительность с помощью ОЗУ.
  • Твердотельные накопители являются новинкой для массового и корпоративного рынков, и ни один достойный администратор не собирается перемещать производственную базу данных, для которой в настоящее время требуются диски U320 со скоростью 15 000 об / мин в RAID5, связывающиеся через волоконный канал, на непроверенную технологию.
  • Стоимость исследования и тестирования перехода на эту новую технологию, ее проверки в своей среде, обновления рабочих процедур и т. Д. - это большие первоначальные затраты, как с точки зрения времени, так и денег, чем большинство магазинов может сэкономить.

Предлагаемые преимущества

Тем не менее, есть ряд моментов, по крайней мере, на бумаге, в пользу SSD в будущем:

  • Более низкое энергопотребление по сравнению с HDD
  • Намного более низкое тепловыделение
  • Более высокая производительность на ватт по сравнению с HDD
  • Намного более высокая пропускная способность
  • Намного меньшая задержка
  • Большинство твердотельных накопителей текущего поколения имеют порядка миллионов циклов выносливости записи, поэтому долговечность записи не является проблемой, как это было раньше. См. Несколько устаревшую статью Вот

Таким образом, для данного теста производительности, если учесть общую стоимость владения, включая прямые затраты на электроэнергию и косвенные затраты на охлаждение, твердотельные накопители могут стать очень привлекательными. Кроме того, в зависимости от особенностей вашей среды, сокращение количества устройств, необходимых для заданного уровня производительности, также может привести к сокращению требований к персоналу и снижению затрат на рабочую силу.

Стоимость и производительность

Вы добавили, что у вас есть ограничение по стоимости ниже 50 000 долларов США, и вы действительно хотите, чтобы оно не превышало 10 000 долларов США. Вы также заявили в комментарии, что можете получить несколько «дешевых» SSD, ускользнув от того, что SSD будут дешевле, чем у администраторов баз данных или консультантов. Это может быть правдой в зависимости от количества часов, в течение которых вам понадобится DBA, и от того, будут ли это повторные затраты или нет. Я не могу сделать за вас анализ затрат.

Тем не менее, вы должны быть одним очень осторожно из Добрый SSD вы получите. Не все твердотельные накопители одинаковы. По большому счету "дешевые" твердотельные накопители, которые вы видите в продаже по цене 200-400 долларов (2008/11/20), предназначены для сред с низким потреблением энергии / тепла, таких как ноутбуки. Эти диски на самом деле имеют более низкие уровни производительности по сравнению с жесткими дисками со скоростью 10 или 15 000 об / мин - особенно для записи. Диски корпоративного уровня, которые обладают потрясающей производительностью, о которой вы говорите, - например, серия Mtron Pro - довольно дороги. В настоящее время они около:

  • 400 долларов США за 16 ГБ
  • 900 долларов США за 32 ГБ
  • 1400 долларов США за 64 ГБ
  • 3200 долларов США за 128 ГБ

В зависимости от требований к свободному пространству, производительности и избыточности вы можете легко раздуть свой бюджет.

Например, если ваши требования требуют в общей сложности 128 ГБ доступного хранилища, тогда RAID 0 + 1/10 или RAID 5 с 1 горячим резервом будет стоить ~ 5600 долларов.

Однако, если вам нужен ТБ доступного хранилища, тогда RAID 0 + 1/10 будет стоить ~ 51 тыс. Долларов, а RAID 5 с 2 горячими запасами будет ~ 32 тыс. Долларов.

Большая фотография

При этом установка, настройка и обслуживание большой производственной базы данных требует высококвалифицированного специалиста. Данные в базе данных и услуги, предоставляемые на основе этих данных, имеют чрезвычайно высокую ценность для компаний с таким уровнем требований к производительности. Кроме того, есть много вещей, которые просто невозможно решить, решив проблему с помощью оборудования. Неправильно настроенная СУБД, плохая схема базы данных или стратегия индексации могут / разрушить / производительность БД. Просто посмотрите на проблемы, с которыми Stackoverflow столкнулся при миграции на SQL Server 2008. Вот и Вот. Дело в том, что база данных - это сложное приложение не только для диска, но и для оперативной памяти и процессора. Сложно найти баланс между разнообразной производительностью и целостностью данных, безопасностью, избыточностью и резервным копированием.

Таким образом, хотя я действительно думаю, что все без исключения улучшения как аппаратных, так и программных технологий приветствуются сообществом, крупномасштабное администрирование баз данных - например, разработка программного обеспечения - является сложной проблемой и по-прежнему будет требовать квалифицированных рабочих. Данное улучшение может не привести к затратам на сокращение рабочей силы, на которые вы или компания могли бы надеяться.

Хорошей отправной точкой для некоторых исследований может быть веб-сайт / блог Брента Озара. Вот. Вы можете узнать его имя - он тот, кто помог команде stackoverflow с их проблемами производительности MS SQL Server 2008. Его блог и ресурсы, на которые он ссылается, предлагают довольно много широты и глубины.

Обновить

Сами Stackoverflow идут по потребительскому маршруту на основе SSD для своего хранилища. Об этом читайте здесь: http://blog.serverfault.com/post/our-storage-decision/

Ссылки

Если у вас действительно очень-очень загруженный сайт, который может получить преимущества от SSD для повышения производительности записи, у вас, вероятно, возникнут проблемы со сроком службы SSD, поэтому я еще не купил их для этого.

Имея это в виду, что делать с базами данных с высоким уровнем чтения? Ответ прост: загружайте на сервер столько оперативной памяти, сколько сможете. Вы обнаружите, что самые популярные таблицы в любом случае почти всегда хранятся в кеше ОЗУ, и любое большое попадание на диск, вероятно, будет из-за сканирования большой таблицы или индекса, которое часто можно оптимизировать с помощью правильной индексации.

Мы только что собрали 64-битный сервер Sql 2008 w2k3 r2 на двойном 2,5-дюймовом гибридном зеркале Seagate Momentus XT - 1/4 хода для ОС и 1/4 хода для БД. Таким образом, использовалось 125 ГБ для ОС и 125 ГБ для БД. получали от 1500 МБ / с до 1900 МБ / с последовательного чтения. На Intel i7 2600K 3,4 ГГц 8 ГБ

Я работал администратором баз данных более 5 лет, и мои мысли о способах повышения производительности БД всегда лежали в основе моей. Я наблюдал за пространством SSD и думаю, что они определенно становятся все более и более жизнеспособным вариантом.

Проверь это;

http://i.gizmodo.com/5166798/24-solid-state-drives-open-all-of-microsoft-office-in-5-seconds

Существует также новый продукт, производимый Acard под названием ANS-9010, который представляет собой улучшенную версию GC-Ramdisc, которая позволяет вам использовать оперативную память DDR2 для создания диска SATA (до 64 ГБ) с использованием модулей DDR2 с теоретической скоростью 400 МБ / с. максимум.

http://techreport.com/articles.x/16255/3

^^ Но еще одна полезная вещь в этой статье заключается в том, что она сравнивает ANS-9010 со всеми игроками на рынке SSD, и оказывается, что у Intel есть твердотельный накопитель x25-E емкостью 64 ГБ, что в значительной степени сопоставимо с наличием аппаратного ramdisk.

Что меня беспокоит в SSD, так это то, что они изнашиваются из-за того стресса, через который их может пройти большая БД, и поэтому вам придется использовать raid для зеркалирования дисков, что означает, что вы платите вдвое больше;

А недостатком аппаратного RAM-диска является то, что аккумулятор в случае отключения электроэнергии питает его только на столько времени, что вам придется придумать какой-нибудь необычный способ его резервного копирования. Я считаю, что вы также можете купить для них сетевой штекер, но он по-прежнему зависит от вашего ИБП.

Я предлагаю вам использовать аппаратный RAM-диск для временной базы данных и файла подкачки Windows - и поместить базу данных на Intel X25-E Extreme (около 600 долларов США за 64 гигабайта).

Как бы то ни было, он бы закричал и все остальные из нас очень завидовали бы.

(Также рассмотрите возможность использования другого ANS-9010 для хостинга веб-сайта)

Привет, Дэйв

На рынке есть такие продукты, как Вот этот которые делают такие вещи. Кроме того, как говорится на другом плакате, добавление дополнительной оперативной памяти к серверу БД даст вам более высокую скорость попадания в кеш, что уменьшит дисковый трафик.

8-сокетные серверы Opteron, такие как Солнце X4600 позволит вам разместить в них до 256 ГБ ОЗУ по ценам, которые все же дешевле, чем у большой команды администраторов баз данных. Вы также можете рассмотреть возможность использования плоских файлов, а не СУБД (как эта компания did), что даст вам лучшую производительность, чем СУБД. В этом случае SAN обеспечит определенную степень целостности данных. Однако вам придется тщательно разрабатывать свою стратегию доступа к данным, чтобы не попасть в беспорядок. По-видимому, этим занимается довольно много крупных доткомовских компаний. Это значительно более эффективно, чем СУБД, позволяя довольно простому оборудованию обрабатывать большие нагрузки и избегая лицензионных сборов СУБД.

SSD-накопители основаны на флэш-памяти NAND (MLC или SLC). Если вы покупаете SSD-диски в форм-факторе SATA (2 или 3), вы ограничиваете производительность, которую вы можете получить от них. Как правило, SSD-накопители на базе быстрого контроллера Sandforce SF-1200 обеспечивают скорость чтения 220 МБ / с и запись 205 МБ / с - намного быстрее, чем устаревший механический вращающийся диск.

Однако, если вы переходите на решение PCIe, такое как FusioIO, в котором не задействован медленный разъем SATA 2 или SATA 3, вы смотрите на решения, которые в 10-50 раз быстрее вращающихся механических быков (я имею в виду диски).

Так что для вашего «дешевого» решения выберите SATA 2/3 SDD на базе контроллера Sandforce SF-1200. Это даст вам улучшение скорости примерно в 3-5 раз (исходя из реального опыта). Если у вас есть бюджет, выбирайте FusioIO. Ничто не сравнится с ним по производительности. Это безумно быстро. Однако стоит потратить от 20 до 50 тысяч долларов.