본문으로 건너뛰기

7. LVM iSCSI Cinder Backend

검증 목적

  • 전용 Storage Node 기반 Cinder LVM Backend 구성
  • LIO 기반 iSCSI Target 자동 생성·정리 구조 확인
  • Primary·Secondary Portal 기반 Multipath 경로 적용
  • Volume 생성·연결·해제·삭제 전체 생명주기 검증
  • NFS·LVM MultiBackend의 독립 운영 구조 적용

핵심 결과

검증 항목적용 내용판정 기준
BackendLVM cinder-vol·LIO lioadmcinder-volume Service up
TargetBackstore·Target·LUN·ACL 자동 구성targetcli ls Object 확인
NetworkiSCSI Portal 2개·TCP 3260동일 IQN·LUN의 이중 Session 확인
Computeopen-iscsi·multipathd/dev/mapper/mpathX 생성
InstanceNova Volume AttachVM 내부 Block Device 인식
MultiBackendLVM_LIO_MP·NFS_VOLUME1 분리Volume Type별 Backend 선택

원본 구성도

OpenStack Cluster와 LVM iSCSI·NFS MultiBackend 구성도

OpenStack Cluster·LVM Storage Node·NFS Backend 구성

Management·External·Multipath Network 원본 구성도

첨부 원본의 Management·External·iSCSI 이중 경로 구성

LIO Target·LUN·ACL 원본 구성도

첨부 원본의 LIO Target Object와 Initiator 연결 구조

논리 아키텍처

구성요소 역할

구성요소역할생성 시점
LVM PV·VG물리 Disk와 Cinder 저장공간 Pool 구성Backend 준비
Logical VolumeCinder Volume별 Block Device 제공Volume 생성
LIO BackstoreLogical Volume을 Target Object로 등록Volume 연결
Target·TPGIQN과 Portal Group 제공Volume 연결
LUNBackstore의 논리 번호 MappingVolume 연결
ACLCompute Initiator IQN 접근 허용Volume 연결
Multipath Device동일 LUN의 복수 경로 통합Compute Login

구축 흐름

1. 사전 점검

  • Storage Data Disk와 OS Disk의 명확한 분리 필요
  • Management·Storage·iSCSI Primary·Secondary Network 연결 필요
  • Storage·Compute Node 간 TCP 3260 허용 필요
  • 기존 Partition·Filesystem·LVM Signature 확인 필요
  • Compute Node의 Initiator IQN 확인 필요
Disk 초기화 주의

pvcreate 대상 장치의 기존 데이터·Mount·운영 사용 여부 확인 필요.

실행 명령 — Disk·Network 상태 확인

Storage Node 사전 점검
lsblk -f
pvs
vgs
lvs
ip -br address
ss -lntp | grep 3260

실행 명령 — Compute Initiator 확인

Compute Node Initiator IQN 확인
cat /etc/iscsi/initiatorname.iscsi

2. LVM Backend 구성

실행 명령 — 필수 Package 설치

LVM Package 설치
sudo apt-get update
sudo apt-get install -y \
lvm2 \
thin-provisioning-tools \
parted

실행 명령 — PV·VG 생성

Cinder Volume Group 생성
sudo pvcreate /dev/vdb /dev/vdc /dev/vdd
sudo vgcreate cinder-vol /dev/vdb /dev/vdc /dev/vdd
  • Cinder 전용 Volume Group cinder-vol 적용
  • 환경별 실제 Data Disk 장치명 치환 필요
  • VG Free Space와 Cinder Capacity Report 정합성 확인 필요

실행 명령 — LVM 상태 검증

PV·VG·LV 확인
sudo pvs
sudo vgs
sudo lvs -a -o +seg_monitor,data_percent,metadata_percent

3. LIO iSCSI 구성

TGT·LIO 비교

항목TGTLIO
처리 위치User SpaceKernel Space
관리 도구tgtadmtargetcli
Cinder Helpertgtadmlioadm
적용 기준Legacy TargetLinux Kernel 표준 Target
  • Kernel 기반 LIO Target 적용
  • Cinder LVM Driver의 target_helper: lioadm 적용
  • TGT Service와 LIO의 Port 중복 사용 방지 필요

실행 명령 — LIO Package 설치

LIO·iSCSI Package 설치
sudo apt-get install -y \
targetcli-fb \
python3-rtslib-fb \
open-iscsi \
multipath-tools

실행 명령 — Kernel·Target 상태 확인

LIO 상태 확인
sudo modprobe target_core_mod
sudo modprobe iscsi_target_mod
sudo targetcli ls
sudo systemctl status rtslib-fb-targetctl

4. OpenStack-Ansible 배포 설정

중복된 Inventory·Backend YAML은 별도 설치 문서로 통합.

  • Control·Compute 혼합 Node 3대와 Storage 전용 Node 1대 역할 분리
  • storage_hosts에 전용 Storage Node 배치
  • NFS_VOLUME1·LVM_LIO_MP 독립 Backend 적용
  • Primary·Secondary iSCSI Portal 목록 적용
  • Nova volume_use_multipath: true 적용
  • 실제 IP·비밀번호·내부 Endpoint의 공개 문서 제외

Deploy Config 상세 설치 가이드

핵심 Backend 항목

LVM·LIO Backend 핵심 설정
cinder_backends:
lvm_lio_mp:
volume_backend_name: LVM_LIO_MP
volume_driver: cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group: cinder-vol
target_helper: lioadm
target_protocol: iscsi
target_ip_address: <iscsi-primary-ip>
target_secondary_ip_addresses:
- <iscsi-secondary-ip>
target_port: 3260
  • target_secondary_ip_addresses의 YAML List 형식 적용
  • Storage·Compute Node의 동일 iSCSI Network 접근성 확보 필요
  • Cinder Role·Release별 변수명 지원 여부 사전 확인 필요

5. Volume 생명주기

단계별 동작

단계Cinder·LVM 동작LIO·Compute 동작
생성DB Row·Logical Volume 생성개입 최소화
연결Connector IQN 기반 연결정보 생성Backstore·LUN·ACL·Portal 생성
사용Volume 상태 in-useiSCSI Session·Multipath Device 유지
해제연결정보 종료·상태 availableSession·ACL·LUN Mapping 정리
삭제Logical Volume 삭제잔존 Object 정리

6. Volume 생성·연결

실행 명령 — Volume Type 생성

LVM Backend 전용 Volume Type
openstack volume type create lvm-iscsi
openstack volume type set lvm-iscsi \
--property volume_backend_name=LVM_LIO_MP

실행 명령 — Volume 생성

검증 Volume 생성
openstack volume create \
--size 10 \
--type lvm-iscsi \
lvm-iscsi-test

openstack volume show lvm-iscsi-test

실행 명령 — Instance 연결

Instance에 Volume 연결
openstack server add volume <SERVER_NAME> lvm-iscsi-test
openstack volume show lvm-iscsi-test

7. LVM·LIO Object 검증

실행 명령 — Cinder Service·Pool 확인

Cinder Backend 확인
openstack volume service list
openstack volume pool list --detail

실행 명령 — Logical Volume 확인

Storage Node LVM 확인
sudo lvs -o lv_name,vg_name,lv_size,lv_attr

실행 명령 — LIO Object 확인

Target·LUN·ACL·Portal 확인
sudo targetcli ls
sudo ss -lntp | grep 3260
  • Cinder Volume별 Logical Volume 생성 확인
  • LV와 LIO Backstore의 UUID Mapping 확인
  • Target별 LUN·Initiator ACL 생성 확인
  • 동일 Target의 Primary·Secondary Portal 확인

8. Compute Multipath 검증

실행 명령 — Service 상태 확인

Compute iSCSI·Multipath Service
systemctl status open-iscsi
systemctl status multipathd

실행 명령 — iSCSI Session 확인

이중 Portal Session 확인
sudo iscsiadm -m session
sudo iscsiadm -m session -P 3

실행 명령 — Multipath 확인

Multipath Device·경로 확인
sudo multipath -ll
lsblk
ls -l /dev/disk/by-path/ | grep iscsi

판정 기준

  • 동일 Target IQN·LUN의 서로 다른 Portal Session 2개 이상 확인
  • 하나의 WWID 아래 active ready running Path 2개 이상 확인
  • /dev/mapper/mpathX Device 생성 확인
  • 특정 Path 차단 시 잔여 Path 기반 I/O 유지 확인 필요

9. Instance 연결 검증

실행 명령 — Instance Host 확인

Instance 배치 Compute 확인
openstack server show <SERVER_NAME> \
-c OS-EXT-SRV-ATTR:host \
-f value

실행 명령 — Hypervisor Block Mapping 확인

Compute Node Libvirt 확인
virsh list
virsh domblklist <INSTANCE_NAME>

실행 명령 — Guest Disk 확인

Instance 내부 확인
lsblk
sudo fdisk -l /dev/vdb
  • Hypervisor의 Multipath Device와 VM Block Device Mapping 확인
  • VM 내부 /dev/vdb 정상 인식 확인
  • Read·Write 시험과 연결 해제 후 상태 복구 확인 필요

장애 확인

증상주요 원인확인·조치
LVM Service downcinder-vol 부재·비활성vgs·lvs 확인 후 VG 활성화
LIO Export 실패lioadm·Kernel Module 부재Package·Module·targetcli ls 확인
TCP 3260 미수신Portal IP·Firewall 오류ss·Routing·보안정책 확인
단일 iSCSI SessionSecondary Portal 설정 부재Backend List·Network 경로 수정
Multipath Device 부재multipathd 비활성·WWID 불일치Service·multipath -ll 확인
Instance Attach 실패ACL·CHAP·Initiator IQN 불일치Cinder Log·LIO ACL 확인
NFS만 선택Volume Type Extra Spec 오류volume_backend_name 정합성 수정
Detach 후 Object 잔존Session·Cinder DB 불일치사용 여부 확인 후 안전한 정리 필요

검증 체크리스트

  • cinder-volume Service enabled·up 확인
  • LVM_LIO_MP Pool 노출 확인
  • cinder-vol 내부 Logical Volume 생성 확인
  • LIO Backstore·Target·LUN·ACL 생성 확인
  • Primary·Secondary Portal의 동일 IQN 확인
  • Compute iSCSI Session 2개 이상 확인
  • /dev/mapper/mpathX 생성 확인
  • Instance 내부 Block Device 인식 확인
  • Volume Detach 후 Session·Mapping 정리 확인
  • Volume Delete 후 LV·LIO Object 정리 확인

정리

  • 전용 Storage Node의 LVM Block Storage 구성 적용
  • Kernel 기반 LIO iSCSI Target 자동화 적용
  • Cinder의 LV·Backstore·LUN·ACL 생명주기 관리 확인
  • Primary·Secondary Portal 기반 Multipath 구성 적용
  • Volume Type 기반 LVM·NFS Backend 분리 적용
  • 단일 Storage Node 장애에 대한 별도 HA 설계 필요

참고 자료