CentOS 7 에 Openstack Train 버전 설치 - 8. Block Storage service – cinder installation
컨트롤러 노드 설치 및 구성
전제 조건
Block Storage 서비스를 설치하고 구성하기 전에 데이터베이스, 서비스 자격 증명 및 API 엔드 포인트를 생성해야합니다.
1. 데이터베이스를 작성하려면 다음 단계를 완료하십시오.
- 데이터베이스 액세스 클라이언트를 사용하여 root사용자 로 데이터베이스 서버에 연결합니다 .
[root@controller ~]# mysql -u root -p
cinder
데이터베이스를 만듭니다 .
MariaDB [(none)]> CREATE DATABASE cinder;
cinder
데이터베이스에 대한 적절한 액세스 권한을 부여하십시오 .
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \ IDENTIFIED BY 'CINDER_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \ IDENTIFIED BY 'CINDER_DBPASS';
CINDER_DBPASS
부분을 적절한 암호로 교체하십시오.
- 데이터베이스 액세스 클라이언트를 종료하십시오.
2. admin자격 증명 관리자 전용 CLI 명령에 액세스하려면 :
[root@controller ~]# . admin-openrc [root@controller ~] (admin-openrc):~#
3. 서비스 인증 정보를 작성하려면 다음 단계를 완료하십시오.
- cinder사용자 생성 :
[root@controller ~] (admin-openrc):~# openstack user create --domain default --password-prompt cinder User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 9d7e33de3e1a498390353819bc7d245d | | name | cinder | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+
cinder
사용자에admin
역할을 추가하십시오.
[root@controller ~] (admin-openrc):~# openstack role add --project service --user cinder admin
이 명령은 출력을 제공하지 않습니다.
cinderv2
및cinderv3
서비스 엔터티를 만듭니다 .
[root@controller ~] (admin-openrc):~# openstack service create --name cinderv2 \ --description "OpenStack Block Storage" volumev2 +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | eb9fd245bdbc414695952e93f29fe3ac | | name | cinderv2 | | type | volumev2 | +-------------+----------------------------------+ [root@controller ~] (admin-openrc):~# openstack service create --name cinderv3 \ --description "OpenStack Block Storage" volumev3 +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | ab3bbbef780845a1a283490d281e7fda | | name | cinderv3 | | type | volumev3 | +-------------+----------------------------------+
블록 스토리지 서비스에는 두 개의 서비스 엔티티가 필요합니다.
4. Block Storage 서비스 API 엔드 포인트를 생성합니다.
- V2 endpoint
[root@controller ~] (admin-openrc):~# openstack endpoint create --region RegionOne \ volumev2 public http://controller:8776/v2/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 513e73819e14460fb904163f41ef3759 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | eb9fd245bdbc414695952e93f29fe3ac | | service_name | cinderv2 | | service_type | volumev2 | | url | http://controller:8776/v2/%(project_id)s | +--------------+------------------------------------------+ [root@controller ~] (admin-openrc):~# openstack endpoint create --region RegionOne \ volumev2 internal http://controller:8776/v2/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 6436a8a23d014cfdb69c586eff146a32 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | eb9fd245bdbc414695952e93f29fe3ac | | service_name | cinderv2 | | service_type | volumev2 | | url | http://controller:8776/v2/%(project_id)s | +--------------+------------------------------------------+ [root@controller ~] (admin-openrc):~# openstack endpoint create --region RegionOne \ volumev2 admin http://controller:8776/v2/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | e652cf84dd334f359ae9b045a2c91d96 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | eb9fd245bdbc414695952e93f29fe3ac | | service_name | cinderv2 | | service_type | volumev2 | | url | http://controller:8776/v2/%(project_id)s | +--------------+------------------------------------------+
- V3 endpoint
[root@controller ~] (admin-openrc):~# openstack endpoint create --region RegionOne \ volumev3 public http://controller:8776/v3/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 03fa2c90153546c295bf30ca86b1344b | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | ab3bbbef780845a1a283490d281e7fda | | service_name | cinderv3 | | service_type | volumev3 | | url | http://controller:8776/v3/%(project_id)s | +--------------+------------------------------------------+ [root@controller ~] (admin-openrc):~# openstack endpoint create --region RegionOne \ volumev3 internal http://controller:8776/v3/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 94f684395d1b41068c70e4ecb11364b2 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | ab3bbbef780845a1a283490d281e7fda | | service_name | cinderv3 | | service_type | volumev3 | | url | http://controller:8776/v3/%(project_id)s | +--------------+------------------------------------------+ [root@controller ~] (admin-openrc):~# openstack endpoint create --region RegionOne \ volumev3 admin http://controller:8776/v3/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 4511c28a0f9840c78bacb25f10f62c98 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | ab3bbbef780845a1a283490d281e7fda | | service_name | cinderv3 | | service_type | volumev3 | | url | http://controller:8776/v3/%(project_id)s | +--------------+------------------------------------------+
블록 스토리지 서비스에는 각 서비스 엔티티에 대한 엔드 포인트가 필요합니다.
구성 요소 설치 및 구성
1. 패키지 설치 :
[root@controller ~]# yum install openstack-cinder
2. /etc/cinder/cinder.conf
파일을 편집하고 다음 조치를 완료하십시오.
[database]
섹션에서 데이터베이스 액세스 구성:
[database] # ... connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
CINDER_DBPASS
부분을 이전에 설정한 암호로 바꿉니다.
[DEFAULT]
섹션에서RabbitMQ 메시지 큐
액세스 구성:
[DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller
RABBIT_PASS
부분을 이전에 설정한 비밀번호로 바꿉니다.
[DEFAULT]
와[keystone_authtoken]
섹션에서 아이덴티티 서비스 액세스 구성:
[DEFAULT] # ... auth_strategy = keystone [keystone_authtoken] # ... www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 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
부분을 이전에 설정한 비밀번호로 바꿉니다.
[keystone_authtoken]
섹션 에서 나머지 다른 옵션을 주석 처리하거나 제거 하십시오.
[DEFAULT]
섹션에서my_ip
항목을 컨트롤러 노드의 관리 인터페이스 IP 주소로 구성:
[DEFAULT] # ... my_ip = 10.0.0.11
3. [oslo_concurrency]
섹션 잠금 경로를 구성 :
[oslo_concurrency] # ... lock_path = /var/lib/cinder/tmp
4. Block Storage 데이터베이스를 초기화 합니다.
[root@controller ~]# su -s /bin/sh -c "cinder-manage db sync" cinder
이 출력에서 사용 중단 메시지를 무시하십시오.
Block Storage를 사용하도록 Compute 구성
이 작업은 compute 노드에서 수행합니다.
1. /etc/nova/nova.conf
파일을 편집하고 다음을 추가하십시오.
[cinder] os_region_name = RegionOne
설치 완료
1. Compute API 서비스를 다시 시작합니다.
[root@compute01 ~]# systemctl restart openstack-nova-api.service
2. Block Storage 서비스를 시작하고 시스템이 부팅 될 때 시작되도록 구성합니다.
[root@compute01 ~]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service [root@compute01 ~]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
스토리지 노드 설치 및 구성
스토리지 노드에 Block Storage 서비스를 설치하고 구성하기 전에 스토리지 장치를 준비해야합니다.
이 부분은 storage node에서 수행해야 합니다.
1. 지원 유틸리티 패키지를 설치합니다.
- LVM 패키지를 설치합니다.
[root@storage ~]# yum install lvm2 device-mapper-persistent-data
- LVM 메타 데이터 서비스를 시작하고 시스템이 부팅 될 때 시작되도록 구성합니다.
[root@storage ~]# systemctl enable lvm2-lvmetad.service [root@storage ~]# systemctl start lvm2-lvmetad.service
일부 배포에는 기본적으로 LVM이 포함됩니다.
2. /dev/sdb
에 LVM PV 만들기:
[root@storage ~]# fdisk /dev/sdb LVM type partition /dev/sdb1 생성 [root@storage ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
3. cinder-volumes
이름으로 LVM VG를 만듭니다.
[root@storage ~]# vgcreate cinder-volumes /dev/sdb1 Volume group "cinder-volumes" successfully created
Block Storage 서비스는이 볼륨 그룹에 논리 볼륨을 생성합니다.
4. 인스턴스만 Block Storage
볼륨에 액세스 할 수 있습니다. 그러나 기본 운영 체제는 볼륨과 관련된 장치를 관리합니다. 기본적으로 LVM 볼륨 검색 도구는 /dev
경로 아래에 볼륨이 포함 된 블록 저장 장치에 대한 디렉터리를 검색합니다. 프로젝트가 볼륨에서 LVM을 사용하는 경우 스캔 도구는 이러한 볼륨을 감지하고 캐시를 시도하여 기본 운영 체제와 프로젝트 볼륨 모두에 다양한 문제를 일으킬 수 있습니다. cinder-volumes
볼륨 그룹을 포함하는 장치 만 스캔하도록 LVM을 재구성해야합니다. /etc/lvm/lvm.conf
파일을 편집하고 다음 조치를 완료하십시오.
devices
섹션에서/dev/sdb
장치를 수용하는 필터 추가 및 다른 장치를 거부 :
devices { ... filter = [ "a/sdb/", "r/.*/"]
필터 배열의 각 항목은 a
는 허용, r
은 거부를 의미 하고 장치 이름에 대한 정규식을 포함합니다. 나머지 장치를 거부 하려면 필터규칙은 r/.*/
로 끝나야 합니다. vgs -vvvv
명령을 사용하여 필터를 테스트 할 수 있습니다.
스토리지 노드
가 운영 체제 디스크에서 LVM을 사용하는 경우 관련 장치도 필터에 추가해야합니다. 예를 들어 /dev/sda
장치에 운영 체제가 포함 된 경우 :
filter = [ "a/sda/", "a/sdb/", "r/.*/"]
마찬가지로 컴퓨팅 노드
가 운영 체제 디스크에서 LVM을 사용하는 경우 운영 체제 디스크 만 포함하도록 해당 노드의 /etc/lvm/lvm.conf
파일에서 필터도 수정해야합니다. 예를 들어 /dev/sda
장치에 운영 체제가 포함 된 경우 :
filter = [ "a/sda/", "r/.*/"]
구성 요소 설치 및 구성
1. 패키지 설치 :
[root@storage ~]# yum install openstack-cinder targetcli python-keystone
2. /etc/cinder/cinder.conf
파일을 편집하고 다음 조치를 완료하십시오.
[database]
섹션에서 데이터베이스 액세스 구성:
[database] # ... connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
CINDER_DBPASS
부분을 이전에 설정한 암호로 바꿉니다.
[DEFAULT]
섹션에서 RabbitMQ 메시지 큐 액세스 구성:
[DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller
RABBIT_PASS
부분을 이전에 설정한 비밀번호로 바꿉니다.
[DEFAULT]
와[keystone_authtoken]
섹션에서 아이덴티티 서비스 액세스 구성:
[DEFAULT] # ... auth_strategy = keystone [keystone_authtoken] # ... www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 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
부분을 이전에 설정한 비밀번호로 바꿉니다.
[keystone_authtoken]
섹션 에서 나머지 다른 옵션을 주석 처리하거나 제거 하십시오.
[DEFAULT]
섹션에서my_ip
옵션 구성:
[DEFAULT] # ... my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
**MANAGEMENT_INTERFACE_IP_ADDRESS
부분을 관리 네트워크 인터페이스의 IP 주소로 변경.
[lvm]
섹션에서LVM 드라이버
와LVM의 백 엔드
구성하고,cinder-volumes
볼륨 그룹,iSCSI 프로토콜
및iSCSI 서비스
를 구성합니다.[lvm]
섹션이 없다면 추가합니다. :
[lvm] volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volume_group = cinder-volumes target_protocol = iscsi target_helper = lioadm
[DEFAULT]
섹션에서 LVM의 백 엔드를 활성화 :
[DEFAULT] # ... enabled_backends = lvm
백엔드 이름은 임의적입니다. 예를 들어이 가이드에서는 드라이버 이름을 백엔드 이름으로 사용합니다.
[DEFAULT]
섹션에서 이미지 서비스 API의 위치를 구성 :
[DEFAULT] # ... glance_api_servers = http://controller:9292
[oslo_concurrency]
섹션에서 잠금 경로를 구성 :
[oslo_concurrency] # ... lock_path = /var/lib/cinder/tmp
설치 완료
종속성을 포함하여 Block Storage 볼륨 서비스를 시작하고 시스템이 부팅 될 때 시작되도록 구성합니다.
[root@storage ~]# systemctl enable openstack-cinder-volume.service target.service [root@storage ~]# systemctl start openstack-cinder-volume.service target.service
참조링크
설치과정
- centos_7_에_openstack_train_버전_설치_-_8._block_storage_service_cinder_installation.txt
- 마지막으로 수정됨: 2020/09/09 07:37
- 저자 koov