- OpenStack Block Storage 서비스 Cinder는 가상 머신에 영구 스토리지를 추가한다.
- 블록 스토리지는 볼륨 관리를위한 인프라를 제공하고 OpenStack Compute(nova)와 상호 작용하여 인스턴스 볼륨을 제공한다. 또한 이 서비스를 통해 볼륨 스냅 샷 및 볼륨 유형을 관리 할 수 있다.
- 해당 구축은 컨트롤러 노드와 스토리지 노드로 나누어지며 단일노드일경우 한 노드에 다 넣으면 된다.
컨트롤러 노드
DB, 서비스 사용자 등록 및 API 엔드포인트 생성
sudo su root
#root 권한 습득
mysql
#mariadb 접속
MariaDB [(none)]> CREATE DATABASE cinder;
#cinder DB생성
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에 설정한 비밀번호 기입
MariaDB [(none)]> exit
#종료
. admin-openrc
#어드민 권한 엑세스
openstack user create --domain default --password-prompt cinder
#cinder 사용자 등록
User Password: #CINDER_PASS
Repeat User Password: #CINDER_PASS
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 9d7e33de3e1a498390353819bc7d245d |
| name | cinder |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
#출력결과(예시)
openstack role add --project service --user cinder admin
#admin cinder 역활 부여
openstack service create --name cinderv3 \
--description "OpenStack Block Storage" volumev3
#엔터티 생성
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | ab3bbbef780845a1a283490d281e7fda |
| name | cinderv3 |
| type | volumev3 |
+-------------+----------------------------------+
#출력값(예시)
#API 엔드포인트 생성
openstack endpoint create --region RegionOne \
volumev3 public http://controller:8776/v3/%\(project_id\)s
#public
+--------------+------------------------------------------+
| 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 |
+--------------+------------------------------------------+
#결과값(예시)
openstack endpoint create --region RegionOne \
volumev3 internal http://controller:8776/v3/%\(project_id\)s
#internal
+--------------+------------------------------------------+
| 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 |
+--------------+------------------------------------------+
#결과값(예시)
openstack endpoint create --region RegionOne \
volumev3 admin http://controller:8776/v3/%\(project_id\)s
#admin
+--------------+------------------------------------------+
| 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 |
+--------------+------------------------------------------+
#결과값 (예시)
구성 요소 설치 및 구성
apt-get update
#최신화
apt install cinder-api cinder-scheduler
#cinder 패키지 설치
vi /etc/cinder/cinder.conf
[database]
#connection = sqlite:////var/lib/cinder/cinder.sqlite
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
#설정한 CINDER_DBPASS로 기입
[DEFAULT]
...(생략)
transport_url = rabbit://openstack:RABBIT_PASS@controller
#설정한 RABBIT_PASS 기입
auth_strategy = keystone
#추가
my_ip = local ip
#해당 부분 local ip에 controller IP 직접 기입
[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 기입
[oslo_concurrency]
# ...
lock_path = /var/lib/cinder/tmp
#추가
wq
#저장
su -s /bin/sh -c "cinder-manage db sync" cinder
#DB에 설정값 등록
vi /etc/nova/nova.conf
#해당부분 변경
[cinder]
...(생략)
os_region_name = RegionOne
wq
#저장
설치 마무리
service nova-api restart
#노바 재시작
service cinder-scheduler restart
service apache2 restart
#스토리지 서비스 다시 시작
스토리지 노드
사전 파일 설치 및 논리적 스토리지 생성
apt-get update
#최신화
apt install lvm2 thin-provisioning-tools
#지원 유틸리티 설치
pvcreate /dev/sdb
#PV생성
#끝부분의 sdb는 해당하는 연결된 디스크로 수정
Physical volume "/dev/sdb" successfully created
#출력값(예시)
vgcreate cinder-volumes /dev/sdb
#VG 생성
#끝부분의 sdb는 해당하는 연결된 디스크로 수정
Volume group "cinder-volumes" successfully created
#출력값(예시)
vi /etc/lvm/lvm.conf
devices {
...
filter = [ "a/sdb/", "r/.*/"]
#sdb부분에 해당하는 논리적 디스크로 수정
구성 요소 설치 및 구성
apt install cinder-volume tgt
#cinder volume 및 tgt 설치
vi /etc/cinder/cinder.conf
[database]
#connection = sqlite:////var/lib/cinder/cinder.sqlite
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
#설정한 CINDER_DBPASS로 기입
[DEFAULT]
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
#설치하는 노드이 IP 주소 입
transport_url = rabbit://openstack:RABBIT_PASS@controller
#설정한 RABBIT_PASS 기입
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 기입
enabled_backends = lvm
#백엔드 활성
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = tgtadm
#해당 부분 추가
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
#해당 부분 추가
설치 마무리
service tgt restart
service cinder-volume restart
#tgt cinder 재시작
작동확인
. admin-openrc
#어드민 권한 습득
openstack volume service list
#등록된 voluem(신더) 서비스 목록 확인
+------------------+------------+------+---------+-------+----------------------------+
| Binary | Host | Zone | Status | State | Updated_at |
+------------------+------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller | nova | enabled | up | 2023-11-30T02:27:41.000000 |
| cinder-volume | block@lvm | nova | enabled | up | 2023-11-30T02:27:46.000000 |
| cinder-backup | controller | nova | enabled | up | 2023-11-30T02:27:41.000000 |
+------------------+------------+------+---------+-------+----------------------------+
#결과값 (예시)
'구축 > Openstack' 카테고리의 다른 글
openstack 구축 7 horizon (0) | 2024.01.09 |
---|---|
openstack 구축 6 neutron (0) | 2024.01.05 |
openstack 구축 5 nova (2) | 2024.01.03 |
openstack 구축 4 placement (0) | 2023.12.28 |
openstack 구축 3 glance (0) | 2023.12.28 |