Cách nhanh nhất để chuyển đổi một đĩa định dạng ext4 sang LVM với ext4 trên đó?


12

Tôi hiện đang làm cp -aRđể sao chép dữ liệu từ đĩa được định dạng 1TB (đầy đủ 99%) của tôi sang đĩa LVM-with-ext4-on-it mới. Nó kéo dài mãi mãi.

Có cách nào để cố gắng "chuyển đổi" đĩa tại chỗ không? Tôi đang ở trên EC2 nên việc sao lưu mất vài phút.

Hoặc cách khác, có cách nào có thể nhanh hơn là cpsao chép trực tiếp hệ thống tập tin ext4 vào đĩa LVM không?

Câu trả lời:


22

Tôi đã viết các khối (née lvmify) để thực hiện chuyển đổi này tại chỗ. Nó hoạt động bằng cách thu nhỏ hệ thống tập tin một chút, di chuyển điểm bắt đầu của hệ thống tập tin đến cuối phân vùng và sao chép một siêu khối LVM (được cấu hình sẵn với PV / LV / VG bên phải).


Điều này nghe thực sự thú vị! Tôi đang suy nghĩ về việc sao lưu 500GB của mình sang phân vùng khác (đã là lvm) chỉ để dùng thử!
Sức mạnh Bảo Bình

1
@Gabriel, điều này sẽ làm việc trên fs trực tiếp? Ý tôi là tôi cần phải ngắt kết nối FS, và sau đó nó thực hiện tại chỗ, hoặc thậm chí nó sẽ hoạt động trên FS gốc của ar / w?
Gavriel

1
@AmrMostafa: "Khá" rắn? Tôi có điều này về hệ thống tập tin của tôi, tôi cần họ được đá rắn ... :-)
TJ Crowder

3
Người dùng Ubuntu Trusty + sẽ khó cài đặt python cần thiết 3.3 .. chỉ có 3,4 và các khối chưa được cập nhật kể từ tháng 12 năm 2014: /
bksunday

1
Mặc dù thực tế là nó đã được cập nhật 5 tai trước đây, nhưng nó vẫn hoạt động tốt. Xác nhận trên NVMe SSD, sơ đồ phân vùng GPT. Lưu ý: sử dụng Python 3.6 tốt hơn.
tosh

2

Tôi không chắc chắn về cách chuyển đổi đĩa trực tiếp, nhưng tôi nghĩ rsync sẽ là cách tốt hơn và an toàn hơn để sao chép dữ liệu của bạn. Nó sẽ cho phép bạn tiếp tục và giữ nguyên dữ liệu trong trường hợp quá trình chuyển dừng lại.

Tôi đã tìm thấy một quá trình tương tự được hoàn thành bởi ai đó thêm một ổ đĩa ngoài vào hệ thống cục bộ của họ dưới dạng LVM. Không có nhiều thông tin, nhưng tôi nghĩ nó sẽ đủ để bạn bắt đầu:

"Vì vậy, hôm nay tôi phát hiện ra điều tuyệt vời đó là LVM. Cài đặt Debian, tôi đã chọn" LVM - Sử dụng toàn bộ đĩa ". Nhưng ổ đĩa chính là ổ đĩa máy tính xách tay 5200rpm chậm và nhỏ. thay vào đó, hệ thống trên ổ đĩa lớn hơn này nhanh hơn.

Cách tiếp cận LVM: thêm / dev / sdc vào nhóm âm lượng, sau đó chạy "pvmove / dev / sda". Điều này di chuyển tất cả dữ liệu từ sda sang các ổ đĩa khác (chỉ có sẵn sdc). Không cần phải khởi động lại, không cần phải ngắt kết nối. Trong khi tôi đang viết điều này, dữ liệu đang được di chuyển.

Sau đó, thực hiện "vgreduce megatron / dev / sda" để xóa ổ đĩa chậm khỏi nhóm âm lượng và voila. Dữ liệu di chuyển. (megatron là tên của nhóm âm lượng và máy tính của tôi). Đây có thể là tin cũ đối với nhiều người nhưng tôi chỉ nghĩ rằng điều này thực sự tuyệt vời :) "

Cấp điều này đã được thực hiện tại địa phương, nhưng tôi nghĩ với nghiên cứu bổ sung, bạn có thể có thể nhận được điều này.

nguồn


2

Không có phương pháp nào tồn tại để thực hiện chuyển đổi LVM như vậy "một cách nhanh chóng".

LVM thực sự nằm trong hệ thống tệp của bạn để mở rộng nó trên nhiều thiết bị vật lý, hoặc sọc hoặc phản chiếu nó, v.v ... Bước cuối cùng trong việc tạo một khối lượng logic là đặt một hệ thống tệp lên trên nó. Dưới đây là các ví dụ từ RHEL6.

Những gì bạn cần làm là sao lưu hoặc lưu trữ dữ liệu trên thiết bị đó, sau đó hủy hệ thống tệp hiện có, tạo một khối hợp lý và đặt lại một hệ thống tệp lên trên cùng. Nếu đây là hệ thống tập tin gốc trên HĐH linux, hãy xem xét thực hiện cài đặt lại. Nó có thể nhanh hơn.

Đối với các bản sao nhanh hơn, tôi thích dd, nhưng tôi không sử dụng nó thường xuyên. Làm sai với ddnguy hiểm. Một điều bạn có thể thử là tar czv <source fs> | (cd <destination fs>; tar x)sẽ chuyển một tập tin tar được nén khi đang di chuyển.

Chúc may mắn!


1
Sử dụng nén trong hoạt động tar không có ý nghĩa gì cả. Nơi duy nhất dữ liệu sẽ được nén là trong bộ nhớ khi nó được đặt; Sau đó, nó ngay lập tức được giải nén trở lại trước khi ghi vào đĩa. Chỉ bây giờ, hoạt động tạo ra tải CPU nhiều lần vì nó vừa nén vừa không nén, vô dụng, một cách vô ích. Ngoài ra, đối với mọi hoạt động như thế này liên quan đến toàn bộ hệ thống tệp, bạn sẽ muốn ít nhất là tar cSf - | tar xvpf - xử lý các tệp & quyền thưa thớt. Có thể --selinuxcũng vậy (nếu khối lượng đích sau đó sẽ thay thế nguồn).
FeRD

Đó là một điểm tốt nếu các thiết bị nguồn và đích của bạn nằm trên cùng một máy chủ hoặc nếu bạn không có chu kỳ CPU để dự phòng. Đó là những điểm để xem xét từng trường hợp. Tôi thích các công tắc "S" và "p" và đối số "--selinux".
dafydd

Mmm, tốt, nếu bất cứ ai nhân bản một hệ thống tập tin bằng cách đưa một hoạt động tar đang hoạt động qua một liên kết mạng, thì (a) họ là một linh hồn dũng cảm hơn tôi, nhưng (b) bạn có thể KHÔNG muốn -ptrừ khi các máy chủ chia sẻ tên người dùng / UID (mặc dù trang này nhắc nhở tôi rằng đó -plà mặc định cho GNU tar khi chạy dưới quyền root) và --selinuxthậm chí còn gặp nhiều nguy hiểm hơn - có lẽ tốt hơn là chỉ thực hiện restorecon -Rv(hoặc -Rp) trên toàn bộ điều đó một khi nó được gắn vào đúng (cuối cùng ) vị trí.
FeRD

dd là công cụ thích hợp cho thao tác này vì bạn đang sao chép một phân vùng. dd sẽ tạo một bản sao chính xác trên phân vùng mới, sau đó bạn thay đổi fstab để tải từ phân vùng mới thay vì cũ. Khi bạn đã hoàn tất việc di chuyển tất cả các phân vùng khỏi ổ đĩa cũ, bạn có thể phá hủy hệ thống tệp và thêm ổ đĩa vào nhóm đĩa vật lý LVM, sau đó sử dụng không gian để mở rộng các phân vùng theo ý muốn.
Xalious
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.