OpenStack:Cinder
OpenStack 블록 스토리지 서비스는 블록 스토리지 장치를 게스트 인스턴스에 제공합니다. 스토리지가 프로비저닝되고 소비되는 방식은 블록 스토리지 드라이버 또는 여러 백엔드 구성에 대한 경우에는 드라이버에 의해 결정됩니다. NAS/SAN, NFS, iSCSI, Ceph 등 사용 가능한 다양한 드라이버가 있습니다. 블록 스토리지 API와 스케줄러 서비스는 보통 컨트롤러 노드에서 실행됩니다. 사용하는 드라이버에 따라, 볼륨 서비스는 컨트롤러, Compute 노드 또는 독립된 스토리지 노드에서 동작 가능합니다.
File
-
/etc/cinder/cinder.conf
- Cinder 설정 파일.
-
/var/log/cinder/*
- Cinder 로그 파일 디렉토리.
List of command
-
cinder list
- 전체 볼륨 목록 출력.
-
cinder type-list
- Type 목록 출력.
-
cinder service-list
- 블록 스토리지 서비스 목록을 확인.
-
cinder extra-specs-list
- Extra space list.
Service reboot
블록 스토리지 볼륨 서비스와 그와 관계된 서비스들을 시작하고 시스템 부팅시 자동적으로 시작하도록 설정합니다:
$ systemctl enable openstack-cinder-volume.service target.service
$ systemctl start openstack-cinder-volume.service target.service
재시작은 아래와 같이 입력한다.
$ service openstack-cinder-api restart
$ service openstack-cinder-scheduler restart
$ service openstack-cinder-volume restart
Create multiple backends
- Cinder-multi-backend
- Creating Volumes for OpenStack Block Storage
- OpenStack - 스토리지 노드 설치와 구성
- [추천] adding an openstack cinder volume server to an existing cloud with an existing cinder setup
- [추천] OpenStack Cinder – Add Additional Backend Volumes
- 8.4.2. Configuring for LVM Storage Backend
- Chapter 10. Deploying Volume Services (Cinder)
- [추천] LVMiSCSI cinder backend for RDO Juno on CentOS 7
우선 물리 HDD를 연결한 후 parted를 사용하여 파티션을 분할한다.
# parted /dev/sdb
(parted) mklabel gpt
(parted) unit TB
(parted) mkpart primary 0.00TB 4.00TB
(parted) set 1 lvm on
(parted) print
LVM의 물리볼륨과 볼륨그룹을 만든다.
$ pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
$ vgcreate cinder-volumes2 /dev/sdb1
Volume group "cinder-volumes2" successfully created
## pvscan, vgdisplay, lsblk, vgs
/etc/cinder/cinder.conf
에 새로운 Backend를 추가한다.
enabled_backends=lvm51,lvm52
# ...
[lvm]
iscsi_helper=lioadm
iscsi_ip_address=192.168.1.100
volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver
volumes_dir=/var/lib/cinder/volumes
volume_backend_name=lvm
[lvm2]
iscsi_helper=lioadm
iscsi_ip_address=192.168.1.100
volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver
#volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver # Not work !!
volume_group=cinder-volumes2
volume_backend_name=lvm2
cinder
명령을 날린다.
[root@server ~(keystone_yourname)]# cinder type-create iscsi2
[root@server ~(keystone_yourname)]# cinder type-list
+--------------------------------------+--------+-------------+-----------+
| ID | Name | Description | Is_Public |
+--------------------------------------+--------+-------------+-----------+
| c277d5f5-03d3-4933-beae-c534f60ec916 | iscsi | - | True |
| f08fc302-2589-4c2e-bba0-fb681c2a6141 | iscsi2 | - | True |
+--------------------------------------+--------+-------------+-----------+
[root@server ~(keystone_yourname)]# cinder type-key iscsi2 set volume_backend_name=lvm2
[root@server ~(keystone_yourname)]# cinder create --volume_type iscsi2 --display_name instance_lvm 1024
[root@server ~(keystone_yourname)]# cinder extra-specs-list
Resize volume
LVM Volume group
LVM의 vgdisplay
명령을 사용하여 Cinder관련 그룹을 확인할 수 있다. 참고로 해당 RDO를 통하여 기본 설치된 그룹명은 cinder-volumes
이다.
Troubleshooting
Insufficient free space for volume creation on host
Volume의 Status가 Error일 경우 /var/log/cinder/scheduler.log
를 확인하면 아래와 같은 메시지가 출력될 수 있다.
2017-01-22 21:25:51.404 31276 WARNING cinder.scheduler.filters.capacity_filter [req-0fed2786-91f1-42f8-8e0f-c690551f5021 4928fd0043b34cd2a747637aefe85bc4 51fef98cf24243329fd360d8f2872f69 - - -] Insufficient free space for volume creation on host server@lvm2#lvm2 (requested / avail): 1/0.0
2017-01-22 21:25:51.404 31276 INFO cinder.scheduler.base_filter [req-0fed2786-91f1-42f8-8e0f-c690551f5021 4928fd0043b34cd2a747637aefe85bc4 51fef98cf24243329fd360d8f2872f69 - - -] Filter CapabilitiesFilter returned 0 host(s)
2017-01-22 21:25:51.405 31276 WARNING cinder.scheduler.filter_scheduler [req-0fed2786-91f1-42f8-8e0f-c690551f5021 4928fd0043b34cd2a747637aefe85bc4 51fef98cf24243329fd360d8f2872f69 - - -] No weighed hosts found for volume with properties: {u'name': u'iscsi2', u'qos_specs_id': None, u'deleted': False, u'created_at': u'2017-01-16T15:01:00.000000', u'updated_at': None, u'extra_specs': {u'volume_backend_name': u'lvm2'}, u'is_public': True, u'deleted_at': None, u'id': u'f08fc302-2589-4c2e-bba0-fb681c2a6141', u'description': None}
2017-01-22 21:25:51.408 31276 ERROR cinder.scheduler.flows.create_volume [req-0fed2786-91f1-42f8-8e0f-c690551f5021 4928fd0043b34cd2a747637aefe85bc4 51fef98cf24243329fd360d8f2872f69 - - -] Failed to run task cinder.scheduler.flows.create_volume.ScheduleCreateVolumeTask;volume:create: No valid host was found. No weighed hosts available
해당 볼륨에 연결되 물리 장치의 여유공간을 확인해보자. 참고로 필자의 경우 LVM의 vgdisplay
를 사용하여 여유공간을 확인하였다.
List of OpenStack Service
Main | |
Storage | |
Shared services | |
Higher-level services | |
ETC |
See also
Favorite site
- 블록 스토리지 서비스 추가
- 스토리지 노드 설치와 구성
- adding an openstack cinder volume server to an existing cloud with an existing cinder setup
- Cinder - RDO - No valid host was found - multiple storage back end
- How to Setup OpenStack to use Local Disks for Instances
- PackStack: How to Create OpenStack Cinder-Volumes Manually
- Cinder 명령어로 볼륨 생성하기
- 오픈스택(OpenStack) 인스턴스에 볼륨 붙이기 에러 처리