iconicon
BBBlllooogggPPPooorrrtttfffooollliiiooo
    Uncategorized

    volume attach dettach 실습

    2026년 04월 12일

    On this page

    • 1. 실습 환경 준비: KVM 호스트 설정
    • 2. 데이터 볼륨 생성
    • 3. 1세대 VM 생성 및 볼륨 연결
    • 4. 볼륨 연결 해제 및 VM 삭제
    • 5. 2세대 VM으로 데이터 이전

    On this page
    • 1. 실습 환경 준비: KVM 호스트 설정
    • 2. 데이터 볼륨 생성
    • 3. 1세대 VM 생성 및 볼륨 연결
    • 4. 볼륨 연결 해제 및 VM 삭제
    • 5. 2세대 VM으로 데이터 이전


    volume attach dettach 실습

    mac os 에서 vagrant, virtual box를 사용하여 ubuntu 환경에서 실습하였습니다.

    1. 실습 환경 준비: KVM 호스트 설정

    # 루트 권한으로 전환
    sudo su -
    
    # KVM 및 가상머신 관리 도구 설치
    # ARM 아키텍처(M1/M2/M3 Mac) 환경에서는 virt-install 대신 virtinst를 설치합니다.
    apt-get update
    apt-get install -y qemu-system-arm libvirt-daemon-system libvirt-clients virtinst
    
    # libvirtd 확인
    systemctl status libvirtd
    
    # KVM 이미지 기본 폴더로 이동
    cd /var/lib/libvirt/images/
    

    2. 데이터 볼륨 생성

    duck-volume.qcow2라는 이름의 5GB짜리 파일을 생성하겠습니다. VM과 분리되어 데이터를 영구적으로 보관할 독립적인 저장소입니다.

    # 볼륨 생성
    qemu-img create -f qcow2 duck-volume.qcow2 5G
    
    # 확인
    ls -lh
    

    3. 1세대 VM 생성 및 볼륨 연결

    데이터를 사용할 첫 번째 VM, duck-vm1을 만들고, 방금 생성한 데이터 볼륨(duck-volume.qcow2)을 연결하겠습니다.
    virt-install 명령어로 1GB RAM, 1 vCPU 사양의 duck-vm1을 생성합니다. OS가 설치될 기본 디스크(vda)는 자동으로 함께 만들어집니다.

    # VM 생성
    virt-install --name duck-vm1 --ram 1024 --vcpus 1 --disk size=10 --os-variant ubuntu22.04 --import --noautoconsole
    
    # 확인
    virsh list --all
    

    볼륨 연결: virsh attach-disk 명령어로 duck-vm1에 duck-volume.qcow2을 두 번째 디스크(vdb)로 연결합니다.

    # 연결
    virsh attach-disk duck-vm1 /var/lib/libvirt/images/duck-volume.qcow2 vdb --persistent
    
    # 연결확인
    virsh domblklist duck-vm1
    

    4. 볼륨 연결 해제 및 VM 삭제

    # 볼륨 연결 해제
    virsh detach-disk duck-vm1 vdb --persistent
    
    # 연결 해제 확인
    virsh domblklist duck-vm1
    
    # VM 종료
    virsh destroy duck-vm1
    
    # VM 삭제
    virsh undefine --nvram duck-vm1
    
    # VM 목록 확인 (아무것도 없어야 함)
    virsh list --all
    
    # 데이터 볼륨 파일 확인 (파일이 존재해야 함)
    ls -lh
    

    5. 2세대 VM으로 데이터 이전

    duck-vm2를 만들고, 볼륨을 연결하겠습니다.

    # VM 생성: 이번에는 2GB RAM의 더 좋은 사양으로 duck-vm2를 생성합니다.
    virt-install --name duck-vm2 --ram 2048 --vcpus 1 --disk size=10 --os-variant ubuntu22.04 --import --noautoconsole
    데이터 볼륨 연결: 새로 만든 duck-vm2에 우리가 보관했던 duck-volume.qcow2를 똑같이 연결합니다.
    
    
    virsh attach-disk duck-vm2 /var/lib/libvirt/images/duck-volume.qcow2 vdb --persistent
    # 최종 복구 확인: duck-vm2에 OS 볼륨(vda)과 데이터 볼륨(vdb)이 모두 연결되었는지 확인합니다.
    virsh domblklist duck-vm2