Monta Partições iSCSI Automaticamente na Inicialização no FreeBSD 10

1

Eu tenho um servidor FreeBSD 10.2 que eu montei drives iSCSI para. Eu gostaria de ter essas unidades montadas automaticamente no fstab para que elas sejam persistentes nas reinicializações.

Se eu executar o comando

mount /dev/da0p1 /mnt

Funciona perfeitamente.

mount
/dev/ada0p2 on / (ufs, local, journaled soft-updates)
devfs on /dev (devfs, local, multilabel)
/dev/da0p1 on /mnt (ufs, local, soft-updates)

No entanto, se eu colocar uma entrada em /etc/fstab , o sistema interrompe seus processos de inicialização dizendo que /dev/dap1 é inválido. Estou assumindo que isso ocorre porque os serviços de rede e iscsi ainda não estão ativos.

No meu /etc/fstab eu adicionei a opção "late" para o sistema de arquivos que eu quero montar, mas isso não tem nenhum efeito.

# cat /etc/fstab
# Device    Mountpoint  FStype  Options Dump    Pass#
/dev/ada0p2     /       ufs     rw        1        1
/dev/ada0p3    none     swap    sw        0        0


#User Added Entries
#/dev/da0p1      /mnt            ufs     rw,late  3       3

O que acontece é que o processo de inicialização pára de dizer que não há "nenhum arquivo ou diretório / dev / da0p1. Se eu fizer um ls /dev/da* esse diretório aparece. (veja a imagem abaixo)

Naverdade,depoisdealgunstestes,seeuapenasesperaralgunssegundosedigitar"exit" no prompt no modo de usuário único, o sistema continuará inicializando e as unidades serão montadas normalmente.

Existe uma maneira de colocar um atraso de 5 segundos para permitir que o dispositivo iscsi seja criado para que a montagem não falhe?

    
por Allan 03.02.2016 / 22:06

3 respostas

1

Aviso: Eu não sei se isso é o certo , mas funcionou para mim.

Então, eu essencialmente precisava do processo de inicialização para levar um pouco mais de tempo para que os serviços de rede pudessem concluir o carregamento e as montagens do iSCSI pudessem ser criadas para que houvesse algo para montar.

O que eu fiz foi adicionar sleep 5 ao script /etc/rc.d/mountlate .

# PROVIDE: mountlate
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: nojail

. /etc/rc.subr

name="mountlate"
start_cmd="mountlate_start"
stop_cmd=":"

mountlate_start()
{
        local err latefs
        sleep 5               <-------- Added this line
        # Mount "late" filesystems.
        #
        err=0

5 segundos pareciam ser um bom número para mim; sua milhagem pode variar e você desejará testar diferentes valores.

Mais uma vez, não sei se esta é a maneira correta de resolver esse problema em particular e se alguém tiver uma maneira melhor ou correta, por favor poste.

    
por 04.02.2016 / 04:19
0

Descobri que não precisei adicionar o sleep ao /etc/rc.d/mountlate. Em vez disso, alterei o número de despejo para 0 e o número de passagem do fsck para 0 em / etc / fstab. Nenhum fsck é executado na inicialização, mas a partição é montada:

/dev/da0p1      /opt            ufs     rw,late 0       0
    
por 06.10.2016 / 05:20
0

A melhor solução por enquanto (requer o FreeBSD 11.0+), parece ser:

  • entrada fstab com a opção 'late' (e dump / pass values configurados como 0)
  • adicione "-w 10" ao iscsictl_flags no rc.conf, então iscsictl aguardará a conexão iscsi (10 segundos no máximo)

/ etc / fstab:

/dev/PARTITION.journal         /mnt         ufs     rw,async,late     3       3

/etc/rc.conf:

iscsictl_enable="YES"
iscsictl_flags="-Aa -w 10"
iscsid_enable="YES"

PS: Não sei porquê, mas não consigo utilizar etiquetas GPT no iSCSI (funciona na criação, mas ao reiniciar o rótulo está aqui - mostrado por 'gpart show -l' - mas não está disponível em / dev / gpt /).

    
por 24.03.2018 / 15:14