LVM và nhân bản HD


7

Sử dụng Linux, tôi có một số cấp độ sao lưu. Một trong số đó là một khu vực định kỳ theo bản sao ngành (sử dụng dd) ổ cứng máy tính xách tay của tôi sang đĩa USB ngoài. Có, tôi cũng có các bản sao lưu khác, như rsync từ xa.

Cách tiếp cận này (đĩa dd) vẫn ổn khi nhân bản ổ cứng không có âm lượng LVM, vì tôi có thể cắm đĩa bên ngoài bất cứ lúc nào và gắn các phân vùng chỉ đơn giản là lắp /dev/sdb*thay vì /dev/sda*. Tầm thường và tiện dụng

Hôm nay tôi đã chuyển TẤT CẢ ổ cứng của mình (bao gồm cả /boot) sang LVM. Mọi thứ đều hoạt động tốt. Tôi sẽ nhấn mạnh nó trong một vài ngày, và sau đó tôi sẽ thực hiện một bản sao theo khu vực vào ổ cứng ngoài của tôi.

Bây giờ tôi có một vấn đề, tôi đoán.

Nếu trong tương lai tôi cắm USB HDD bên ngoài để khôi phục bất kỳ tệp nào, HĐH sẽ phát hiện cấu hình LVM trùng lặp, có cùng tên và cùng UUID. Ngay cả khi thực hiện vgrename( LVM sẽ được đổi tên, ổ cứng gắn trong hoặc ổ cứng gắn ngoài? ), UUID nhân bản sẽ không thay đổi. Có lệnh nào để thay đổi tên và UUID không? Lý tưởng nhất là tôi sẽ sao chép ổ cứng và sau đó thay đổi tên nhóm LVM và UUID của nó, nhưng tôi không biết làm thế nào để làm điều đó.

Một vấn đề liên quan khác sẽ là ...

Trước đây, tôi đã khởi động máy tính xách tay của mình bằng đĩa ngoài, sử dụng menu khởi động BIOS và thay đổi các mục GRUB theo cách thủ công để khởi động từ /dev/sdbthay vì /dev/sda. Nhưng bây giờ cấu hình GRUB hiện tại của tôi khởi động trực tiếp từ khối lượng logic LVM, đại loại như: set root='(LVM-root)'trong tôi grub.cfg. Vậy ... Điều gì sẽ xảy ra với khối lượng trùng lặp?

Bất cứ đề nghị nào?

Tôi đoán rằng tôi có thể phân vùng lại ổ cứng ngoài của mình và thay đổi chiến lược sao lưu từ ddsang rsync, nhưng đĩa này cũng có các cửa sổ được cài đặt và tôi thực sự muốn có một bản sao "thực".


1
Có lẽ bạn có thể thử một số thủ thuật phản chiếu LVM.
Cristian Ciupitu

Câu trả lời:


4

Tôi đồng ý với một trong những câu trả lời trước - chạy dd trên toàn bộ đĩa không phải là một giải pháp tuyệt vời ở đây. Nếu lý do bạn bị mắc kẹt trên dd phải thực hiện với việc sao lưu hệ điều hành khác, thì bạn chỉ có thể sử dụng dd cho các phân vùng HĐH khác đó và rsync cho các phân vùng linux.

Một phần của vấn đề là nếu bạn chạy dd của toàn bộ đĩa trong khi bạn có hệ thống tập tin được cài đặt và gắn kết từ nó, không có cách nào để đảm bảo sao lưu phù hợp. Nó có thể hoạt động 9 lần trong số 10, nhưng dưới bất kỳ tải nào, bản sao lưu kết quả có thể bị hỏng. Cách duy nhất để đảm bảo điều này không xảy ra là ngắt kết nối tất cả các hệ thống tệp và hủy kích hoạt tất cả các nhóm âm lượng trong toàn bộ thời gian mà dd đang chạy. Không thuận tiện lắm nếu / của bạn được gắn kết từ LVM.

Trong mọi trường hợp, nếu bạn khăng khăng gắn bó với phương pháp này, công cụ bạn đang tìm cách đổi tên một vg trùng lặp được gọi là "vgimportclone". Nó được thiết kế để sử dụng với ảnh chụp nhanh cấp thiết bị, nhưng nó cũng sẽ hoạt động với dd.


1
Tất nhiên, "dd" được thực hiện khởi động từ một livecd. Đĩa không được gắn.
jcea

Sử dụng "dd" có hai vấn đề, bên cạnh hiệu ứng "nhân bản" LVM: 1. Thời gian chết (trong máy tính xách tay của tôi, khoảng BỐN giờ. Tôi thực hiện sao lưu khi tôi không cần máy tính, như khi đi ăn ngoài) và 2. Nếu đĩa nguồn có lỗi đọc, bản sao sẽ thất bại và đĩa đích (sao lưu) sẽ không nhất quán và không thể sử dụng để khôi phục lỗi đọc trong đĩa chính. Vấn đề này là CHÍNH, nhưng có thể dễ dàng giải quyết bằng cách sử dụng các đĩa sao lưu TWO, sao lưu xen kẽ trên chúng. Bằng cách này, nếu sao lưu hiện tại không thành công và bạn không thể sử dụng nó, bạn có bản sao lưu trước nhất quán.
jcea

4

Kết thúc vấn đề này, sau một năm. Tôi đã viết câu trả lời trong trang web cá nhân của tôi . Tôi hy vọng nó hữu ích cho người khác.

Tôi sử dụng một số cấp độ sao lưu, từ rsync đến đĩa ngoài đến rsync + ZFS qua máy tính từ xa. Một trong những bản sao lưu tôi làm là - từ lúc này đến giờ - "dd" từ ổ cứng máy tính xách tay của tôi đến một chiếc USB gắn ngoài (chỉ được kết nối trong suốt thời gian của quy trình sao lưu). Tôi làm điều này, ví dụ, trước khi mang máy tính xách tay của tôi cho một chuyến đi.

Thủ tục này làm việc tốt cho lứa tuổi. Cho đến khi tôi bắt đầu sử dụng LVM trên máy tính xách tay của mình.

Nếu bạn sử dụng LVM trên máy tính của mình, bạn sao chép ổ cứng của mình bằng cách sử dụng dd(khởi động từ LiveCD) và bạn cắm ổ cứng ngoài trong khi máy tính vẫn chạy bình thường, sau đó, BẠN S COR BỊ L CORI DỮ LIỆU CỦA BẠN, NGAY LẬP TỨC TẤT CẢ CÁC PHIM CỦA BẠN !

Tại sao?. Bởi vì khi bạn cắm ổ cứng ngoài, HĐH sẽ thấy cùng một cấu hình LVM trong cả hai đĩa và sẽ ngây thơ cho rằng cả hai đĩa đều giống nhau, có thể truy cập thông qua một liên kết đa luồng, do đó, nó sẽ lan truyền đọc và ghi giữa cả hai đĩa, làm hỏng cả hai đĩa. Bạn sẽ bỏ cả dữ liệu trực tiếp và bản sao lưu của mình!.

Điều này đã xảy ra với tới một lần. Tôi bị mất dữ liệu. Tôi đã có các bản sao lưu khác, trong vài ngày trước đó, vì vậy tôi đã không mất bất cứ thứ gì rất quan trọng, nhưng nó khá khó chịu và làm lộ ra một lỗ hổng trong chiến lược sao lưu của tôi.

Giải pháp: Đảm bảo cấu hình LVM trong đĩa sao lưu khác nhau. Vấn đề là ... Làm thế nào để làm điều đó?

Tôi đã đăng câu hỏi lên superuser.com (Stack Exchange) nhưng tôi không nhận được câu trả lời hay. Vì vậy, tôi đã phát triển thủ tục của riêng mình và sau hơn một năm chiến đấu với nó, tôi sẽ đăng nó ở đây và đóng câu hỏi ban đầu:

  • Hãy chắc chắn rằng nếu có vấn đề gì xảy ra, máy tính của bạn sẽ không tự động khởi động. Trong trường hợp của tôi, máy tính xách tay của tôi không tự động khởi động nếu tắt và bật lại. Hơn nữa, đĩa cứng được mã hóa, vì vậy nó sẽ yêu cầu mật khẩu.

    Điều này là cần thiết bởi vì bạn có thể làm hỏng cả hai đĩa nếu bạn khởi động lại với đĩa sao lưu được đính kèm trước khi hoàn thành thủ tục.

  • Khởi động từ đĩa CD trực tiếp. Bạn không thể thực hiện "dd" từ phân vùng trực tiếp, nếu bạn muốn có thể khôi phục dữ liệu của mình :-).

    Một cái gì đó để thử trong tương lai sẽ là sử dụng ảnh chụp nhanh LVM để có thể thực hiện sao lưu trong khi tôi đang sử dụng máy tính, nhưng sau đó tôi gặp vấn đề LVM trùng lặp, mà tôi đang cố gắng tránh ở đây. Một tùy chọn khác là cấu hình lại LVM để phản chiếu dữ liệu trực tiếp vào ổ cứng ngoài và phá vỡ gương sau khi đồng bộ hóa hoàn tất. Nhưng điều đó nghe có vẻ rủi ro và sẽ không sao lưu phân vùng Windows của tôi hoặc dữ liệu tôi không giữ trong khối lượng LVM.

  • Sau khi khởi động LiveCD, hãy cắm ổ cứng USB ngoài.

  • Đăng nhập như "root" và thực thi vgchange -a n. Lệnh này sẽ vô hiệu hóa LVM trong cả hai đĩa. Tôi thực hiện lệnh một vài lần, để chắc chắn.

  • Hãy chắc chắn /dev/sdalà nguồn (ổ cứng trong) và /dev/sdblà đích (ổ cứng ngoài USB). Ví dụ, làm dd if=/dev/sdb of=/dev/nullvà kiểm tra đèn LED cứng nào nhấp nháy.

  • Khi bạn chắc chắn về đĩa nào, bạn thực hiện sao chép dd if=/dev/sda of=/dev/sdb bs=65536. Với cấu hình của tôi, sao lưu mất bốn giờ. Ổ cứng trong của tôi là 500GB và USB của tôi đang sao chép ở tốc độ 35MB / s. Tôi làm điều này vào ban đêm, trong khi tôi ngủ.

    Ổ cứng USB ngoài của bạn phải, HẤP DẪN, lớn như ổ cứng bên trong của bạn. Đó là điều hiển nhiên phải không?

  • Sau khi bản sao này được thực hiện, bạn có một bản sao chính xác của đĩa cứng nội bộ của bạn. Việc sao lưu đã xong. Nhưng bây giờ bạn sẽ gặp vấn đề nếu bạn cắm ổ cứng này vào máy tính trong khi bạn đang làm việc với ổ cứng bên trong, như đã mô tả. Chúng ta cần thay đổi cấu hình LVM.

  • Bây giờ, sau khi "dd" hoàn tất, hãy thực hiện "đồng bộ hóa" và rút phích cắm ổ cứng UDB bên ngoài.

  • Bạn thực hiện pvchange --uuid /dev/sda*. Lệnh này sẽ thay đổi UUID của tất cả các ổ đĩa vật lý trong ổ cứng nội bộ của bạn. Lệnh này an toàn ngay cả khi bạn có các phân vùng không phải là khối lượng vật lý cho LVM, vì chúng sẽ được bỏ qua tự động và an toàn.

    Hệ thống biết phân vùng nào là khối lượng vật lý vì loại phân vùng và do bạn đã thực thi "PVCreate" khi bạn tạo LVM.

  • Bạn thực hiện vgchange -u LVM. Lệnh này sẽ thay đổi UUID của nhóm âm lượng LVM. Nhân tiện, nhóm âm lượng của tôi được gọi là "LVM".

  • Bạn thực hiện vgscan. Lệnh này sẽ quét đĩa cứng nội bộ (duy nhất hiện được đính kèm) và sẽ định vị nhóm âm lượng LVM của bạn ở đó.

  • Bạn thực hiện vgrename LVM LVM2, để thay đổi tên của Nhóm âm lượng của bạn.

  • Bây giờ bạn cắm ổ cứng USB ngoài của bạn.

  • Bạn lại "vgscan", lần này để xác định nhóm Volume trong ổ cứng USB ngoài. Bây giờ bạn sẽ có hai nhóm âm lượng. Một cái gọi là "LVM2" trong ổ cứng nội bộ của bạn và cái khác gọi là "LVM" trong ổ cứng ngoài USB của bạn.

  • Đổi tên Nhóm âm lượng trong ổ cứng USB ngoài với vgrename LVM LVM_BACKUP.

  • Và đổi tên Nhóm âm lượng trong ổ cứng nội bộ trở lại tên ban đầu : vgrename LVM2 LVM.

  • Bạn xong việc rồi. Bạn có thể xem lại tình hình với vgdisplay -v.

    Bạn sẽ thấy các UUID hợp lý của các Tập hợp logic giống nhau trong cả hai Nhóm Tập, nhưng điều đó dường như không gây ra vấn đề gì và tôi không biết cách thay đổi chúng.

  • Rút phích cắm ổ cứng USB ngoài của bạn, lưu trữ ở nơi an toàn, khởi động lại máy tính của bạn, đẩy LiveCD và quay trở lại công việc.


1

Nghiên cứu vấn đề một cách cẩn thận, tôi nghĩ cách tiếp cận đúng sẽ là:

  1. Cắm HD ngoài.

  2. Hủy kích hoạt quản lý LVM của HD thứ hai: "vgchange -an / dev / LVM2".

  3. Nhân bản ổ cứng, với "dd".

  4. Đối với mọi ổ đĩa vật lý, hãy tạo UUID mới cho đĩa nhân bản, với "pvchange -u / dev / hdb *".

  5. Thay đổi VG UUID bằng "vgchange -u LVM". Điều này sẽ thay đổi UUID của một trong các VG, có thể là bản gốc hoặc bản sao. Nó không thành vấn đề. Trở nên khác biệt là đủ.

  6. Thay đổi tên VG của đĩa nhân bản từ "LVM" thành "LVM2", với "vgrename". Tôi không biết nếu điều này sẽ hoạt động mà không có "vgscan" trước đó để "khám phá" VG mới.

Điều này sẽ làm việc?


Điều đó đầu tiên vgchangesẽ không hoạt động, tôi nghĩ trước tiên bạn phải sử dụng bộ lọc như tôi đã mô tả tại serverfault.com/a/670986/270721
Josip Rodin

Tôi đã sử dụng các thủ tục đáp ứng được chấp nhận trong nhiều năm.
jcea

Tôi cho rằng điều thú vị là nó hoạt động nếu bạn thực sự có thể hủy kích hoạt cả hai nhóm âm lượng - nếu bạn hoàn toàn không sử dụng bản gốc.
Josip Rodin

Trong danh sách kiểm tra được chấp nhận của tôi, bước đầu tiên là "khởi động từ đĩa CD trực tiếp" ... Vì vậy, bạn có thể hủy kích hoạt tất cả các nhóm âm lượng.
jcea

Ah, vậy thì có ý nghĩa. Có những tình huống mọi người có thể tạo bản sao trong khi các hệ thống đang trực tuyến, mặc dù đó là chủ đề cho trang web ServerFault / UnixLinux.
Josip Rodin

0

Tôi thực sự không nghĩ rằng dd là lựa chọn tốt nhất để sao lưu trong hầu hết các trường hợp, vì một số lý do. Một lựa chọn như ai đó đã đề cập là sử dụng phản chiếu của LVM. Bạn có thể ngắt kết nối ổ đĩa ngoài và khi bạn gắn lại nó, nó sẽ đồng bộ lại mà không phải sao chép 100% mọi thứ kể cả các thành phần trống như dd. Nhưng cá nhân tôi nghĩ thậm chí tốt hơn / đơn giản hơn là chỉ sử dụng rsync để sao chép vào ổ đĩa ngoài của bạn. Không chỉ là bởi faaaaaar nhanh nhất, bản sao lưu của bạn cũng có thể được sử dụng ngay lập tức mà không cần thêm bất kỳ bước nào. Kết hợp điều này với ảnh chụp nhanh LVM trên ổ đĩa ngoài và bạn có nhiều bản sao thời gian tất cả có thể được sử dụng bất cứ lúc nào mà không cần thêm bất kỳ thủ thuật nào.


Xúc tu, "dd" là cái cuối cùng trong BA lược đồ sao lưu khác nhau mà tôi có. Hai cái còn lại dựa trên rsync. Thỉnh thoảng tôi cần "dd" vì đĩa bên trong của tôi đã cài đặt một số HĐH.
jcea
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.