Настройка автомонтирования раздела iSCSI

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Raven_kg
рядовой
Сообщения: 46
Зарегистрирован: 2009-11-30 9:38:35
Контактная информация:

Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Raven_kg » 2011-12-22 14:30:01

Назрела необходимость подключить к серверу диск по iSCSI. С импортированием диска, разметкой и т.д. проблем не возникло, устройства da0p1 и da0p2 подцепились системой нормально. Возник вопрос с автоматическим монтированием при старте системы. Сначала обошелся костылем - вызывал из /etc/rc.d/ipfw скрипт cодержащий

Код: Выделить всё

iscontrol -c x -n x и mount -aF /etc/istab
. В /etc/istab соответственно расписывались параметры монтирования разделов. Но как выяснилось это не самый лучший выход - мне нужно врубить квоты на данном разделе, а квоты требуют запись в /etc/fstab. Добавление записи в оный вызывает при загрузке легендарную строку:

Код: Выделить всё

Enter full pathname of shell or RETURN for /bin/sh:
так как соответственно нет сети - нет и сказюка. Параметр noauto не спасает. При монтировании руками или из /etc/istab в выводе команды mount без параметров есть такая опция как local. Вопрос - нет-ли чего-то похожего на Linux-овую опцию _netdev? Т.е. мне нужно научить систему хотя бы пропускать данный диск и даже не пытаться его примонтировать автоматически.
Последний раз редактировалось f_andrey 2011-12-22 14:43:50, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения, и оформляйте его по человечески.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Mox » 2011-12-22 14:54:47

Почему до сих в базовой системе нет штатных способов монтирования iscsi дисков непонятно.
Я напрямую писал Daniel Branis - он по этому поводу ничего не отвечает.
В рассылке можно найти rc.d скрипты, написанные еще в 2007 году по-моему, но почему-то они так и не были включены в базовую систему и не сделана никакая замена.
В общем голяк, и не понятно почему никто не чешется.

Поищите в рассылке
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Mox » 2011-12-22 14:58:41

"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Raven_kg
рядовой
Сообщения: 46
Зарегистрирован: 2009-11-30 9:38:35
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Raven_kg » 2011-12-22 15:02:15

Оно и обидно! С отсутствием поддержки нормальных кластерных систем я уже как-то смирился, теперь вот iSCSI. Да конечно, отсутствие rc-скриптов это большая проблема, но суть моей просьбы немного другая - нужна строка в fstab и чтобы она не валила систему в rescue mode. Скрипт из рассылки я видел, кстати он у меня так и не завелся, пришлось доставать напильник. но там монтирование происходит из другого файла, а у меня получается свет на fstab клином сошелся.

UPD: Спасибо за линк, сейчас гляну что там)

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Mox » 2011-12-22 15:21:49

Raven_kg писал(а):Оно и обидно! С отсутствием поддержки нормальных кластерных систем я уже как-то смирился, теперь вот iSCSI. Да конечно, отсутствие rc-скриптов это большая проблема, но суть моей просьбы немного другая - нужна строка в fstab и чтобы она не валила систему в rescue mode. Скрипт из рассылки я видел, кстати он у меня так и не завелся, пришлось доставать напильник. но там монтирование происходит из другого файла, а у меня получается свет на fstab клином сошелся.

UPD: Спасибо за линк, сейчас гляну что там)
Вот круто было бы, если бы монитрование iscsi девайсов производилось из fstab как это сделано для nfs
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Raven_kg
рядовой
Сообщения: 46
Зарегистрирован: 2009-11-30 9:38:35
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Raven_kg » 2011-12-22 15:31:27

Да вот и я о том же.

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

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение manefesto » 2011-12-23 6:10:18

для извращенных целей есть rc.local
я такой яростный шо аж пиздеЦ
Изображение

spf
ефрейтор
Сообщения: 56
Зарегистрирован: 2009-11-05 15:28:46

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение spf » 2011-12-23 6:52:50

Можно попробовать как для nfs параметр late.
Например:

Код: Выделить всё

host.prov.ru:/zp/music      /usr/home/user/music     nfs     rw,late,-otcp,-onolockd 0       0
Но iscontrol надо будет самостоятельно где-нибудь запускать...

Raven_kg
рядовой
Сообщения: 46
Зарегистрирован: 2009-11-30 9:38:35
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Raven_kg » 2011-12-23 11:00:06

manefesto писал(а):для извращенных целей есть rc.local
Проблема в том что это надо запускать ДО rc.local

spf
спасибо за совет, но я уже это опробовал, late не спас положение - я может быть и глуп, но все-же не настолько чтобы не прочитать man fstab и man mount

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35429
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Alex Keda » 2011-12-25 9:28:04

а что, включить квоты своим скриптом - это уже проблема какая-то?
посмотрите как в системных сделано.
там ничего сверхъестественного нет
Убей их всех! Бог потом рассортирует...

Raven_kg
рядовой
Сообщения: 46
Зарегистрирован: 2009-11-30 9:38:35
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Raven_kg » 2011-12-25 17:47:15

Преблему решил, правда способ очень непопулярный, пришлось строгать костыли и т.д. В общем суть - квоты не врубались поскольку маунтпойнт не был привязан к разделу в fstab, и даже после ручного монтирования с этим разделом отказывались работать те же repquota, edquota.
Суть выхода из ситуации (чувствую сейчас полетят помидоры) - есть 2 файла - fstab и fstab.my. После монтирования корня, когда дело доходит до остальных разделов, срабатывает проверка на наличие в /etc файла fstab.old и при положительном переименовывает fstab в fstab.my, а fstab.old в fstab (на случай форс-мажорного завершения работы системы).
Строка в оригинальном fstab выглядит так:

Код: Выделить всё

/dev/da0p2              /storage/home   ufs     xx,groupquota,userquota       1        2
т.е. раздел полностью пропускается. Далее включается iscontrol из скрипта iscsid, оттуда же посредством start_postcmd произходит замена оригинального fstab моим, где та строка выглядит уже так:

Код: Выделить всё

/dev/da0p2              /storage/home   ufs     rw,groupquota,userquota       1        2
stop_postcmd в этом скрипте меняет файлы в обратном порядке.
На стрессоустойчивость данная конструкция пока не протестирована, что и как - отпишусь.

Alex Keda
Как задать порядок загрузки rc-скрипта? этот самый скрипт стартует ПОСЛЕ демонов, а у меня nginx хомяки ищет на том злополучном разделе

spf
ефрейтор
Сообщения: 56
Зарегистрирован: 2009-11-05 15:28:46

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение spf » 2011-12-26 10:34:39

Надо написать свой скрипт инициализации iscsi и разместить его в /usr/local/etc/rc.d/.
В начале скрипта указать порядок его запуска, например

Код: Выделить всё

# PROVIDE: iscsi
# REQUIRE: NETWORKING FILESYSTEMS
# BEFORE: mountlate
В /etc/rc.conf или /etc/rc.conf.local включить запуск этого скрипта, например

Код: Выделить всё

iscsi_enable="YES"
Проверить порядок запуска скриптов

Код: Выделить всё

rcorder /etc/rc.d/* /usr/local/etc/rc.d/*
В /etc/fstab поставить флаг late.

Raven_kg
рядовой
Сообщения: 46
Зарегистрирован: 2009-11-30 9:38:35
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Raven_kg » 2011-12-26 20:10:22

В /etc/fstab поставить флаг late.
=

Код: Выделить всё

Enter full pathname of shell or RETURN for /bin/sh:

spf
ефрейтор
Сообщения: 56
Зарегистрирован: 2009-11-05 15:28:46

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение spf » 2011-12-27 8:31:00

Какой скрипт в /usr/local/etc/rc.d/iscsi ?
Что показывает rcorder ?

Для iscsi-раздела в /etc/fstab последние две цифры заменить на нули.


spf
ефрейтор
Сообщения: 56
Зарегистрирован: 2009-11-05 15:28:46

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение spf » 2012-01-19 15:23:58

и как решено?

Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 101
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Lazy caT » 2013-08-20 19:14:36

spf » 19 янв 2012, 16:23
и как решено?
Действительно... Если уж действительно SOLVED, почему бы не поделится с общественностью?

Я уже пол интернета облазил в поисках решения автоматического подключения target'а в FreeBSD
постоянно натыкаюсь на стандартный копипаст подключения "TargetName = iqn.XYZZZZZZZZZZZZZ # whatever "iscontrol -v -d " gives you" но,
во всех подобных статьях пишется как target подключить вручную... Вручную-то я подключил и без этих статей...
Попробовал разобраться со скриптом ссылка на который здесь выложена но что-то не пошло,
и вот наткнулся на более менее внятное обсуждение... однако-ж SOLVED и всё...

Вопрос ко всем кто разобрался и понял - поделитесь пжалста, а-то у меня скоро весь мозг выкипит...

Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 101
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

Re: Настройка автомонтирования раздела iSCSI

Непрочитанное сообщение Lazy caT » 2013-08-21 12:03:20

Вопрос снимается. :)
Разобрался. Точнее, нашел ещё один скрипт запуска, который у меня заработал:
/etc/rc.d/iscsi

Код: Выделить всё

#!/bin/sh

# PROVIDE: iscsi
# REQUIRE: NETWORKING
# BEFORE: mountcritremote
# KEYWORD: shutdown

. /etc/rc.subr

name="iscsi"
start_cmd="iscsi_start"
stop_cmd="iscsi_stop"
rcvar="iscsi_enable"
required_modules="iscsi_initiator:iscsi"

iscsi_start()
{
        ${iscsi_command} -c ${iscsi_config} -n ${iscsi_nickname}
        if [ -f ${iscsi_fstab} ]; then
                devs=`sed -e '/^#/d' < ${iscsi_fstab} | cut -f 1`
                for xdev in $devs
                do
                        i=10
                        echo "Wait for $xdev"
                        while [ $i -ne 0 ]
                        do
                                [ -c $xdev ] && break
                                sleep 1
                                i=$(($i-1))
                        done
                done

                echo "mount -a -F ${iscsi_fstab}"
                mount -a -F ${iscsi_fstab}
        fi
}

iscsi_stop()
{
        if [ -f ${iscsi_fstab} ]; then
                echo "umount -a -F ${iscsi_fstab}"
                umount -a -F ${iscsi_fstab}
        fi
        killall -HUP ${iscsi_command}
}

load_rc_config $name

: ${iscsi_enable="NO"}
: ${iscsi_command="iscontrol"}
: ${iscsi_nickname="idisk1"}
: ${iscsi_config="/etc/iscsi.conf"}
: ${iscsi_fstab="/etc/iscsi.fstab"}

run_rc_command "$1"
в rc.conf

Код: Выделить всё

iscsi_enable="YES"
iscsi_nickname="itest" # Имя конфига таргета
iscsi_config="/etc/iscsi.conf" # где лежит конфиг
iscsi_fstab="/etc/iscsi.fstab" # где лежит iscsi.fstab
iscsi.fstab

Код: Выделить всё

/dev/da0s1              /iscsi          ufs     rw              0       0
после перезагрузки всё нормально поднимается...
по крайней мере, на данном этапе косяков не обнаружил.