среда, 22 мая 2013 г.

ESXi Home Server AIO: Часть 3. Virtual NAS.

   В моем случае NAS является виртуальной машиной, запускаемой с локального SSD хоста, в которую прокинут контроллер с дисками. В качестве системы был выбран Nas4Free в Embedded исполнении. 
   Из достоинств N4F можно выделить:
  • работа на RAM-диске после запуска, что освобождает от нагрузки и износа локальный SSD хоста ESXi;
  • поддержка ZFS со всеми его преимуществами (RAIDZ, снапшоты, шифрование, сжатие);
  • поддержка дополнительных сервисов из коробки и возможность доустановки своих через jail;
  • поддержка работы в виртуализованной среде (vmxnet3, vm-tools);
  • управление через webgui с мониторингом smart дисков и оповещениями;
  • обилие информации на официальном форуме и форумах FreeNAS, от которого N4F когда-то отпочковался.
   Сама система N4F потребляет совсем мало ресурсов в работе, но при использовании RAIDZ и дополнительных сервисов требуется учесть расходы на их обслуживание. Создаем машину со следующим набором виртуального железа:
   После создания машины, но до ее запуска проводим дополнительную настройку:
  • удаляем floppy, он нам не нужен;
  • прицепляем привод с дистрибутивом N4F;
  • отключаем логирование машины (Options|Advanced|General|Enable logging убрать отметку). Если машина исправно работает, то оно мне ни к чему;
  • заставляем загрузиться в BIOS при следующем старте (Options|Advanced|Boot Options|Force BIOS Setup поставить отметку). Там отключим ненужные COM, LPT порты. 
  • резервируем память (Resources|Memory|Reserve All... установить отметку). Это гарантирует, что для нужд данной машины при любом оверкоммите других машин будет достаточно памяти на хосте, а также уменьшит размер виртуального свопа .vswp до 0. Что в свою очередь гарантирует, что ни при каких условиях не будет свопа памяти машины на локальный SSD.
  • пока контроллер с дисками не пробрасываем, иначе машина застрянет на этапе загрузки с сообщением "run_interrupt_driven_hooks:"
   Теперь машину можно стартовать. После отключения ненужнох контроллеров в BIOS грузимся и выбираем вариант 1: Install 'embedded' OS on HDD/Flash/USB. Установка у меня продлилась меньше минуты, размер получившегося vmdk - около 115мб.
   После установки начальных параметров (адрес,пароля, пользователь и т.д.) избавляемся от проблем с контроллером SAS2008: в вэбинтерфейсе N4F идем в Advanced|File Editor, в File path вбиваем /cf/boot/loader.conf и жмем Load. В загруженном файле добавляем строку:
hw.pci.enable_msix="0"
и жмем Save.
   Затем добавляем загрузку vmware-tools, для чего заходим в System|Advanced|rc.conf и добавляем пару переменных:
Выключаем машину, пробрасываем контроллер и запускаем обратно.
   Теперь будут загружаться 3rd-party/Independent vm-tools, и в опциях управления питанием виртуальной машины станут активны Shut Down Guest и Restart Guest, а значит можно корректно завершать ее работу (например, по сигналу от vcenter при переходе на UPS).
   Физические диски на контроллере также теперь доступны, но для поддержки чтения smart при их добавлении необходимо устанавливать параметр -d sat в поле S.M.A.R.T. extra options.
   Последним этапом подготовки системы можно считать настройку параметров zfs под использование всей доступной выделенной памяти. Это не делается автоматом, но можно поставить расширение GUI для донастройки. Я предпочел править руками loader.conf, для чего он загружается во встроенном редакторе как описано выше. Подробности о примененных параметрах здесь.
   Мой окончательный файл выглядит так:
mfsroot_load="YES"
mfsroot_type="mfs_root"
mfsroot_name="/mfsroot"
hw.est.msr_info="0"
hw.hptrr.attach_generic="0"
kern.maxfiles="65536"
kern.maxfilesperproc="50000"
kern.cam.boot_delay="8000"
autoboot_delay="3"
isboot_load="YES"
zfs_load="YES"
#SAS2008 Tune
hw.pci.enable_msix="0" # Driver Interrupts problem SAS2008
#KERNEL TUNE
vm.kmem_size="7424M"
vfs.zfs.arc_min="768M"
vfs.zfs.arc_max="5568M"
vfs.zfs.prefetch_disable="0"
vfs.zfs.txg.timeout="5"
vfs.zfs.vdev.max_pending="6"
vfs.zfs.vdev.min_pending="2"
   Настройки sysctl.conf, указанные на ixbt привели к снижению скорости записи/чтения по сети, потому их вернул на первоначальные.
   Дальше пойдет сборка массивов RAIDZ и настройка сервисов.






Комментариев нет:

Отправить комментарий