Передовий досвід ZFS з апаратним RAID


30

Якщо у вас є одне обладнання, яке має серверне обладнання, чи доцільно запустити ZFS поверх апаратного RAID1 чи іншого такого? Чи слід вимкнути апаратний RAID та запустити ZFS на a mirrorчи a raidz zpool?

Якщо апаратний RAID функціонал вимкнено, чи більш-менш ймовірно приховувати помилки читання та запису контролерів на основі апаратних RAID та SAS, ніж не-апаратні RAID-контролери?

Що стосується не настроюваних серверів, якщо у вас виникає ситуація, коли апаратний RAID-контролер фактично не відрізняється від витрат (або навіть знижує вартість запропонованого сервера, оскільки його наявність покращує ймовірність надання хостинговою компанією додаткового IPMI доступ), чи його взагалі слід уникати? Але чи слід його шукати?



2
@ShaneMadden, питання схожі, однак, моє запитання вже виходить з точки зору того, що апаратний рейд є поганим щодо zfs, і я запитую, наскільки це погано; також врахуйте, що прийнята відповідь на ваше пов’язане питання взагалі не стосується мого питання; моє запитання більше нагадує подальше запитання до питання, яке ви пов’язали.
cnst

"ZFS поверх апаратного дзеркального відображення або просто дзеркальне відображення в ZFS?" і це питання - дві різні теми. Ця інша тема є більш вузькою за обсягом, ніж ця.
Стефан Ласєвський

@ewwhite, ти цього вже не запитував?
cnst

@cnst Добре, що жодної помітної відповіді немає, і люди продовжують заперечувати мою відповідь. Тож було б непогано, щоб було якесь закриття поставленого питання. ( це відповідальна річ )
ewwhite

Відповіді:


17

Ідея ZFS полягає в тому, щоб якомога більше знати про те, як поводяться диски. Тоді, від гіршого до кращого:

  • Налаштування обладнання (ZFS абсолютно не має поняття про реальне обладнання),
  • Режим JBOD (Проблема стосується будь-якого потенційного розширювача: менша пропускна здатність),
  • Режим HBA є ідеальним (ZFS знає все про диски)

Оскільки ZFS досить параноїчний щодо апаратного забезпечення, чим менше приховування там, тим більше він може впоратися з будь-якими проблемами з обладнанням. І як зазначає Sammitch , конфігурації RAID Controller та ZFS можуть бути дуже важкими для відновлення або перенастроювання, коли він не працює (тобто апаратний збій).

Щодо питання стандартизованого обладнання з деяким апаратним RAID-контролером, будьте обережні, щоб апаратний контролер мав реальний режим пропускання або JBOD.


10
Варто також зазначити, що якщо ви використовуєте HW RAID і ваш контролер гине [трапляється більше, ніж ви могли б подумати], якщо ви не можете отримати заміну, яка є однаковою або повністю сумісною, ви маєте надію. З іншого боку, якщо ви передали неочищені диски в ZFS, ви можете підключити ці диски назад до будь-якого контролера на будь-якій машині, і ZFS може відновити масив і продовжувати так, як нічого не сталося.
Саммітч

1
Сервери високого класу зазвичай мають бортові RAID-контролери. Наприклад, мені ніколи не доводилося замінювати контролер в системі HP або Dell.
ewwhite

2
Ця відповідь нічого не відповідає. Він висловлює просто упереджену думку, що постачальник серверного обладнання та програміст ZFS зробили кращу роботу, ніж постачальник контролера RAID та програміст програмного забезпечення RAID. Спільнота FreeNAS повна хлопців, які вбили Zpools через несправність пам'яті сервера або невідповідні джерела живлення. Шанс, що щось не вдається, вищий, ніж щось маленьке.
закінчення

14

Q. Якщо у вас є одне обладнання, яке має серверне обладнання, чи доцільно коли-небудь запускати ZFS поверх апаратного RAID1 чи іншого такого?

A. Вкрай бажано запускати ZFS прямо на диск, а не використовувати будь-яку форму RAID між ними. Незалежно від того, система, яка ефективно вимагає використання RAID-картки, виключає використання ZFS, більше стосується ІНШИХ переваг ZFS, ніж резистентності даних. Зверніть увагу, якщо є основна RAID-карта, відповідальна за надання одного LUN до ZFS, ZFS не збирається покращувати стійкість даних. Якщо вашою єдиною причиною спілкування з ZFS в першу чергу є поліпшення стійкості даних, то ви просто втратили будь-яку причину для його використання. Однак, ZFS також пропонує ARC / L2ARC, стиснення, знімки, клони та різні інші вдосконалення, які ви також могли б захотіти, і в цьому випадку, можливо, це все-таки ваша файлова система на вибір.

Q. Чи слід вимкнути апаратний RAID і замість цього запустити ZFS на дзеркалі чи raidz zpool?

А. Так, якщо це взагалі можливо. Деякі карти RAID дозволяють пропускати режим. Якщо він має, це найкраще робити.

З. Якщо апаратний RAID функціонал вимкнено, чи більш-менш ймовірно приховувати помилки читання та запису контролерів на основі апаратних RAID та SAS, ніж не-апаратні RAID-контролери?

A. Це повністю залежить від відповідної RAID-карти. Вам доведеться попрацювати над посібником або звернутися до виробника / продавця карти RAID, щоб дізнатися це. Деякі дуже роблять, так, особливо якщо "вимкнення" функціональності RAID насправді не вимикає його повністю.

З точки зору не настроюваних серверів, якщо у вас виникає ситуація, коли апаратний RAID-контролер фактично не відрізняється від витрат (або навіть знижує вартість запропонованого сервера, оскільки його наявність підвищує ймовірність надання хостинговою компанією послуги) додатковий доступ до IPMI), чи варто взагалі цього уникати? Але чи слід його шукати?

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

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

Крім того, є деякі свідчення, що дозволяють припустити, що дуже різний спосіб, в якому ZFS спілкується з LUN, на відміну від більш традиційних файлових систем, часто викликає кодові шляхи в контролері RAID та робочі навантаження, які вони не такі, як раніше, що можуть призвести до диваків. Найголовніше, що ви, мабуть, зробите собі послугу, відключивши функціональність ZIL повністю в будь-якому пулі, розміщеному поверх одного LUN, якщо ви також не надаєте окремий пристрій журналу, хоча, звичайно, я б дуже рекомендував вам НЕ надайте пулу окремий необроблений пристрій журналу (це не LUN ​​з карти RAID, якщо це можливо).


9

Я запускаю ZFS поверх RAID-конфігурацій HP ProLiant Smart Array досить часто.

Чому?

  • Тому що мені подобається ZFS для розділів даних, а не завантажувальних розділів.
  • Оскільки завантаження Linux та ZFS, напевно, зараз для мене недостатньо надійне.
  • Оскільки HP RAID-контролери не дозволяють RAW-пристроям пройти повний перехід . Налаштування декількох томів RAID 0 не те саме, що диски RAW.
  • Оскільки типи серверів, як правило, не є досить гнучкими, щоб присвятити відсіки приводу певному контролеру або розділити завдання між двома контролерами. У наші дні найчастіше ви бачите 8 та 16-смугові установки. Не завжди достатньо сегментувати так, як повинні бути.
  • Але мені все одно подобаються можливості управління обсягом ZFS. Zpool дозволяє мені динамічно вирізати речі та максимально використовувати наявний простір на диску.
  • Стиснення, ARC та L2ARC - вбивчі особливості!
  • Правильно розроблена програма ZFS на апаратному RAID все ще дає гарне попередження та попередження про помилки, але перевершує рішення, яке стосується лише обладнання.

Приклад:

Конфігурація RAID-контролера.

[root@Hapco ~]# hpacucli ctrl all show config

Smart Array P410i in Slot 0 (Embedded)    (sn: 50014380233859A0)

   array B (Solid State SATA, Unused Space: 250016  MB)
      logicaldrive 3 (325.0 GB, RAID 1+0, OK)

      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, Solid State SATA, 240.0 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, Solid State SATA, 240.0 GB, OK)

блокувати список пристроїв

[root@Hapco ~]# fdisk  -l /dev/sdc

Disk /dev/sdc: 349.0 GB, 348967140864 bytes
256 heads, 63 sectors/track, 42260 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       42261   340788223   ee  GPT

конфігурація zpool

[root@Hapco ~]# zpool  list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol1   324G  84.8G   239G    26%  1.00x  ONLINE  -

деталь zpool

  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h4m with 0 errors on Sun May 19 08:47:46 2013
config:

        NAME                                      STATE     READ WRITE CKSUM
        vol1                                      ONLINE       0     0     0
          wwn-0x600508b1001cc25fb5d48e3e7c918950  ONLINE       0     0     0

Перелік файлової системи zfs

[root@Hapco ~]# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
vol1            84.8G   234G    30K  /vol1
vol1/pprovol    84.5G   234G  84.5G  -

Що стосується закритого питання, з яким ви пов’язані, чи варто сказати, що якщо я хочу використовувати ZFS, я краще уникати, наприклад, Dell PERC H200 та HP P410? У них все ще немає способу відключити режим апаратного рейду, будь то RAID0 чи RAID1?
cnst

Отже, схоже, що dell.com/learn/us/en/04/campaigns/dell-raid-controllers заявляє, що H200 "підтримує не RAID", хоча h18004.www1.hp.com/products/servers/proliantstorage/ … Не зовсім зрозуміло, можна чи не можна вимкнути функцію рейду P410 або не можна.
cnst

@cnst Ви не можете відключити функцію RAID HP Smart Array P410.
ewwhite

Це все-таки правильно? Ви хочете сказати, що немає небезпечного запуску ZFS на апаратному рейді?
розріджений

Правильно. Це не небезпечно.
ewwhite

5

Зазвичай ви ніколи не повинні запускати ZFS поверх дисків, налаштованих у масиві RAID. Зауважте, що ZFS не повинен працювати в режимі RAID. Можна просто використовувати окремі диски. Однак практично 99% людей працюють із ZFS для його частини. Ви можете просто запустити свої диски в смугастому режимі, але це погане використання ZFS. Як і інші плакати казали, ZFS хоче знати багато про обладнання. ZFS слід підключати лише до карти RAID, яку можна встановити в режим JBOD або бажано підключити до HBA. Перейти на канал Freenode IRC #openindiana; будь-який із експертів ZFS на каналі скаже вам те саме. Попросіть свого хостинг-провайдера надати режим JBOD, якщо вони не дадуть HBA.


1
Так, я згоден. Але також справа в тому, що є на складі з конфігурацією, яка відповідає рахунку та специфікації. Якщо сервер має чудовий процесор, багато ECC оперативної пам’яті, велику пропускну спроможність і багато цього, але він має поставитись з апаратним RAID, шукати альтернативи, можливо, в кілька разів дорожче, через те, що перебуваєте в іншій категорії або близько того, або відсутні деякі функції підприємства, такі як оперативна пам'ять ECC тощо
cnst

2

Коротше кажучи: використання RAID нижче ZFS просто вбиває ідею використання ZFS. Чому? - Тому що він призначений для роботи на чистих дисках, а не на RAID.


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

3
@ewwhite, ну хтось може їздити на велосипеді, гуляючи біля нього, кажучи, що він любить ходити і любить велосипеди взагалі, але правда - велосипеди створені для того, щоб їздити на них. )
poige

2

Для всіх вас ... ZFS над будь-яким рейдом - це загальна ПІДПРИЄМСТВО і робиться тільки людьми з MAD! ... як, наприклад, використання ZFS з пам'яттю, що не містить ECC.

Зі зразками ви зрозумієте краще:

  • ZFS через Raid1, один диск трохи змінився, коли його не вимкнено ... огляньте все, що ви знаєте, ZFS побачить певні пошкодження чи не залежать від того, який диск читається (контролер Raid не бачив, що цей біт змінився, і думаю, що обидва диски в порядку ) ... якщо помилка в частині VDEV ... весь ZPOOL втрачає всі свої дані назавжди.
  • ZFS через Raid0, один диск трохи змінився, коли його не вимкнули ... зізнайтеся все, що ви знаєте, (Рейдер-контролер не бачив, що біт змінився і думаю, що обидва диски в порядку) ... ZFS побачить цю шкоду, але якщо Провал у частині VDEV ... весь ZPOOL назавжди втрачає всі свої дані.

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

Це та сама проблема, що і коли трохи в модулі оперативної пам'яті мимовільно змінюється, не вимагаючи ... якщо пам'ять є ECC, пам'ять виправляє її самостійно; якщо ні, ці дані були змінені, так що дані будуть відправлені на модифіковані диски; дізнайтеся, що зміни не в частині UDEV, якщо помилка є у частині VDEV ... весь ZPOOL втрачає всі свої дані назавжди.

Це слабкість щодо ZFS ... Неможливість VDEV означає, що всі дані втрачаються назавжди.

Hardware Raid та Software Raid не можуть виявити спонтанні зміни бітів, у них немає контрольних сум, найгірше на рівнях Raid1 (дзеркала), вони читають не всі частини та порівнюють їх, вони вважають, що всі частини завжди матимуть однакові дані, ВСЕГО (я кажу це голосно) Raid передбачає, що дані не змінилися жодною іншою річчю / способом ... але диски (як пам'ять) схильні до спонтанних змін бітів.

Ніколи не використовуйте ZFS на оперативній пам'яті, що не стосується ECC, і ніколи не використовуйте ZFS на рейдованих дисках, нехай ZFS бачить усі диски, не додайте шару, який може зруйнувати ваші VDEV та POOL.

Як імітувати такі помилки ... вимкнути ПК, вийняти один диск із цього Raid1 та змінити лише один біт ... відновити і побачити, як контролер Raid не може знати, що змінилося ... ZFS може тому, що всі зчитування перевірені проти контрольної суми, і якщо вона не відповідає, прочитайте форму іншої частини ... Raid ніколи не читайте повторно, тому що вийшов з ладу (за винятком апаратного неможливого читання) ... якщо Raid може прочитати, він вважає, що дані в порядку (але це не в таких випадках ) ... Raid намагайтеся читати лише з іншого диска, якщо там, де він читає, сказано: "ей, я не можу прочитати звідти, апаратне забезпечення не вдається" ... ZFS читає з іншого диска, якщо контрольна сума не відповідає так само, як ніби там, де він читає каже "ей, я не можу прочитати звідти, апаратне забезпечення вийшло з ладу".

Сподіваюсь, я дозвольте це зрозуміти ... ZFS за будь-який рівень рейду - це великий біль і загальний ризик для ваших даних! а також ZFS для пам'яті, що не стосується ECC.

Але те, що ніхто не каже (крім мене):

  • Не використовуйте диски з внутрішнім кешем (не тільки ті SHDD, але й ті, які мають 8Mib до 32MiB кеш тощо) ... деякі з них використовують не-ECC пам'ять для такого кешу
  • Не використовуйте SATA NCQ (спосіб запису в чергу), оскільки це може зруйнувати ZFS, якщо живлення втрачається

То які диски використовувати?

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

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

Ризики існують ... такі збої можуть виникати ... тому краща відповідь:

  • Намагайтеся не розміщувати жодного шару між ZFS та там, де дані дійсно зберігаються (RAM, Raid, NCQ, внутрішній кеш-диск тощо) ... стільки, скільки ви можете собі дозволити.

Що я особисто роблю?

  • Покладіть кілька шарів більше ... я використовую кожен 2,5-дюймовий диск SATA III 7200 об / хв на корпусі USB 3.1 Gen2 типу C, я підключаю кілька корпусів до USB 3.1 Gen 2 типу A концентратор, який я підключаю до ПК; інший до іншого концентратора що я підключаюся до іншого кореневого порту на ПК тощо.
  • Для системи я використовую внутрішні роз'єми sata на рівні ZFS (Raid0), тому що я використовую інтуїтивну систему (як LiveCD) Linux, кожне завантаження однакового вмісту на внутрішніх дисках ... і у мене є зображення клону системи, яку я можу відновити (менше 1GiB системи) ... також я використовую трюк, щоб мати систему, що міститься у файлі, і використовувати накопичувач RAM, де я клоную її під час завантаження, тому після завантаження всієї системи працює в оперативній пам'яті ... ставимо такий файл на DVD я також можу завантажуватись так само, тому в разі виходу з ладу внутрішніх дисків, я просто завантажуюся з DVD та системою знову в мережі ... подібний трюк до SystemRescueCD, але трохи складніший, бо ISO файл може бути на внутрішній ZFS або просто бути справжнім DVD, і я не хочу двох різних версій.

Сподіваюся, що я міг би дати трохи світла на ZFS проти Raid, це справді біль, коли справи йдуть не так!


Отже, ви говорите, що ZFS настільки ненадійний, що якщо змінити один біт, ви можете втратити всю файлову систему? Як SATA NCQ викликає втрату даних, коли накопичувач все-таки повідомляє хоста лише тоді, коли сектори були записані успішно (хоча і в іншому порядку)?
Malvineous
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.