2gusia (2gusia) wrote,
2gusia
2gusia

Category:

AoE на nas4free - target (проще - сервер)

От теории перейдём к практике и установим на nas4free embedded AoE target. Ставить и настраивать initiator (клиентскую часть) под Windows будем отдельным постом.

Выбор AoE target под FreeBSD невелик, ставим vblade. Он умеет взять файл и отдать его как AoE диск. Есть и неприятный баг - нельзя отдать zfs zvol блочное устройство. Если вас работа с отдельными файлами устраивает - качаем официальную версию
pkg_add -rKn vblade
и работаем с ней. Если нет - хорошая новость в том, что камрад bormental днями написал патч, проблему устраняющий.

Мне ближе вариант с zfs zvol по следующим причинам

  • все плюшки zfs, включая снапшоты;

  • возможность thin provisioning;

  • меньше промежуточных слоёв - блочное устройство отдаётся как блочное устройство;

  • ненароком испортить zvol существенно сложнее, чем отдельный файл.

Поэтому ниже мы (1) создадим zvol, (2) загрузим и настроим патченый vblade и (3) обеспечим выживание при перезагрузке NAS.

UPD от 30 марта 2014. Опционально см доработку напильником демонизатора vbladed от камрада RU_Taurus

1. Создание zvol
Идём в вебгуе в Disks|ZFS|Volumes|Volume|Add
100gb
значения все достаточно очевидны, кроме галочки sparse volume. Это как раз и есть thin provisioning. Если галочки нет, то том займёт всё пространство, указанное в Size при создании. Если галочку поставить - то создан он будет маленьким, а по мере заполнения - расти, но не больше размера, указанного в Size. В обоих случаях клиенту будет сообщён размер тома Size.

Ср. два тома. Том 100Gb создан именно так и занимает в реальности только 191 мб. А том vol создан статическим и занимает свои 5 гигабайт.

zvol

2. Настройка vblade
2.1 Качаем архив с моего яндекс диска по ссылке
(кстати, если у кого-то ещё нет яндекс диска - приглашаю. Получите гигабайт в плюс (а я полгига)).

2.2 Создадим где-то на диске NAS временную папку, например
mkdir /mnt/Pool/tmp
chmod -R 777 /mnt/Pool/tmp
cd /mnt/Pool/tmp


2.3 Переносим архив, скачанный в п 2.1 в папку /mnt/Pool/tmp (например - через ftp)

2.4  Достаём из архива нужные файлы
Тут надо выбрать постоянное расположение исполняемых файлов vblade. Я выбрал для себя /mnt/Pool/Jail/vblade21_patched
Может и не совсем удачное место, раз джейла не будет - но там же рядом у меня лежит расширение BTSync, тоже к джейлам не относящееся. Вы можете использовать другую папку, главное, чтобы она была на физическом диске и пережила перезагрузку.

tar -xjf vblade21_zvol_patched.tbz
mkdir /mnt/Pool/Jail/vblade21_patched
cp -a sbin /mnt/Pool/Jail/vblade21_patched
ls -la /mnt/Pool/Jail/vblade21_patched/sbin


Должно вывестись что-то очень похожее на
drwxr-xr-x 2 root wheel 4 Feb 15 11:50 .
drwxrwxr-x 5 root wheel 7 Feb 16 23:27 ..
-rwxrwxr-x 1 root wheel 50929 Feb 15 11:25 vblade
-r-xr-xr-x 1 root wheel 161 Jul 10 2013 vbladed


Хорошо, файлы vblade и vbladed лежат в /mnt/Pool/Jail/vblade21_patched/sbin и права у них правильные

2.5 Убираем временные файлы
cd /
rm -rf /mnt/Pool/tmp


2.6 Смотрим имя своего сетевого интерфейса
ifconfig | grep BROADCAST | awk '{print $1}'

у меня отвечает
re0:

2.7 Запускаем вручную AoE target
/mnt/Pool/Jail/vblade21_patched/sbin/vblade 1 1 re0 /dev/zvol/Pool/100Gb

Здесь 1 1 - номера shelf и slot, грубо номер сервера и диска в нём. Если понадобится больше дисков, можно написать 1 2 и так далее.
re0 - имя сетевого интерфейса из п 2.6, обратите внимание, что без двоеточия.

В ответ должно получиться что-то вроде
vblade 1 1 re0 /vblade0
ioctl returned -1
100971520000 bytes
pid 77281: e1.1, 40960000 sectors O_RDWR


Обратите внимание, строка 100971520000 bytes даёт размер блочного устройства, в данном случае - 100Gb. У вас число будет немного другое, это нормально. Если будет ноль - что-то пошло не так. Например, ноль выдаётся при подключении zvol официальной непатченной версией vblade. Или при попытке подключить zvol в джейле.

3. Давайте сделаем так, чтобы всё восстанавливалось после перезагрузки NAS
3.1 Создаём скрипт
cd /mnt/Pool/Jail/vblade21_patched
nano AoE_start.sh


В нём пишем
#!/bin/sh
/mnt/Pool/Jail/vblade21_patched/sbin/vbladed 1 1 re0 /dev/zvol/Pool/100Gb


- то есть такая же строка, как сработала у нас в п 6. Но с важным изменением "vbladed" - с "d" на конце, то есть в виде демона.
Если нам нужно создать несколько AoE дисков - то таких строк должно быть несколько.

3.2 Входим из редактора и даём скрипту права на исполнение
chmod +x AoE_start.sh

3.3 Задаём скрипт /mnt/Pool/Jail/vblade21_patched/AoE_start.sh в System|Advanced|Command scripts как PostInit

3.4 Перезагружаем NAS и смотрим лог - должны быть сообщения, аналогичные тем, что в п 2.7

Теперь отыщем и настроим инициатор (клиентскую часть) для Windows.

PS Кроме описанного, возможны иные варианты
- создать джейл, установить официальную версию vblade, создать файл, a-la
dd if=/dev/zero of=/mnt/Pool/vblade_file count=20000 bs=1M
подключиться на него. Минус в том, что к zvol из джейла не подключиться - не пускает.
- установить vblade, благо утилита занимает очень мало места и не тащит за собой зависимостей. Особенно удобно на full версии. Для установки можно использовать архив vblade21_zvol_patched.tbz, скачанный с яндекс диска, скормив его утилите pkg_add. В архиве есть всё для этого необходимое.
Tags: aoe, nas, nas4free
Subscribe

  • Статья про SSD Apacer в NAS

    Сегодня после длительной борьбы с web-редактором IXBT Live (который оказался не совместимым с Google Docs), наконец, опубликовали мой опус про SSD,…

  • OpenZFS и XigmaNAS

    Месяц назад я писал про Open ZFS. Там были мысли о том, когда он будет доступен в XogmaNAS. А в конце декабря зацепился на эту тему языками с…

  • Как провожают жесткие диски

    Сдох у меня жесткий диск в NAS Как видно - из SMART отпахал 70428 часов, то есть если 24/7 - больше 8 лет. И, я вам скажу, он не просто крутился…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 29 comments

  • Статья про SSD Apacer в NAS

    Сегодня после длительной борьбы с web-редактором IXBT Live (который оказался не совместимым с Google Docs), наконец, опубликовали мой опус про SSD,…

  • OpenZFS и XigmaNAS

    Месяц назад я писал про Open ZFS. Там были мысли о том, когда он будет доступен в XogmaNAS. А в конце декабря зацепился на эту тему языками с…

  • Как провожают жесткие диски

    Сдох у меня жесткий диск в NAS Как видно - из SMART отпахал 70428 часов, то есть если 24/7 - больше 8 лет. И, я вам скажу, он не просто крутился…