또 다른 옵션: Clonezilla는 훌륭합니다!

또 다른 옵션: Clonezilla는 훌륭합니다!

기계가 있습니다:

[root@SERVER ~]# df -mP
Filesystem                 1048576-blocks   Used Available Capacity Mounted on
/dev/sda2                          124685   7462    110897       7% /
tmpfs                               12016      0     12016       0% /dev/shm
/dev/sda1                             485    102       358      23% /boot
/dev/sdb1                           32131     48     30444       1% /var/foobar1
/dev/sdb2                           16009    420     14770       3% /var/foobar2
/dev/sdb3                             988      6       930       1% /var/foobar3
/dev/sdb5                             988      2       935       1% /var/foobar4
/dev/sdb6                             988     17       919       2% /var/foobar5
/dev/mapper/datvg-FOO             125864  81801     37663      69% /var/FOOBAR6
1.2.3.4:/var/FOOBAR7         193524 128878     54816      71% /var/FOOBAR7
[root@SERVER ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree 
  datvg   1   1   0 wz--n- 204.94g 79.94g
[root@SERVER ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  FOO  datvg -wi-ao---- 125.00g                                                    
[root@SERVER ~]# lsblk
NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0                    11:0    1  1024M  0 rom  
sda                     8:0    0   128G  0 disk 
├─sda1                  8:1    0   500M  0 part /boot
├─sda2                  8:2    0 123.7G  0 part /
└─sda3                  8:3    0   3.8G  0 part [SWAP]
sdb                     8:16   0   256G  0 disk 
├─sdb1                  8:17   0    32G  0 part /var/foobar1
├─sdb2                  8:18   0    16G  0 part /var/foobar2
├─sdb3                  8:19   0     1G  0 part /var/foobar3
├─sdb4                  8:20   0     1K  0 part 
├─sdb5                  8:21   0     1G  0 part /var/foobar4
├─sdb6                  8:22   0     1G  0 part /var/foobar5
└─sdb7                  8:23   0   205G  0 part 
  └─datvg-FOO (dm-0) 253:0    0   125G  0 lvm  /var/FOOBAR6
[root@SERVER ~]# 
[root@SERVER ~]# grep ^Red /etc/issue
Red Hat Enterprise Linux Server release 6.8 (Santiago)
[root@SERVER ~]# 

질문: / 및 /var와 같은 FS용 LVM을 사용하려면 어떻게 마이그레이션할 수 있나요? LVM으로 동일한 "파티션"을 생성하고 이전 FS에서 파일을 복사하시겠습니까? 기계는 어떻게 시작되나요? /boot는 /dev/sda1에 남아 있을 수 있습니다.

답변1

/에서는 약 7.4GB만 사용하고 LVM에는 79GB의 여유 공간이 있으므로 예, /(및 다른 )에 대해 /var새 LV를 만들고 / 및 /var의 파일을 복사할 수 있습니다. 복사 용으로 추천드립니다 rsync.

예를 들어 새 / 및 /var를 /target 및 /target/var로 설치하려면 다음을 수행합니다.

rsync  --archive --sparse --one-file-system --delete-during --delete-excluded \
  --force --numeric-ids --hard-links / /var /target/

다음 옵션을 사용하도록 선택할 수도 있습니다.

--human-readable --human-readable --verbose --stats --progress

단일 사용자 모드로 재부팅하고 프로세스를 완료할 수 있는 충분한 여유 시간이 생길 때까지 이 작업을 필요한 만큼 반복할 수 있습니다. 예:

  • 단일 사용자 모드로 재부팅
  • 마운트 //bootRW(아직 RW가 아닌 경우)
  • 설치 /target하고 /target/var위와 같이
  • 위에서 언급했듯이 마지막 rsync
  • for i in proc dev sys dev/pts run boot; do mount -o bind /$i /target/$i; done
  • chroot /target
  • /etc/fstab/ 및 /var에 대한 장치/uuid/레이블 편집 및 변경
  • 달리기update-grub
  • 출구
  • for i in proc sys dev/pts dev boot var /; do umount /target/$i ; done
  • 재시작

재부팅 후 모든 것이 제대로 작동하면 /dev/sda2LVM VG에 (이전 루트 파티션)을 추가 할 수 있습니다 datvg.

원하는 경우 /boot(다음으로 설치 /target/boot)에 대한 LV를 생성하고 rsync 등을 사용하여 설치할 수도 있습니다. /(주변 루프에서 부팅을 제거하는 것 외에도 /var원래 바인딩이 설치되는 것을 원하지 않습니다)formount -o bind/boot/target/boot

그런 다음 스왑용 LV도 생성하고 전체 LV를 /dev/sdaLVM VG에 추가할 수 있습니다(sda의 모든 파티션을 제거하고 /dev/sda1해당 파티션을 생성 및 추가).


또 다른 옵션: Clonezilla는 훌륭합니다!

그런데 또 다른 방법은 다음을 사용하는 것입니다.클론속CD 또는 USB 스틱을 사용하여 LVM 파티션을 만든 다음 cz를 사용하여 / 및 /boot를 LVM에 복제합니다. 이 작업을 마지막으로 수행한 지 시간이 오래 걸려서 정확히 기억나지는 않지만, 아마도 여전히 /target(및 /target/var, /target/boot)을 마운트하고, 마운트를 바인드하고, fstab 및 update-grub.

실제로 위의 루프는 부팅 가능한 이미지에 대한 사용자 정의 스크립트로 생성된 별칭에서 복사되고 약간 수정되었습니다 for. 따라서 이 루프가 필요할 가능성이 높습니다.tftpclonezilla

루트 셸에 사용 가능한 별칭을 사용하여 시작됩니다.

alias prepare-chroot-target='for i in proc dev sys dev/pts ; do mount -o bind /$i /target/$i ; done'

선택적 추가 읽기(BTRFS 프로모션)

VM에 대한 파티션을 생성해야 하기 때문에 LVM을 사용하지 않는 경우(파티션 및 대부분의 다른 블록 장치는 VM에 대한 .qcow2 또는 원시 파일보다 빠릅니다) 다음을 사용하는 것이 좋습니다.BTFS LVM 대신. LVM보다 더 유연하고 사용하기 쉽습니다. 예를 들어 하위 볼륨 할당을 늘리거나 줄이는 것은 사소한 일입니다.

btrfs매우 유용한 기능을 가지고 있으며 수행할 수 있습니다.제자리에서 변환ext3 또는 ext4에서 btrfs로.

불행하게도 해당 위키 페이지에는 이제 다음과 같은 경고가 표시됩니다.

경고: 4.0 커널부터 이 기능은 더 이상 일반적으로 사용되지 않거나 완전히 테스트되지 않으며 변환이 안정적으로 작동하지 않는다는 일부 보고가 있습니다. 자유롭게 시도해 보되 백업이 있는지 확인하십시오.

할 수 있다내부 변환을 수행하고 /디렉터리 /var/foobar*를 btrfs로 마이그레이션한 다음 sdb의 절반을 btrfs/(RAID-1 미러로)에 추가하고 나머지 절반은 추가 저장소(또는 btrfs) 또는 LVM에 사용합니다. 안타깝게도 같은 크기의 디스크 쌍이 없습니다.

내부 변환을 수행하지 않기로 선택한 경우(아마도 현명한 일임) 프로세스는 /target/{,boot,var}사용자를 위한 Btrfs 볼륨과 및 /target하위 볼륨에 대한 LVM 파티션을 생성하는 대신 위의 rsync 방법과 유사합니다. 별도의 스왑 파티션이 필요합니다(디스크 스왑을 잊어버리고 RAM 블록 장치에 메인라인 커널 압축을 사용하거나 스왑이 필요하지 않도록 RAM을 추가하거나 둘 중 하나)./target/boot/target/varzram

그러나 데이터 및 구성 파일을 백업하고 배포판 설치 프로그램 CD 또는 USB를 부팅하고 처음부터 다시 설치한 다음(파티션 레이아웃을 신중하게 계획한 후) 선택한 백업 부분(/home, /)을 복원하는 것이 더 쉽습니다. usr/local, /etc의 일부 구성 파일).


더 많은 선택적 추가 읽기(ZFS 프로모션)

드라이브 불일치를 고려하면 btrfs가 더 나은 옵션일 수 있지만 ZFS를 언급하지 않고 btrfs를 언급하는 것은 불가능합니다.

가상 머신에 블록 장치를 제공해야 하고 btrfs와 같은 유연성을 원하며 메인라인이 아닌 커널 모듈을 설치하는 데 신경 쓰지 않는다면 다음을 사용하십시오.ZFSbtrfs 대신.

btrfs가 수행하는 거의 모든 작업을 수행합니다(불행히도 재조정은 제외하고 풀에 디스크를 추가만 할 수 있으며 디스크를 제거하거나 레이아웃을 변경할 수는 없습니다).더있다을 사용하면 ZVOL(풀의 스토리지를 사용하는 블록 장치)과 하위 볼륨을 생성할 수 있습니다.

오늘날에는 Debian이나 Ubuntu 및 기타 여러 배포판에 ZFS를 쉽게 설치할 수 있습니다. 배포판은 패키지( 커널용 모듈을 포함 spl-dkms하고 자동으로 빌드함)를 제공합니다. zfs-dkmsdkms 모듈을 구축하는 데는 꽤 시간이 걸리지만 그 외에는 다른 패키지 세트를 설치하는 것만큼 간단하고 간단합니다.

불행히도 ZFS로 변환하는 것은 위의 프로세스만큼 쉽지 않습니다. rootfs를 ZFS 자체로 변환하는 것은 상당히 어려운 프로세스입니다. 와 마찬가지로 btrfsZFS를 잘 지원하는 배포판을 사용하여 데이터 및 구성 파일 등을 백업하고 처음부터 머신을 다시 빌드하는 것이 더 쉬울 것입니다(Ubuntu가 아마도 최선의 선택일 것입니다)Linux의 ZFS현재).

설상가상으로 ZFS에서는 vdev의 모든 파티션이나 디스크가 동일한 크기여야 하므로(그렇지 않으면 vdev의 크기는 그 안에 있는 가장 작은 장치만큼만 커질 수 있음) zpool에 sda와 sdb의 약 절반만 추가할 수 있습니다. . 나머지 sdb는 btrfs, ext4, xfs 또는 LVM일 수도 있습니다(ZFS로 ZVOL을 만들 수 있으므로 이는 의미가 없습니다).

저는 데비안에서 ZFS를 사용하고 있습니다. (드디어 ZFS가 배포판 자체에 포함되어 기본 데비안 패키지를 사용할 수 있게 되어 다행입니다.) 나는 몇 년 동안(적어도 2011년부터) 그것을 사용해 왔습니다. 추천. 그 자체로 매우 유용한 btrfs의 재조정 기능과 풀에서 vdev를 제거하거나(현재 ZFS에서는 불가능) RAID-1에서 RAIDZ-1로 변환할 수 있는 기능이 있었으면 좋겠습니다.

RAID-1에서 RAID-5, RAID-6 또는 RAID-10으로의 온라인 변환을 수행하는 btrfs의 기능도 훌륭하지만 아마도 사용하지 않을 것입니다. 저는 ZFS용 RAID-Z를 포함하여 모든 형태의 RAID-5/RAID-6을 거의 포기했습니다(제 생각에는 성능 비용과 정리 또는 재동기화 시간이 그만한 가치가 없습니다).선호하다RAID-1 또는 RAID-10 - 풀에 원하는 만큼 RAID-1 vdev를 추가할 수 있습니다(이렇게 하면 RAID-1을 RAID-10으로 효과적으로 변환하거나 기존 RAID에 더 많은 미러 쌍을 추가할 수 있습니다). 10).

어쨌든 저는 가상 머신에서 ZVOL을 광범위하게 사용하므로 btrfs는 옵션이 아닙니다.

관련 정보