Страница 1 из 1
Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-22 14:30:01
Raven_kg
Назрела необходимость подключить к серверу диск по iSCSI. С импортированием диска, разметкой и т.д. проблем не возникло, устройства da0p1 и da0p2 подцепились системой нормально. Возник вопрос с автоматическим монтированием при старте системы. Сначала обошелся костылем - вызывал из /etc/rc.d/ipfw скрипт cодержащий
. В /etc/istab соответственно расписывались параметры монтирования разделов. Но как выяснилось это не самый лучший выход - мне нужно врубить квоты на данном разделе, а квоты требуют запись в /etc/fstab. Добавление записи в оный вызывает при загрузке легендарную строку:
Код: Выделить всё
Enter full pathname of shell or RETURN for /bin/sh:
так как соответственно нет сети - нет и сказюка. Параметр noauto не спасает. При монтировании руками или из /etc/istab в выводе команды mount без параметров есть такая опция как local. Вопрос - нет-ли чего-то похожего на Linux-овую опцию _netdev? Т.е. мне нужно научить систему хотя бы пропускать данный диск и даже не пытаться его примонтировать автоматически.
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-22 14:54:47
Mox
Почему до сих в базовой системе нет штатных способов монтирования iscsi дисков непонятно.
Я напрямую писал Daniel Branis - он по этому поводу ничего не отвечает.
В рассылке можно найти rc.d скрипты, написанные еще в 2007 году по-моему, но почему-то они так и не были включены в базовую систему и не сделана никакая замена.
В общем голяк, и не понятно почему никто не чешется.
Поищите в рассылке
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-22 14:58:41
Mox
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-22 15:02:15
Raven_kg
Оно и обидно! С отсутствием поддержки нормальных кластерных систем я уже как-то смирился, теперь вот iSCSI. Да конечно, отсутствие rc-скриптов это большая проблема, но суть моей просьбы немного другая - нужна строка в fstab и чтобы она не валила систему в rescue mode. Скрипт из рассылки я видел, кстати он у меня так и не завелся, пришлось доставать напильник. но там монтирование происходит из другого файла, а у меня получается свет на fstab клином сошелся.
UPD: Спасибо за линк, сейчас гляну что там)
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-22 15:21:49
Mox
Raven_kg писал(а):Оно и обидно! С отсутствием поддержки нормальных кластерных систем я уже как-то смирился, теперь вот iSCSI. Да конечно, отсутствие rc-скриптов это большая проблема, но суть моей просьбы немного другая - нужна строка в fstab и чтобы она не валила систему в rescue mode. Скрипт из рассылки я видел, кстати он у меня так и не завелся, пришлось доставать напильник. но там монтирование происходит из другого файла, а у меня получается свет на fstab клином сошелся.
UPD: Спасибо за линк, сейчас гляну что там)
Вот круто было бы, если бы монитрование iscsi девайсов производилось из fstab как это сделано для nfs
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-22 15:31:27
Raven_kg
Да вот и я о том же.
Кстати по линку тот самый скрипт о котором я писал выше, так что мои поиски даже и не думают заканчиваться.
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-23 6:10:18
manefesto
для извращенных целей есть rc.local
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-23 6:52:50
spf
Можно попробовать как для nfs параметр
late.
Например:
Код: Выделить всё
host.prov.ru:/zp/music /usr/home/user/music nfs rw,late,-otcp,-onolockd 0 0
Но iscontrol надо будет самостоятельно где-нибудь запускать...
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-23 11:00:06
Raven_kg
manefesto писал(а):для извращенных целей есть rc.local
Проблема в том что это надо запускать ДО rc.local
spf
спасибо за совет, но я уже это опробовал, late не спас положение - я может быть и глуп, но все-же не настолько чтобы не прочитать man fstab и man mount
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-25 9:28:04
Alex Keda
а что, включить квоты своим скриптом - это уже проблема какая-то?
посмотрите как в системных сделано.
там ничего сверхъестественного нет
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-25 17:47:15
Raven_kg
Преблему решил, правда способ очень непопулярный, пришлось строгать костыли и т.д. В общем суть - квоты не врубались поскольку маунтпойнт не был привязан к разделу в 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 хомяки ищет на том злополучном разделе
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-26 10:34:39
spf
Надо написать свой скрипт инициализации iscsi и разместить его в /usr/local/etc/rc.d/.
В начале скрипта указать порядок его запуска, например
Код: Выделить всё
# PROVIDE: iscsi
# REQUIRE: NETWORKING FILESYSTEMS
# BEFORE: mountlate
В /etc/rc.conf или /etc/rc.conf.local включить запуск этого скрипта, например
Проверить порядок запуска скриптов
В /etc/fstab поставить флаг late.
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-26 20:10:22
Raven_kg
В /etc/fstab поставить флаг late.
=
Код: Выделить всё
Enter full pathname of shell or RETURN for /bin/sh:
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2011-12-27 8:31:00
spf
Какой скрипт в /usr/local/etc/rc.d/iscsi ?
Что показывает rcorder ?
Для iscsi-раздела в /etc/fstab последние две цифры заменить на нули.
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2012-01-19 14:15:57
Raven_kg
SOLVED! )))
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2012-01-19 15:23:58
spf
и как решено?
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2013-08-20 19:14:36
Lazy caT
spf » 19 янв 2012, 16:23
и как решено?
Действительно... Если уж действительно SOLVED, почему бы не поделится с общественностью?
Я уже пол интернета облазил в поисках решения автоматического подключения target'а в FreeBSD
постоянно натыкаюсь на стандартный копипаст подключения "TargetName = iqn.XYZZZZZZZZZZZZZ # whatever "iscontrol -v -d " gives you" но,
во всех подобных статьях пишется как target подключить вручную... Вручную-то я подключил и без этих статей...
Попробовал разобраться со скриптом ссылка на который здесь выложена но что-то не пошло,
и вот наткнулся на более менее внятное обсуждение... однако-ж SOLVED и всё...
Вопрос ко всем кто разобрался и понял - поделитесь пжалста, а-то у меня скоро весь мозг выкипит...
Re: Настройка автомонтирования раздела iSCSI
Добавлено: 2013-08-21 12:03:20
Lazy caT
Вопрос снимается.

Разобрался. Точнее, нашел ещё один скрипт запуска, который у меня заработал:
/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
после перезагрузки всё нормально поднимается...
по крайней мере, на данном этапе косяков не обнаружил.