centos_7_에_openstack_train_버전_설치_-_8._block_storage_service_cinder_installation

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

이 명령은 출력을 제공하지 않습니다.

  • cinderv2cinderv3 서비스 엔터티를 만듭니다 .
[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

이 출력에서 ​​사용 중단 메시지를 무시하십시오.

이 작업은 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