Cinder : Block Storage Service (블록 스토리지 서비스)
<< ⭕ 본 설치 내용은 storage 노드에서 진행 >>
🔨 스토리지 노드용 vm 서버 구축
스토리지 노드 생성 절차 (feat. VM workstation)
1. 가상머신 생성 (1 CPU, HDD 40GB, RAM 2GB)
2. NIC 은 외부용(yum install 하기 위해 일시적), 내부용 총 2개
3. HDD 2개
🟢 스토리지 노드의 디스크 파티션 설정하고 설치 시작
[ INSTALLATION DESTINATION ]
> 100GB (sda) 체크 후, 하단의 "I will configure partitioning " 체크, 그리고 DONE 클릭
> "+ (ADD A NEW MOUNT POINT)" 클릭
> MOUNT POINT: /boot & Desired Capacity 500
> "+ (ADD A NEW MOUNT POINT) " 한번 더 클릭
> MOUNT POINT: swap , Desired Capacity 4096
> " + (ADD A NEW MOUNT POINT)" 한번 더 클릭
> MOUNT POINT: / , Desired Capacity (갑 지정 안하고 확인누르면 나머지 Capacity에 할당됨)
🟢 오픈스택 초기 구성 :
# yum -y install chrony
# echo "server [컨트롤러 노드의 관리용 ip] iburst" >> /etc/chrony.conf
# systemctl enable chronyd.service
# systemctl start chronyd.service
# yum -y install centos-release-openstack-rocky
# yum -y install python-openstackclient
# yum -y install openstack-selinux
# yum -y upgrade
# vi /etc/hosts 수정 // 스토리지 노드명 추가 (컨트롤러, 컴퓨트 노드 모두에)
🟢 Utility 패키지 설치 (LVM) :
# yum install lvm2 device-mapper-persistent-data
# systemctl enable lvm2-lvmetad.service
# systemctl start lvm2-lvmetad.service
🟢 Utility 패키지 설치 (LVM) :
# yum install lvm2 device-mapper-persistent-data
# systemctl enable lvm2-lvmetad.service
# systemctl start lvm2-lvmetad.service
🟢 LVM 물리 볼륨 생성 (/dev/sdb) 및 cinder-volumes이름의 볼륨 그룹 생성:
# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
# vgcreate cinder-volumes /dev/sdb
Volume group "cinder-volumes" successfully created
🟢 lvm.conf 파일 편집하여 fileter가 cinder volume을 허용할 수 있게 설정 :
# vi /etc/lvm/lvm.conf
devices {
...
filter = [ "a/sdb/", "r/.*/"]
🔔왜? 오직 인스턴스만이 블록 스토리지 볼륨에 접근할 수 있다. 하지만, 기저에 있는 운영체제가 그 볼륨과 연관된 장치를 관리한다. 기본적으로 LVM 볼륨 스캐닝 tool이 볼륨이 포함되어 있는 블록 스토리지 장치에 연결할(위한) " /dev " 디렉토리를 스캔한다. 프로젝트 내 해당 볼륨에서 LVM을 사용한다면, 스캐닝 tool은 해당 볼륨을 감지하여 cache하려고 하는데, 이는 운영체제 및 프로젝트 볼륨에 문제를 끼칠 수 있다.
따라서 LVM을 재설정하여 cinder-volumes라는 볼륨 그룹을 가지고 있는 장치만 스캔할 수 있게 해야 한다.
🚨 잠깐!
만약 스토리지 노드가 운영체제의 LVM을 사용한다면, filter값에 그 연관된 장치를 추가해야 한다.
예를 들어, /dev/sda 장치가 Linux/LVM와 같이 운영체제를 포함하고 있다면 (내가 이해하기로는 이러한 경우인듯) 다음과 같이 설정 필요!
filter=[ "a/sda/", "a/sdb/", "r/.*/"]
동일하게 컴퓨트 노드에서도 운영체제 디스크의 LVM을 사용하고 있다면 컴퓨트 노드의 /etc/lvm/lvm.conf 의 filter 값 수정이 필요하다.
filter = [ "a/sda/", "r/.*/"]
🔨 구성요소 설치
🟢 관련 패키지 설치 및 설정 파일 편집 :
# yum install openstack-cinder targetcli python-keystone
# vi /etc/cinder/cinder.conf
[DEFAULT]
my_ip = [스토리지 노드의 관리용 IP]
glance_api_servers = http://controller:9292
auth_strategy = keystone
enabled_backends = lvm
transport_url = rabbit://openstack:rabbitpass@controller
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
[database]
connection = mysql+pymysql://cinder:cinderDBpass@controller/cinder
[keystone_authtoken]
www_authenticate_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 =cinderpass
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
🔨 설치 마무리
🟢 cinder 서비스 및 관련 의존성 서비스 활성화 후 실행 : (정상 실행 꼭 확인)
# systemctl enable openstack-cinder-volume.service target.service
# systemctl start openstack-cinder-volume.service target.service
# systemctl status openstack-cinder-volume.service target.service -l
📍 Verification @ controller
🟢 cinder 서비스 컴포넌트가 성공적으로 실행되었는지 확인 :
# . admin-openrc
# openstack volume service list
'자기발전소 > # Manually Install OpenStack' 카테고리의 다른 글
OpenStack Heat-dashboard on CentOS (0) | 2020.09.29 |
---|---|
OpenStack Heat on CentOS(Rocky) (0) | 2020.09.27 |
Openstack Cinder on Centos (Rocky) 1 [Controller Node] (0) | 2020.09.25 |
Openstack Swift on Centos (Rocky) 3 [Ring] (1) | 2020.08.23 |
Openstack Swift on Centos (Rocky) 2 [Storage Node] (0) | 2020.08.23 |