스토리지 노드의 설치 및 구성

스토리지 노드의 설치 및 구성

이 섹션에서는 블록 스토리지 서비스를 위한 스토리지 노드를 설치 및 구성하는 방법을 설명합니다. 간략화하여, 이 구성에서는 한 개의 스토리지 노드에 비어있는 로컬 블록 스토리지 장치를 가리키는 것으로 합니다. 이 안내에서는 /dev/sdb 를 사용하지만, 특정 환경에서는 다른 값으로 대체할 수 있습니다.

해당 서비스는 LVM 드라이버를 사용하는 장치 위에 논리 볼륨을 프로비저닝하고 iSCSI 전송을 통해 인스턴스에 제공합니다. 해당 안내에 약간의 수정을 거쳐 대상 환경에 스토리지 노드를 추가하여 수평적 스케일링을 할 수 있습니다.

선행조건

블록 스토리지 서비스를 스토리지 노드에 설치 및 구성하기 전에, 스토리지 장치를 준비해야 합니다.

주석

해당 단계를 스토리지 노드에서 수행합니다.

  1. 지원 유틸리티 패키지들을 설치합니다:

    • LVM 패키지를 설치합니다:

      # yum install lvm2
      
    • LVM 메타데이터 서비스를 시작하고 시스템 부팅시 시작하도록 설정합니다:

      # systemctl enable lvm2-lvmetad.service
      # systemctl start lvm2-lvmetad.service
      

    주석

    몇몇 배포판은 디폴트로 LVM을 포함합니다.

  2. LVM 물리 볼륨 /dev/sdb 를 생성합니다:

    # pvcreate /dev/sdb
    Physical volume "/dev/sdb" successfully created
    
  3. LVM 볼륨 그룹 cinder-volumes 를 생성합니다:

    # vgcreate cinder-volumes /dev/sdb
    Volume group "cinder-volumes" successfully created
    

    블록 스토리지 서비스는 볼륨 그룹 내에 논리 볼륨을 생성합니다.

  4. 인스턴스에서만 블록 스토리지 볼륨에 액세스할 수 있습니다. 그러나, 기반 운영체제에서 볼륨에 연결된 장치를 관리합니다. 디폴트로, LVM 볼륨 검색 도구는 볼륨이 포함된 블록 스토리지 장치에 대해 /dev 디렉토리를 검색합니다. 프로젝트에서 LVM을 볼륨으로 사용하는 경우, 검색 도구는 해당 볼륨을 감지하고 캐싱을 하려고 시도하는데, 이는 기반 운영체제 및 프로젝트 볼륨에 다양한 문제를 일으킬 수 있습니다. LVM을 cinder-volume 볼륨 그룹을 포함하는 장치만 검색하도록 재구성해야 합니다. /etc/lvm/lvm.conf 파일을 편집하여 다음 작업을 완료합니다:

    • devices 섹션에서, /dev/sdb 장치를 허용하고 다른 장치들은 거부하는 필터를 추가합니다:

      devices {
      ...
      filter = [ "a/sdb/", "r/.*/"]
      

      필터 배열 내 각 항목은 accept 에 대한 a 또는 reject 에 대한 r 로 시작하고 장치 이름에 대한 정규 표현식을 포합합니다. 배열은 그 외 다른 장치를 거부하기 위해 r/.*/ 로 끝나야 합니다. vgs -vvvv 명령어를 사용하여 필터를 테스트할 수 있습니다.

      경고

      스토리지 노드에서 LVM을 운영체제 디스크로 사용하는 경우, 연결된 장치 또한 필터에 추가해야 합니다. 예를 들면, /dev/sda 장치에 운영체제를 포함하고 있는 경우:

      filter = [ "a/sda/", "a/sdb/", "r/.*/"]
      

      비슷하게, compute 노드에서 LVM을 운영체제 디스크로 사용하는 경우, 해당 노드의 /etc/lvm/lvm.conf 파일 내 필터를 수정하여 운영체제 디스크만을 포함하도록 해야 합니다. 예를 들면, /dev/sda 장치에 운영체제를 포함하고 있는 경우:

      filter = [ "a/sda/", "r/.*/"]
      

구성요소 설치 및 구성

  1. 패키지를 설치하십시오:

    # yum install openstack-cinder targetcli python-keystone
    
  1. /etc/cinder/cinder.conf 파일을 편집하여 다음 작업을 완료합니다:

    • [database] 섹션에서, 데이터베이스 액세스를 구성합니다:

      [database]
      ...
      connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
      

      CINDER_DBPASS 를 블록 스토리지 데이터베이스를 위해 선택했던 암호로 변경합니다.

    • [DEFAULT][oslo_messaging_rabbit] 섹션에서, RabbitMQ 메시지 큐 액세스를 구성합니다:

      [DEFAULT]
      ...
      rpc_backend = rabbit
      
      [oslo_messaging_rabbit]
      ...
      rabbit_host = controller
      rabbit_userid = openstack
      rabbit_password = RABBIT_PASS
      

      RABBIT_PASSRabbitMQ 에서 openstack 계정에 대해 선택한 암호로 변경합니다.

    • [DEFAULT][keystone_authtoken] 섹션에서는, Identity 서비스 액세스를 구성합니다:

      [DEFAULT]
      ...
      auth_strategy = keystone
      
      [keystone_authtoken]
      ...
      auth_uri = http://controller:5000
      auth_url = http://controller:35357
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = cinder
      password = CINDER_PASS
      

      CINDER_PASS``를 Identity 서비스에서 ``cinder 사용자에 대해 선택했던 암호로 변경합니다.

      주석

      [keystone_authtoken] 섹션 내 다른 옵션들을 주석 처리 또는 제거합니다.

    • [DEFAULT] 섹션에서, my_ip 옵션을 구성합니다:

      [DEFAULT]
      ...
      my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      

      MANAGEMENT_INTERFACE_IP_ADDRESS 를 스토리지 노드의 관리 네트워크 인터페이스에 대한 IP 주소로 변경합니다. example architecture 에서의 첫 노드에서는 보통 10.0.0.41 입니다.

    • [lvm] 섹션에서, LVM 드라이버와 함께 LVM 백엔드, cinder-volumes 볼륨 그룹, iSCSI 프로토콜 및 적절한 iSCSI 서비스를 구성합니다:

      [lvm]
      ...
      volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
      volume_group = cinder-volumes
      iscsi_protocol = iscsi
      iscsi_helper = lioadm
      
    • [DEFAULT] 섹션에, LVM 백엔드를 활성화합니다:

      [DEFAULT]
      ...
      enabled_backends = lvm
      

      주석

      백엔드 이름은 가상으로 되어 있습니다. 하나의 예로, 본 가이드에서는 드라이버에 대한 이름을 백엔드 이름으로 사용합니다.

    • [DEFAULT] 섹션에서 이미지 API 서비스의 위치를 구성합니다:

      [DEFAULT]
      ...
      glance_api_servers = http://controller:9292
      
    • [oslo_concurrency] 섹션에서, lock 경로를 구성합니다:

      [oslo_concurrency]
      ...
      lock_path = /var/lib/cinder/tmp
      

설치 마무리

  • 블록 스토리지 볼륨 서비스와 그와 관계된 서비스들을 시작하고 시스템 부팅시 자동적으로 시작하도록 설정합니다:

    # systemctl enable openstack-cinder-volume.service target.service
    # systemctl start openstack-cinder-volume.service target.service
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.