7.4. iSCSI 대상 구성

스토리지 관리자는 gwcli 명령줄 유틸리티를 사용하여 대상, LUN, 클라이언트를 구성할 수 있습니다. iSCSI 대상의 성능을 최적화 하려면 gwcli reconfigure 하위 명령을 사용할 수도 있습니다.

주의

Red Hat은 Ceph iSCSI 게이트웨이 툴(예: gwcliceph-ansible )에서 내보낸 Ceph 블록 장치 이미지 관리를 지원하지 않습니다. 또한 rbd 명령을 사용하여 Ceph iSCSI 게이트웨이에서 내보낸 RBD 이미지의 이름을 변경하거나 제거하면 불안정한 스토리지 클러스터가 발생할 수 있습니다.

주의

iSCSI 게이트웨이 구성에서 RBD 이미지를 제거하기 전에 표준 절차를 따라 운영 체제에서 스토리지 장치를 제거합니다. 자세 한 내용은 Red Hat Enterprise Linux 7용 스토리지 관리 가이드 의 스토리지 장치 제거 장 또는 Red Hat Enterprise Linux 8용 시스템 설계 가이드 를 참조하십시오.

7.4.1. 사전 요구 사항

  • Ceph iSCSI 게이트웨이 소프트웨어 설치.

7.4.2. 명령줄 인터페이스를 사용하여 iSCSI 대상 구성

Ceph iSCSI 게이트웨이는 iSCSI 대상 노드이며 Ceph 클라이언트 노드이기도 합니다. 독립 실행형 노드에서 Ceph iSCSI 게이트웨이를 구성하거나 Ceph OSD(오브젝트 스토리지 장치) 노드로 연결합니다.

주의

이 문서에 명시된 경우를 제외하고 gwcli reconfigure 하위 명령을 사용하여 다른 옵션을 조정하지 마십시오.

사전 요구 사항

  • Ceph iSCSI 게이트웨이 소프트웨어 설치.

절차

  1. iSCSI 게이트웨이 명령줄 인터페이스를 시작합니다.

    [root@iscsigw ~]# gwcli
  2. IPv4 또는 IPv6 주소를 사용하여 iSCSI 게이트웨이를 만듭니다.

    구문

    >/iscsi-targets create iqn.2003-01.com.redhat.iscsi-gw:_target_name_
    > goto gateways
    > create ISCSI_GW_NAME IP_ADDR_OF_GW
    > create ISCSI_GW_NAME IP_ADDR_OF_GW

    예제

    >/iscsi-targets create iqn.2003-01.com.redhat.iscsi-gw:ceph-igw
    > goto gateways
    > create ceph-gw-1 10.172.19.21
    > create ceph-gw-2 10.172.19.22

    참고

    IPv4 및 IPv6 주소를 혼합하여 사용할 수 없습니다.

  3. Ceph 블록 장치를 추가합니다.

    구문

    > cd /disks
    >/disks/ create POOL_NAME image=IMAGE_NAME size=IMAGE_SIZE_m|g|t

    예제

    > cd /disks
    >/disks/ create rbd image=disk_1 size=50g

    참고

    풀 또는 이미지 이름에 마침표(.)를 사용하지 마십시오.

  4. 클라이언트를 생성합니다.

    구문

    > goto hosts
    > create iqn.1994-05.com.redhat:_client_name_
    > auth use username=USER_NAME password=PASSWORD

    예제

    > goto hosts
    > create iqn.1994-05.com.redhat:rh7-client
    > auth username=iscsiuser1 password=temp12345678

    중요

    Red Hat은 클라이언트 혼합, 일부 챌린지 핸드셰이크 인증 프로토콜(CHAP) 사용 및 일부 CHAP 비활성화를 지원하지 않습니다. 모든 클라이언트에는 CHAP이 활성화되거나 CHAP이 비활성화된 상태여야 합니다. 기본 동작은 이니시에이터 이름으로만 이니시에이터를 인증하는 것입니다.

    이니시에이터가 대상에 로그인하지 못하는 경우 일부 이니시에이터에 대해 CHAP 인증이 올바르게 구성되지 않을 수 있습니다. 예를 들면 다음과 같습니다.

    o- hosts ................................ [Hosts: 2: Auth: MISCONFIG]

    호스트 수준에서 다음 명령을 사용하여 모든 CHAP 인증을 재설정합니다.

    /> goto hosts
    /iscsi-target...csi-igw/hosts> auth nochap
    ok
    ok
    /iscsi-target...csi-igw/hosts> ls
    o- hosts ................................ [Hosts: 2: Auth: None]
      o- iqn.2005-03.com.ceph:esx ........... [Auth: None, Disks: 4(310G)]
      o- iqn.1994-05.com.redhat:rh7-client .. [Auth: None, Disks: 0(0.00Y)]
  5. 클라이언트에 디스크를 추가합니다.

    구문

    >/iscsi-target..eph-igw/hosts
    > cd iqn.1994-05.com.redhat:_CLIENT_NAME_
    > disk add POOL_NAME/IMAGE_NAME

    예제

    >/iscsi-target..eph-igw/hosts
    > cd iqn.1994-05.com.redhat:rh7-client
    > disk add rbd/disk_1

  6. API가 올바르게 사용 중인지 확인하려면 /var/log/ rbd-target-api.log 또는 /var/log/rbd-target-api.log 에 있는 rbd-target-api 로그 파일을 검색합니다. 예를 들면 https 의 경우 다음과 같습니다.

    Aug 01 17:27:42 test-node.example.com python[1879]:  * Running on https://0.0.0.0:5000/
  7. Ceph ISCSI 게이트웨이가 작동하는지 확인합니다.

    /> goto gateways
    /iscsi-target...-igw/gateways> ls
    o- gateways ............................ [Up: 2/2, Portals: 2]
      o- ceph-gw-1  ........................ [ 10.172.19.21 (UP)]
      o- ceph-gw-2  ........................ [ 10.172.19.22 (UP)]

    상태가 UNKNOWN 인 경우 네트워크 문제 및 잘못된 설정을 확인합니다. 방화벽을 사용하는 경우 적절한 TCP 포트가 열려 있는지 확인합니다. iSCSI 게이트웨이가 trusted_ip_list 옵션에 나열되어 있는지 확인합니다. rbd-target-api 서비스가 iSCSI 게이트웨이 노드에서 실행 중인지 확인합니다.

  8. 필요한 경우 max_data_area_mb 옵션을 다시 구성합니다.

    구문

    >/disks/ reconfigure POOL_NAME/IMAGE_NAME max_data_area_mb NEW_BUFFER_SIZE

    예제

    >/disks/ reconfigure rbd/disk_1 max_data_area_mb 64

    참고

    max_data_area_mb 옵션은 각 이미지가 iSCSI 대상과 Ceph 클러스터 간에 SCSI 명령 데이터를 전달하는 데 사용할 수 있는 메모리(MB)를 제어합니다. 이 값이 너무 작으면 과도한 대기열의 전체 재시도 횟수가 발생하여 성능에 영향을 미칠 수 있습니다. 값이 너무 크면 한 디스크가 너무 많은 시스템 메모리를 사용하므로 다른 하위 시스템에 할당 실패가 발생할 수 있습니다. max_data_area_mb 옵션의 기본값은 8 입니다.

  9. iSCSI 이니시에이터를 구성합니다.

추가 리소스

7.4.3. iSCSI 대상의 성능 최적화

iSCSI 대상에서 네트워크를 통해 데이터를 전송하는 방법을 제어하는 설정이 많이 있습니다. 이러한 설정은 iSCSI 게이트웨이의 성능을 최적화하는 데 사용할 수 있습니다.

주의

Red Hat 지원에서 지시하거나 이 문서에 지정된 대로만 해당 설정을 변경합니다.

gwcli reconfigure 하위 명령은 iSCSI 게이트웨이의 성능을 최적화하는 데 사용되는 설정을 제어합니다.

iSCSI 대상의 성능에 영향을 미치는 설정

  • max_data_area_mb
  • cmdsn_depth
  • immediate_data
  • initial_r2t
  • max_outstanding_r2t
  • first_burst_length
  • max_burst_length
  • max_recv_data_segment_length
  • max_xmit_data_segment_length

추가 리소스

7.4.4. OSD를 탐지하기 위한 타이머 설정 감소

OSD를 탐지하기 위한 타이머 설정을 줄여야 하는 경우가 있습니다. 예를 들어 Red Hat Ceph Storage를 iSCSI 게이트웨이로 사용하는 경우 OSD를 탐지하는 데 필요한 타이머 설정을 줄여 이니시에이터 시간 초과 가능성을 줄일 수 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ansible 관리 노드에 액세스

절차

  1. 새 타이머 설정을 사용하도록 Ansible을 구성합니다.

    1. Ansible 관리 노드에서 다음과 같이 표시되는 group_vars/all.yml 파일에 ceph_conf_overrides 섹션을 추가하거나 다음과 같이 기존 ceph_conf_overrides 섹션을 편집합니다.

      ceph_conf_overrides:
           osd:
             osd_client_watch_timeout: 15
             osd_heartbeat_grace: 20
             osd_heartbeat_interval: 5

      Ansible 플레이북이 실행될 때 OSD 노드의 ceph.conf 구성 파일에 위의 설정이 추가됩니다.

    2. ceph-ansible 디렉터리로 변경합니다.

      [admin@ansible ~]$ cd /usr/share/ceph-ansible
    3. Ansible을 사용하여 ceph.conf 파일을 업데이트하고 모든 OSD 노드에서 OSD 데몬을 다시 시작합니다. Ansible admin 노드에서 다음 명령을 실행합니다.

      베어메탈 배포

      [admin@ansible ceph-ansible]$ ansible-playbook site.yml --limit osds

      컨테이너 배포

      [admin@ansible ceph-ansible]$ ansible-playbook site-container.yml --limit osds -i hosts

  2. 타이머 설정이 ceph_conf_overrides 에 설정된 것과 동일한지 확인합니다.

    구문

    ceph daemon osd.OSD_ID config get osd_client_watch_timeout
    ceph daemon osd.OSD_ID config get osd_heartbeat_grace
    ceph daemon osd.OSD_ID config get osd_heartbeat_interval

    예제

    [root@osd ~]# ceph daemon osd.0 config get osd_client_watch_timeout
    {
        "osd_client_watch_timeout": "15"
    }
    
    [root@osd ~]#  ceph daemon osd.0 config get osd_heartbeat_grace
    {
        "osd_heartbeat_grace": "20"
    }
    
    [root@osd ~]# ceph daemon osd.0 config get osd_heartbeat_interval
    {
        "osd_heartbeat_interval": "5"
    }

  3. 선택 사항: OSD 데몬을 즉시 다시 시작할 수 없는 경우 Ceph Monitor 노드에서 온라인 업데이트를 수행하거나 모든 Ceph OSD 노드를 직접 업데이트할 수 있습니다. OSD 데몬을 다시 시작할 수 있게 되면 위에서 설명한 대로 Ansible을 사용하여 재부팅 시 설정이 유지되도록 새 타이머 설정을 ceph.conf 에 추가합니다.

    1. Ceph Monitor 노드에서 OSD 타이머 설정을 온라인으로 업데이트하려면 다음을 수행합니다.

      구문

      ceph tell osd.OSD_ID injectargs '--osd_client_watch_timeout 15'
      ceph tell osd.OSD_ID injectargs '--osd_heartbeat_grace 20'
      ceph tell osd.OSD_ID injectargs '--osd_heartbeat_interval 5'

      예제

      [root@mon ~]# ceph tell osd.0 injectargs '--osd_client_watch_timeout 15'
      [root@mon ~]# ceph tell osd.0 injectargs '--osd_heartbeat_grace 20'
      [root@mon ~]# ceph tell osd.0 injectargs '--osd_heartbeat_interval 5'

    2. Ceph OSD 노드에서 OSD 타이머 설정을 온라인으로 업데이트하려면 다음을 수행합니다.

      구문

      ceph daemon osd.OSD_ID config set osd_client_watch_timeout 15
      ceph daemon osd.OSD_ID config set osd_heartbeat_grace 20
      ceph daemon osd.OSD_ID config set osd_heartbeat_interval 5

      예제

      [root@osd ~]# ceph daemon osd.0 config set osd_client_watch_timeout 15
      [root@osd ~]# ceph daemon osd.0 config set osd_heartbeat_grace 20
      [root@osd ~]# ceph daemon osd.0 config set osd_heartbeat_interval 5

추가 리소스

7.4.5. 명령줄 인터페이스를 사용하여 iSCSI 호스트 그룹 구성

Ceph iSCSI 게이트웨이는 동일한 디스크 구성을 공유하는 여러 서버를 관리하기 위해 호스트 그룹을 구성할 수 있습니다. iSCSI 호스트 그룹은 그룹의 각 호스트에 액세스할 수 있는 논리적 호스트 그룹과 디스크를 생성합니다.

중요

여러 호스트로 디스크 장치를 공유하는 경우 클러스터 인식 파일 시스템을 사용해야 합니다.

사전 요구 사항

  • Ceph iSCSI 게이트웨이 소프트웨어 설치.
  • Ceph iSCSI 게이트웨이 노드에 대한 루트 수준 액세스.

절차

  1. iSCSI 게이트웨이 명령줄 인터페이스를 시작합니다.

    [root@iscsigw ~]# gwcli
  2. 새 호스트 그룹을 생성합니다.

    구문

    cd iscsi-targets/
    cd IQN/host-groups
    create group_name=GROUP_NAME

    예제

    /> cd iscsi-targets/
    /iscsi-targets> cd iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/host-groups/
    /iscsi-target.../host-groups> create group_name=igw_grp01

  3. 호스트 그룹에 호스트를 추가합니다.

    구문

    cd GROUP_NAME
    host add client_iqn=CLIENT_IQN

    예제

    > cd igw_grp01
    /iscsi-target.../host-groups/igw_grp01> host add client_iqn=iqn.1994-05.com.redhat:rh8-client

    이 단계를 반복하여 그룹에 호스트를 추가합니다.

  4. 호스트 그룹에 디스크를 추가합니다.

    구문

    cd /disks/
    /disks> create pool=POOL image=IMAGE_NAME size=SIZE
    cd /IQN/host-groups/GROUP_NAME
    disk add POOL/IMAGE_NAME

    예제

    > cd /disks/
    /disks> create pool=rbd image=rbdimage size=1G
    /> cd iscsi-targets/iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/host-groups/igw_grp01/
    /iscsi-target...s/igw_grp01> disk add rbd/rbdimage

    이 단계를 반복하여 그룹에 디스크를 추가합니다.

7.4.6. 추가 리소스

  • Red Hat Ceph Storage 대시보드를 사용하여 iSCSI 대상을 구성하는 방법에 대한 자세한 내용은 Red Hat Ceph Storage 대시보드 가이드의 iSCSI 대상 생성 섹션을 참조하십시오.