вторник, 31 января 2012 г.

Недорогая альтернатива iSCSI. Настройка AoE на DNS-325.

 
Рано или поздно, в домашних условиях, в небольшой или крупной фирме, возникает необходимость увеличения дискового пространства. Самый простой способ – поменять (или добавить) винчестеры, но это далеко не всегда возможно или экономически целесообразно. Тогда на ум сразу же приходит мысль об iSCSI. Данный протокол базируется на TCP/IP и разработан для обеспечения взаимодействия между различными устройствами хранения данных и управления ими. Но реализация данного протокола может оказаться достаточно дорогой по причине дороговизны сетевых накопителей со встроенным iSCSI Target.

ATA over Ethernet (AoE) — сетевой протокол, разработанный компанией Brantley Coile. Предназначен для высокоскоростного доступа к SATA устройствам хранения данных через сеть Ethernet. Это даёт возможность с помощью недорогих, доступных технологий построить сеть хранения данных. Ввиду простоты он обеспечивает неплохое быстродействие и простоту реализации.

Рассмотрим реальный пример подобного применения. В качестве сервера будем использовать Windows Server 2003. В качестве дискового массива выберем D-Link DNS-325. Жесткие диски можно объединить в RAID 0, RAID 1 или оставить отдельными. Если Вы заранее не знаете размеры будущих монтируемых «жестких дисков» и важен быстрый доступ, используйте RAID0.

Так как в стандартной прошивке DNS-325 отсутствует поддержка AoE, нужно ее немного «модернизировать». Для этого установим FUN-PLUG ( http://www.inreto.de/dns323/fun-plug/ ). Скопируйте два файла fun_plug и fun_plug.tgz на диск Volume_1 DNS-325. Скрипт fun_plug нужно слегка «доработать» -в начало добавляем следующие строки:

#!/bin/sh
mkdir /mnt/HD_a2
mount --bind /mnt/HD/HD_a2 /mnt/HD_a2

# switch to safe working directory on ramdisk

и затем перегрузите устройство. Подождите 2-3 минуты, после чего зайдите на DNS-325 с помощью telnet. Для этого лучше всего использовать утилиту putty, но можно просто из командной строки Windows XP.

clip_image002

Следующий этап: установка optware. Это даст нам полноценный пакетный менеджер ipkg с репозиториями полезного софта, включая компилятор gcc, файловый менеджер mc и прочие вкусности. Войдя по telnet, выполните следующие команды:

wget http://wolf-u.li/u/233 -O /ffp/start/optware.sh

Данная команда загружает на устройство скрипт, необходимый для работы Optware IPKG. После завершения загрузки, добавляем данный скрипт в автозапуск, чтобы не запускать его вручную после каждой перезагрузки хранилища:

chmod a+x /ffp/start/optware.sh

Теперь запускаем непосредственно сам пакет:


/ffp/start/optware.sh start

На этом установка Optware IPKG завершена, и можно начинать пользоваться его репозиторием. 

Для установки серверной части AoE выполните следующее:


ipkg update 
ipkg install vblade 
ipkg install nano

Редактируем скрипт автоматической раздачи дисков нашего сервера AoE


nano /ffp/start/vbladed.sh

Добавляем в него строку


/opt/sbin/vblade 1 1 egiga0 /mnt/HD_a2/DISKS/disk11.fs &

Сохраните файл: (нажмите Ctrl+X , затем Y и Enter) и введите команду

chmod a+x /ffp/start/vbladed.sh

На этом этапе установка сервера AoE, а именно vblade, окончена.

Теперь нужно настроить какие именно диски будут передаваться по протоколу AoE. Для
этого рассмотрим синтаксис команды vblade: 

vblade [ -m mac[,mac...] ] shelf slot netif filename,

где: mac – это локальный MAC адрес, так как сетевая карта у DNS-325 одна, параметр для нас не актуален;

shelf и slot – номера от 0 до 254. Эта пара номеров должна быть уникальна в данной локальной сети, именно по ней и будет в дальнейшем монтироваться диск;

netif – сетевой интерфейс, для DNS-325 это значение всегда egiga0; filename – указатель на файл, содержащий устройство жесткого диска. Тут можно передать непосредственно весь жесткий диск целиком. Так как мы инициализировали дисковый массив как RAID0, то неразумно отдавать весь диск целиком. Для этого создадим «виртуальный» файл – винчестер.

Создадим на нашем массиве каталог DISKS, в котором и будут лежать данные файлы и создадим файл disk11.fs:


mkdir /mnt/HD_a2/DISKS

dd if=/dev/zero of=/mnt/HD_a2/DISKS/disk11.fs bs=10240 count=1048576 

данная команда dd создает файл, размером 10485760 блоков по 10240 байт, то есть 100 Гб. Размер блока для DNS-325 лучше не выбирать больше 102400 байт.

Чтобы проверить, как это будет работать, выполним команду:


vblade 1 1 egiga0 /mnt/HD_a2/DISKS/disk11.fs

в результате должны увидеть сообщение вида:


pid 1615: e1.1, 209715200 sectors O_RDWR

где

первая цифра – это номер процесса в памяти (можно увидеть командой ps)


e1.1 – это версия нашего диска исходя из тех номеров, что выполнялись в команде (в нашем случае 1 и 1)

последняя цифра – это колличество «виртуальных» секторов оканчивается режимом доступа к диску, в данном случае чтение и запись

Итак, настройку сервера AoE дискового массива закончили.

Приступим к настройке клиента, в нашем случае Windows Server 2003. Стандартных драйверов AoE Microsoft не предусмотрела. Поэтому качаем свободный драйвер WinAoE или StarWind AoE.

WinAoE
http://winaoe.org/ 
ftp://dp.dlink.ua/AoE/winaoe/

StarWind AoE
http://www.starwindsoftware.com/aoe-ataoverethernet-initiator ftp://dp.dlink.ua/AoE/AoEInitiatorSetup.exe

Мое мнение, в данном случае удобней использовать StarWind AoE Монтируем AoE диск на наш сервер. Запускаем StarWind AoE Initiator и нажимаем кнопку «Add Device»



clip_image004

clip_image006

Переходим в раздел «Управление компьютером»

clip_image008

инициализируем и форматируем новый диск

clip_image010