Полоска ZFS поверх апаратного RAID 6. Що може піти не так?


9

У мене 36 * 4TB HD Rack SAN Rack. Контролер RAID не підтримував RAID60 та не більше 16 жорстких дисків в одній групі RAID. Тому я вирішив зробити 2 групи RAID6 16HDD або 4 з 8 жорстких дисків. Я хочу отримати все сховище як один розділ.

Отже, що може піти не так, якщо я буду використовувати zfs пул поверх апаратного RAID6? Так, я знаю, що настійно рекомендується використовувати рідні жорсткі диски або режим пропуску. Але у мене такого варіанту немає.

Або я повинен у цій ситуації триматися подалі від набігів ZFS та програмного забезпечення? (Мене найбільше цікавлять стиснення та знімки)


2
Якщо ви збираєтеся використовувати ZFS, то чому б просто не виставляти всі диски окремо (іноді їх називають HBA-режимом) і не дозволяти ZFS обробляти це - це те, що він найкраще робить. У нас є декілька справжніх експертів (для початку), які допоможуть вам у цьому - який саме дисковий контролер ви використовуєте?
Chopper3

1
Ви будете підривати багато функцій ZFS за допомогою цього методу, але в цілому нічого не зашкодить зробити це таким чином. Контрольна сума в цій конфігурації дещо корисніша, оскільки контролер RAID відбирає всі деталі диска. Мене більше цікавить, чому ви кажете, що не можете використовувати JBOD. assuredsan 3530 - це одиниці, здатні до JBOD.
Спулер

2
Я б зачекав ewwhite - він у центральній частині США, тому спить, але він знає ZFS краще за всіх, кого я знаю
Chopper3

1
@Severgun Крім того, 4 жорстких диска залишаються марними, тому що немає потреби в гарячій справі? Чи дійсно ви вважаєте, що краще для RAID-масиву з невдалим накопичувачем кульгати в деградованому режимі, ніж це автоматично підбирати гарячу запчастину, перебудовувати і повертатися повністю функціональний статус?
Ендрю Генле

1
@ Chopper3 Я відповім ... неохоче.
ewwhite

Відповіді:


5

Тому я вирішив зробити 2 групи RAID6 16HDD або 4 з 8 жорстких дисків.

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

Ідеальний розмір для масиву RAID5 / 6 буде таким, що точний кратний об'єм даних, який "охоплює" масив, відповідає розміру блоку файлової системи, побудованої над ним.

Масиви RAID5 / 6 працюють як блокові пристрої - один блок даних охоплює диски в масиві, і цей блок також містить дані парності. Більшість контролерів RAID записуватиме масив даних у два розміри на кожен диск масиву - точне значення якого можна налаштувати в кращих системах RAID - і ваш блок Dot Hill є однією з таких «кращих систем RAID». Це важливо.

Таким чином, потрібно N x (кількість збережених даних на шматок диска), щоб охопити масив, де N - кількість дисків даних. 5-дискний масив RAID5 має 4 диски "даних", а 10-накопичувальний масив RAID6 має 8 дисків даних.

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

Але якщо фрагмент записаних даних недостатньо великий, щоб охопити весь масив, що повинен робити контролер RAID, щоб обчислити нові дані паритету? Подумайте над цим - йому потрібні всі дані по всій смузі, щоб перерахувати нові дані паритету.

Отже, якщо ви створюєте масив RAID6 на 16 приводів із шматом за замовчуванням 512 кбіт, це означає, що для «прольоту» масиву потрібно 7 Мб.

ZFS, як правило, працює у блоках із 128 КБ.

Так ZFS записує блок на 128 КБ - до масиву RAID6 на 16 приводів. У запропонованій конфігурації це означає, що RAID-контролеру потрібно прочитати майже 7 Мб з масиву та перерахувати паритет через ці 7 Мб. Потім перепишіть ці цілі 7 Мб на диск.

Якщо вам пощастить, це все в кеші, і ви не приймаєте величезного хіта на продуктивність. (Це одна з основних причин, чому позиція "не використовувати RAID5 / 6" має таке наступне - RAID1 [0] не страждає від цього.)

Якщо вам не пощастило, і ви неправильно вирівняли розділи файлової системи, блок 128 КБ охоплює дві смуги RAID, які не знаходяться в кеші, і контролеру потрібно прочитати 14 Мб, перерахувати паритет, а потім записати 14 Мб. Усі написати один блок 128 КБ.

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

Але при сильному навантаженні запису блоків на 128 КБ до випадкових локацій є справді хороший шанс, що продуктивність 16-накопичувального масиву RAID6 з розміром смужки 7 Мб буде абсолютно жахливою.

Для ZFS, «ідеального» , що лежить в основі RAID5 / 6 LUNs для загального призначення файлу системи , де більшість доступи ефективно випадковим чином буде мати розмір смуги, це навіть дільник 128 Кбайт, такі , як 32kB, 64 Kb, або 128kB. У цьому випадку це обмежує кількість дисків даних у масиві RAID5 / 6 до 1 (що є безглуздим - навіть якщо можливо налаштувати, краще просто використовувати RAID1 [0]), 2, 4 або 8. Найкраща продуктивність у найкращому випадку - використовувати розмір смуги 128 КБ для масивів RAID5 / 6, але найкращий випадок не трапляється часто у файлових системах загального призначення - часто тому, що файлові системи не зберігають метадані такі ж, як вони зберігати дані файлів.

Я рекомендую налаштувати 5-дискові масиви RAID5 або 10-дискові масиви RAID6, розмір шматка на диск встановлений досить малим, щоб обсяг даних, що охоплював всю смугу масиву, становив 64 кБ (так, я це зробив раніше для ZFS - багато разів). Це означає, що для масиву RAID з 4 дисками даних розмір шматка на один диск повинен становити 16 кБ, тоді як для масиву RAID для 8-дискових даних розмір фрагмента на один диск повинен бути 8 кБ.

Потім дозвольте ZFS використовувати весь масив - не розділяйте його. ZFS буде правильно вирівнювати весь диск, будь то простий одиночний диск або масив RAID, представлений контролером RAID.

У цьому випадку, і не знаючи ваших точних вимог щодо простору та продуктивності, я рекомендую встановити три 10-накопичувальні масиви RAID6 або шість 5-дискних масивів RAID5 з розміром смуги 64 кБ, налаштувати пару гарячих запасних частин і зберегти чотири ваші диски на все, що з’явиться в майбутньому. Бо щось буде.

Я, звичайно, не використовував би цю дискову систему в режимі JBOD - це повністю сумісний з NEBS Level 3 пристрій, який забезпечує значну захист надійності та доступності, вбудовану прямо в апаратне забезпечення. Не кидайте це лише тому, що "ZFS !!!!". Якщо це дешевий товарний предмет, який ви збираєте з частин? Так, режим JBOD із ZFS, що обробляє RAID, найкращий - але це НЕ обладнання, яке ви маєте. ВИКОРИСТУЙТЕ функції, які надає обладнання.


Це означає, що для масиву RAID з 4 дисками дані розмір шматка на один диск повинен становити 16 кБ, тоді як для масиву RAID для 8-дискових даних розмір відрізка на один диск повинен бути 32 кБ. Я трохи плутаю цю математику. Чому 8 дисків - шматок 32 кБ? Виправте мене, якщо я помиляюся: 128 КБ (блок ZFS) / 3 (масиви RAID) = 43 кБ на масив RAID. RAID6 з 10 дисків 43 кБ / 8 = 5 кБ (недоступний розмір) Найближчий розмір 8 КБ також не доступний апаратним забезпеченням. Отже, найкраща продуктивність недоступна?
Севергун

@Severgun Я поставив розміри шматка назад. Проблема з націленням на абсолютну найкращу продуктивність на RAID5 / 6 полягає в тому, що це відбудеться лише тоді, коли майже всі операції вводу-виводу ідеально відповідають розміру смуги RAID-масиву. Значна кількість операцій вводу-виводу, менша за розмір смуги, може серйозно погіршити продуктивність. Перехід з меншим розміром блоку допомагає обмежити вплив випадкових записів малого блоку. На мій досвід, краще відмовитися від 1-2% можливої максимальної продуктивності в обмін на обмеження найгіршого випаду. Файлові системи загального призначення, як правило, мають велику кількість малих записів.
Ендрю Генле

(продовження) 8 дисків даних у масиві RAID5 / 6 з розміром 16 кБ на диск набирає розмір смуги 128 КБ по всьому масиву. Так само 32 кБ фрагменти для масиву 4-дискових даних. ZFS записує блок даних 128kB файлів на один пристрій - він не розділений на всі zdevs. Знову-таки, хоча для файлової системи загального призначення буде багато записів на 128 КБ, тож менший розмір смуги (64 кБ) дозволить уникнути погіршення продуктивності краще при великому навантаженні, але з невеликою вартістю в кращому випадку, виконання справ.
Ендрю Генле

4

Гаразд, я кусаю ...

Це неправильне обладнання для програми. Налаштування DotHill має ті ж обмеження, що і для HP StorageWorks MSA2000 / P2000, оскільки в одній групі масивів можна використовувати лише 16 дисків.

ZFS поверх апаратного RAID або експортованого SAN LUN не обов'язково є проблемою.

Однак смугасті ZFS LUN над невідомими взаємозв'язками через шасі розширення можуть створювати певний ризик.

  • Наприклад, чи використовуєте ви багатосторонній SAS в топології кільця з подвійними контролерами?
  • Чи є у вас зайві кабелі назад до сервера?
  • Чи розподіляли ви диски вертикально по корпусах таким чином, щоб пом'якшити несправність одного шасі / кабелю / контролера і не допустити його руйнування частини вашої смуги RAID0?

Якщо серйозно, то, можливо, варто оцінити, чи потрібно вам все це сховище в одному просторі імен ...

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


1

Вам слід ПРЯМО приєднати всі диски до коробки, на якій працює ZFS. Отримайте SAS HBA і підключіть накопичувачі до вікна ZFS (наприклад, для роботи OmniOS або SmartOS). Потім ви можете поділитися простором за допомогою NFS, SMB, iScsi ...


Вам слід ПРЯМО приєднати всі диски до коробки, на якій працює ZFS. Не обов’язково - замінити невдалі накопичувачі в апаратному масиві на деяких контролерах легко : витягніть жорсткий диск, засвітившись лампою несправності, а потім вимкніть новий дюйм. Не потрібно системному адміністратору запускати команди ZFS для заміни диска. В установці підприємства з сотнями чи тисячами серверів і, можливо, десятками тисяч жорстких дисків, що розповсюджуються на декілька центрів обробки даних, це викликає занепокоєння. Приводи виходять з ладу набагато більше, ніж трапляється бітова гниль.
Ендрю Генле

@Tobi Oetiker розкажи мені, як розмістити 36 3,5 "hdds у корпус 2U
Севергун

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

@AndrewHenle Справедливим є можливість досягнення такої ж простої процедури заміни та світлодіодних індикаторів статусу на ZFS та правильних HBA (можуть бути застосовані деякі незначні сценарії, якщо не використовується попередньо упакований розчин).
користувач121391

0

Причина, що ZFS поверх логічних томів HW RAID - ДУЖЕ БАДА , полягає в тому, що ZFS вимагає доступу на рівні блоку, щоб фактично правильно функціонувати. Так, він буде корисним, але функціональність не буде повною, доки ви не приєднаєте диски безпосередньо до ОС через HBA або прямі підключення SATA. Один із прикладів - конфігурація, яку ви пропонуєте, ZFS не може обґрунтовано захищати ваші дані від змін у наведених нижче даних (з іншого боку контролера RAID HW), і тому не може гарантувати безпеку ваших даних . Це одна з первинних причин використання ZFS, окрім того, що вона є надмірно швидкою.

ZFS - дивовижна технологія, і я дуже рекомендую її. Але вам потрібно буде переглянути свою структуру тут, щоб мати можливість правильно її використовувати. А саме, маючи ZFS, створювати логічні томи (vdevs) безпосередньо з дисків.

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


Так, так і так. Я розумію, як ZFS працює наскільки я можу. Але є деякі ускладнення: 1) У мене вже є корпус SAN і мені потрібно його використовувати. Я не будую сховища з нуля. 2) Це не мій домашній NAS, де я можу купувати та викидати речі. 3) Бюджет відновлення конфігурації сховища дорівнює нулю . Зі зберігання мені потрібна максимальна доступна швидкість запису з простором близько 100 Тб. Я дивлюсь на ZFS здебільшого через стиснення та знімки. Я можу спробувати btrfs, але це експериментально. Хм, може і ZoL нестабільний? Я не знаю.
Севергун

@Severgun Поки ви знаєте, які недоліки, ви будете добре, на мою думку. ZFS має багато приємних функцій (наприклад, знімки), які працюють незалежно від інших. Більшість порад в Інтернеті наголошує на важливості найкращих практик у всіх сферах, але це рекомендації, а не суворі вимоги. Цей момент стане менш важливим у майбутньому, оскільки дедалі більше дистрибутивів LInux змінюється на ZFS, а більшість систем Linux працює віртуалізовано, тому вони матимуть вашу конкретну ситуацію.
користувач121391

1
Причина, що ZFS поверх логічних томів HW RAID - ДУЖЕ БАДА, полягає в тому, що ZFS вимагає доступу на рівні блоку, щоб фактично правильно функціонувати. Це так погано, що навіть недостатньо добре, щоб його називали неправильним. Ви, мабуть, не знаєте, що означає апаратне забезпечення, сумісне з NEBS, 3? окрім того, що це супер дупер швидко. ZFS - це багато хорошого. "супер пупер швидкий" НЕ один із них. Це швидка файлова система. Так це і є . З плином файлових систем ZFS не швидко.
Ендрю Генле
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.