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

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

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

В настоящее время на сервере имеется AMD Phenom II с 6 полными ядрами (2 разблокированных), 16 ГБ оперативной памяти (maxed out) и LSI SAS 1068E HBA с подключенными (7) 1TB SATA II дисками (планирование RAIDZ2 с помощью горячего резерва). У меня также есть (4) 32 ГБ SATA II SSD, прикрепленные к материнской плате. Я надеюсь отобразить два из SSD в зеркало загрузки (для виртуального хоста) и оставить два других SSD для ZIL и L2ARC (для гостевой системы ZFS VM). Я хочу добавить еще два диска для хранения гостей VM и выделить все семь из текущих дисков в качестве хранилища ZFS. Примечание. Материнская плата not поддерживает IOMMU, поскольку 880G ее не поддерживает, но у меня есть плата 890FX, у которой есть IOMMU, если она имеет огромное значение.

Мои вопросы:

1) Способно ли это сделать? Я не вижу явно недостатков (что заставляет меня задаться вопросом, почему никто не упомянул об этом). Я чувствую, что могу сделать огромный надзор, и я бы не хотел этого делать, перебирать все свои данные только для того, чтобы пойти на фубар с какой-то мельчайшей детали, которую я пропустил.

2) Виртуальная гостевая производительность ZFS? Я готов принять небольшой удар по производительности, но я думаю, что если гостевой компьютер VM имеет полный доступ к дискам, который, по крайней мере, производительность дискового ввода-вывода будет незначительной (по сравнению с запуском ZFS без виртуализации) , Может ли кто-нибудь говорить об этом из опыта размещения сервера ZFS в качестве гостевой системы VM?

22 голоса | спросил osij2is 6 J0000006Europe/Moscow 2012, 21:41:33

1 ответ


37

Я построил ряд этих «все-в-одном» установок хранения ZFS. Первоначально вдохновленный отличными сообщениями в Вездесущий разговор , мое решение использует несколько иной подход к разработке аппаратного обеспечения, но дает результат инкапсулированного виртуализованного хранилища ZFS.

Чтобы ответить на ваши вопросы:

  • Определение того, является ли это разумным подходом, действительно зависит от ваших целей. Что вы пытаетесь достичь? Если у вас есть технология (ZFS) и вы ищете приложение для нее, то это плохая идея. Вам лучше использовать правильный аппаратный RAID-контроллер и запустить ваши виртуальные машины на локальном разделе VMFS. Это путь наименьшего сопротивления. Однако, если у вас есть определенная причина для использования ZFS (репликация, сжатие, защита данных, переносимость и т. Д.), То это определенно возможно, если вы готовы приложить усилия.

  • Производительность сильно зависит от вашего дизайна, независимо от того, работаете ли вы на голой или виртуальной. Использование PCI-passthrough (или AMD IOMMU в вашем случае) имеет важное значение, так как вы предоставляете прямой доступ к виртуальной машине ZFS VM к контроллеру хранения SAS и дискам. Пока вашей виртуальной машине выделяется достаточное количество ресурсов ОЗУ и ЦП, производительность близка к скорости. Конечно, ваш дизайн бассейна имеет значение. Учитывайте зеркала и RAID Z2. ZFS масштабирует через vdevs, а не количество дисков .


Моя платформа VMWare ESXi 5 и моей предпочтительной операционной системой, поддерживающей ZFS, является NexentaStor Community Edition .

Это мой сервер . Это HP ProLiant DL370 G6 с ESXi с внутренней SD Card. Два зеркальных 72GB-диска в центре связаны с внутренним RAID-массивом Smart Array P410 и образуют том VMFS. Этот том содержит виртуальную машину NexentaStor. Помните, что виртуальная машина ZFS должна жить где-то на стабильном хранилище.

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

Я не использую устройство ZIL или любой кеш L2ARC в этой установке.

введите описание изображения здесь>> </p>

<p> VM имеет 6 ГБ ОЗУ и 2 выделенных vCPU. В ESXi, если вы используете пересылку PCI, будет создано резервное копирование памяти для полной суммы назначенной RAM виртуальной машины. </p>

<p> Я предоставляю NexentaStor VM два сетевых интерфейса. Один для управления трафиком. Другой является частью отдельного vSwitch и имеет интерфейс vmkernel (без внешней восходящей линии связи). Это позволяет VM обеспечивать хранилище NFS, монтируемое ESXi через частную сеть. Вы можете легко добавить интерфейс восходящей линии связидля обеспечения доступа к внешним хостам. </p>

<p> Установите новые виртуальные машины в загружаемом ZFS хранилище данных. Обязательно установите параметры «Включение /выключение виртуальной машины» в ESXi. Вы хотите, чтобы виртуальная машина хранения загружалась перед гостевыми системами и завершала последнюю. </p>

<hr>
<p> <img src =

Вот bonnie ++ и iozone результаты запуска непосредственно на виртуальной машине NexentaStor. Сжатие ZFS отключено, чтобы тест показывал больше ссылочных номеров, но на практике для сжатия по умолчанию ZFS (не gzip) должно быть включено always .

# 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 хранилища и скорости передачи данных во время тестового прогона. 4000 IOPS и 400+ мегабайт в секунду довольно приемлемы для таких низкопроизводительных дисков. (большой размер блока, хотя) введите описание изображения здесь>> </p>

<p> Другие примечания. </p>

<ul>
<li> Вам нужно протестировать ваши SSD, чтобы узнать, могут ли они быть представлены непосредственно VM или если DirectPath выбирает весь контроллер материнской платы. </li>
<li> У вас не так много мощности процессора, поэтому ограничьте память до 2 vCPU. </li>
<li> Не используйте RAIDZ1 /Z2 /Z3, если вам действительно не требуется дисковое пространство. </li>
<li> Не используйте дедупликацию. Сжатие является бесплатным и очень полезно для виртуальных машин. Для эффективной дедупликации потребуется гораздо больше ОЗУ + L2ARC. </li>
<li> Начните без SSD и добавьте их, если необходимо. Определенные рабочие нагрузки <a href= не попадают в ZIL или L2ARC .

  • NexentaStor - это полный пакет. Преимущество в том, что у вас есть надежный графический интерфейс управления, однако я слышал об успехе с Napp-It .
  • ответил ewwhite 14 J0000006Europe/Moscow 2012, 08:22:54

    Похожие вопросы

    Популярные теги

    security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132