본문 바로가기
Openstack

8. 오픈스택: cinder(블록 스토리지) 설치(2)

by 왈레 2023. 4. 6.

블록스토리지 서버에서 진행 


설치에 앞서 간단한 설명

pv = 피지컬 볼륨, 하디디스크의 파티션에 매핑되는 단위

vg = 볼륨그룹, pv가 합쳐진 단위

lv = 로지컬 볼륨, vg에서 가상적으로 자원을 나누어 할당해주는 단위

 

※ 블록 스토리지용 컴퓨터에 우분투 설치 시 꿀팁

cinder로 사용되는 서버의 디스크가 여러개가 될 수 있는데, 이 여러개의 디스크를 하나로 합쳐서 vg를 만들고

그 vg에서 사용자가 원하는 용량만큼 lv를 만들어서 할당해주는 것.

 

헷갈릴 수 있는게 디스크당 하나의 pv가 아니라 파티션당 하나의 pv이다.

즉 하디디크스로 파티션을 3개를 만들었다면 파티션별로 각각 pv를 3개를 만들어줘야한다.

 

가장 편한 방법은 cinder로 사용될 서버에 리눅스를 설치할 때부터 모든 하드디스크를 리눅스

lvm 기술로 vg로 만들어주고 vg이름을 "cinder-volumes"로 부여하면 된다.

 

리눅스를 포맷할 때 lvm으로 설정하면 vg가 ubuntu-vg가 잡혀있는데, ubuntu-lv으로 /경로에 100기가가 잡혀있다.

설치 과정에서 기본 설정인 ubuntu-lv(vg 이름을 변경하기 위해서)를 삭제해주고,

ubuntu-vg이름을 cinder-volumes으로 변경해준다음 다시 /를 100기가로 잡아주면 된다.

 


파티션 설정

# 위의 내용처럼 기본셋팅이 안되어있다면 다음과 같이 수정

# vg 이름 변경하는 법
$ sudo vgrename <oldName> <newName>
$ sudo vgchange -ay
 
# vg 이름 변경 후 처리작업 (리눅스 설치시 lvm설정 및 vg이름을 cinder-voulmes으로 하는걸 권장)
$ vi /etc/fstab
$ vi /boot/grub/grub.cfg
$ vi /etc/initramfs-tools/conf.d/resume
$ update-initramfs -u -k all
$ shutdown -r now

# 파티션을 pv로 만들고 vg로 넣어주는 방법 
$ pvcreate /dev/sda /dev/sdc 
$ vgcreate cinder-volumes /dev/sda /dev/sdc

 

설치

# 우분투 22.04, 오픈스택 zed인경우 
$ add-apt-repository cloud-archive:zed

#/etc/hosts 설정
$ vi /etc/hosts
controller의 hosts 파일 복붙

# lvm 관련 패키지 설치
$ apt install lvm2 thin-provisioning-tools

**# 볼륨그룹("cinder-voulmes")에 포함된 디스크만 스캔하도록 설정**
-> pvdisplay로 확인, 숫자까지 잘 확인 ex)a/sda1/
-> pvdisplay시 pv 이름이 /dev/**sdc1** 이런식으로 나오는데 /dev/는 생략하고 "sdc1" 이것만 보면됨

$ cp /etc/lvm/lvm.conf /etc/lvm/lvm.conf.org
$ vi /etc/lvm/lvm.conf
devices {
	filter = [ "a/sda1/", "a/sdc1/", "r/.*/"] # $ pvdisplay로 확인
}

# "a/sad1/에서 a의 뜻은 available
# "r/.*/"에서 r의 뜻은 reject
# 즉 "cinder-volumes"에 포함된 pv만을 사용하도록 설정해주고 나머지는 전부 reject

# 검증
정상적으로 "cinder-volumes"가 사용하는 PV를 등록하고 나머지는 PV들은 전부 reject처리했다면
설정 후 $ pvdisplay 했을때 출력되는 pv는 vg가 "cinder-voumes"인 것만 출력되게 된다.

# 패키지 설치 : 우분투 20.04 오픈스택 우수리의 경우
$ apt install cinder-volume

# 패키지 설치 : 우분투 220.04 오픈스택 제드의 경우
$ apt install cinder-volume tgt

$ cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.org
$ grep -E '^[^#].' /etc/cinder/cinder.conf.org > /etc/cinder/cinder.conf
$ vi /etc/cinder/cinder.conf
[database]
connection = mysql+pymysql://cinder:a@controller/cinder

[DEFAULT]
my_ip = 10.30.0.41 # 10점대 ip
transport_url = rabbit://openstack:a@controller
glance_api_servers = <http://controller:9292>
auth_strategy = keystone 
enabled_backends = lvm

# 없어서 []까지 다 추가
[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 = a

[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

# 우분투 22.04, 오픈스택 제드의 경우 추가
$ echo 'include /var/lib/cinder/volumes/*' >> /etc/tgt/conf.d/cinder.conf

$ service tgt restart
$ service cinder-volume restart

# 검증 (controller에서 실행)
$ openstack volume service list 
+------------------+------------+------+---------+-------+----------------------------+
| Binary           | Host       | Zone | Status  | State | Updated_at                 |
+------------------+------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller | nova | enabled | up    | 2016-09-30T02:27:41.000000 |
| cinder-volume    | block@lvm  | nova | enabled | up    | 2016-09-30T02:27:46.000000 |
| cinder-backup    | controller | nova | enabled | up    | 2016-09-30T02:27:41.000000 |
+------------------+------------+------+---------+-------+----------------------------+

# 볼륨 생성 검증 (controller에서 실행)
$ openstack volume create --size 1 disk01
$ openstack volume list

# 확인했으면 삭제
$ openstack volume delete <볼륨ID>

# 호라이즌에서 vm 생성할 때 볼륨맵핑을 시켜주고 같이 잘 생성되는지 또한 동작이 잘 되는지 확인

'Openstack' 카테고리의 다른 글

오픈스택: heat  (0) 2023.04.10
9. 오픈스택: compute 추가  (0) 2023.04.06
7. 오픈스택: cinder(블록 스토리지) 설치(1)  (0) 2023.04.06
6. 오픈스택: horizon 설치  (0) 2023.04.06
5. 오픈스택: neutron 설치  (0) 2023.04.06

댓글