iSCSI диск для удалённой работы

Создание iSCSI диска для удалённой работы дом-офис.

Идея:
С чего всё началось? Я, по воле свое загруженности, имею привычку работать вечерами дома. Так сказать пока доедешь, в голове перевариться код, подход, решения и вот же дома быстренько его реализуешь.

Но что делать с этими постоянными неудобствами переноса кода? Работать по фтп не совсем корректно. Одни мой коллега, однажды потеряв соединение во время обновления, удалил всю дневную работу — печально!

Появилась идея: создать виртуальный диск на одном из VPS серверов, тем самым хранить программный код на нём. Это очень удобно, при подключенной системе контроля версий, например, сразу видно что изменял. не нужно сливать файлы с сервера. Иными словами — проект храниться в одном месте с автоматическим резервным копированием.

Реализация:
Для реализации был выбран протокол iSCSI и ОС Debian Linux (так она была на VPS)).

Сразу замечу, что одновременное подключение к таком диску невозможно для NTFS мной не реализовано.

По поводу установки и настройки iSCSI на Debian Linux можете прочитать хорошую статью Настройка iSCSI target на Debian 6 Squeeze x86_64. Но если не хотите, я опишу основные моменты. Тем более, мы не привязываемся к физическому диску, а используем файл образа.

Начать нужно с установки служебных программ и модуля ядра:
apt-get install -y iscsitarget iscsitarget-dkms

Разрешаем запуск запуск iSCSI target, для это редактируем файл /etc/default/iscsitarget, я использую редактор mcedit из набора Midnight Commander (MC), вы можете выбрать то, к чему привыкли, vi, nano…
mcedit /etc/default/iscsitarget

В файле нужно указать всего один параметр
ISCSITARGET_ENABLE=true

Теперь самое интересное — создаём файл-образ нашего диска:
dd if=/dev/zero of=/var/develop/lun0.img bs=1024k count=1000

if — входящий файл
of — файл назначения (наш образ)
bs — размер блока
count — количество блоков
Этой командой мы создали файл с именем lun0.img и размеров 1000Mb

Настраиваем iSCSI
Открываем в редакторе файл настроек
mcedit /etc/iet/ietd.conf

И добавляем в конец файла
Target iqn.2013-05.com.iscsiserver:dev # идентификатор записи вашего сервера. Обычно имя домена наоборот
    IncomingUser username password12!! # имя и пароль для входа. ПАРОЛЬ 12 СИМВОЛОВ!!!
    Lun 0 Path=/var/develop/lun0.img,Type=fileio # путь к файлу-образу

Запускаем iSCSI Target:
/etc/init.d/iscsitarget start

Убеждаемся, что модуль ядра зацепился:
lsmod|grep iscsi_trgt
iscsi_trgt 69353 4

А также смотрим dmesg:
dmesg|tail -4
[61850.263686] iSCSI Enterprise Target Software - version 1.4.20.2
[61850.263746] iscsi_trgt: Registered io type fileio
[61850.263748] iscsi_trgt: Registered io type blockio
[61850.263749] iscsi_trgt: Registered io type nullio

Демон должен слушать 3260-й порт, который нужно добавить в FireWall.
netstat -lnpt | grep 3260
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 7169/ietd
tcp6 0 0 :::3260 :::* LISTEN 7169/ietd

Если всё сделано правильно и ошибок нет, то можно подключаться)

Комментарии (2)

RSS свернуть / развернуть
Для CentOS:
Установка службы
yum -y install scsi-target-utils

Настройка делается в файле /etc/tgt/targets.conf
<target iqn.2013-05.com.iscsiserver:dev>
    backing-store /var/develop/lun0.img
    Type=fileio
    IncomingUser username password12!! # имя и пароль для входа. ПАРОЛЬ 12 СИМВОЛОВ!!!
</target>

Старт службы и добавление в автозагрузку
/etc/rc.d/init.d/tgtd restart
chkconfig --levels 235 tgtd on

Проверка работоспособности
tgt-admin --show

в результате должно быть что то похожее на:
tgt-admin --show
Target 1: iqn.2014-08.com.stomanager:server0.target0
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 1024 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /root/devdisk/lun0.img
            Backing store flags:
    Account information:
    ACL information:
        ALL
0
backing-store /var/develop/lun0.img
и Backing store path: /root/devdisk/lun0.img
путь будет одинаковый. у меня ошибка)
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
comments powered by Disqus