Хостинг сервера ZFS як віртуальний гість


23

Я все ще новачок у ZFS. Я використовую Nexenta, але думаю про перехід на OpenIndiana або Solaris 11 Express. Зараз я зараз розглядаю можливість віртуалізації сервера ZFS як гостя в рамках ESXi, Hyper-V або XenServer (я ще не вирішив, який із них - я схиляюся до ESXi для підтримки VMDirectPath та FreeBSD).

Основна причина полягає в тому, що, здається, у мене є достатньо ресурсів, щоб обійти, що я міг легко мати 1-3 інших віртуальних машин, що працюють одночасно. Переважно Windows Server. Можливо, і Linux / BSD VM. Мені б хотілося, щоб у віртуалізованого сервера ZFS розмістилися всі дані для інших VM, щоб їх дані могли зберігатися на фізично відокремлених дисках від ZFS-дисків (mount as iscsi або nfs).

На даний момент сервер має AMD Phenom II з 6 загальними ядрами (2 розблоковані), 16 Гб оперативної пам’яті (з вилученим пакетом) та LSI SAS 1068E HBA з приєднаними дисками (7) 1 ТБ SATA II (планування на RAIDZ2 з гарячою запасною). Також у мене на материнській платі встановлено (4) 32 ГБ SATA II SSD-дисків. Я сподіваюся віддзеркалити два SSD-накопичувача до дзеркала завантаження (для віртуального хоста), а інші два SSD-диски залиште для ZIL та L2ARC (для гостя ZFS VM). Я готовий додати ще два диски для зберігання гостей VM та виділити всі сім поточних дисків як сховище ZFS. Примітка: материнська плата НЕ має підтримки IOMMU як 880G не підтримує його, але у мене є 890FX рада , який дійсно є IOMMU , якщо це має величезне значення.

Мої запитання:

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

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


Ви кажете, що хочете розмістити дані для всіх інших VM. Чи вважаєте ви, що хочете дедуплікації в якийсь момент? Якщо це так, це дійсно має бути на власній машині, оскільки дедуплікація дуже велика пам'ять. Чому б не поглянути на щось на зразок SmartOS для ваших потреб ZFS? Таким чином ви отримуєте і гіпервізора.
devicenull

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

Відповіді:


38

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

Щоб відповісти на ваші запитання:

  • Визначення того, чи справді це мудрий підхід, залежить від ваших цілей. Що ви намагаєтеся досягти? Якщо у вас є технологія (ZFS) і шукаєте додаток для неї, то це погана ідея. Вам краще використовувати належний апаратний RAID-контролер та запустити свої VM на локальному розділі VMFS. Це шлях найменшого опору. Однак якщо у вас є конкретні причини, які ви хочете використовувати ZFS (реплікація, стиснення, безпека даних, портативність тощо), то це, безумовно, можливо, якщо ви готові докласти зусиль.

  • Продуктивність сильно залежить від вашого дизайну, незалежно від того, ви працюєте на голому металі чи віртуальному. Використання PCI-проходу (або AMD IOMMU у вашому випадку) є вкрай важливим, оскільки ви б забезпечили прямий доступ свого ZFS VM до контролера зберігання даних та SAS. Поки вашому віртуозному машині виділяється відповідна кількість оперативної пам’яті та процесорних ресурсів, продуктивність майже настільна. Звичайно, дизайн вашого басейну має значення. Врахуйте дзеркала проти RAID Z2. ZFS масштабує через vdevs, а не кількість дисків .


Моя платформа VMWare ESXi 5, і моя краща операційна система ZFS-сумісна операційна система NexentaStor Community Edition .

Це мій домашній сервер . Це HP ProLiant DL370 G6, на якому працює внутрішня карта SD ESXi. Два дзеркальних 72 ГБ диска в центрі пов'язані з внутрішнім RAID-контролером Smart Array P410 і утворюють об'єм VMFS. Цей об'єм містить NexentaStor VM. Пам'ятайте, що віртуальна машина ZFS повинна жити десь на стабільному сховищі.

Існує контролер LSI 9211-8i SAS підключений до дисководів корпус шість 1TB SATA дисків справа. Він передається віртуальній машині NexentaStor, що дозволяє Nexenta бачити диски як налаштування RAID 1 + 0. Диски - це приводи el-cheapo Western Digital Green WD10EARS, правильно вирівняні з модифікованим zpoolбінарним файлом.

У цій установці я не використовую пристрій ZIL або кеш-пам'ять L2ARC.

введіть тут опис зображення

VM має 6 Гб оперативної пам’яті та виділено 2 vCPU. У ESXi, якщо ви використовуєте PCI-прохід, буде створено резервування пам'яті для повного обсягу призначеної оперативної пам'яті VM.

Я даю NexentaStor VM два мережеві інтерфейси. Один призначений для управління трафіком. Інший є частиною окремого vSwitch та має інтерфейс vmkernel (без зовнішньої висхідної лінії зв'язку). Це дозволяє VM надавати сховище NFS, встановлене ESXi через приватну мережу. Ви можете легко додати інтерфейс висхідної лінії зв'язку, щоб забезпечити доступ до зовнішніх хостів.

Встановіть нові VM в експортованому ZFS сховищі даних. Обов’язково встановіть параметри "Запуск / вимкнення віртуальної машини" в ESXi. Ви хочете, щоб VM для зберігання завантажувався перед гостьовими системами та вимикався останнім.


введіть тут опис зображення

Ось результати bonie ++ та іозону пробігу безпосередньо на NexentaStor VM. Стиснення ZFS вимкнено, щоб тест показав більше відносних чисел, але на практиці завжди слід активувати стиснення ZFS (не gzip) .

# bonnie++ -u root -n 64:100000:16:64

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
saint           12G   156  98 206597  26 135609  24   410  97 367498  21  1478  17
Latency               280ms    3177ms    1019ms     163ms     180ms     225ms
Version  1.96       ------Sequential Create------ --------Random Create--------
saint               -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min        /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
    64:100000:16/64  6585  60 58754 100 32272  79  9827  58 38709 100 27189  80
Latency              1032ms     469us    1080us     101ms     375us   16108us

# iozone -t1 -i0 -i1 -i2 -r1m -s12g

    Iozone: Performance Test of File I/O

    Run began: Wed Jun 13 22:36:14 2012

    Record Size 1024 KB
    File size set to 12582912 KB
    Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s12g
    Output is in Kbytes/sec
    Time Resolution = 0.000001 seconds.
    Throughput test with 1 process
    Each process writes a 12582912 Kbyte file in 1024 Kbyte records

    Children see throughput for  1 initial writers  =  234459.41 KB/sec
    Children see throughput for  1 rewriters        =  235029.34 KB/sec
    Children see throughput for  1 readers          =  359297.38 KB/sec
    Children see throughput for 1 re-readers        =  359821.19 KB/sec
    Children see throughput for 1 random readers    =   57756.71 KB/sec
    Children see throughput for 1 random writers    =  232716.19 KB/sec

Це графік NexentaStor DTrace, що показує IOPS VM для зберігання та швидкість передачі даних під час тестового запуску. 4000 IOPS і 400+ мегабайт / секунда є досить розумним для таких низькодискових дисків. (великий розмір блоку, хоча) введіть тут опис зображення

Інші примітки.

  • Ви хочете протестувати ваші SSD, щоб побачити, чи можуть вони бути представлені безпосередньо в VM або чи DirectPath обирає весь контролер материнської плати.
  • У вас недостатньо потужності процесора, тому обмежте накопичувач на 2 vCPU.
  • Не використовуйте RAIDZ1 / Z2 / Z3, якщо вам дійсно не потрібно місця на диску.
  • Не використовуйте дедуплікацію. Стиснення безкоштовне і дуже корисне для віртуальних машин. Дедуплікація потребує набагато більше оперативної пам’яті + L2ARC, щоб бути ефективною.
  • Почніть без SSD-дисків і додайте їх, якщо потрібно. Певні навантаження не впливають на ZIL або L2ARC .
  • NexentaStor - це повний пакет. Користь у надійного GUI управління, однак, я також чув успіх у Napp-It .

+1. Дякую за всю інформацію! Щоб відповісти на ваше запитання, я роблю це з кількох причин. Я багато в чому роблю це для використання інших ядер процесора для створення одного або двох інших VM (не виконуючи ZFS) і для забезпечення цілі iSCSI для мого віртуального сервера Opteron. Мої причини ZFS - стискання та безпека даних та реплікація (не в певному порядку). Дедупе виглядає дуже круто, але щодо ресурсів та моїх даних я не впевнений, чи потрібно. Я зараз використовую Nexenta, але я розглядав можливість переходу на Solaris Express або OpenIndiana, якщо продовжуватиму купувати на дисках, щоб перевищити ліміт 18TB.
osij2is

Отже, я розумію ваш коментар щодо того, використовувати чи не використовувати SSD для L2ARC чи ZIL, і я готовий зробити саме це. Спершу подивіться продуктивність, ТОГО визначте, чи потрібно додати ZIL та / або ARC. Що стосується дзеркальних проти RAIDZ, прочитавши ваші коментарі і читати цей блог ( constantin.glez.de/blog/2010/01 / ... ) Я припускаю дзеркальне відображення має невелику перевагу. Мені не дуже потрібен простір на диску, але якщо я можу мати надмірність та можливість швидкого читання / запису, я думаю, я перейду до цього. Який би місце для зберігання я не міг би поглянути насправді, цього не варто.
osij2is

Плюс пам’ятайте, що компресія корисна. Я плачу за комерційну систему Nexenta за клієнтські системи та що-небудь більше 18 ТБ. Але ті ж поради стосуються і OpenIndiana.
ewwhite

Використовуєте ви V1 E1000 або VMXNet3 vnic для мережі NFS? Тому що я отримую лише 1 гбіт / с між Nexenta / Solaris і VMware за допомогою подібної установки і не можу зрозуміти, як отримати більшу швидкість. Яка версія NexentaStor? Я підозрюю, що версія, яку вони наразі є в наявності, зламана ...
Josh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.