ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오픈스택 수동 설치 실습 #.14
    Cloud Computing/Openstack 2019.01.29 15:36


    오픈스택 수동 설치 실습 #.14 - Cinder block storage 서비스 설치


    Cinder - LVM을 이용한 스토리지 노드 구성

    오픈스택 블록 스토리지(Cinder)는 오픈스택 컴퓨트 인스턴스에 사용할 지속적인 블록 레벨 스토리지 장치들을 제공합니다. 블록 스토리지 시스템은 블록 장치들을 서버에 작성, 부착, 제거하는 일을 관리하며, 블록 스토리지 볼륨들은 클라우드 사용자들이 자신만의 스토리지의 필요한 부분을 관리하기 위한 대시보드 및 오픈스택 컴퓨트와 완전히 연동됩니다. 로컬 리눅스 서버 스토리지뿐 아니라 Ceph, 클라우드바이트, Coraid, EMC(ScaleIO, VMAX, VNX and XtremIO), GlusterFS, 히타치 데이터 시스템, IBM 스토리지(IBM DS8000, Storwize 계열, SAN 볼륨 컨트롤러, XIV 스토리지 시스템, GPFS), 리눅스 LIO, 넷앱, 넥센타, 님블 스토리지, Scality, 솔리드파이어, HP (스토어버추얼, 3PAR 스토어서브 계열), 퓨어 스토리지를 포함한 스토리지 플랫폼들을 사용합니다. 블록 스토리지는 데이터베이스 스토리지, 확장 가능 파일 시스템과 같은 성능에 민감한 시나리오에 적절하며, 서버에 로우 블록 레벨 스토리지에 대한 접근을 제공합니다. 스냅샷 관리는 블록 스토리지 볼륨에 저장된 데이터를 백업하는 강력한 기능을 제공하며, 스냅샷들은 새로운 블록 스토리지 볼륨들을 만들기 위해 사용하거나 복원할 수 있습니다.


    Controller 노드 설치

    # su - postgres
    $ psql
    postgres=# create role cinder with login;
    postgres=# create database cinder;
    postgres=# grant ALL PRIVILEGES ON DATABASE cinder TO cinder;
    postgres=# alter user cinder with encrypted password 'cinder';

    # . admin-openrc


    cinder 유저 생성 및 admin 권한 추가

    # openstack user create --domain default --password-prompt cinder
    # openstack role add --project service --user cinder admin
    cinderv2 와 cinderv3 서비스 생성
    # openstack service create --name cinderv2 \
      --description "OpenStack Block Storage" volumev2
     
    # openstack service create --name cinderv3 \
      --description "OpenStack Block Storage" volumev3
    endpoint 생성
    # openstack endpoint create --region RegionOne \
      volumev2 public http://controller:8776/v2/%\(project_id\)s
     
    # openstack endpoint create --region RegionOne \
      volumev2 internal http://controller:8776/v2/%\(project_id\)s
     
    # openstack endpoint create --region RegionOne \
      volumev2 admin http://controller:8776/v2/%\(project_id\)s
     
    # openstack endpoint create --region RegionOne \
      volumev3 public http://controller:8776/v3/%\(project_id\)s
     
    # openstack endpoint create --region RegionOne \
      volumev3 internal http://controller:8776/v3/%\(project_id\)s
     
    # openstack endpoint create --region RegionOne \
      volumev3 admin http://controller:8776/v3/%\(project_id\)s
    cinder 패키지 설치
    # yum -y install openstack-cinder 
    cinder.conf 파일 수정
    # vi /etc/cinder/cinder.conf 
    [database]
    connection = postgresql://cinder:cinder@controller/cinder

    [DEFAULT]
    transport_url = rabbit://openstack:RABBIT_PASS@controller
    auth_strategy = keystone
    my_ip = 10.0.0.11
    enable_v3_api = True

    [keystone_authtoken]
    auth_uri = http://controller:5000
    auth_url = http://controller:5000
    memcached_servers = controller:11211
    auth_type = password
    project_domain_id = default
    user_domain_id = default
    project_name = service
    username = cinder
    password = CINDER_PASS

    [oslo_concurrency]
    lock_path = /var/lib/cinder/tmp
    블록 스토리지 데이터베이스 배포

    # su -s /bin/sh -c "cinder-manage db sync" cinder
    Compute 노드에서

    nova.conf 파일수정
    # vi /etc/nova/nova.conf
    [cinder]
    os_region_name = RegionOne
    nova 서비스 재시작

    # systemctl restart openstack-nova-api.service

    다시 Controller 노드에서

    keystone에 Volume API 버전 추가
    # echo "export OS_VOLUME_API_VERSION=3" >> ~/admin-openrc
    cinder 서비스 등록 및 시작
    # systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
    # systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service



    Storage 노드 설치 (LVM 이용)


    storage 노드는 다양한 스토리지로 설치가 가능하지만 VM환경에서는 LVM으로 진행을 합니다.


    필요 패키지 설치

    # yum -y install centos-release-openstack-rocky
    # yum -y upgrade
    # yum -y install python-openstackclient
    # yum -y install openstack-selinux
    # yum -y install python-psycopg2
    lvm 패키지 설치
    # yum install lvm2 device-mapper-persistent-data

    lvm 서비스 등록 및 시작

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

    pv 볼륨 설정

    # pvcreate /dev/sdb

    Physical volume "/dev/sdb" successfully created

    vg 볼륨 설정

    # vgcreate cinder-volumes /dev/sdb

    Volume group "cinder-volumes" successfully created

    lvm.conf 수정

    # vi /etc/lvm/lvm.conf
    devices {
    ...
    filter = [ "a/sdb/", "r/.*/"]

    cinder 패키지 설치
    # yum -y install openstack-cinder targetcli python-keystone python2-crypto

    cinder.conf 파일 수정

    # vi /etc/cinder/cinder.conf
    [database]
    connection = postgresql://cinder:cinder@controller/cinder

    [DEFAULT]
    transport_url = rabbit://openstack:RABBIT_PASS@controller
    auth_strategy = keystone
    my_ip = 10.0.0.41
    enabled_backends = lvm

    glance_api_servers = http://controller:9292

    enable_v3_api = True


    [keystone_authtoken]
    auth_uri = http://controller:5000
    auth_url = http://controller:5000
    memcached_servers = controller:11211
    auth_type = password
    project_domain_id = default
    user_domain_id = default
    project_name = service
    username = cinder
    password = CINDER_PASS

    [lvm]
    volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
    volume_group = cinder-volumes
    iscsi_protocol = iscsi

    iscsi_helper = lioadm

    target_ip_address = 10.0.0.41
    volumes_dir = $state_path/volumes


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

    ※ [lvm] 부분은 없으니 만들어 줍니다.

    cinder 서비스 등록 및 시작

    # systemctl enable openstack-cinder-volume.service target.service
    # systemctl start openstack-cinder-volume.service target.service
    controller 노드에서 서비스 확인


    볼륨 설정이 완료 되었습니다.

    Cinder 까지 설치가 완료되어 코어 부분은 다 설치가 완료 되었습니다.


    댓글 0

Designed by black7375.

티스토리 툴바