Масштабування баз даних за допомогою дешевих жорстких дисків SSD


25

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

  1. Більшість великих баз даних потребує групи DBA для масштабування. Вони постійно борються з обмеженнями на жорстких дисках і закінчуються дуже дорогими рішеннями (SAN або великі RAID, часті вікна технічного обслуговування дефрагментації та перерозподілу тощо). Фактична річна вартість обслуговування таких баз даних становить у межах 100 000 000 000 доларів, що становить занадто крутий для мене :)

  2. Нарешті, ми отримали кілька компаній, таких як Intel, Samsung, FusionIO тощо., Які щойно почали продавати надзвичайно швидкі, але доступні жорсткі диски SSD, засновані на технології SLC Flash. Ці накопичувачі у 100 разів швидші у випадковому читанні / записі, ніж найкращі спінінг-жорсткі диски на ринку (до 50 000 випадкових записів в секунду). Час їх пошуку майже дорівнює нулю, тому вартість випадкових вводу-виводу є такою ж, як і послідовне введення-виведення, що є приголомшливим для баз даних. Ці накопичувачі SSD коштують приблизно від 10 до 20 доларів за гігабайт, і вони порівняно невеликі (64 Гб).

Тож, мабуть, існує можливість уникнути величезних витрат на масштабування баз даних традиційним способом, просто побудувавши достатньо великий масив SSD-накопичувачів RAID 5 (який коштуватиме лише кілька тисяч доларів). Тоді нам не байдуже, чи фрагментований файл бази даних, і ми можемо дозволити собі 100 разів більше запису дисків за секунду, не поширюючи базу даних на 100 шпинделів. .

Хтось ще цікавиться цим? Я тестував кілька накопичувачів SSD і можу поділитися своїми результатами. Якщо хтось на цьому веб-сайті вже вирішив свої вузькі місця з SSD, я хотів би почути ваші історії війни!

PS. Я знаю, що існує безліч дорогих рішень, які допомагають в масштабованості, наприклад, перевірені часом оперативні системи SAN. Хочу зрозуміти, що навіть $ 50 000 занадто дорого для мого проекту. Мені потрібно знайти рішення, яке коштуватиме не більше 10 000 доларів і не потребує багато часу на його реалізацію.


Дейв, NXC і Берлі,

Дякуємо за відповіді! Я хотів би уточнити, що слово "дешево" є дуже важливим у моїй ситуації. Отже, мені доводиться використовувати дешеві сервери Dell ($ 4К 2950, ​​у яких є лише 8 банків пам'яті). У мене вже встановлено 32 ГБ оперативної пам’яті, тому я не можу продовжувати масштабування таким чином. Крім того, додавання оперативної пам’яті не позбавить вас від вузьких вузьких місць на диску WRITE, що зараз є моєю основною проблемою.

Раніше я переймався терміном експлуатації SSD, але прочитавши про сучасні алгоритми вирівнювання зносу, я впевнений, що ці накопичувачі прослужать досить довго. Моя база даних пише 300 ГБ на день, і, за прогнозами, вона перевищить 1 ТБ на день у 2009 році. Підприємницькі жорсткі диски розроблені для обробки близько 10 ТБ записів на день протягом декількох років.

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


2
BTW, хоча ви заявляєте, як покращена продуктивність потенційно може зменшити витрати на обладнання, ви не чітко висловлюєте, як SSD-диски знижуватимуть ваші основні витрати - робочу силу. Я припускаю, що, ймовірно, доводиться до того, що зменшення розміру установки може зменшити ваші штатні запити
Берлі

2
Моя база даних із задоволенням працювала на виробництві протягом 3 років без повного робочого часу або консультантів. Тоді навантаження збільшилось до того, коли ми стикаємося з вузькими місцями вводу / виводу. Отже, мені, можливо, доведеться платити багато грошей DBA за розділення та дефрагментацію бази даних. Або просто дістаньте кілька дешевих SSD-дисків.
Денніс Кашкін

Я оновив свою відповідь, щоб обговорити додані вами обмеження. Залежно від простору, розміру, продуктивності, обслуговування та модифікацій вашої БД, SSD-диски, безумовно, можуть запропонувати економічно вигідне рішення. Дизайн рішення та аналіз витрат виходять за рамки нашого сфери. Удачі!
Берлі

Ви випивали занадто багато коолайдів, SSD - у кращому випадку на 1,5 рази швидше для читання, ніж привід RAID, але запис йде повільніше, ніж магнітні диски. SANS на основі волокна з високошвидкісним RAID знищить будь-який SSD незалежно від того, наскільки він хороший.
TravisO

Просто хотів поділитися - ми вже 5 місяців працюємо з базою даних на 400 ГБ на SSD. Ця база даних отримує велику кількість запису (до 1200 транзакцій в секунду). Досі у нас не було проблем, а продуктивність була значно кращою порівняно з RAID10 з 15K об / хв SAS накопичувачами. Диски залишаються на 96% в режимі очікування. Отже, враховуючи, що SSD-диски зараз стають дивовижно дешевими (600 доларів за 160 ГБ накопичувача Intel), я б стверджував, що це кращий спосіб масштабування вводу-виводу, ніж SAN.
Денніс Кашкін

Відповіді:


20

Потенційні проблеми

В даний час у мене є кілька питань щодо використання SSD для виробництва баз даних

  • Більшість транзакцій баз даних на більшості веб-сайтів читаються не пише. Як сказав Дейв Маркл, ви максимізуєте цю ефективність спочатку оперативною пам'яттю.
  • SSD-диски є новими для основного та корпоративного ринків, і жоден адміністратор, не стоїть його солі, не збирається переміщати виробничу базу даних, для якої в даний час потрібно 15 Кб RPM U320 дисків в RAID5, що передаються через фіброканали, до неперевіреної технології.
  • Вартість дослідження та тестування на перехід на цю нову технологію, перевірку її в їхньому оточенні, оновлення експлуатаційних процедур тощо - це більша передова вартість, як за часом, так і за гроші, ніж більшість магазинів повинні шкодувати.

Запропоновані переваги

Це означає, що в майбутньому існує ряд предметів, принаймні на папері, на користь SSD:

  • Менше енергоспоживання порівняно з жорстким диском
  • Набагато нижчий тепловідвід
  • Більш висока продуктивність на ват в порівнянні з HDD
  • Набагато вища пропускна здатність
  • Значно нижча затримка
  • Більшість SSD-дисків поточного покоління мають близько мільйонів циклів витривалості при записі, тому витривалість запису - це не така проблема, як це було раніше. Дивіться дещо датовану статтю тут

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

Вартість та ефективність

Ви додали, що у вас є обмеження витрат у розмірі менше 50 000 доларів США, і ви дійсно хочете тримати її нижче 10 000 доларів. Ви також зазначили в коментарі, що ви можете отримати кілька «дешевих» SSD-дисків, виключаючи, що SSD-диски будуть дешевшими, ніж DBA або консультанти. Це може бути правдою залежно від кількості годин, яким вам знадобиться DBA, і від того, чи варто це переосмислення чи ні. Я не можу зробити аналіз витрат для вас.

Однак ви маєте бути дуже обережними - це тип SSD, який ви отримуєте. Не всі SSD-файли створюються рівними. За великим рахунком "дешеві" SSD-диски, які ви бачите у продажу в $ 200-400 доларів (2008/11/20), призначені для середовища з низькою потужністю / теплом, як ноутбуки. Ці накопичувачі насправді мають нижчий рівень продуктивності порівняно з 10K або 15K RPM HDD - особливо для записів. Приводи на рівні підприємств, які мають вбивчу продуктивність, про яку ви говорите - як і серія Mtron Pro - досить дорогі. В даний час вони навколо:

  • 400 USD за 16GB
  • 900 доларів за 32 ГБ
  • 1400 USD за 64 Гб
  • 3200 доларів за 128 Гб

Залежно від ваших потреб у просторі, продуктивності та надмірності ви можете легко сплатити бюджет.

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

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

Велика картинка

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

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

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

Оновлення

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

Список літератури


Відмінна відповідь.
NotMe

Ви витратили на це занадто багато часу: P
TravisO

Дивовижні пояснення. Вирізати по дереву для всіх. Хороша робота!
BerggreenDK

4

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

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


Я хотів би переглянути ваш коментар щодо стурбованості життя SSD. Що стосується MTBF, SSD має набагато вищий рейтинг, ніж HDD. Що стосується витривалості циклу запису - раніше це випуск, поточне покоління складає> 1 мільйон циклів запису, що робить це не випуском, особливо в конфігураціях RAID.
Берлі

(Немає символів) ... Це не те, що ви не повинні турбуватися про термін служби SSD, це просто те, що поточні технічні рейтинги говорять про те, що SSD є рівними або перевершують аналог HDD. Той факт, що SSD не мають десятиліття досвіду виробництва, означає, що вони недоведені.
Берлі

SSD записуються повільніше, ніж
HD-диски

SSD-диски, як правило, значно швидші при випадковому записі, особливо 4K випадкові записи. Вони можуть бути повільнішими для послідовного запису, але це не обов'язково важливо для серверів баз даних.
ChrisInEdmonton

1

Я працював DBA протягом 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 (до 64gig) за допомогою палиць DDR2 з теоретичним 400MB / s максимум.

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

^^ Але інша річ, яка корисна в цій статті, полягає в тому, що вона порівнює ANS-9010 з усіма гравцями на ринку SSD, і виявляється, що Intel має 64 ГБ x25-E SSD, що майже порівняно з апаратним рамним диском.

Те, що мене турбує про SSD, - це їх виснаження з усією напругою, що велика БД пережила б їх, і тому вам доведеться використовувати наліт, щоб відобразити дзеркальні накопичувачі, що означає, що ви платите вдвічі більше;

І недоліком апаратного рамдиска є те, що акумулятор у разі відключення живлення працює лише так довго, щоб вам довелося розробити якийсь химерний спосіб його резервного копіювання. Я вважаю, що ви також можете придбати штепсельну мережу для них, але це все ще покладається на ваш АБЖ.

Я пропоную використати апаратний диск для обміну файлами temp DB та Windows - і поставити базу даних на Intel X25-E Extreme (приблизно 600 доларів за 64 гіга).

У будь-якому випадку це кричить і зробить усіх решти дуже ревнивими.

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

Ура, Дейв


1

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


0

На ринку є такі продукти, як " Цей", які роблять подібні речі. Крім того, як говорить інший плакат, додавання додаткової оперативної пам’яті на сервер БД дозволить покращити швидкість отримання кешу, що знизить дисковий трафік.

8-гніздові сервери Opteron, такі як Sun X4600 , дозволять вам розмістити в них до 256 ГБ оперативної пам’яті за ціни, які все ще дешевші, ніж велика команда DBA. Ви також можете розглянути можливість використання плоских файлів, а не СУБД (як це робила ця компанія ), що дасть вам кращу продуктивність, ніж СУБД. У цьому випадку SAN надасть вам ступінь цілісності даних. Однак вам доведеться ретельно розробити свою стратегію доступу до даних, щоб уникнути неполадок. Мабуть, це чимало об'ємних тот-ком нарядів. Це значно ефективніше, ніж СУБД, що дозволяє досить пішохідним обладнанням обробляти великі навантаження та уникає плати за ліцензування СУБД.


-1

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. Це допоможе вам утричі перевищити швидкість (на основі реального досвіду). Якщо у вас є бюджет, тоді вирушайте на FusioIO. Ніщо не переможе це з точки зору продуктивності. Це шалено швидко. Очікуйте витратити від 20 000 до 50 000 доларів, хоча.


2
Помилковість. Сучасний SSD хороший для близько 50 000 IOPS, забезпечуючи пропускну здатність 580 Мб. SAS складає менше 500 IOPS. Бази даних не є файловими серверами.
TomTom
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.