Є RAID5 більш надійним, ніж RAID1


12

Я збираюся замінити старий апаратний масив RAID5 на масив програмного забезпечення Linux RAID1. Я розмовляв з другом, і він стверджував, що RAID5 надійніший за RAID1.

Його твердження полягало в тому, що з RAID5 під час зчитування читали дані паритету, щоб переконатися, що всі диски повертають правильні дані. Він також стверджував, що в RAID1 помилки, що виникають на диску, залишаться непоміченими, оскільки така перевірка з RAID1 не проводиться.

Я бачу, як це могло бути правдою, але також бачу, що все залежить від того, як реалізовані розроблені RAID системи. Звичайно , система RAID5 НЕ повинні читати і перевіряти дані парності на читання і система RAID1 може так само легко зчитувати з усіх дисків на читання , щоб перевірити їх все тримає одні і ті ж дані , і тому добитися такого ж рівня надійності ( з відповідною втратою працездатності).

Отже, питання полягає в тому, що насправді роблять системи RAID5 / RAID1 у реальному світі? Чи перевіряють системи RAID5 дані паритету на показаннях? Чи є системи RAID1, які читають з усіх дисків і порівнюють дані про прочитані?

Відповіді:


22

RAID-5 - це рішення відмовостійкості, а не цілісність даних .

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

Контролер RAID (апаратне чи програмне забезпечення) не перевіряє парність блоків під час читання. Це великий ризик запуску RAID-5 - якщо ви зіткнулися з частковим збоєм медіа на диску (ситуація, коли поганий блок не позначений «погано»), ви зараз опинилися в ситуації, коли ваші дані мовчали зіпсований.

RAID-Z / ZFS від Sun фактично забезпечує цілісність даних в кінці , і я підозрюю, що інші файлові системи та системи RAID нададуть цю функцію в майбутньому, оскільки кількість ядер, доступних на процесорах, продовжує збільшуватися.

Якщо ви використовуєте RAID-5, на мою думку, ви коштуєте дешево. RAID 1 працює краще, забезпечує більший захист і не впливає на виробництво, коли накопичувач виходить з ладу - за граничну різницю у витратах.


6

Я вважаю, що відповідь залежить від контролера / програмного забезпечення, наприклад, в дзеркальних системах досить часто читати лише один диск з пари і, отже, бути здатним доставити неправильні дані. Зауважу, що якщо ваші результати залежать від цих даних, тоді, коли дані записуються на обидва диски, вони пошкоджуються на обох дисках .....

З pdf у розділі SATAssure (tm) Plus:

"Революційна технологія SATAssure забезпечує захист даних та надійність даних для корпоративного класу за допомогою великої ємності, недорогих дисководів SATA. SATAssure працює над усіма операціями зчитування, забезпечуючи цілісність даних і автоматично виправляє проблеми в режимі реального часу - все без продуктивності або покарання потужностей, що знайдені в традиційних системи зберігання. Скоротіть RMA-накопичувачі з новою можливістю живлення окремих приводів ".

Цікаво, що деякі виробники метушаться з приводу того, що вони завжди обчислюють паритет, це змушує мене думати, що на апаратних контролерах це досить рідко. Також слід зазначити, що такі системи, як ZFS і WAFL (netapp), проводять обчислення парності для кожного зчитування.


Це посилання виглядає цікаво, але чи насправді прямо десь на цій сторінці чи брошурі прямо сказано, що вони перераховують паритет у всіх прочитаних?
andynormancx

Я додав цитату з pdf. Зауважте, що коробки S2A є тихим високим рівнем.
Джеймс

3

З RAID-5 парність, як правило, зчитується лише при перебудові масиву, а не на загальному читанні. Це означає, що зчитування може бути більш випадковим і швидшим (оскільки вам не доведеться читати і обчислювати паритет для всієї смуги кожен раз, коли вам потрібно 1 К даних з масиву).

З RAID-1, як правило, зчитування переступають через накопичувачі, коли це можливо, щоб підвищити ефективність читання. Як ви зазначали, якщо підсистема RAID намагається прочитати обидва накопичувачі, і вони відрізняються, підсистема не може дізнатися, який диск був неправильним.

Більшість підсистем RAID залежать від накопичувача, щоб повідомити контролер або комп’ютер, коли це погано.

Тож RAID-5 "надійніший"? Відповідь - це залежить. RAID-5 дозволяє отримати більш ефективне сховище для заданої кількості дисків, ніж RAID-1; хоча для забезпечення ефективного зберігання за межами одного диска, RAID-1 потрібно поєднувати з RAID-0, або як смугу масивів RAID-1, або RAID-1 через дві смуги RAID-0.

(Я віддаю перевагу першому, оскільки одна несправність диска виведе один елемент RAID-1, це означає, що лише один привід потребує відновлення. З останнього, поломка одного диска вбиває елемент RAID-0, що означає, що HALF the диски будуть залучені до відновлення, коли диск буде замінено.)

Це також призводить до обговорення "фантомних записів", де запис записується як успішне електронікою приводу, але з будь-якої причини запис ніколи не робить його на диску. Це трапляється. Врахуйте, що для масиву RAID-5, коли у вас відмова диска, масив ОБОВ'ЯЗКОВО читає ВСІ сектори на ВСІХ живих накопичувачах, щоб відновитись. NetApp стверджує, що великий розмір накопичувачів плюс великий розмір рейдових груп означає, що в деяких випадках ваші шанси вийти з ладу під час відновлення можуть бути такими ж поганими, як кожен десятий. Таким чином, вони рекомендують великим дискам у великих групах RAID використовувати подвійний паритет (на мою думку, це стосується RAID-6).

Про це я дізнався на технічній дискусії NetApp, яку провели пара їхніх інженерів.


Я б не використовував термін "більш ефективний" ... "Більш потужність" була б більш доречною. На мій погляд, рішення, яке робить більш імовірним, що я втрачу свої дані, не є більш ефективним.
duffbeer703

Все є компромісом вартості. RAID-5 є більш економічно вигідним для зберігання, тоді як RAID-1 або RAID-1 + 0 (0 + 1) є більш надійними.
Девід Макінтош

Інша причина віддати перевагу 1 + 0 над 0 + 1 полягає в тому, що 1 + 0 може вижити 4 з 6 можливих ", другий привід виходить з ладу до заміни першого невдалого диска та відновлення масиву", коли сценарії 0 + 1 можуть вижити лише 2 з 6. Хоча 0 + 1 може пережити несправність контролера на одній руці (де 0 + 1 не може), це набагато рідше, ніж збій диска (навіть багаторазовий збій диска).
Девід Спіллетт

RAID-DP (реалізація подвійного паритету NetApp) є RAID-6. RAID-6 (на відміну від RAID-5) функціонально визначається як RAID, який може пережити два відмови диска. RAID-DP відрізняється від типового RAID-6 тим, що не розподіляє паритет - WAFL не записує випадковим чином випадкові записи, тому розподіл паритету не дає ніякої користі.
Капітан Сегфол

3

Жодна загальна реалізація RAID зазвичай перевіряє паритет доступу до даних. Я ніколи його не бачив. Деякі реалізації RAID5 зчитують дані парності для потокового зчитування, щоб запобігти непотрібному пошуку (дешевше викинути кожен n-й блок, ніж змусити диск шукати кожен n-й блок). Реалізації RAID1 не можуть перевірити, оскільки вони читають з обох дисків на ефективність (ну, в переважній більшості реалізацій RAID1. Жменя дозволяє вам вибрати, що може бути корисним, якщо один диск набагато повільніше, ніж інший, і він не є інтенсивним для запису навантаження.)

Деякі перевіряють фоном "вичісування". У цьому випадку RAID6 виграє, оскільки він може відновити дані, а RAID5 і RAID1 знаходяться в одній ситуації, ви можете визначити, але не виправити. (Це не зовсім вірно, оскільки накопичувач може виявити поганий CRC, повернути помилку і дозволити вам переписати блок з паритету. Це трапляється досить часто).

Якщо ви хочете цілісність даних, збережіть хеш із кожним блоком (або записом, або він розділений) на рівні програми. Sybase та Oracle роблять це (я вірю на рівні сторінки), і я не раз бачив, щоб зберегти гігантську базу даних. (наприклад, контролер починає повертати погані дані, база даних збоїв із явною помилкою, тому запису не робилося, коли база даних працювала на несправному апаратному забезпеченні з непослідовним станом)

Єдине рішення файлової системи та єдине рішення RAID, яке робить це для вас - ZFS.


0

Ваш друг говорить про біт парності, який бере участь у деяких рівнях RAID , або контрольну суму даних, записаних на диск?

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

У RAID5 є біт парності. Це означає, що ви можете втратити диск у своєму RAID-наборі та продовжувати так, ніби нічого не сталося. Тим не менш, має бути контрольна сума даних, записаних на диск, щоб переконатися, що вони відповідають тому, що потрапило в провід

У цьому випадку контрольні суми абсолютно не залежать від RAID, які можуть або не можуть виконуватися з купою дисків

Відредаговано, щоб додати: Ви згадали про перехід від апаратного RAID до програмного RAID. Перевага завжди є апаратним RAID перед програмним RAID. Якщо ви можете придбати обладнання, необхідне для забезпечення рівня RAID, який ви хочете реалізувати, я б радив вам скористатися цим. Це дозволить виконувати всі розрахунки паритету за допомогою RAID-картки, а не хоста. Тому звільнення ресурсу на хості. Немає жодних сумнівів і в інших перевагах, але вони покинуть мене


Він говорив про паритет. Він стверджував, що в RAID5 інформація про паритет була отримана при зчитуванні та порівняна з даними, що надходять з інших дисків, щоб перевірити, чи не було помилок читання.
andynormancx

5
Я не згоден з вашою рекомендацією апаратного RAID щодо програмного забезпечення у всіх випадках. З сучасним обладнанням програмне забезпечення RAID може бути таким же швидким, як і апаратне забезпечення, якщо на вашому сервері є багато запасного процесора (який у мене завжди буде). Крім того, апаратний RAID має деякі недоліки, головний з яких знаходиться в ситуації відновлення, вам потрібна відповідна RAID-карта. За допомогою програмного RAID ви можете витягнути накопичувач з машини, вставити його в інший і відійти, не отримуючи нову RAID-карту, яка точно відповідає старій.
andynormancx

Я намагався дістати донизу, про який контекст він говорив. Як я розумію, контрольні суми використовуються при записі на диск (незалежно від RAID). Паритет використовується для розміщення фрагментів даних на різних дисках та для відновлення масиву у разі відмови диска. Паритет використовується не на всіх рівнях RAID
Бен Швидкий

1
Будь ласка, дивіться en.wikipedia.org/wiki/… для обговорення програмного забезпечення VS апаратного RAID Очевидно, що обрана вами реалізація залежить від вашого середовища та ваших потреб. Мої переваги - апаратний RAID над програмним RAID
Бен Швидкий

Я розумію, забудь, я коли-небудь згадував контрольні суми. Я оновив питання, щоб усунути плутанину. Питання полягає в тому, чи зазвичай системи RAID5 перевіряють дані паритету на показаннях.
andynormancx

0

Я збираюся замінити старий апаратний масив RAID5 на масив програмного забезпечення Linux RAID1. Я розмовляв з другом, і він стверджував, що RAID5 надійніший за RAID1.

Це залежатиме від типу реалізації рейду (hw / sw), дисків, рейдового контролера, якщо він є, та його особливостей.

Його твердження полягало в тому, що з RAID5 під час зчитування читали дані паритету, щоб переконатися, що всі диски повертають правильні дані. Він також стверджував, що в RAID1 помилки, що виникають на диску, залишаться непоміченими, оскільки така перевірка з RAID1 не проводиться.

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

So the question is, what do RAID5/RAID1 systems in the real world

насправді робити? Чи перевіряють системи RAID5 дані паритету на показаннях? Чи є системи RAID1, які читають з усіх дисків і порівнюють дані про прочитані?

як я вже сказав, перевірки не є частиною алгоритму рейду, хоча деякі контролери можуть реалізувати щось додаткове.

надійність масиву залежить від якості накопичувачів (2,5-дюймові диски, як правило, живуть довше 3,5 "через зниження швидкості RV; за моїм досвідом НІКОЛИ не купуйте макстерні накопичувачі SCSI / SAS - у них жахливі прошивки прошивки), навколишнє середовище (контроль температури та вологості), сам контролер (чи є він BBU? чи є оновлення мікропрограми? це справжній рейд чи фальшивка?), кількість блоків живлення на сервері, якість UPS тощо.


Боюся, ви не відповіли на запитання, яке дуже точно стосується того, які реальні реалізації RAID5 роблять щодо перевірки даних паритету на прочитаному.
andynormancx

0

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

Крім того, якщо ваше читання має менше одного блоку, читання перевірки парності повинно буде розширити його до повного блоку, тоді як звичайне читання не буде. (Припустимо, звичайно, що RAID-блок більший, ніж у блоків дисків. Я думаю, що читання з диска повинні бути повними блоками. Якщо ні, то моя думка ще більш достовірна.)

Так, з моєї точки зору, так, це могло б зробити це, але якби це було, це було б неефективно, і я сумніваюся, що будь-які реалізуються таким чином.

Знову ж таки, я не маю особистих знань про реальні реалізації.


0

Чи перевіряють системи RAID5 дані паритету на показаннях?

Це насправді не має сенсу. Що ви робите, коли виявляєте невідповідність паритету? (Звідки ви знаєте, який блок неправильний?)

Для випадкових зчитувань перевірка паритету була б дорогою. Зазвичай ви можете обслуговувати випадкове читання, просто переглянувши один диск, але якщо ви хочете перевірити паритет, вам потрібно буде прочитати всі диски на кожному прочитаному. (Це все-таки може мати сенс, якби ви могли щось з цим зробити!)

Зауважте, що у RAID-1 є і ця проблема - що має сенс, коли ви дивитесь на RAID-1 як на два диски RAID-5.


0

Я трохи замислювався над твердженням, що RAID-1 повинен бути швидшим у зчитуванні, ніж RAID-5, оскільки він читає відразу на обох дисках.

Тепер, оскільки паритет не читається на RAID-5, якщо масив не потребує відновлення, він фактично дорівнює масиву RAID-0 з точки зору читання, я прав?

Як правило, RAID-0 вважається найшвидшим рівнем (хоча його слід назвати "AID", оскільки надмірності немає). :-D

Якщо говорити про програмне забезпечення RAID Linux, простий тест - за допомогою hdparm - підтверджує цю теорію: мій масив RAID-5 завжди показує більш високу швидкість зчитування, ніж мої масиви RAID-1.

АЛЕ: Деградований масив працює набагато повільніше, ніж звичайний запущений масив, здається! Я щойно тестував це з Fedora 9, працює на 4 дисках WD 1 TB з різними рівнями RAID. Ось результати:

Деградований RAID-5: швидкість зчитування 43 Мб / с. Нормальна RAID-5: швидкість зчитування 240 Мб / с (!) RAID-1: швидкість зчитування 88 Мб / с

Оскільки дозволена втрата дисків однакова у RAID-1 та RAID-5 (а саме в одному), я думаю, що RAID-5 повинен перевершити RAID-1 у кожному аспекті - надаючи більше ємності по відношенню до кількості дисків, що використовуються в масиві, і однакові відмовостійкість. Це призводить до висновку, в якому йдеться про те, що RAID-6 перевершує будь-який інший рівень RAID, оскільки він такий же швидкий, як RAID-0 у звичайному режимі зчитування (відсутність паритету зчитується з двох дискових паритетів), і досі не має стійких помилок у разі втрати член масиву ;-)


Деякі цікаві речі, але ви повторили помилку RAID1, яку я чую весь час. RAID1 не повинен означати, що він може пережити лише один збій диска. У вашому масиві RAID1 не повинно бути лише два диски. Наприклад, у вас є масив RAID1 з 3 дисками, він переживе два збої диска, а також продуктивність читання повинна збільшитися ( якщо ваша система RAID читає з декількох дисків під час читання).
andynormancx

-1

Особисто я вважаю, що остаточним тестом RAID-системи є те, наскільки добре вона може протистояти збоям. У цьому випадку і RAID5, і RAID1 можуть вирішувати пошкодження одного диска, але жоден з них не виживе.

Що стосується вашого питання про біт паритету, я думаю, що це залежить від драйверів RAID. Він обов'язково буде прочитаний під час реконструкції, але при нормальному використанні це не має сенсу робити, оскільки пропускна здатність буде витрачатися на нього.


Я боюся, що ваша відповідь означає "я не знаю, чи будь-які реалізації RAID5 перевіряють паритет на прочитане", тому не відповідає на питання.
andynormancx

Це правильна відповідь, оскільки ніхто точно не дізнається, окрім людини, яка насправді написала водія.
sybreon

-2

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

Можливо, ви можете відключити перевірку даних для рівня рейду, але який сенс у цьому, усі рівні рейду (крім 0) є для того, щоб забезпечити надмірність даних, тож чому заважаєте собі.

Для рейду 5 вам потрібно щонайменше 3 диски і ви можете використовувати диски N-1 для даних. У рейді 1 вам завжди потрібна парна кількість дисків і ви можете використовувати N / 2 диски для даних.

Таким чином, при більших рейдах рівень 5 дає вам більше місця для зберігання, а рейд 1 - більше зайвих.

Якщо більш надійними ви маєте на увазі, що пропонує більше резервування, ніж це рейд 1.

залежно від розміру рейду, ви також повинні врахувати час перебудови у разі помилки (скільки дисків там, наскільки великий один диск, який тип рейду (soft-, fake-, hardware-), який рівень тощо. )

Тож насправді не можна сказати, що один рейд надійніший за інший (можливо, рейд 6 завжди більш надійний, ніж рейд 5 за рахунок втрати місця на зберігання)


1
Я боюся, що це насправді не відповідає на моє запитання, моє запитання дуже точно стосується того, чи типові реалізації RAID5 перевіряють дані паритету на прочитані. А для запису RAID1 не потрібна парна кількість дисків. Ви можете із задоволенням мати масив RAID1 з більш ніж двома дисками, таким чином збільшуючи надмірність, зменшуючи швидкість запису.
andynormancx

1
"контролер завжди перевіряє, що записано та читається з дисків." Це не так, що контролер може читати з обох дисків, але деякі контролери повертають перші отримані дані.
Джеймс

Я думаю, що можна сказати, що RAID1 потребує парної кількості дисків, а третє дзеркало - це щось інше, ніж RAID1. Так мало реалізацій підтримують третє дзеркало, яке термінологія ніколи не стандартизувала.
carlito
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.