0부터 시작하는 KVM 공부 - 가상 머신과 Volume Storage

Jaehong Lee·2022년 8월 2일
1
post-thumbnail

1. 저장 공간 사용하는 방법

  • centOS2 의 디바이스 정보를 확인하자. centOS2 는 논리적인 파티션을 통해 두 개의 디스크를 사용하고 있다

저장 공간 사용하는 방법

  • directory 를 통해 사용하는 방식에서 사용하는 스토리지를 파일 스토리지 라고 한다
  • iscsi 방법을 통해 실제 물리 디스크가 있는 것 같은 로컬 디스크로 느끼지만, 이는 실제로는 원격지에 있는 Volume 이다. 이때 사용하는 스토리지를 블록 스토리지 라고 한다
    • 블록 스토리지는 파일 스토리지 보다 성능이 좋고, 속도가 빠르다. 따라서, 클라우드 환경에서 블록 스토리지를 사용한다

우리는 블록 스토리지 방식을 사용해볼 것 이다

2. 볼륨을 생성하고, 연결시키자

  • 저장 공간 리스트를 확인하자
    • default 는 각각의 KVM 이 사용하는 독립적인 저장 공간이다

  • 볼륨을 생성하자. 이는 , remote 저장소에 1 GB 짜리 voltest1 이라는 볼륨을 생성 하라는 것 이다
  • remote 저장 공간 안에 있는 볼륨 리스트를 확인하자
  • remote 디렉터리 아래에 있는 1 기가 voltest1 을 centos 2 의 sdb 에 영구적으로 연결하되, 동작중인 상태에서 연결하겠다는 것 이다
  • centos2 로 이동해서 fdisk /dev/sdb 를 통해 파티셔닝 해주자

    n : 새로운 파티션을 만들겠다
    나머지는 enter 를 눌러주자

  • mkfs.ex4 /dev/sdb1 을 통해 포맷해주자
  • 위와 같이 디스크가 생성됬다
  • mkdir /test 디렉터리를 만들고, mount /dev/sdb1 /test 를 통해 mount 를 해주면 사용할 수 있다
  • df -h 로 확인해주자. mount 가 잘 되었다
  • 파일을 하나 생성해주자

3. 연결된 디스크 제거

  • kvm2 로 돌아오자
  • virsh detach-disk centos2 sdb 를 통해 제거하면 된다

4. 실습

제거된 testvol1 을 centos 1 에 연결하고, 아무 디렉터리나 만든 다음에 둘을 마운트 하자. 정상적인 상태라면, centos 2 에서 만든 파일이 보여야 한다

  • kvm 에서 attach 해주자
  • mount 하고, 안에 파일을 확인하면, centos2 에서 만든 파일을 확인할 수 있다
  • 위에서 진행한 파티셔닝과 포맷은 centos2 에서 remote 에 있는 볼륨에 대해 설정을 한 것 이다. 따라서 centos1 에 attach 를 해도, 파티셔닝과 포맷을 한 설정은 유지되어 바로 사용할 수 있는 것 이다
  • 만약, sdc 로 같은 볼륨을 attach 시킨다면
  • 위와 같이 sdc 로 변환되어 나온다. 볼륨에 대한 설정은 유지된다. 따라서 파티셔닝과 포맷 정보는 유지되면서 이름만 바뀌어서 나온다. 이름이 바뀌는 이유는 가상 머신의 디스크 순서와 관련이 있다. 이는 sdb 에 연결된 것을 때면, 그 다음 순서인 sdc 에 연결되므로 이름이 sdc 로 나온다. 만약, 다시 연결한다면 sdd 가 될 것 이다. 원래라면, 지정한 곳에 연결되야 한다

이와 같은 방식으로, storage 의 볼륨을 재사용할 수 있다

  • 우리가 한 방식은 블록 스토리지 방식인가? 맞다
  • 이 /dev/sdb 디스크 = 볼륨인 것인가? 맞다
  • sdc 로 해도 이름이 그대로 변하는데 이 이유? 가상 머신 디스크의 순서와 관련있다. sdb 다음이 sdc 이기에 sdb 와 detach 했기에, sdb 는 비어있고, sdc 에 연결된다

도커 컨테이너와 같은 경우에는 휘발성이므로 자료가 영구 보관되지 않는다. 이 경우 외부에 있는 스토리지를 활용하여 persistent volume ( block storage ) 을 구성하면 자료를 영구적으로 보관할 수 있게 된다

5. 인스턴스 삭제하기

  • 종료 ( destroy ) -> 삭제 ( undefine )
    • network 에서는 net-destroy & net-undefine 이었다

centos2 를 삭제하자

  • 위와 같이 삭제하면 된다
  • centos1 은 종료만 해주자
profile
멋진 엔지니어가 될 때까지

0개의 댓글