ext4로 포맷 된 디스크를 ext4로 LVM으로 변환하는 가장 빠른 방법은 무엇입니까?


12

나는 현재하고있다. cp -aR 내 (99 % 전체) 1TB ext4 형식의 디스크에서 새로운 LVM-with-ext4-on-it 디스크로 데이터를 복사하는 것입니다. 그것은 영원히 걸리고 있습니다.

디스크를 제자리에 "변환"할 수있는 방법이 있습니까? 나는 EC2에있어 백업하는데 몇 분이 걸린다.

또는 다른 방법보다 빠른 것일 수 있습니다. cp 직접 ext4 파일 시스템을 LVM 디스크에 복사 하시겠습니까?

답변:


22

나는 썼다. 블록들 (이 Lvmify)이 변환을 수행합니다. 파일 시스템을 조금 축소시키고 파일 시스템의 시작 부분을 파티션의 끝으로 옮기고 LVM 수퍼 블럭 (올바른 PV / LV / VG로 사전 구성)을 복사하여 작동합니다.


이것은 정말로 흥미있는 소리가 난다! 나는 그것을 시도하기 위해 다른 파티션 (이미 lvm)에 500GB 백업을 생각하고있다!
Aquarius Power

나는 120GB를 합친 2 개의 ext4 파티션을 변환하는데 성공적으로 사용했다. 전체 프로세스는 약 2 분이 걸렸으며 그 결과는 꽤 견고했다. 블록을 작성해 주셔서 감사합니다!
Amr Mostafa

1
@ 가브리엘, 라이브 fs에서 작동합니까? 나는 FS를 언 마운트해야 할 필요가 있다는 것을 의미한다. 그런 다음, 마운트 된 루트 FS에서 r / w 마운트로 작동 할까?
Gavriel

1
@AmrMostafa : "예쁜"솔리드? 나는 나의 파일 시스템에 관해서이 점을 가지고있다. 단단한 ...-)
T.J. Crowder

3
우분투 Trusty + 사용자는 필요한 파이썬 3.3을 설치하기가 어려울 것입니다. 3.4 만 사용 가능하고 블록은 2014 년 12 월 이후 업데이트되지 않았습니다 :
bksunday

2

나는 디스크를 라이브로 변환하는 방법을 잘 모르지만 rsync가 데이터를 복사하는 더 좋고 안전한 방법이라고 생각합니다. 전송이 중지되는 경우 데이터를 그대로 유지하고 다시 시작할 수 있습니다.

LVM으로 로컬 시스템에 외장 드라이브를 추가 한 사람이 비슷한 프로세스를 완료했음을 알았습니다. 정보가 전부는 아니지만, 시작하기에 충분할 것이라고 생각합니다.

"그래서 오늘은 LVM이라는 놀라운 기능을 발견했습니다. 데비안을 설치하기 위해"LVM - 전체 디스크 사용 "을 선택했습니다. 그러나 주 드라이브는 느리고 작은 5200rpm 랩톱 드라이브였습니다. 오늘은 예비 1.5TB 드라이브를 삽입하고 부팅했습니다. 이 더 큰 더 빠른 드라이브 대신에 시스템.

LVM 접근법 : / dev / sdc를 볼륨 그룹에 추가 한 다음 "pvmove / dev / sda"를 실행하십시오. 그러면 sda의 모든 데이터가 다른 드라이브로 이동합니다 (sdc 만 사용 가능). 재부팅 할 필요가 없으며 언 마운트 할 필요가 없습니다. 이 글을 쓰는 동안 데이터가 이동 중입니다.

나중에 "vgreduce megatron / dev / sda"를 실행하여 볼륨 그룹 및 느림보에서 느린 드라이브를 제거하십시오. 데이터가 이동되었습니다. (megatron은 볼륨 그룹과 내 컴퓨터의 이름입니다).   이것은 많은 사람들에게 오래된 뉴스 일지 모르지만 나는 이것이 정말로 멋졌다라고 생각했다 :) "

이 작업은 로컬에서 수행되었지만 추가 연구를 통해이 작업을 수행 할 수 있다고 생각합니다.

출처


2

LVM 변환을 "즉시"수행 할 방법은 없습니다.

LVM은 실제로 파일 시스템 아래에 위치하여 여러 물리적 장치로 확장하거나 스트라이프 또는 미러링합니다. 논리 볼륨을 만드는 마지막 단계는 파일 시스템을 맨 위에 놓는 것입니다. 여기에 예제가있다. RHEL6에서.

해당 장치에 데이터를 백업하거나 아카이브 한 다음 기존 파일 시스템을 파괴하고, 논리 볼륨을 작성하고, 맨 위에 파일 시스템을 재배치하면됩니다. 이것이 Linux OS의 루트 파일 시스템이라면 재설치를 고려하십시오. 더 빠를 수도 있습니다.

더 빠른 사본을 위해, 나는 좋아한다. dd,하지만 자주 사용하지 않습니다. 실수하다. dd 위험하다. 시도 할 수있는 한 가지는 tar czv <source fs> | (cd <destination fs>; tar x) 즉석에서 압축 된 tar 파일을 전송합니다.

행운을 빕니다!


1
사용 압축 타르 수술에서 전혀 이해가되지 않습니다. 데이터가 압축되는 유일한 장소는 in- 기억 배관으로. 디스크에 기록되기 전에 즉시 압축이 해제됩니다. 지금은 연산이 무수히 압축되고 압축이 풀리기 때문에 여러 번 CPU로드가 생성됩니다. 또한, 전체 파일 시스템과 관련된 모든 작업에 대해 가장 작은 tar cSf - | tar xvpf - 스파 스 파일 처리 & amp; 사용 권한. 혹시 --selinux (대상 볼륨이 이후에 소스를 대체하는 경우).
FeRD

원본 및 대상 장치가 동일한 호스트에 있거나 CPU주기가 여유가없는 경우에 좋은 점입니다. 이는 사례별로 고려해야 할 사항입니다. 나는 "S"와 "p"스위치와 "--selinux"인수를 좋아한다.
dafydd

음, 누군가가 네트워크 링크를 통해 즉각적인 타르 (tar) 작업을 파이핑하여 파일 시스템을 복제한다면, 그들은 (a) 나보다 영리한 영혼이지만, (b) 당신은 원하지 않을 수도 있습니다. -p 호스트가 사용자 이름 / UID를 공유하지 않으면 (맨페이지는 -p 루트로 실행할 때 GNU tar의 기본값입니다.) --selinux 더 위험한 상황에 처해있다. restorecon -Rv (또는 -Rp ) 올바른 (최종) 위치에 마운트되면 모든 것을 처리 할 수 ​​있습니다.
FeRD

dd는 파티션을 복사하기 때문에이 작업에 적합한 도구입니다. dd가 새로운 파티션에 똑같은 복사본을 만들면 fstab을 이전 파티션 대신 새로운 파티션에서로드하도록 바꾼다. 이전 드라이브에서 모든 파티션을 이동했으면 파일 시스템을 삭제하고 드라이브를 LVM 물리 디스크 그룹에 추가 한 다음 공간을 사용하여 원하는대로 파티션을 확장 할 수 있습니다.
Xalorous
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.