웹사이트 검색

LVM에서 '논리 볼륨의 스냅샷 및 복원'을 생성하는 방법 - 3부


LVM 스냅샷은 LVM 볼륨의 공간 효율적인 특정 시점 복사본입니다. 이는 lvm에서만 작동하며 소스 논리 볼륨이 스냅샷 볼륨으로 변경되는 경우에만 공간을 소비합니다. 소스 볼륨의 합계가 1GB에 달하는 큰 변경 사항이 있는 경우 스냅샷 볼륨에도 동일한 변경 사항이 적용됩니다. 공간 효율성을 위해서는 항상 작은 크기의 변화를 갖는 것이 가장 좋습니다. 스냅샷의 스토리지가 부족한 경우 lvextend를 사용하여 확장할 수 있습니다. 스냅샷을 축소해야 하는 경우 lvreduce를 사용할 수 있습니다.

스냅샷을 생성한 후 실수로 파일을 삭제한 경우 스냅샷에는 삭제한 원본 파일이 있으므로 걱정할 필요가 없습니다. 스냅샷이 생성될 때 파일이 거기에 있었을 가능성이 있습니다. 스냅샷 볼륨을 변경하지 말고 빠른 복구를 위해 스냅샷을 사용하는 동안 그대로 유지하세요.

스냅샷은 백업 옵션으로 사용할 수 없습니다. 백업은 일부 데이터의 기본 복사본이므로 스냅샷을 백업 옵션으로 사용할 수 없습니다.

요구사항

  1. Linux에서 LVM을 사용하여 디스크 저장소 생성 – 1부
  2. Linux에서 LVM을 확장/축소하는 방법 - 2부
내 서버 설정
  1. 운영 체제 – CentOS 6.5(LVM 설치 포함)
  2. 서버 IP – 192.168.0.200

1단계: LVM 스냅샷 생성

먼저, 다음 'vgs' 명령을 사용하여 새 스냅샷을 생성하기 위해 볼륨 그룹에 여유 공간이 있는지 확인하세요.

vgs
lvs

위의 vgs 출력에는 8GB의 여유 공간이 남아 있습니다. 이제 tecmint_datas라는 볼륨 중 하나에 대한 스냅샷을 만들어 보겠습니다. 데모를 위해 다음 명령을 사용하여 1GB 스냅샷 볼륨만 생성하겠습니다.

lvcreate -L 1GB -s -n tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas        

OR

lvcreate --size 1G --snapshot --name tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas

위의 두 명령 모두 동일한 작업을 수행합니다.

  1. -s – 스냅샷 생성
  2. -n – 스냅샷 이름

위에서 강조한 각 항목에 대한 설명은 다음과 같습니다.

  1. 여기서 생성 중인 스냅샷의 크기입니다.
  2. 스냅샷을 생성합니다.
  3. 스냅샷의 이름을 생성합니다.
  4. 새 스냅샷 이름.
  5. 스냅샷을 생성할 볼륨입니다.

스냅샷을 제거하려면 'lvremove' 명령을 사용하면 됩니다.

# lvremove /dev/vg_tecmint_extra/tecmint_datas_snap

이제 다음 명령을 사용하여 새로 생성된 스냅샷을 나열합니다.

lvs

위에서 볼 수 있듯이 스냅샷이 성공적으로 생성되었습니다. 스냅샷이 생성된 위치인 tecmint_datas에서 시작되는 화살표를 표시했습니다. 예, tecmint_datas l-volume에 대한 스냅샷을 생성했기 때문입니다.

tecmint_datas에 새 파일을 추가해 보겠습니다. 이제 볼륨에는 약 650MB의 데이터가 있고 스냅샷 크기는 1GB입니다. 따라서 스냅 볼륨의 변경 사항을 백업할 공간이 충분합니다. 여기에서 아래 명령을 사용하여 스냅샷의 상태를 확인할 수 있습니다.

lvs

현재 스냅샷 볼륨의 51%가 사용되었으며 파일을 추가로 수정해도 문제가 없습니다. 더 자세한 정보를 보려면 명령을 사용하십시오.

lvdisplay vg_tecmint_extra/tecmint_data_snap

다시 한 번 말씀드리지만, 위 그림에서 강조 표시된 각 사항에 대한 명확한 설명은 다음과 같습니다.

  1. 스냅샷 논리 볼륨의 이름입니다.
  2. 현재 사용 중인 볼륨 그룹 이름입니다.
  3. 읽기 및 쓰기 모드의 스냅샷 볼륨에서는 볼륨을 마운트하고 사용할 수도 있습니다.
  4. 스냅샷이 생성된 시간입니다. 이 시간 이후에는 스냅샷이 모든 변경 사항을 검색하므로 이는 매우 중요합니다.
  5. 이 스냅샷은 tecmint_datas 논리 볼륨에 속합니다.
  6. 논리 볼륨이 온라인 상태이고 사용할 수 있습니다.
  7. 스냅샷을 찍은 소스 볼륨의 크기입니다.
  8. Cow-table 크기=Copy on Write. 이는 tecmint_data 볼륨에 적용된 모든 변경 사항이 이 스냅샷에 기록된다는 의미입니다.
  9. 현재 사용된 스냅샷 크기인 tecmint_datas는 10G였지만 스냅샷 크기는 1GB였으며 이는 파일이 약 650MB임을 의미합니다. 따라서 파일이 tecmint_datas 크기에서 2GB 크기로 커지면 현재 51%인 것은 스냅샷 할당 크기보다 더 커지게 되며 스냅샷에 문제가 발생하게 됩니다. 이는 논리 볼륨(스냅샷 볼륨)의 크기를 확장해야 함을 의미합니다.
  10. 스냅샷의 청크 크기를 제공합니다.

이제 tecmint_datas에 1GB 이상의 파일을 복사하면 어떻게 되는지 살펴보겠습니다. 그렇게 하면 '입력/출력 오류'라는 오류 메시지가 표시됩니다. 이는 스냅샷에 공간이 부족하다는 의미입니다.

논리 볼륨이 가득 차면 자동으로 삭제되며 스냅샷 볼륨의 크기를 확장하더라도 더 이상 사용할 수 없습니다. 스냅샷을 생성하는 동안 소스와 동일한 크기를 갖는 것이 가장 좋은 아이디어입니다. tecmint_datas 크기는 10G였습니다. 10GB의 스냅샷 크기를 생성하면 충분한 공간이 있기 때문에 위와 같이 오버플로되지 않습니다. 볼륨 스냅.

2단계: LVM에서 스냅샷 확장

오버플로 전에 스냅샷 크기를 확장해야 하는 경우 다음을 사용하여 수행할 수 있습니다.

lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap

이제 스냅샷의 크기는 총 2GB가 되었습니다.

그런 다음 다음 명령을 사용하여 새 크기와 COW 테이블을 확인합니다.

lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap

스냅 볼륨의 크기와 사용량 %을 확인합니다.

lvs

그러나 소스 볼륨과 동일한 크기의 스냅샷 볼륨이 있는 경우 이러한 문제에 대해 걱정할 필요가 없습니다.

3단계: 스냅샷 복원 또는 병합

스냅샷을 복원하려면 먼저 파일 시스템을 마운트 해제해야 합니다.

unmount /mnt/tecmint_datas/

마운트 지점이 마운트 해제되었는지 여부를 확인하세요.

df -h

여기서는 마운트가 마운트 해제되었으므로 계속해서 스냅샷을 복원할 수 있습니다. lvconvert 명령을 사용하여 스냅을 복원합니다.

lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap

병합이 완료되면 스냅샷 볼륨이 자동으로 제거됩니다. 이제 df 명령을 사용하여 파티션의 공간을 볼 수 있습니다.

df -Th

스냅샷 볼륨이 자동으로 제거된 후. 논리 볼륨의 크기를 볼 수 있습니다.

lvs

중요: 스냅샷을 자동으로 확장하려면 conf 파일에서 몇 가지 수정 사항을 사용하여 수행할 수 있습니다. 수동의 경우 lvextend를 사용하여 확장할 수 있습니다.

선택한 편집기를 사용하여 lvm 구성 파일을 엽니다.

vim /etc/lvm/lvm.conf

자동 확장이라는 단어를 검색하세요. 기본적으로 값은 아래와 유사합니다.

여기에서 10075로 변경합니다. 그렇다면 자동 연장 임계값은 75이고 자동 연장 비율은 20입니다. , 크기가 20% 확장됩니다.

스냅샷 볼륨이 75%에 도달하면 스냅 볼륨의 크기가 20% 더 자동으로 확장됩니다. 따라서 자동으로 확장할 수 있습니다. wq!를 사용하여 파일을 저장하고 종료합니다.

이렇게 하면 오버플로 삭제 시 스냅샷이 저장됩니다. 이는 또한 더 많은 시간을 절약하는 데 도움이 됩니다. LVM은 더 확장할 수 있고 씬 프로비저닝, 스트라이핑, 가상 볼륨 등과 같은 많은 기능을 가질 수 있는 유일한 파티션 방법입니다. 씬 풀 사용에 대해서는 다음 주제에서 살펴보겠습니다.