Я пытаюсь добавить LUN к работающей цели iSCSI под CentOS 6.5. Целью iSCSI является tgtd из пакета scsi-target-utils . Я вижу довольно странное поведение, и я немного растерялся, как поступить.

Прежде всего, создается впечатление, что запущено несколько экземпляров tgtd .

[eric@<host>]~% sudo service tgtd status
tgtd (pid 8713 8712) is running...
[eric@<host>]~% sudo service tgtd reload
Updating SCSI target daemon configuration: not running     [FAILED]

Тем не менее, у меня есть несколько виртуальных машин, на которых в данный момент запущены iSCSI LUN из этой системы, поэтому я знаю, что tgtd работает и работает, по крайней мере, несколько нормально.

Я получил статус выхода неудачной перезагрузки с помощью echo $? и он вернулся 7 .

Затем я поставил set -x в верхней части сценария инициализации и снова запустил его, чтобы увидеть, куда он возвращал 7 .

[eric@<host>]~% sudo service tgtd reload   
+-zsh:19> sudo service tgtd reload
+ case "$1" in
++ id -u
+ '[' 0 = 0 ']'
+ rh_status_q
+ rh_status
+ reload
+ '[' -f /etc/sysconfig/tgtd ']'
+ . /etc/sysconfig/tgtd
+ echo -n 'Updating SCSI target daemon configuration: '
Updating SCSI target daemon configuration: + tgt-admin --update ALL -c /etc/tgt/targets.conf
+ retval=107
+ '[' 107 -eq 107 ']'
+ echo -n 'not running'
not running+ failure
+ local rc=0
+ '[' color '!=' verbose -a -z '' ']'
+ echo_failure
+ '[' color = color ']'
+ echo -en '\033[60G'
                                                           + echo -n '['
[+ '[' color = color ']'
+ echo -en '\033[0;31m'
+ echo -n FAILED
FAILED+ '[' color = color ']'
+ echo -en '\033[0;39m'
+ echo -n ']'
]+ echo -ne '\r'
+ return 1
+ '[' -x /bin/plymouth ']'
+ /bin/plymouth --details
+ return 0
+ echo

+ return 7
+ exit 7

Похоже, что его сбой в функции reload . Кто бы мог подумать? В частности, это немного кода.

TGTD_CONFIG=/etc/tgt/targets.conf
...
tgt-admin --update ALL -c $TGTD_CONFIG >/dev/null 2>&1
retval=$?
if [ "$retval" -eq 107 ] ; then
        echo -n $"not running"
        failure
        echo
        return 7

Затем я выполнил эту команду:

[eric@<host>]~% sudo tgt-admin --update ALL -c /etc/tgt/targets.conf
tgtadm: can't send the request to the tgt daemon, Transport endpoint is not connected
tgtadm: can't send the request to the tgt daemon, Transport endpoint is not connected
tgtadm: can't send the request to the tgt daemon, Transport endpoint is not connected
tgtadm: can't send the request to the tgt daemon, Transport endpoint is not connected
Command:
        tgtadm -C 0 --lld iscsi --op new --mode target --tid 1 -T <redacted iqn>
exited with code: 107.

Это где я в недоумении. Я погуглил эту ошибку без особого успеха - похоже, мне придется убить процесс и перезапустить его. Кто-нибудь знает, что это может указывать на то, и почему tgtadm не может найти процесс, который явно работает? И еще лучше, кто-нибудь знает, могу ли я исправить это, не прерывая процесс, чтобы избежать прерывания обслуживания?

Вот еще одна важная информация:

[eric@<host>]~% sudo ps waux | grep tgt
root      8712  0.0  0.0 1163084 2648 ?        Ssl  Oct08   0:44 tgtd
root      8713  0.0  0.0  14888   500 ?        S    Oct08   0:03 tgtd
eric     20075  0.0  0.0 103244   900 pts/4    S+   14:09   0:00 grep tgt
[eric@<host>]~% uname -a
Linux <host> 2.6.32-431.29.2.el6.x86_64 #1 SMP Tue Sep 9 21:36:05 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

1 ответ1

0

Попробуйте обновить RPC в вашей системе, затем перезапустите tgtd . В моем случае это помогло:

yum update libtirpc

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .