RHEL 6 iSCSI LUNs

3

Eu tenho um sistema RHEL configurado como um destino iSCSI com 2 luns compartilhados por meio de um destino através da seguinte configuração em /etc/tgt/targets.conf (que eu construí seguindo os exemplos comentados em / etc / tgt / targets.conf):

<target iqn.2014-04.com.local.box:ESXi.target1>
        backing-store /dev/ESXi_VG/ESXi_LUN_01 #LUN01
        backing-store /dev/ESXi_VG/TEST_LUN_01 #LUN02
</target>

Pretende-se que sejam compartilhados para um par de hosts ESXi como um Datastore.

Eu criei originalmente um único volume lógico de 4,00 TB LVM no vg ESXi_VG para o armazenamento de dados; no entanto, percebi que precisaria de um segundo LUN para testes de IPS via RDM para um vm armazenado no armazenamento local no host do ESXi. Para esse fim, criei um segundo volume lógico de 5,00 GB no mesmo grupo de volumes e adicionei a entrada LUN para o segundo LUN na configuração de destino que mostrei acima. Eu então desmontei o LUN de 4.00 Tb no meu host ESXi e reiniciei o tgtd.

Estou vendo algumas coisas estranhas agora. Primeiro, aqui está a saída de um comando tgt-admin -s para mostrar LUNs atuais:

[root@box ~]# tgt-admin -s
Target 1: iqn.2014-04.com.local.box:ESXi.target1
    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: 5369 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/ESXi_VG/TEST_LUN_01
            Backing store flags:
    Account information:
    ACL information:
        ALL

Como você pode ver, apenas 1 LUN está exibindo, não 2 - e o LUN que está exibindo é apenas o LUN de 5,00 GB que adicionei em uma data posterior. Se eu remover ou comentar a entrada do LUN, ele mostrará apenas o LUN 0, o controlador, e não o LUN 1.

No entanto, o ESXi ainda pode ver o LUN de 4.00 TB e pode montá-lo, formatá-lo etc. O que ele não consegue ver é a partição de 5.00 GB, apesar de ser compartilhado pelo mesmo destino iSCSI.

Eu tenho algumas perguntas como resultado:

  1. O tgt-admin mostra apenas LUNs atualmente não conectados a um iniciador? Se não, por que meu datastore de 4,00 TB não está mais sendo exibido?

  2. Como posso fazer com que o segundo LUN apareça no ESXi para que eu possa montá-lo em uma VM via RDM para testes de iops?

por Coxswain 24.04.2014 / 18:52

1 resposta

2

Aqui está o que eu descobri que o problema era. Depois de ser chamado para longe deste projeto devido a uma fusão corporativa, ele foi jogado de volta no meu prato e eu decidi reiniciar do zero. Desta vez eu criei um LUN, RH_ISCSI_LV_001, e compartilhei através do daemon iscsi. Consegui montar e formatá-lo no vSphere.

Mais uma vez eu desmontei o LUN e parei o tgtd para editar /etc/tgt/targets.conf para adicionar um segundo LUN de teste que eu usaria para o teste de desempenho mapeando-o para um convidado usando o RDM. Mais uma vez, quando comecei o tgtd, apenas 1 LUN foi exibido.

Eu supus que poderia ser um problema com o LUN não ser legível pelo tgtd depois que o VMware o formatou, então eu tentei destruí-lo com o lvremove. ele emitiu um erro ioctl ( device-mapper: remove ioctl on failed: Device or resource busy ) e não excluiria.

Após algumas escavações, executei o comando lsof /dev/ESXi_VG/RH_ISCSI_LV_001 e descobri que o pid 2251 era o processo de bloqueio. um ps -ef rápido e aprendi que o tgtd, em algum momento, não foi encerrado de forma limpa e como nada impediu que um segundo processo do tgtd fosse iniciado (aparentemente) ele reteve a "propriedade" do LUN e impediu cada processo tgtd sucessivo Eu criei de tocá-lo. um kill rápido -9 e service tgtd start depois e ambos os meus LUNs ficaram visíveis para o ESXi.

    
por 02.08.2014 / 07:07