Nas4Free настройка virtualbox: Virtualbox на nas4free из коробки: сервер, noVNC клиент – Virtualbox на nas4free, ч 1, сервер

Virtualbox на nas4free из коробки: сервер, noVNC клиент

Гипервизор VirtualBox на сборках 10.2.02.1906 и более поздних - коробочный функционал nas4free. А также phpVirtualBox для управления из вебгуя и noVNC (HTML5 VNC клиент, эмулирующий монитор, клавиатуру и мышь виртуальной машины через вебгуй).Этот пост - об их использовании.

NB Если вы использовали ранее VirtualBox как расширение - его надо заблаговременно снасти и сделать несколько дополнительных телодвижений, см подробнее. Само расширение VirtualBox более не поддерживается за ненадобностью, пост о его установке частично устарел.

Из функционала, ранее доступного в расширении, коробочный VirtualBox не поддерживает (пока?) сохранение состояния виртуальных машин при остановке хоста.

1) VirtualBox доступен через вебгуй Advanced-> VirtualBox UPD VM|VirtualBox в более новых версиях /UPD
При выборе раскрывается такой диалог

Здесь для запуска гипервизора надо поставить галочку Enable и выбрать место для хранения виртуальных машин и вспомогательных файлов.
Выбрать стоит место на жёстком диске или SSD (желательно НЕ на флешке и обязательно НЕ на диске в памяти). Я выделил под это хозяйство датасет на основном пуле, смонтированный как указано на скриншоте.

Нажимаем Save and Restart - и VirtualBox к нашим услугам. Работают 32 и 64 разрядные версии чего угодно - хоть Linux, хоть Windows. НО Производительность в VirtualBox - не самое сильное место. Также затруднительно (чаще - вовсе невозможно) напрямую использовать физические устройства в виртуальных машинах. Даже USB 2.0, тк необходимого пакета раширения под FreeBSD оракл не выпускает.

2) Нажав на ссылку /phpvirtualbox/index.html открываем в браузере картинку очень похожую на интерфейс VirtualBox для Windows - это phpVirtualBox
Логин-пароль по умолчанию admin admin
Мне лень его вбивать, поэтому я зашёл в phpVirtualBox в File-> Change Password и заменил его на тот, что у вебгуя самого nas4free. Тогда мой FireFox его сам подставляет (про другие браузеры не поручусь)

Подробно настройку виртуальных машин я уже описывал здесь начиная с п 6

Дальше либо используем встроенный noVNC (чуть ниже) либо настраиваем внешний клиент (часть 2). О настройке гостевой оси (часть 3)

3) noVNC

требует обязательного пароля. Указываем его в настройках конкретной виртуальной машины

Теперь (для запущенной виртуальной машины, конечно) тычем на линк /novnc/vnc.html, вбиваем пароль

и видим рабочий стол нашей виртуалки

Virtualbox на nas4free, ч 1, сервер

UPD от 25 ноября 2015
VirtualBox стал стандартным функционалом nas4free и этот пост частично (до 5 п включительно) устарел. Вместо этих пунктов см http://2gusia.livejournal.com/339918.html От 6 п и далее - сохраняет актуальность. /UPD

Ранее мы ставили виртуальную машину на Windows, чтобы испытать разные варианты. Сегодня начнём обратный процесс - установим виртуальную машину на NAS. Чтобы потом установить на неё софт, изначально для нашего NAS не предназначенный. Тем более, что мой NAS, собранный на процессоре IvyBridge и с большим объёмом памяти, имеет избыток свободных ресурсов.


UPD от 2 января 2015 В чистую - ставится прекрасно. Поверх системы с моим конфигом - ПРОБЛЕМА и танец с бубном по решению/UPD

UPD от 23 декабря 2014. Подправлено под версию 1213, которая на nas4free 9.3.x
Большой респект камраду sea1150, который взялся поддерживать проект, оставленный первоначальным разработчиком
/UPD

Описываемое я, разумеется, не сам придумал. Источник - тут.

UPD от 28 января 2014. Хочу обратить внимание на коммент от камрада Evgeny Sokolov aka sea1150

проблемы подобного рода и возникают у пользователей, чей GID отличен от 920. Вариантов может быть несколько, либо группа создавалась вручную с другим GID либо, возможно, группа и пользователь были созданы старым установщиком, еще версии 0.1.x в котором отсутствовал такой параметр как GID=920. Поскольку данная проблема носит массовых характер, я склоняюсь ко второму варианту. В таких случаях, действительно, нужно удалить группу vboxusers и пользователя и дать их создать установщику, либо при создании группы вручную указать GID=920. /UPD

1) Обновляем nas4free до версии на FreeBSD 9.3. Я сейчас использую сборку 1213.

2) Выбираем пул, расположенный на жёстких дисках, то есть не на флешке и не в памяти (как /var и / в embedded версии). У меня это /mnt/Pool. Создаём из вебгуя датасет VM под виртуальные машины. А то установка по умолчанию здорово захламляет. Мои параметры: Compression off, Dedup off, Sync standard, Access Time (atime) off, Canmount и Extended attributes - yes, всё остальное по умолчанию

3) Заходим в командную строку.

Обязательно входим в папку VM и запускаем установку, как описано тут разработчиком по-английски

set LATEST=`fetch -q -o - http://e-vectra.ru/VBox/LATEST.version.9.3` ; fetch -q "$LATEST" ; tar xf `basename $LATEST` ; ./vbox_configure.sh

Прим. Если вы уже поставили finch, то командным интерпретатором у вас стал Bash, под ним не установщик не работает. Запустите предварительно
csh

4) Появляется меню,

VirtualBox on NAS4Free config (version 9.3.5.Banshee)
Last update: 22/12/2014
hint: press [ENTER] to show menu again

main menu:
1) Install
2) Update
3) Misc
4) Uninstall
5) Exit
Choose:

Маленькое примечание. По умолчанию скрипт находит первое же устройство в /mnt и создаёт там домашнюю папку пользователя vboxuser и там же размещает виртуальные машины. Если это вам подходит (например в /mnt только одно устройство), то можно по умолчанию. Но у меня в результате всё установилось на флешку, что не годится. Поэтому процедура установки такая (то, что набираем - жирным, но в реальной установке не спутаете)

Создаёте домашнюю папку для юзера vbox, например
mkdir /mnt/Pool/VM/vboxuser

выбираем Install, те последовательно жмём 1
Are you sure? [y/N] y
The setup will use the following user to setup VirtualBox:
user: 'vboxuser' with home at: /mnt/Flash/vboxuser
Do you want to change the user? [y/N] y
available users:
1) no custom users.
2) [new]
Choose user: 2
Name: vboxuser
Home: /mnt/Pool/VM/vboxuser
Do you want to enter a password? [y/N] N
Do you want to create the user 'vboxuser' with home at: /mnt/Pool/VM/vboxuser ? [y/N] y

начинается установка, занимает секунд двадцать. По окончании выводится то же меню, что на чёрной картинке выше.

Жмём 5 - Exit

И выходим из командной строки, набрав exit

Для окончания установки NAS требуется перегрузить.

Прим. Установщик делает несколько подготовительных вещей, в частности,создаёт группу vboxusers. А полностью за собой не убирает. Поэтому я не могу после нескольких циклов поставил-снёс быть уверенным, что всё работает как в первый раз. И если с первого раза у вас не ставится - поставьте с пользователем по-умолчанию, перегрузитесь, потом снесите установку и пользователя, перегрузитесь. И ставьте уже туда, куда хочется.

5) Теперь надо проверить, что всё работает.
Очищаем кеш браузера (иначе возможны глюки). Напр у FireFox Инструменты-Настройки-Сеть-кнопка Очистить сейчас.

Идём в вебгуй nas4free
в нем появился новый пункт главного меню - Extensions, в нём выбираем PhpVirtualBox.
логин и пароль admin и admin

6) Видим в браузере картинку очень похожую на интерфейс VirtualBox для Windows
vbox
Можно зайти в File->Preferences->General и изменить папку по умолчанию для хранения виртуальных машин, но я этого делать не буду.

7) Создаём виртуальную машину. Например, если у вас сохранился ранее купленный дистрибутив, для Windows XP. Тут всё аналогично, описанному ранее для Virtualbox под Windows. Имя машины советую выбрать попроще, без пробелов, спецсимволов и кириллицы. Памяти дадим, например, 512 Мб, создадим динамически выделяемый жесткий диск, пусть, на 100 Гб (место будет выделяться только когда будет запрошено, так что не жалко).

NB Если вы проводили тюнинг zfs, например так, выделяя память, не лишне будет вернуться к нему и вычесть из исходного объёма объём памяти, которые вы планируете отдать виртуальным машинам.

8) Машина появилась, давайте её настроим. Выбираем машину мышкой, жмём иконку Settings
Там выбираем
System-> Motherboard, выбираем Chipset ICH9, ставим галочку на Enable IO APIC
System->Acceleration, ставим галочку у Enable VT-x/AMD-V, если ваш процессор поддерживает VT-x (см его характеристики на http://ark.intel.com/)
Display-> Remote Display: ставим галочку в Enable server, Server Port 5900 (если будут ещё машины - 5901, 5902...), Authentication Method - None, Authentication Timeout 5000
Storage для IDE контроллера выбираем ICH6. Пустой CD удаляем, подключаем iso образ установочного CD. Конечно, для этого iso образ надо с CD снять и загрузить на NAS.

Network - Bridged Adapter
USB - СНИМАЕМ галочку против Enable USB Controller. Если нам USB реально понадобится в виртуальной машине, надо ставить дополнительный софт.
Shared Folder - выбираем на NAS папку, которая будет видна и виртуальной машине тоже. Я пока предварительно создал специальную тестовую папку на /mnt/Pool с именем qqq, куда позже буду класть тестовые же файлы. Можно поставить галочку что монтировать папку автоматически.
Жмём OK
XP_vm

дальше настраиваем клиента (часть 2) и гостевую ось (часть 3)

Костыль для нормальной остановки витуалок под virtualbox в nas4free

ВАЖНО В более поздних сборках описанный костыль создаёт дополнительные проблемы и к применению НЕ рекомендую.

Актуальная сборка nas4free (11.0.0.4.4249) имеет баг. Если попытаться выключить виртуалку через vnc клиент, то процесс никогда не завершается и остаётся в состоянии Stopping... Обидно, что проблема уже возникала и была адресована. Как выяснилось, в библиотеке VNC сервера есть баг. Последняя версия без бага 0.9.9

Соответственно для избежания проблемы есть два костыля

(1) закрыть VNC сервер перед выключением виртуалок. А выключать через команду из phpVirtualBox - неудобно и не всегда возможно

(2) подменить библиотеку на рабочую, что элементарно в full версии но потребует небольшого бубна в embedded.

Рабочую библиотеку я поленился сам компилировать и вытащил из старой ревизии nas4free (11.0.0.4.3252). Tar с библиотекой у меня на я диске.

1) Подгружаем tar и кладём его на один из дисков NAS, например у меня на /mnt/Pool/Media

2) Выбираем место для библиотеки, которое переживёт перезагрузку и где у нас будет лежать правильная библиотека, например у меня /mnt/Pool/Ext/Extensions

3) Идём в командную строку и распаковываем на место
cd /mnt/Pool/Media
tar -xvf libvnc.tar
mv libvncserver.so.0 /mnt/Pool/Ext/Extensions

4) Создаём командный скрипт
cd /mnt/Pool/Ext/Extensions
nano libvnc.sh

Его содержимое у меня (замените /mnt/Pool/Ext/Extensions на папку из п 2)

#!/bin/sh
cd /usr/local/lib

cp -a /mnt/Pool/Ext/Extensions/libvncserver.so.0 ./
mv libvncserver.so.1 libvncserver.so.1.bak
ln -s libvncserver.so.0 libvncserver.so.1

5) Создаём командный скрипт, тип PostInit
/bin/sh /mnt/Pool/Ext/Extensions/libvnc.sh

(в принципе, и весь скрипт можно уложить с строку)

6) Перегружаемся

7) Проверяем, что библиотеки подменились

nas4free // root~$ ls /usr/local/lib/libvnc*
/usr/local/lib/libvncserver.so.0* /usr/local/lib/libvncserver.so.1.bak*
/usr/local/lib/[email protected]

8) Проверяем, что виртуалки теперь останавливаются.

PS1 Респект камраду Evgeny Sokolov за идентификацию проблемы и разъяснения.

PS2 Если есть желание, можно в оффоруме поблагодарить разрабов nas4free, пожаловаться на проблему здесь и ВЕЖЛИВО по английски попросить исправить удобным им способом.

Virtualbox на nas4free, ч 5 Старт-стоп

UPD от 24 мая 2015

"этот пост устарел. Сейчас инсталлятор сам устанавливает скрипт для старт/стоп всех машин в VBox." - цитирую коммент майнтанера ниже./UPD

Нашим виртуальным машинам не хватает способности включаться и выключаться вместе с хост системой. Особенно выключаться.

NAS работает круглосуточно и отключается при сбое питания и пр. Виртуальные машины при этом тоже надо корректно завершить или, ещё лучше, приостановить. А вот автоматический старт вместе с NAS не так очевидно необходим. Ну, разве что если на NAS в виртуалке работает что-то постоянно необходимое, вроде фейрвола.

Предполагается, что Virtualbox на NAS мы уже поставили, на виртуальную машину установили ОС и желаемый софт.

1) В вебгуе идём в System|Advanced|Command scripts и смотрим команду стартового скрипта виртуалки.
У меня это /mnt/Pool/VM/VirtualBox/scripts/vbox-postinit.sh . Нам понадобится маршрут к папке скриптов (моём случае это /mnt/Pool/VM/VirtualBox/scripts)

2) Запускаем в вебгуе Advanced|File Manager и идём в эту папку
Копируем файл vbox-postinit.sh под новым именем vbox-shutdown.sh (НЕ переименовываем, оригинальный файл тоже нужен)

3) Тут же через вебгуй устанавливаем на vbox-shutdown.sh точно такие же права, какие установлены на vbox-postinit.sh

4) Запускаем из вебгуя редактор файлов Advanced|File Editor, загружаем в него vbox-shutdown.sh

5) Всё, что в нём есть, стираем, заменяя на

#!/bin/bash

# pause specified VW
su vboxuser -c '/usr/local/lib/virtualbox/VBoxManage controlvm WinXP savestate'
sleep 30

Здесь выделено жирным WinXP -  название приостанавливаемой виртуальной машины. Если у вас другое - используйте его. Проще, если имя машины не содержит пробелов и пр. спецсимволов.

Если у вас несколько постоянно работающих виртуальных машин - строк su vboxuser -c... будет несколько, каждая с именем соответствующей машины.

Сохраните файл vbox-shutdown.sh, откройте снова и убедитесь, что вы его действительно отредактировали.

6) Идем в System|Advanced|Command scripts через вебгуй
И добавляем наш скрипт vbox-shutdown.sh так, чтобы он был исполнен при выключении, должно получиться вот так:
v_shutdown

7) Теперь надо испытать, что работает. Запускаем через вебгуй phpvirtualbox, запускаем в нём виртуальную машину, через VNC клиента подключаемся к ней, и делаем что-то, что не переживёт перезагрузки виртуальной машины. Например я создаю новую папку и переименовываю её, но останавливаюсь не закончив вводить новое имя
Papk
В результате после "Папк" мигает текстовый курсор.

Закрываем VNC клиент, он сейчас будет только мешать. Убеждаемся, что в браузере открыто обе вкладки (или окна). Одна с phpvirtualbox, другая с вебгуем nas4free.

Смотрим в phpvirtualbox, состояние машины - running
Идем в вебгуй nas4free, запускаем reboot и немедленно возвращаемся в phpvirtualbox
Если всё нормально - видим, как состояние машины меняется на saving с красным сердечком, а затем на saved с зелёным.
Закрываем окно phpvirtualbox. Ждём пару минут, пока перегрузится NAS, заходим в phpvirtualbox и видим, что состояние машины - saved.
Запускаем её, открываем VNC клиент и подключаемся к ней. Видим мигающий текстовый курсор в переименуемой папке.
Бинго!

8) На этом я лично пока закончил. После рестарта NAS я буду руками запускать виртуальную машину. Но если надо автоматически - то тоже можно. Для этого придется добавить в самый конец файла vbox-postinit.sh следующее

sleep 10
nohup su $STDUSER -c "VBoxManage startvm WinXP --type headless"

Понятное дело, заменив WinXP на имя вашей виртуалки

Вся конструкция описана камрадом vDmitry здесь.

Кроме того, похожий вариант обсуждается здесь. Там есть несколько более продвинутые скрипты. Забрать из комадной строки архив с ними не очень просто, можно сделать это так:
fetch -oscripts.tar.gz "http://forums.nas4free.org/download/file.php?id=402&sid=792a228a6b1a95c9a0859604e9562907"
потом распаковать
tar xvf scripts.tar.gz

Но, поиграв с этими скриптами, я пришёл в выводу, что проще - лучше и оставляю это примечание на будущее, вдруг понадобится.

Virtualbox на nas4free, ч 3, гостевая WinXP

В ч 1 мы поставили виртуальную машину на nas4free и выбрали в качестве VNC клиента RealVNC. Займёмся установкой и настройкой WinXP как гостевой. Запаситесь терпением и чашкой-другой кофе.

Прим. До начала инсталляции советую отключить авто переключение языков в Punto Switcher, если такой у вас установлен. Иначе в процессе установки на виртуальную машину он сильно будет вам мешать.

1) Нам понадобится легальный лицензионный диск WindowsXP, с которого вам придётся снять iso образ. Образ помещаем куда-то на NAS.

2) Если мы этого не сделали в ч 1 п 8, через phpVirtualBox (веб интерфейс управления хостом) удаляем пустой CD диск и подключаем наш образ WinXP.
Прим. У меня образ подключался только со второго раза, похоже такая багафича.

3) В phpvirtualbox запускаем виртуальную машину, выбрав её и нажав зелёную стрелку и затем в диалоге TightVNC - кнопку Connect. Он спросит пароль, но тк мы его не задали - ничего вводить не надо, жмём Login

И видим стартовый экран установки Windows

4) Устанавливаем. Как это делать - знаете. (Форматирование выбираем быстрое). Замечу, что в процессе установки курсор двойной, что порядком раздражает, но справиться можно. Позже мы это вылечим.

5) По окончании установки принудительно выключаем виртуальную машину, отключаем iso образ.

6) В принципе - готово. Имеем WinXP на NAS. Но придется загрузить обновления, не один раз перегрузиться. Стоит это сделать, хоть процесс не быстрый. И только когда все выбранные обновления скачаются, выключаем виртуальную машину путём обычного выхода в ней из Windows.

7) Гуглим и качаем VBoxGuestAdditions_4.2.4.iso я взял тут.  В phpvirtualbox подключаем образ к виртуальной машине, запускаем ее

8) В TightVNC RealVNC подключаемся к виртуальной машине, запускаем содержимое CD диска VBoxGuestAdditions_4.2.4 на исполнение. Экспериментальную поддержку 3D графики не ставим. На все вопросы, что мол, софт не тестировался на совместимость - жмём все равно ставить. В результате у нас двойной курсор слипается в один (большое облегчение)

9) WinXP предложит выставить разрешение, надо согласиться. Потом можно в контрольной панели вставить разрешение побольше. Здесь самое время снять снапшот с виртуальной машины - но у меня выдаёт ошибку. При большом желании можно снять снапшот средствами zfs, у нас ведь на датасете всё собрано. Disks|ZFS|Snapshots|Snapshot в вебгуе nas4free, жмём "+" внизу.

Или можно скопировать куда-то на бекап образ жесткого диска с чистой установкой оси, остановив предварительно виртуальную машину. Позволит сохранить время, если снова ставить понадобится.

PS Я лично это всё затеял чтобы испытать HomeMediaServer. Мой ресивер Onkyo-807 понимает flac по сети, но не понимает русских букв. А HMS умеет делать транслитерацию и вообще в сети хвалим. И бесплатен. Посмотрим, а то miniDLNA меня не впечатлил.
Update - сделал, пока вроде нравится.

jail, chroot, vbox на nas4free - зачем столько и что выбрать?

- Мама, спрашивает верблюжонок, а зачем нам горбы?
- Когда мы идём через бескрайнюю пустыню, мы запасаем в них воду.
- А раздвоенные ступни с мозолистой подушкой?
- Чтобы не проваливаться в жаркий песок пустыни.
- Мама, а зачем нам в зоопарке все эти навороты?
Бородатый анекдот


Камрад rgajdov спрашивает зачем запиливать всякие chroot и jail, если есть VirtualBox? Можете привести примеры, в которых используются эти три вещи - каждая, конкретно под свою задачу, например, у вас? (и почему?).

Вопрос настолько хороший, что ответ я обдумывал недельку. Плюс надо признаться, что назначение виртуализации вообще и то, как мы её варианты используем в домашних NAS, сильно различается. Что, конечно, не упрощает понимание вопроса.

tl;dr Использование виртуализации на Nas4free
- VirtualBox всем хорош, но оверхед по производительности легко может быть кратным. Зато в нём можно гонять хоть Windows, хоть Linux, хоть чёрта лысого.
- Jails, клетки, работают практически без потерь, эффективно используют память, но накладывают серьёзные ограничения на то, что в них можно и что нет.
- если эти ограничения слишком жёсткие, хорош механизм chroot. Он придуман для других целей, но в условиях embedded установки nas4free даёт выход на полную ось.
UPD от 26 декабря 2015
- bhyve - не может работать одновремено с virtualbox, нет вебгуя, под ним работает только BSD, Linux и (уже) Windows - но зато низкий оверхед по производительности. bhyve, родной гипервизор II типа под BSD, доступен в nas4free из коробки. Но я пока не тыкал палочкой.
/UPD

Начнём с терминов NB. Я сознательно и серьёзно упрощаю, т.к. краткое, но предельно точное изложение займёт пару десятков листов минимум.

Гипервизор. Этим красивым словом называют софт, создающий и позволяющий исполнять виртуальные машины.
Хост-система - то железо, на котором работает гипервизор.
Виртуальная машина - программно созданная сущность, ведущая себя подобно реальному компьютеру с точки зрения исполняемого на этом компьютере софта.

К сожалению, ничего не даётся даром. Это только в наивных статьях из Вики добрая половина гипервизоров создают и обслуживают виртуальные машины без потерь. Реальный оверхед (издержки, потери) принимает значения от заметного до огромного. Как пример оверхеда для продуктов корпоративного назначения, используемых в датацентрах, приведу цифры из статьи.

VMWare ESXi 5 + vSphere 5 MS Hyper-V Windows 2008 R2 SP1
Linux Windows Linux Windows
Computing Power 4.39% 3.24% 5.43% 3.10%
Disk I/O 3.02% 2.36% 24.07% 20.96%
Network I/O 20.52% 33.00% 16.50% 24.34%
Disk Read Latency 367% 213%
Micro-operations time 623% 1510%

Видно, что потери - заметные. Меня интересует порядок величины. К примеру MS в технической статье оценивает процессорный оверхед выше, в 9-12%, а дисковй - ниже, в 6-8%. Плюс расход памяти на виртуализацию.

Но это - гипервизоры корпоративного класса. Да, вы можете собрать дома систему на чём-то вроде ESXi (и я сам себя даже уговаривал такое сделать - не смог 🙂 В этом случае другие методы виртуализации могут вам и не понадобиться. Но IMHO виртуализированный сервер дома - серьёзная заявка на overkill, прежде всего из-за цены железа.

Есть гораздо более простое (+ бесплатное) решение - VirtualBox, и мы его успешно гоняем поверх nas4free. Но VirtualBox имеет оверхед существенно хуже, чем у "больших" гипервизоров. Как иллюстрацию приведу один из тестов из подробной статьи

В этом примере на кодировании видео силами процессора VB проигрывает голому железу грубо вдвое.
Есть дополнительные недостатки VB на FreeBSD по сравнению использованием клеток FreeBSD Jails
- статическое выделение памяти. Если вы отдали гигабайт на виртуальную машину и запустили её - не важно, сколько реально надо. Уйдёт гигабайт.
- USB работает только версии 1.1 Потому, что USB2 для VirtualBox - это код, не выпущенный под BSD лицензией.
- Доступ к виртуальному рабочему столу средствами системы - по VNC, более привычный RDP не доступен (точнее может быть доступен средствами оси, установленной в виртуальной машине - но это только после старта оси)

Ну а главное достоинство - возможность запустить в любой виртуалке практически любую ось, включая Windows и Linux.

Так что IMHO назначение VirtualBox на nas4free - запуск приложений, вообще не доступных FreeBSD или требующих сложной настройки. При этом не особо требовательных к процессорной мощности и скорости доступа к оборудованию.

Личный пример - я успешно запускал в VirtualBox HomeMediaServer под WindowsXP (DLNA сервер, именно для DLNA - пожалуй, лучший) и ZoneMinder под Linux (софт для видеонаблюдения, тем более что он доступен как образ виртуальной машины). Честно признаюсь, на сегодня ни то ни другое, ни вообще виртуальные машины, не использую. DLNA потребности у меня почти отсутствуют, при нужде есть PLEX. Видеонаблюдать в реальности нечего.

Jails, они же клетки,  заявлены разработчиками nas4free как основной механизм расширения функционала за пределы коробочного. Клетки - вариант набирающей всё большую популярность контейнерной виртуализации. Клетка использует ядро хост системы, но свой мир. Результат при взгляде изнутри очень похож на виртуальную машину. Оверхед для такой машины исчезающе мал, требований к аппаратной поддержке виртуализации нет. Память используется только реально занятая процессами из клетки.

Исходно клетки (буквальный перевод "jail"  - "тюрьма") придуманы для ограничения поля возможного деструктивного поведения заключённого в неё процесса. Например, взломанного хакером вебсервера. В случае nas4free это тоже имеет значение, но отходит на второй план. А на первый выходит возможность что-то поставить дополнительное, не опасаясь порушить хост систему (что на раз происходит при попытках что-то ставить в full вариант nas4free). Для обслуживания клеток в nas4free сделан удобный веб интерфейс  - TheBrig (разработчик Alexey Kruglov aka alexey123, которому большой респект, не без юмора предпочитает перевод "Кича" 😉

Из недостатков можно упомянуть разве что трудоёмкость major (значительного) апгрейда клеток при замене хост оси например от 9.3 к 10.1 Из понятных ограничений - работает только с использованием ядра FreeBSD - то есть либо FreeBSD, либо Debian GNU/kFreeBSD

UPD от 26 декабря 2015
Кроме Брига клетки в nas4free можно поднимать через qjail, который ставится вместе с finch chroot (см ниже). Управление полностью из командной строки, но очень простое.
/UPD

Личный пример - я ставил в клетки много всего разного. Сейчас использую (точнее остановлено, но с тестовыми целями, планирую восстановить) только torrentmonitor. Также большой смысл вижу гонять в клетке что угодно, к чему есть доступ из Интерент. Яркий пример - owncloud. Но мне всё никак не добить fail2ban, а без него использовать опасаюсь.

UPD от 26 декабря 2015
torrentmonitor для разноообразия поставил в qjail клетку и он там успешно крутится
/UPD

chroot - он вообще не метод виртуализации. Но как нельзя лучше пригодился для embedded варианта nas4free, куда что-то поставить затруднительно. А с chroot - лепота! Имеем полную ось, куда ставим-сносим что душеньке угодно. Да без ограничений, накладываемых строгими тюремщиками на софт в клетках. Дополнительный плюс происходит, когда под chroot выделен отдельный датасет, с которого делаются снимки. Напортачил что-то - откатился назад. Как в root on zfs, только проще. (Впрочем, последнее преимущество и к клеткам относится)

Недостатков не просматривается, есть особенности. Конечно - только FreeBSD. C существующим методом реализации (через finch) мне удобно ровно один chroot иметь, тогда как клеток не проблема наплодить и пару дюжин (вот только при апгрейде на новую версию типа 9.3 - > 10.2 с дюжиной клеток ой не быстро...) . В отличие от клетки не так просто настроить, сделать tar - и размножать хоть у себя, хоть давать камрадам.

Личный пример - у меня в choot крутится PLEX. Он отказался жить нормально в клетке, пропадая из DLNA эфира. А в chroot ему комфортно. IMHO на практике, при необходимости добавить какой-то софт имеет смысл начать с клетки. Если он в ней заживёт - то и ладушки. Если нет - тогда возможно его место в chroot.

Virtualbox: проводим тестдрайв NAS - 2gusia aka mikemac — LiveJournal

Отвечая на вопросы, я осознал, что многие воздерживаются от возни NAS из-за необходимости предварительной подготовки железа. Где-то надо взять подходящие диски, какой-никакой компьютер, монитор понадобится для установки и т.д. К счастью, чтобы попробовать - никакого дополнительного железа не надо. Достаточно создать виртуальную машину. И не надо пугаться слова, это исключительно просто. Настолько просто, что я заранее извиняюсь за то, что суть этого поста составит цитирование Капитана Очевидность.


Виртуальная машина - это программа, которую вы запускаете из своей операционной системы. Программа эмулирует физический компьютер, у которого есть жесткий диск, сетевой адаптер и т.д. Современные компьютеры мощны, на своём ноутбуке или десктопе вы легко можете создавать, запускать и уничтожать виртуальные машины. Давайте в одну из таких машин установим nas4free. Зачем? Чтобы "поиграть" с ним, потестировать без необходимости покупки и настройки реального железа. Такой тестдрайв поможет понять насколько лично для вас удобен интерфейс, потренироваться в настройке, не боясь ничего испортить. Хорошо создать несколько виртуальным машин для разных программ кандидатов (напр. Freenas и OMV в случае NAS) и выбирать не по советам вслепую, а по собственному вкусу. Единственное, на виртуальной машине не стоит проводить тесты на быстродействие - реальное железо обычно работает быстрее.

Нам понадобится ПК под Windows (или Mac OS, Linux, BSD и пр.) и программа виртуализации. Их несколько, возьмём Oracle Virtualbox из-за мультиплатформности и бесплатности. Русский, кстати, поддерживается из коробки. Качаем отсюда, выбирая вариант для своей операционной системы (Windows/Linux/Mac OS...). Устанавливаем как обычную программу. Там же есть пакет расширений, но можно обойтись и без него.
vbox_setup
После установки можно выбрать язык и настроить путь для хранения файлов виртуальных машин. По умолчанию это на диске С:, я не люблю захламлять его файлами данных (но это - по желанию)

create
Теперь создадим виртуальную машину - жмем синюю кнопку "Создать".

Название выбираем любое, тип - BSD, версия FreeBSD или FreeBSD (64 бит) тк именно на этой оси основан nas4free. Советую сначала поставить FreeBSD (64 бит). Будет ли это работать - зависит от того, что у вас за компьютер. Быстрее испытать, чем разбираться. Если дальше будет ругаться - придется вернуться и выбрать FreeBSD.
Жмём "Вперёд".

RAM
Надо выбрать, сколько памяти вы отдадите машине из физически доступной. Если у вас всего гигабайт - отдайте 512 Мб (что, честно сказать - маловато и могут быть проблемы), если два - гигабайт. Если больше - два гига или более, этот параметр легко в дальнейшем изменить. Virtualbox ругается, если виртуальной машине отдать больше 60% всей памяти. Но Windows вполне  работает и на гигабайте.

vhdd
Создайте новый виртуальный диск, тип - VDI, динамический или фиксированный - по желанию. Размер - гигабайт, имя - по желанию. На этом диске будем держать систему. Машина создана, осталось её немножко настроить. Жмем желтую кномпу "Настроить" и слева выбираем

net
Сеть - Адаптер 1 - Сетевой мост
Остались - Носители

add_sata
Добавляем SATA контроллер (правда удобно - не то что бежать в магазин) и у него штуки три жестких диска.
Советую тип - VDI, динамические, размер от 10 до 20 гигабайт, если позволяет свободное место на вашем реальном жестком диске. Имена стоит выбрать понятные, например nf1, nf2, nf3... Понятно, что виртуальные диски легко добавлять и удалять (что полезно, например, для исследования поведения массива, у которого отвалился диск)

cdd
Теперь жмем правой кнопкой мыши на пустой CD ROM, удаляем его и подключаем новый из скачанного образа nas4free. (Удобнее. чем нарезать CD болванку для реальной машины.)

Подготовка закончена - запускаем виртуальную машину зеленой кнопкой со стрелкой "Запустить".

install
Ставим nas4free, как писалось ранее. После окончания инсталляции, на остановленной виртуальной машине удаляем CD образ, чтобы с него не грузилось - и стартуем уже установленную на виртуальный диск систему. Настраиваем, как писалось ранее. Самое время посоздавать raidz массивы, помучить систему, например поудалять диски из них. Машина-то виртуальная, испортить что-то не получится.

Понятно, виртуальную машину можно и для других программ использовать. Можно даже на NAS под nas4free поднять виртуальную машину и поставить туда какой-нибудь Linux. Есть специальное дополнение для nas4free. Я правда, не придумал, зачем мне такое надо - поэтому так и не делал.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *