Cinder
이 섹션에서는 컨트롤러 노드에 블록 스토리지 서비스(코드명 cinder)를 설치하고 구성하는 방법을 설명합니다. 이 서비스에는 인스턴스에 볼륨을 제공하는 하나 이상의 추가 스토리지 노드가 필요합니다.
Database 생성
1. 데이터베이스 액세스 클라이언트를 사용하여 root사용자로 데이터베이스 서버에 연결합니다.
# mysql
2. cinder데이터베이스 생성 :
MariaDB [(none)]> CREATE DATABASE cinder;
3. cinder데이터베이스에 액세스 권한 부여 :
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
IDENTIFIED BY 'CINDER_DBPASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
IDENTIFIED BY 'CINDER_DBPASS';
4. admin관리자 전용 CLI 명령을 사용하기 위해 아래 명령어 실행합니다.
# . admin-openrc
5. 사용자 생성
# openstack user create --domain default --password-prompt cinder
6. 프로젝트에 사용자를 admin 역할로 추가합니다.
# openstack role add --project service --user cinder admin
7. cinder service를 추가해줍니다.
# openstack service create --name cinderv3 \
--description "OpenStack Block Storage" volumev3
8. 이미지 서비스 API 엔드포인트를 생성합니다.
# 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
구성 요소 설치 및 구성
1. 패키지 설치 :
# apt install cinder-api cinder-scheduler
2. /etc/cinder/cinder.conf 파일을 아래와 같이 수정해줍니다.
[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller
auth_strategy = keystone
my_ip = 10.0.2.4
[database]
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
[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
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
3. image service database를 채워줍니다.
# su -s /bin/sh -c "cinder-manage db sync" cinder
블록 스토리지를 사용하도록 컴퓨팅 구성
- /etc/nova/nova.conf파일을 아래와 같이 수정해줍니다.
[cinder]
...
os_region_name = RegionOne
설치완료
1. 컴퓨팅 및 블록 스토리지 서비스를 다시 시작해줍니다.
systemctl restart nova-api
systemctl restart cinder-scheduler
systemctl restart apache2
Cinder - Storage Node 설치
- 스토리지 노드에 블록 스토리지 서비스를 설치 및 구성하기 전에 스토리지 장치를 준비해야 합니다.
- 버추얼박스에서 새로운 디스크 50G짜리를 추가하고 진행 합니다.
여기선 컨트롤러 노드와 스토리지 노드를 합쳐서 구축할 예정이라 아래 섹션에서 중복된 옵션이 있을 수 있습니다. 중복되는것은 무시하고 새로 추가되는 옵션만 넣으면 됩니다.
1. 패키지 설치 :
# apt install lvm2 thin-provisioning-tools
2. LVM 물리 볼륨 생성
# pvcreate /dev/sdb
3. LVM 볼륨 그룹 생성 cinder-volumes:
# vgcreate cinder-volumes /dev/sdb
4. devices섹션에서 장치를 허용하고 다른 모든 장치를 거부하는 필터를 추가 합니다.
인스턴스만 스토리지 볼륨 차단에 액세스할 수 있습니다. 그러나 기본 운영 체제는 볼륨과 연결된 장치를 관리합니다. 기본적으로 LVM 볼륨 검색 도구는 /dev 디렉토리에서 볼륨이 포함된 블록 저장 장치를 검색합니다. 프로젝트에서 볼륨에서 LVM을 사용하는 경우 검색 도구는 이러한 볼륨을 감지하고 캐시를 시도하므로 기본 운영 체제와 프로젝트 볼륨 모두에 다양한 문제가 발생할 수 있습니다. cinder-volumes 볼륨 그룹이 포함된 디바이스만 검색하도록 LVM을 재구성해야 합니다. /etc/lvm/lvm.conf 파일을 편집하고 다음 작업을 완료합니다.
# vi /etc/lvm/lvm.conf
devices {
...
# 스토리지 노드가 운영 체제 디스크의 LVM을 사용하는 경우 연결된 장치도 필터에
# 추가해야 합니다. 예를 들어 `/dev/sda`장치에 운영 체제가 포함된 경우:
filter = [ "a/sda/", "a/sdb/", "r/.*/"]
...
}
구성 요소 설치 및 구성
1. 패키지 설치:
# apt install cinder-volume tgt
2. /etc/cinder/cinder.conf 파일을 아래와 같이 수정해줍니다.
[database]
# ...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
auth_strategy = keystone
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
enabled_backends = lvm
glance_api_servers = http://controller:9292
[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
[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
3. tgt 설정
# echo 'include /var/lib/cinder/volumes/*' >> /etc/tgt/conf.d/cinder.conf
설치완료
- 컴퓨팅 및 네트워킹 서비스를 다시 시작합니다.
systemctl restart tgt
systemctl restart cinder-volume
'Cloud > Openstack' 카테고리의 다른 글
openstack 최신 yoga버전 수동 설치 - Horizon (0) | 2022.05.11 |
---|---|
openstack 최신 yoga버전 수동 설치 - Neutron(linux-bridge) (0) | 2022.05.11 |
openstack 최신 yoga버전 수동 설치 - Nova (0) | 2022.05.11 |
openstack 최신 yoga버전 수동 설치 - Placement (0) | 2022.05.11 |
openstack 최신 yoga버전 수동 설치 - Glance (0) | 2022.05.11 |