Я створив ряд таких налаштувань зберігання 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 .