우분투에서 백업 / 복원 지점으로 LVM 스냅 샷 설정


29

Ubuntu에서 LVM 스냅 샷을 백업 / 복원 지점으로 설정

왜?

글쎄, 리눅스의 모든 유용한 기능과 함께 가장 큰 단점은 응용 프로그램을 설치하는 방법이 혼합되어 있다는 것입니다. 모든 dll은 하나의 디렉토리로 이동합니다. 다른 모든 구성 파일. 그리고 이진 파일도 한 묶음에 넣습니다. 예, Windows는 어느 정도 동일한 방식으로 작동하지만 Linux에 설치된 시스템 / 서버 소프트웨어의 특성으로 인해 설치된 소프트웨어의 대부분은 특정 시간에 약 95 % 성숙되어 한 달에 두 번 시스템이 엉망입니다. 매우 가능성이 ..

물론 각 설치 전후에 시스템을 백업 할 수 있지만 백만 년이 걸립니다. 시스템 백업 (데이터 / 파일 백업이 아닌)에서는 컴퓨터를 끄고 부팅 가능한 라이브 CD 및 백업 미디어를 사용해야합니다. 또한 드라이브가 15 % 이상 가득 차면 최신 하드웨어를 사용하더라도 백업을 수행하는 데 시간이 오래 걸릴 수 있습니다.

그렇다면 어떻게 할 수 있습니까?


3
이것은 질문이 아닙니다 ... 또한 당신이 그렇게 열심히 보지 않았다고 생각합니다. "우분투 LVM 스냅 샷"하고 나오면 맨 처음 일에 대한 빠른 구글은 wiki.ubuntu.com/Lvm
psusi

1
아무 상관 없어요 ... 읽었습니까? 여기에 말한 모든 내용이 포함됩니다.
psusi

5
물론 당신은 수있는 질문을하고 다음 스스로 답변 -하지만이 사이트는 Q & A로 작동하고 있음을 염두에 두어야 - 자유 형식의 튜토리얼을위한 것이 아닙니다.
guntbert

3
그게 다야. AskUbuntu는 자습서를 제공하지만 쉽게 넣을 수있는 방법을 찾지 못했습니다. 그리고 내가 할 수있는 사람과 열심히 노력하고 싶었으므로 여기에 게시하기로 결정했습니다.
문지르 기

4
우리가 이것을 Q & A로 나누기 위해 다시 열기로 투표
muru

답변:


11

대안-LVM 스냅 샷 -LVM 스냅 샷에 대한 내용은 다음을 참조 하십시오. http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html

요약하자면, 스냅 샷은 하드 디스크의 사용 된 섹터를 정지시키는 방법으로, 시스템에 스냅 샷 볼륨이라고하는 하드 디스크의 예약 된 부분에 대한 변경 / 삭제 / 추가를 작성하도록함으로써 변경 사항 유지 / 삭제 결정을 연기합니다. 스냅 샷 볼륨 공간이 제공하는 한 향후 드라이브에 따라서 변경 사항을 롤백 (또는 유지)하기로 결정한 경우 한 줄로 변경할 수 있습니다.

처음에는 복잡해 보일 수 있지만 처음 노력한 후에 스냅 샷 메커니즘을 사용하는 데 필요한 모든 것은 2 줄 스크립트 (다운로드 제공)입니다.

보증-아래 지침에 대해 어떠한 보증도하지 않습니다. 자신의 책임하에 사용하십시오!

방법?

미리 구성된 볼륨 그룹이없는 경우 새로 깨끗한 Ubuntu를 설치해야합니다. 그런 다음 처음으로 시스템을 올바르게 구성하는 데 약간의 노력을 기울여야하지만이 시점부터는 스냅 샷을 쉽게 만들 수 없습니다 . 그리고 사전 구성된 스크립트를 사용하여 하나의 라이너 명령을 쉽게 의미합니다.

  1. 우분투 라이브 CD로 부팅하십시오 (아직 설치되지 않았습니다. 라이브 CD 만)
  2. 액세서리 열기-> 터미널
  3. 하드 드라이브를 비울 것입니다! 이 단계를 진행하기 전에 중요한 것을 백업하십시오.

    먼저 기존 파티션을 제거하겠습니다 :

    # fdisk /dev/sda
      Enter 'd' to delete - enter for as many partitions you have 
    > d   
    > <enter>
      ...
      Enter 'w' to write down changes
    > w
    
  4. 부팅 파티션과 나머지 드라이브를 다른 파티션으로 생성

    # fdisk /dev/sda
    > n
      To create a new partition.
    > p
      For Boot Primary partition.
    > 1
      Press <enter> to accept the default start sector.
      Enter:
    > +512M
      To give the boot partition a size of 512MB
    > n
      To create (another) new partition.
    > p
      Should be Primary too.
    > <enter> 
      To accept the default value of 2 (the second partition)
    > <enter>
      To accept the default start sector
    > <enter>
      To accept the whole disk
    > t
      To change the type of the second partition to LVM
    > 2
      To choose the second partition
    > 8e
      To set the type to 'LVM Linux'
    > w
      To write changes and exit.
    

    변경 사항이 제대로 실행되었는지 확인하려면 다음을 수행하십시오.

    # fdisk --list
    

    다음과 같은 것을 얻어야합니다.

      Device     Boot   Start    End        Blocks     Id   System
      /dev/sda1         2048     524287     261120     83   Linux
      /dev/sda2         524288   488397167  243936440  8e   Linux LVM
    
  5. 이전 볼륨 그룹 / 논리 볼륨을 제거하십시오.

    # lvdisplay 
    

    시스템에있을 수있는 논리 볼륨을 표시합니다

    # lvremove <existing_logical_volume_name>
    

    이 설치를 방해 할 수있는 볼륨 설치를 제거해야합니다.

    # vgdisplay 
    

    시스템의 기존 볼륨 그룹을 표시합니다

    # vgremove <existing_volume_group>
    

    볼륨 그룹과 동일합니다.

  6. 볼륨 그룹 'vgsnap'생성

    # vgcreate vgsnap /dev/sda2
    

    결과는 다음과 같습니다.

      Volume group "vgsnap" successfully created
    
  7. 논리 볼륨 생성

    # lvcreate --extents 100%FREE --name lvroot vgsnap
    

    장치의 100 %로 시작하는 루트 논리 볼륨

    # lvresize --size -30G /dev/mapper/vgsnap-lvroot
    

    스왑 및 스냅 샷 볼륨의 경우 30G가 해제됩니다. 물론 스왑 / 스냅 샷에 대해 더 작은 크기를 선택할 수 있습니다.

    > 'y'
      for the warning shown.
    

    그리고 스왑 볼륨을 만듭니다 :

    # lvcreate --size 15G --name lvswap vgsnap
    

    참고 : 향후 스냅 샷을 위해 15G의 사용되지 않은 드라이브 공간을 남겨 둡니다.

  8. 우분투 설치

    터미널을 닫고 설치 프로그램을 시작하십시오.

    "LVM 사용 ..."을 선택하십시오 (전체 디스크 암호화를 사용하도록 선택할 수도 있지만 테스트하지는 않았습니다.)

    "다른 방법"을 선택하고 계속을 누르십시오. 이 단계에서는 / dev / mapper / ... 볼륨 할당량이 정의됩니다. 이 중 일부는 자동 생성 (lvsnap- *)입니다. 지금은 무시해도됩니다.

    / dev / mapper / vgsnap-lvroot volume을 선택하십시오. "ext4"를 형식으로 선택하고 '/'로 마운트하십시오.

    / dev / mapper / vgsnap-lvswap volume을 선택하고 "swap area"를 선택하십시오

    암호화 된 드라이브를 만들려면 (스냅 샷에서 작동하는지에 대한 단서가 없습니까?) / dev / sda2를 선택하고 "암호화 볼륨"을 표시 할 수 있습니다. 그래도 테스트하지 않았습니다 ..

    참고 : 사용하지 않은 15G는 스냅 샷 볼륨에 여유 공간이 있습니다.

    / dev / sda1 파티션을 선택하십시오. 'ext2'로 포맷하고 '/ boot'로 마운트하십시오.

    아래- 부팅시 / dev / sda1 파티션 선택

    설치!

스냅 샷 사용

다음 단계는 언제든지 스냅 샷을 사용하는 방법을 보여줍니다.

  1. 스냅 샷 마운트 :

    스냅 샷 볼륨 생성

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    

    마운트 디렉토리를 만듭니다

    # mkdir /mnt/vgsnap-lvsnap
    

    스냅 샷을 읽기 전용 마운트로 마운트

    # mount -o ro /dev/vgsnap/lvsnap  /mnt/vgsnap-lvsnap
    

    스냅 샷이 켜져 있습니다!

    이 시점에서 시스템을 엉망으로 만들고 베타 드라이버를 설치하고 심지어는 (아니오! 부적절합니다) 시작할 수 있습니다.

    이제 언제라도 (스냅 샷 크기가 제공하는 한) 이전 상태로 돌아 오거나 새 모양에 만족하는 경우 언제든지 유지할 ​​수 있습니다.

  2. 자동 스냅 샷 볼륨의 디스크 여유 공간 모니터링 : 여기에 제공된 스크립트의 불통 버전을 사용 : http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ 내가 만든 monitor_snapshot의 스크립트를 .

    사용 / 설치 방법 -위의 링크와 거의 동일합니다.

    # cd /etc/cron.hourly
    # copy /home/<user>/Downloads/monitor_snapshot
    # chmod +x monitor_snapshot
    

    처음 실행하기 전에 전자 메일 주소 (알림이 전송되는 위치 등)와 같은 값을 더 잘 편집해야합니다. 제대로 구성된 경우 cron 데몬은 X 시간 / 일마다 스크립트를 실행합니다. 결정한대로-스냅 샷이 가득 차면 알려줍니다.

    스크립트를 테스트하려면 다음을 수행하십시오.

    # sh /etc/cron.hourly/monitor_snapshot
    

    스냅 샷에서 여유 공간의 백분율 (수)을 인쇄합니다.

    중대한! 테스트 / 설치가 완료되면 (롤백 또는 변경 사항 유지) 스냅 샷을 마운트 해제하십시오!

  3. 변경 사항 롤백 : ( 다음 지침이 포함 된 rollback_snapshot 스크립트 참조 , 문서 끝에 링크)

    # lvconvert --merge /dev/vgsnap/lvsnap
    

    또한 스냅 샷을 마운트 해제하지만 변경 사항은 모두 삭제됩니다. 또한-다음 활성화시에만 되돌리기가 발생한다는 경고 메시지가 표시됩니다.

    # reboot
    

    참고 : 병합을 건너 뛰면 스냅 샷을 마운트 해제하면 변경 사항이 적용됩니다.

  4. 변경 사항 커밋-스냅 샷 마운트 해제 : ( 다음 지시 사항이있는 commit_snapshot 스크립트 참조 -문서 끝에 링크)

    # umount /mnt/vgsnap-lvsnap
      Will unmount (commit0 the snapshot
    
    # lvremove /dev/mapper/vgsnap-lvsnap
    # rm -rf /mnt/vgsnap-lvsnap/
    
    # rm /etc/cron.hourly/monitor_snapshot
      Remove the cron daemon script (that is unused)
    
  5. 스냅 샷 재 마운트 : ( 문서 끝에 링크 된 다음 지시 사항이있는 재 마운트 스크립트 참조 ) 이전과 거의 비슷합니다.

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    # mkdir /mnt/vgsnap-lvsnap
    # mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
    

    home_dirmonitor_snapshot 을 저장 한 경우 다시 복원 할 수 있습니다.

    # cp /home/<user>/monitor_snapshot /etc/cron.hourly/
    # chmod +x /etc/cron.hourly/monitor_snapshot
    

그게 다야! 다음 지시 사항은 quitter에만 해당됩니다.)

  1. 스냅 샷 볼륨 폐기 (더 이상 필요하지 않은 경우)

    # rmdir /mnt/vgsnap-lvsnap
    # lvremove /dev/vgsnap/lvsnap
    

    (스왑 용으로 예약 된 누락 된 15G를 차지하도록 루트 파티션 또는 스왑의 크기를 조정할 수도 있습니다)

  2. 볼륨 그룹 삭제-볼륨 그룹의 볼륨을 제거해야만 가능합니다. 이는 아마도 OS 설치를 삭제하는 것을 의미합니다. 물론 볼륨 그룹을 제거 할 필요는 없습니다 ...

    볼륨 그룹을 제거하려면

    # vgremove vgsnap
    

중요 사항! -fdisk를 포맷 / 실행하고 모든 파티션을 제거해도 볼륨이나 그룹은 드라이브의 다른 부분에 기록되므로 볼륨이나 그룹을 제거하지 않습니다. 따라서 위에 제공된 제거 지침을 사용하고 필요한 경우 볼륨과 그룹을 제거하십시오.


자세한 설명을 주셔서 감사합니다 ... 와우.
Adriano Lucas

2

다음을 사용하여 백업을 수행하기위한 cronjob 작성 lvcreate -s -L <size> -n <snapshot_name> <volume_name>

여기서 volume name은 스냅 샷을 만들려는 볼륨의 이름입니다. 자세한 내용은 이 튜토리얼을 참조하십시오.


1
좋은 가이드! 그러나 백업 미디어없이 백업 할 수있는 수단을 제공 할 의도가 있습니다. 게으른 백업의 형태로. 예전에는 Norton GoBack과 Windows 2000을 사용하여 생명을 구했습니다. :) 나는 실제로 작업했던 시스템을 엉망으로 만들었고, 실수를 즉시 되돌릴 수 있다는 것을 믿을 수있었습니다. ! 백업은 실제 서버로가는 올바른 방법 일 수 있지만 워크 스테이션의 경우 VMWare / VirtualBox (스냅 샷을 외부에서 제공함)에 배치하지 않은 경우 스냅 샷을 사용해야합니다.
문지름
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.