검색

13.5.5. 원격 Linux SRP 대상에 연결

download PDF
SCSI RDMA Protocol(SRP)는 시스템이 RDMA를 사용하여 다른 시스템에 연결된 SCSI 장치에 액세스할 수 있는 네트워크 프로토콜입니다. SRP 이니시에이터가 SRP 대상측에서 SRP 대상을 연결할 수 있도록 하려면 이니시에이터에 사용된 호스트 채널 어댑터(HCA) 포트에 대한 ACL(액세스 제어 목록) 항목을 추가해야 합니다.
HCA 포트의 ACL ID는 고유하지 않습니다. ACL ID는 HCA의 GID 형식에 따라 다릅니다. 동일한 드라이버를 사용하는 HCA(예: ib_qib )는 GID 형식이 다를 수 있습니다. 또한 ACL ID는 연결 요청을 시작하는 방법에 따라 달라집니다.

원격 Linux SRP 대상에 연결: 상위 수준 개요

  1. 대상 측면을 준비합니다.
    1. 스토리지 백엔드 생성. 예를 들어 /dev/sdc1 파티션을 가져옵니다.
      /> /backstores/block create vol1 /dev/sdc1
    2. SRP 대상을 생성합니다.
      /> /srpt create 0xfe80000000000000001175000077dd7e
    3. 단계에서 생성된 백엔드를 기반으로 LUN을 생성합니다.
      /> /srpt/ib.fe80000000000000001175000077dd7e/luns create /backstores/block/vol1
    4. 원격 SRP 클라이언트에 대한 노드 ACL을 생성합니다.
      /> /srpt/ib.fe80000000000000001175000077dd7e/acls create 0x7edd770000751100001175000077d708
      Node ACL은 srp_daemon 및 ibsrp dm 에 대해 다릅니다.
  2. 클라이언트 측의 경우 srp_daemon 또는 ibsrpdm 로 SRP 연결을 시작합니다.
    [root@initiator]# srp_daemon -e -n -i qib0 -p 1 -R 60 &
    [root@initiator]# ibsrpdm -c -d /dev/infiniband/umad0 > /sys/class/infiniband_srp/srp-qib0-1/add_target
  3. 선택사항입니다. lsscsi 또는 dmesg 와 같은 다양한 도구를 사용하여 SRP 연결을 확인하는 것이 좋습니다.

절차 13.3. srp_daemon 또는 ibsrpdm을 사용하여 원격 Linux SRP 대상에 연결

  1. 대상에 ibstat 명령을 사용하여 상태포트 GUID 값을 확인합니다. HCA는 Active 상태여야 합니다. ACL ID는 Port GUID 를 기반으로 합니다:
    [root@target]# ibstat
    CA 'qib0'
    	CA type: InfiniPath_QLE7342
    	Number of ports: 1
    	Firmware version:
    	Hardware version: 2
    	Node GUID: 0x001175000077dd7e
    	System image GUID: 0x001175000077dd7e
    	Port 1:
    		State: Active
    		Physical state: LinkUp
    		Rate: 40
    		Base lid: 1
    		LMC: 0
    		SM lid: 1
    		Capability mask: 0x0769086a
    		Port GUID: 0x001175000077dd7e
    		Link layer: InfiniBand
    
  2. HCA 포트 GUID를 기반으로 하는 SRP 대상 ID를 가져옵니다. 전용 디스크 파티션이 SRP 대상의 백엔드로 필요합니다(예: /dev/sdc1). 다음 명령은 기본 접두사 fe80을 교체하고 콜론을 제거하고 새 접두사를 문자열의 나머지 부분에 추가합니다.
    [root@target]# ibstatus | grep '<default-gid>' | sed -e 's/<default-gid>://' -e 's/://g' | grep 001175000077dd7e
    fe80000000000000001175000077dd7e
    
  3. targetcli 도구를 사용하여 블록 장치에 LUN vol1을 생성하고 SRP 대상을 생성하고 LUN을 내보냅니다.
    [root@target]# targetcli
    
    
    /> /backstores/block create vol1 /dev/sdc1
    Created block storage object vol1 using /dev/sdc1.
    /> /srpt create 0xfe80000000000000001175000077dd7e
    Created target ib.fe80000000000000001175000077dd7e.
    /> /srpt/ib.fe80000000000000001175000077dd7e/luns create /backstores/block/vol1
    Created LUN 0.
    /> ls /
    o- / ............................................................................. [...]
      o- backstores .................................................................. [...]
      | o- block ...................................................... [Storage Objects: 1]
      | | o- vol1 ............................... [/dev/sdc1 (77.8GiB) write-thru activated]
      | o- fileio ..................................................... [Storage Objects: 0]
      | o- pscsi ...................................................... [Storage Objects: 0]
      | o- ramdisk .................................................... [Storage Objects: 0]
      o- iscsi ................................................................ [Targets: 0]
      o- loopback ............................................................. [Targets: 0]
      o- srpt ................................................................. [Targets: 1]
        o- ib.fe80000000000000001175000077dd7e ............................... [no-gen-acls]
          o- acls ................................................................ [ACLs: 0]
          o- luns ................................................................ [LUNs: 1]
            o- lun0 ............................................... [block/vol1 (/dev/sdc1)]
    />
    
  4. 이니시에이터에서 ibstat 명령을 사용하여 상태가 Active 인지 확인하고 Port GUID:
    [root@initiator]# ibstat
    CA 'qib0'
    	CA type: InfiniPath_QLE7342
    	Number of ports: 1
    	Firmware version:
    	Hardware version: 2
    	Node GUID: 0x001175000077d708
    	System image GUID: 0x001175000077d708
    	Port 1:
    		State: Active
    		Physical state: LinkUp
    		Rate: 40
    		Base lid: 2
    		LMC: 0
    		SM lid: 1
    		Capability mask: 0x07690868
    		Port GUID: 0x001175000077d708
    		Link layer: InfiniBand
    
  5. 원격 SRP 대상에 연결하지 않고 스캔하려면 다음 명령을 사용합니다. 대상 GUID는 이니시에이터가 원격 타겟을 찾았음을 보여줍니다. ID 문자열은 원격 타겟이 Linux 소프트웨어 대상(ib_srpt.ko)임을 보여줍니다.
    [root@initiator]# srp_daemon -a -o
    IO Unit Info:
        port LID:        0001
        port GID:        fe80000000000000001175000077dd7e
        change ID:       0001
        max controllers: 0x10
    
        controller[  1]
            GUID:      001175000077dd7e
            vendor ID: 000011
            device ID: 007322
            IO class : 0100
            ID:        Linux SRP target
            service entries: 1
                service[  0]: 001175000077dd7e / SRP.T10:001175000077dd7e
    
  6. SRP 연결을 확인하려면 lsscsi 명령을 사용하여 SCSI 장치를 나열하고 이니시에이터가 대상에 연결되기 전후에 lsscsi 출력을 비교합니다.
    [root@initiator]# lsscsi
    [0:0:10:0]   disk    IBM-ESXS ST9146803SS      B53C  /dev/sda
    
  7. 실패할 것으로 예상되는 이니시에이터 포트에 유효한 ACL을 구성하지 않고 원격 대상에 연결하려면 srp_daemon 또는 ibsrp dm:에 대해 다음 명령을 사용합니다.
    [root@initiator]# srp_daemon -e -n -i qib0 -p 1 -R 60 &
    [1] 4184
    
    [root@initiator]# ibsrpdm -c -d /dev/infiniband/umad0 > /sys/class/infiniband_srp/srp-qib0-1/add_target
    
  8. dmesg 의 출력은 SRP 연결 작업이 실패한 이유를 보여줍니다. 이후 단계에서 대상측의 dmesg 명령을 사용하여 상황을 명확하게 만듭니다.
    [root@initiator]# dmesg -c
    [ 1230.059652] scsi host5: ib_srp: REJ received
    [ 1230.059659] scsi host5: ib_srp: SRP LOGIN from fe80:0000:0000:0000:0011:7500:0077:d708 to fe80:0000:0000:0000:0011:7500:0077:dd7e REJECTED, reason 0x00010006
    [ 1230.073792] scsi host5: ib_srp: Connection 0/2 failed
    [ 1230.078848] scsi host5: ib_srp: Sending CM DREQ failed
    
  9. LOGIN 실패로 인해 lsscsi 명령의 출력은 이전 단계와 동일합니다.
    [root@initiator]# lsscsi
    [0:0:10:0]   disk    IBM-ESXS ST9146803SS      B53C  /dev/sda
    
  10. 대상측(ib_srpt.ko)에서 dmesg 를 사용하면 LOGIN이 실패한 이유에 대한 설명이 제공됩니다. 또한 출력에는 srp_daemon 에서 제공하는 유효한 ACL ID가 포함되어 있습니다 : 0x7edd770000751100001175000077d708.
    [root@target]# dmesg
    [ 1200.303001] ib_srpt Received SRP_LOGIN_REQ with i_port_id 0x7edd770000751100:0x1175000077d708, t_port_id 0x1175000077dd7e:0x1175000077dd7e and it_iu_len 260 on port 1 (guid=0xfe80000000000000:0x1175000077dd7e)
    [ 1200.322207] ib_srpt Rejected login because no ACL has been configured yet for initiator 0x7edd770000751100001175000077d708.
  11. targetcli 도구를 사용하여 유효한 ACL을 추가합니다.
    [root@target]# targetcli
    targetcli shell version 2.1.fb41
    Copyright 2011-2013 by Datera, Inc and others.
    For help on commands, type 'help'.
    
    /> /srpt/ib.fe80000000000000001175000077dd7e/acls create 0x7edd770000751100001175000077d708
    Created Node ACL for ib.7edd770000751100001175000077d708
    Created mapped LUN 0.
    
  12. SRP 로그인 작업을 확인합니다.
    1. srp_daemon 이 다시 로그인할 수 있도록 60초 동안 기다립니다.
      [root@initiator]# sleep 60
    2. SRP 로그인 작업을 확인합니다.
      [root@initiator]# lsscsi
      [0:0:10:0]   disk    IBM-ESXS ST9146803SS      B53C  /dev/sda
      [7:0:0:0] disk LIO-ORG vol1 4.0 /dev/sdb
    3. SRP 대상 검색의 커널 로그의 경우 다음을 사용합니다.
      [root@initiator]# dmesg -c
      [ 1354.182072] scsi host7: SRP.T10:001175000077DD7E
      [ 1354.187258] scsi 7:0:0:0: Direct-Access     LIO-ORG  vol1             4.0  PQ: 0 ANSI: 5
      [ 1354.208688] scsi 7:0:0:0: alua: supports implicit and explicit TPGS
      [ 1354.215698] scsi 7:0:0:0: alua: port group 00 rel port 01
      [ 1354.221409] scsi 7:0:0:0: alua: port group 00 state A non-preferred supports TOlUSNA
      [ 1354.229147] scsi 7:0:0:0: alua: Attached
      [ 1354.233402] sd 7:0:0:0: Attached scsi generic sg1 type 0
      [ 1354.233694] sd 7:0:0:0: [sdb] 163258368 512-byte logical blocks: (83.5 GB/77.8 GiB)
      [ 1354.235127] sd 7:0:0:0: [sdb] Write Protect is off
      [ 1354.235128] sd 7:0:0:0: [sdb] Mode Sense: 43 00 00 08
      [ 1354.235550] sd 7:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
      [ 1354.255491] sd 7:0:0:0: [sdb] Attached SCSI disk
      [ 1354.265233] scsi host7: ib_srp: new target: id_ext 001175000077dd7e ioc_guid 001175000077dd7e pkey ffff service_id 001175000077dd7e sgid fe80:0000:0000:0000:0011:7500:0077:d708 dgid fe80:0000:0000:0000:0011:7500:0077:dd7e
      xyx
      
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.