3.3. Red Hat Enterprise Linux용 스토리지 노드 설치 및 구성

외부 스토리지 노드에서 Red Hat OpenStack Platform Object Storage 서비스(swift)를 사용하려면 계정, 컨테이너 및 오브젝트 서비스 프로세스를 작동하는 스토리지 노드를 설치하고 구성해야 합니다. 이 구성은 두 개의 스토리지 노드를 참조하며, 각각 두 개의 빈 로컬 블록 스토리지 장치가 포함되어 있습니다.

참고

오브젝트 스토리지 서비스의 내부 네트워크는 인증되지 않습니다. 보안상의 이유로 전용 네트워크 또는 VLAN에 스토리지 노드를 유지하는 것이 좋습니다.

참고

지침에서는 /dev/sdb/dev/sdc 를 장치 이름으로 사용하지만 해당 환경의 특정 노드의 값을 대체할 수 있습니다.

3.3.1. 스토리지 장치 준비

스토리지 노드에 오브젝트 스토리지 서비스를 설치하고 구성하기 전에 스토리지 장치를 준비해야 합니다.

참고

각 스토리지 노드에서 다음 단계를 모두 수행합니다.

절차

  1. 지원 유틸리티 패키지를 설치합니다.

    # yum install xfsprogs rsync
  2. /dev/sdb/dev/sdc 장치를 XFS로 포맷합니다.

    # mkfs.xfs /dev/sdb
    # mkfs.xfs /dev/sdc
  3. 마운트 지점 디렉토리 구조를 생성합니다.

    # mkdir -p /srv/node/sdb
    # mkdir -p /srv/node/sdc
  4. /etc/fstab 파일을 편집하여 다음 데이터를 추가합니다.

    /dev/sdb /srv/node/sdb xfs defaults 0 2
    /dev/sdc /srv/node/sdc xfs defaults 0 2
  5. 장치를 마운트합니다.

    # mount /srv/node/sdb
    # mount /srv/node/sdc
  6. 다음 데이터를 포함하도록 /etc/rsyncd.conf 파일을 생성하거나 편집합니다.

    uid = swift
    gid = swift
    log file = /var/log/rsyncd.log
    pid file = /var/run/rsyncd.pid
    address = MANAGEMENT_INTERFACE_IP_ADDRESS
    
    [account]
    max connections = 2
    path = /srv/node/
    read only = False
    lock file = /var/lock/account.lock
    
    [container]
    max connections = 2
    path = /srv/node/
    read only = False
    lock file = /var/lock/container.lock
    
    [object]
    max connections = 2
    path = /srv/node/
    read only = False
    lock file = /var/lock/object.lock

    MANAGEMENT_INTERFACE_IP_ADDRESS 를 스토리지 노드에 있는 관리 네트워크의 IP 주소로 바꿉니다.

  7. rsyncd 서비스를 시작하고 시스템이 부팅될 때 시작되도록 구성합니다.

    # systemctl enable rsyncd.service
    # systemctl start rsyncd.service

3.3.2. 구성 요소 구성

계정, 컨테이너 및 오브젝트 스토리지 서버를 구성합니다.

절차

  1. 패키지를 설치합니다.

    # yum install openstack-swift-account openstack-swift-container \
      openstack-swift-object
  2. /etc/swift/account-server.conf 파일을 편집하고 다음 작업을 완료합니다.

    1. [DEFAULT] 섹션에서 바인딩 IP 주소, 바인드 포트, 사용자, 구성 디렉터리, 마운트 지점 디렉터리를 구성합니다.

      [DEFAULT]
      ...
      bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      bind_port = 6202
      user = swift
      swift_dir = /etc/swift
      devices = /srv/node
      mount_check = True

      MANAGEMENT_INTERFACE_IP_ADDRESS 를 스토리지 노드에 있는 관리 네트워크의 IP 주소로 바꿉니다.

    2. [pipeline:main] 섹션에서 healthcheckrecon 모듈을 활성화합니다.

      [pipeline:main]
      pipeline = healthcheck recon account-server
    3. [filter:recon] 섹션에서 Recon cache 디렉터리를 구성합니다.

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
  3. 계정 서비스의 기본 방화벽 포트를 엽니다.

    # firewall-cmd --permanent --add-port=6202/tcp
  4. /etc/swift/container-server.conf 파일을 편집하고 다음 작업을 완료합니다.

    1. [DEFAULT] 섹션에서 바인딩 IP 주소, 바인드 포트, 사용자, 구성 디렉터리, 마운트 지점 디렉터리를 구성합니다.

      [DEFAULT]
      ...
      bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      bind_port = 6201
      user = swift
      swift_dir = /etc/swift
      devices = /srv/node
      mount_check = True

      MANAGEMENT_INTERFACE_IP_ADDRESS 를 스토리지 노드에 있는 관리 네트워크의 IP 주소로 바꿉니다.

    2. [pipeline:main] 섹션에서 healthcheckrecon 모듈을 활성화합니다.

      [pipeline:main]
      pipeline = healthcheck recon container-server
    3. [filter:recon] 섹션에서 Recon cache 디렉터리를 구성합니다.

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
  5. 컨테이너 서비스의 기본 방화벽 포트를 엽니다.

    # firewall-cmd --permanent --add-port=6201/tcp
  6. /etc/swift/object-server.conf 파일을 편집하고 다음 작업을 완료합니다.

    1. [DEFAULT] 섹션에서 바인딩 IP 주소, 바인드 포트, 사용자, 구성 디렉터리, 마운트 지점 디렉터리를 구성합니다.

      [DEFAULT]
      ...
      bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      bind_port = 6200
      user = swift
      swift_dir = /etc/swift
      devices = /srv/node
      mount_check = True

      MANAGEMENT_INTERFACE_IP_ADDRESS 를 스토리지 노드에 있는 관리 네트워크의 IP 주소로 바꿉니다.

    2. [pipeline:main] 섹션에서 healthcheckrecon 모듈을 활성화합니다.

      [pipeline:main]
      pipeline = healthcheck recon object-server
    3. [filter:recon] 섹션에서 recon_cache_pathrecon_lock_path 디렉터리를 구성합니다.

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
      recon_lock_path = /var/lock
  7. 오브젝트 서비스의 기본 방화벽 포트를 엽니다.

    # firewall-cmd --permanent --add-port=6200/tcp
  8. 마운트 지점 디렉터리 구조의 소유권이 올바른지 확인합니다.

    # chown -R swift:swift /srv/node
  9. recon 디렉토리를 만들고 적절한 소유권을 확인합니다.

    # mkdir -p /var/cache/swift
    # chown -R root:swift /var/cache/swift
    # chmod -R 775 /var/cache/swift