Транзакційні бази даних
RAID-5 записується відносно повільно, оскільки контролеру потрібно завантажувати достатньо даних, щоб перерахувати паритет запису. Операції запису матимуть щонайменше чотири операції на диску
Читання в блоці паритету
Читання в старому блоці (припустимо, що воно вже не знаходиться в кеші) на XOR значення з блоком парності.
Написання нового блоку парності (старий блок парності XOR старий блок даних XOR новий блок даних)
Написання нового блоку даних.
Якщо система не використовує кешування назад, це означає, що всі ці дії знаходяться на критичному шляху до завершення вводу / виводу. Часто це трапляється при записі баз даних - адже Microsoft (наприклад) має програму сертифікації обладнання SAN для використання з SQL-сервером, який вимагає від постачальників гарантії такої поведінки. Іноді старше обладнання RAID-5 не використовувало цю оптимізацію і довелося перерахувати паритет з усієї смуги.
RAID-10 має дзеркало для кожного окремого накопичувача і не потрібно читати додаткові дані для обчислення парності. Це означає, що для запису потрібно набагато менше фізичного вводу / виводу.
RAID-50 розташований десь посередині, об'єм розділений на кілька томів RAID-5, які, у свою чергу, смугасті. На RAID-50, створеному з груп, смугастих у схемі 3 + 1, запис створює щонайбільше три додаткові запити вводу / виводу на диск. Якщо ви відчуваєте таке схильність, ви можете розглядати RAID-5 та RAID-10 як особливі випадки RAID-50. RAID-50 в основному використовується для забезпечення великих обсягів на багатьох фізичних дисках
Інші схеми паритетності, такі як RAID-6 (схема паритетності з двома надлишковими дисками на набір), також існують. Сучасні диски досить великі, що перезавантаження масиву може зайняти досить тривалий час - досить довго, щоб ризик відмови другого диска під час відбудова досить вагома. RAID-6 зменшує цей ризик, маючи другий диск, що вимагає паритету, вимагаючи трьох відмов диска, щоб викликати втрату даних. Подібний трюк для схем RAID-50 можна використовувати для створення масивів RAID-60.
Нарешті, одна дзеркальна пара (відома як RAID-1) може забезпечити надмірність та достатню ефективність для виконання деяких завдань. Зокрема, ви, мабуть, виявите, що RAID-1 дає вам достатню пропускну здатність для досить великого трафіку журналу бази даних. Детальніше про це нижче.
Якщо у вас велике навантаження на роботу, ви, ймовірно, отримаєте підвищення продуктивності від обсягу RAID-10. Це може бути виграшним, оскільки ви, ймовірно, можете отримати необхідну пропускну спроможність з меншої кількості фізичних дисків, якщо припустити, що у дисків достатньо місця). Деякі елементи, такі як журнали або часові області на сервері баз даних, повинні містити обсяги RAID-1 або RAID-10, оскільки вони отримують багато трафіку запису.
Колода
Об'єм журналів характеризується здебільшого послідовною схемою доступу до даних і по суті є кільцевим буфером, що складається з команд уздовж рядків "записувати ці дані в цей блок". Вони виписуються як виробник основним механізмом СУБД і обробляються як кон'юмер функцією зчитування журналів. Одна дзеркальна пара насправді обробляє досить багато трафіку журналу.
Системи та файлові сервери, що мають читання
У важкій для читання системі, такі як сховище даних, ви можете використовувати один або більше томів RAID-5. На файловому сервері доступ до диска значною мірою буде здійснюватися на цілій основі файлів, тому, можливо, записи випишуть більшість блоків, що складаються з блоку парності. У цьому випадку продуктивність пеналіту для RAID-5 буде легшою.
У минулому економія коштів на диску, можливо, була значною, але зараз це менш ймовірно.
Кешування назад та RAID-5
На SAN або внутрішньому контролері RAID з кешеним керуванням, можливо, ви зможете ввімкнути кешування "Зворотного запису". Цей кеш записує і повертає контроль до програми. Контролер повідомляє про введення / вивід про завершення. Однак, це не обов'язково записувати дані на диск відразу. Цей інструмент дозволяє суттєво оптимізувати операції читання / запису парності RAID-5 і може пом'якшити штрафну ефективність запису для томів RAID-5x.
Однак це все ще несе в собі невеликий ризик питань цілісності даних. В хост-системі було сказано, що написання завершено, коли це насправді не так. Можливо, при апаратному збої створюються невідповідності даних між (скажімо) журналом та томами даних на сервері баз даних. З цієї причини кешування назад не рекомендується використовувати для транзакційних систем, хоча це може бути виграш у продуктивності для чогось подібного до процесу ETL.
Підсумок
На сьогоднішній день дисковий простір настільки дешевий, що транзакційні системи, ймовірно, повинні використовувати RAID-1 або RAID-10 для томів журналів і RAID-10 для томів даних. Розмір фізичного диска, ймовірно, буде значно більшим, ніж база даних, і RAID-10 дозволить отримати більше пропускної здатності для тієї ж кількості дисків, потенційно зменшивши кількість обсягів дисків, необхідних для підтримки системи.
На щось схоже на сховище даних ви все ще можете пережовувати простір великими, сильно індексованими таблицями фактів, щоб ви могли отримати невелику виграш цін за допомогою обсягів даних RAID-5 або RAID-50. Однак журнали та tempdb все ж слід розміщувати на томі RAID-10, оскільки вони, ймовірно, отримають багато роботи під час обробки ETL. Однак економія витрат на диску, ймовірно, буде досить невеликою.