Điểm:2

Làm cách nào tôi có thể khôi phục ảnh chụp nhanh LVM có dung lượng lớn hơn trên đĩa nhỏ hơn?

lá cờ in

Tôi đang cố gắng sao lưu/khôi phục ổ đĩa LVM trên máy chủ Ubuntu 20.04 (Focal Fossa) cục bộ. Máy chủ sản xuất có LV là 500 GB, tuy nhiên cho đến nay chỉ có 19 GB được sử dụng.

Máy chủ phát triển cục bộ có 24 GB dung lượng trống mà tôi dự định khôi phục 19 GB từ sản xuất. tôi sử dụng -L 24G làm tham số trong khi thực hiện ảnh chụp nhanh LVM.Quá trình không thể khôi phục với thông báo: "no space left on device":

Máy chủ sản xuất:

Sudo lvcreate -s /dev/vg0/test -n backup_test -L 24G
sudo dd if=/dev/vg0/backup_test | lz4 > test_lvm.ddimg.lz4

1048576000+0 bản ghi trong
1048576000+0 ghi ra
Đã sao chép 536870912000 byte (537 GB, 500 GiB), 967,79 giây, 555 MB/giây

Sudo lvdisplay /dev/vg0/backup_test
  --- Thể tích logic ---
  Đường dẫn LV /dev/vg0/backup_test
  LV Tên backup_test
  Tên VG vg0
  LV UUID IsGBmM-VM7C-2sO4-VrC1-kHKg-EzcR-4Hej44
  LV Viết Truy cập đọc/ghi
  Người dẫn chương trình LV Creation, time leo, 2021-07-04 12:45:45 +0200
  Đích trạng thái ảnh chụp nhanh LV cho m360
  Trạng thái LV khả dụng
  # mở 0
  Kích thước LV 500,00 GiB
  LE hiện tại 128000
  Kích thước bảng COW 24,00 GiB
  Bàn BÒ LE 6144
  Được phân bổ cho ảnh chụp nhanh 0,01%
  Kích thước đoạn ảnh chụp nhanh 4,00 KiB
  phân khúc 1
  kế thừa phân bổ
  Đọc trước ngành ô tô
  - hiện được đặt thành 256
  Chặn thiết bị 253:10

Máy chủ thử nghiệm cục bộ:

Sudo lvcreate -n khôi phục dữ liệu -L 24,5G
Sudo mkfs.ext4 /dev/data/restore
sudo lz4 -d test_lvm.ddimg.lz4 | Sudo dd of=/dev/data/restore

Cảnh báo: sử dụng thiết bị xuất chuẩn làm đầu ra mặc định. Đừng dựa vào hành vi này: thay vào đó hãy sử dụng `-c` rõ ràng !
dd: ghi vào '/dev/data/restore': Không còn chỗ trống trên thiết bị
51380225+0 hồ sơ trong
51380224+0 ghi ra
Đã sao chép 26306674688 byte (26 GB, 24 GiB), 1181,48 giây, 22,3 MB/giây

Có cách nào để khôi phục dung lượng 500 GB chỉ chứa 19 GB trên đĩa nhỏ hơn 500 GB không?

Michael Hampton avatar
lá cờ cz
Bạn không khôi phục 19 GB, bạn đang khôi phục 500 GB!
merlin avatar
lá cờ in
Nhưng ý nghĩa của tham số trong lvcreate: -L 24G là gì?
Michael Hampton avatar
lá cờ cz
Bạn đã tạo một ổ đĩa có kích thước 24,5 GB.
merlin avatar
lá cờ in
Vâng, tôi đã làm chỉ để đảm bảo rằng nó đủ cho 24G. Lần đầu tiên tôi tạo 24G, sau đó nó không thành công và tôi đã thử thêm một chút nữa để phù hợp với bất kỳ sự khác biệt nhỏ nào.
Michael Hampton avatar
lá cờ cz
Nhưng đó vẫn còn ít hơn nhiều so với 500 GB mà bạn đang cố khôi phục!
A.B avatar
lá cờ cl
A.B
Nhân tiện, hệ thống tập tin cơ bản là gì? máy lẻ4? xfs? btrfs? Thứ gì khác?
merlin avatar
lá cờ in
Ext4 LÀ Hệ thống tập tin.
Điểm:5
lá cờ us

Dữ liệu bạn đang cố khôi phục có kích thước 500 GB và dữ liệu đó sẽ không vừa với ổ đĩa logic có kích thước 24 GB. Bạn có thể chọn lọc nhiều hơn về những gì bạn đang chuyển hoặc bạn có thể phân bổ nhiều dung lượng hơn cho nhóm âm lượng mục tiêu.

Có vẻ như dữ liệu trên ổ đĩa logic mà bạn đang sao lưu chỉ có 19 GB. Có một số cách bạn có thể chuyển dữ liệu đó.

Nếu bạn chỉ quan tâm đến dữ liệu chứ không phải hệ thống tệp, bạn có thể tạo một hệ thống tệp mới (thông qua mkfs.ext4 hoặc tương tự) trên mục tiêu và sử dụng các công cụ hoạt động trên tệp thay vì khối thiết bị, như rsync(1) hoặc tar(1).

Ngoài ra, bạn có thể sử dụng fsarchiver(8), có thể sao lưu hệ thống tệp, sau đó khôi phục hệ thống đó vào một thiết bị nhỏ hơn.

Cuối cùng, bạn có thể thu nhỏ kích thước của thiết bị khối mà bạn đang sao lưu bằng resize2fs(8) và lvreduce(8). Sau đó, bạn có thể sao lưu ổ đĩa nhỏ hơn đó và khôi phục về ổ đĩa có kích thước tương tự trên máy chủ mới.

Điểm:2
lá cờ cn

Cách duy nhất để bạn có thể khôi phục dữ liệu của mình là sử dụng thiết bị khối được nén (ví dụ: VDO, thiết bị vòng lặp qua hệ thống tệp nén như btrfs và ZFS).

Tuy nhiên, ngay cả khi dữ liệu của bạn chỉ có 17GB, dung lượng trống có thể chứa dữ liệu từ lần ghi trước đó và toàn bộ LV có thể không nén được.

Là hệ thống tệp nén, bạn có thể sử dụng btrfs hoặc ZFS và tạo tệp 0 500G mà bạn ánh xạ tới thiết bị vòng lặp (với thất bại), hoặc trên ZFS, bạn có thể tạo trực tiếp một thiết bị khối được nén. Sau đó, khôi phục LV của bạn về thiết bị khối mà bạn đã tạo ở bước trước. Quá trình nén sẽ cho bạn cơ hội khôi phục tất cả dữ liệu.

merlin avatar
lá cờ in
Sau đó, lý do nào có kích thước của ảnh chụp nhanh khối lượng hợp lý? Kích thước COW?
Điểm:1
lá cờ cn

Hai điểm cần giải quyết.

Tạo ảnh chụp nhanh 24G LVM, có nghĩa là ảnh chụp nhanh sẽ tồn tại sau 24G thay đổi giữa âm lượng ban đầu và âm lượng ảnh chụp nhanh. Bản thân thiết bị chụp nhanh sẽ xuất hiện như thể nó có cùng kích thước với ổ đĩa gốc. Ngay cả khi bạn không bao giờ thực hiện các thay đổi đối với âm lượng chụp nhanh, mọi thay đổi đối với âm lượng gốc sẽ phải được ghi lại dưới dạng thay đổi giữa âm lượng gốc và ảnh chụp nhanh, và điều này sẽ ăn hết kích thước 24G của ảnh chụp nhanh.

Để làm những gì bạn đang cố gắng làm, đây là một vài ý tưởng:

  1. Đối với một bản sao không hoàn hảo, chỉ cần sử dụng bản sao cấp hệ thống tệp của các tệp:

trên máy chủ thử nghiệm:

gắn sudo/dev/dữ liệu/khôi phục/mnt/khôi phục

trên máy chủ nguồn:

sudo rsync -avPAHX /source/dir/ root@testserver:/mnt/restore/
  1. Để có một bản sao chính xác tại thời điểm, hãy gắn ảnh chụp nhanh của bạn và rsync điều đó:
Sudo mount -r /dev/vg0/backup_test /mnt/backup_test
sudo rsync -avPAHX /dev/vg0/backup_test/ root@testserver:/mnt/restore/
  1. Nếu bạn thực sự muốn chuyển ảnh đĩa, trước tiên bạn sẽ phải thu nhỏ hệ thống tệp và ổ đĩa logic. Hãy nhớ rằng trước tiên bạn sẽ phải ngắt kết nối hệ thống tệp.
Sudo lvresize -L24G -r vg0/kiểm tra

Sau đó làm những gì bạn đã làm.

Điểm:1
lá cờ ru

Khái niệm về (không) sử dụng byte không tồn tại ở cấp độ của LVM. Liệu một byte (hoặc thực tế là một khu vực) có chứa dữ liệu có ý nghĩa hay rác không sử dụng hay không được xác định bởi hệ thống tệp nằm bên trong LV. LVM không biết hệ thống tập tin là gì. Tất cả những gì nó làm là lấy một loạt đĩa và kết hợp chúng một cách hợp lý theo hướng dẫn của bạn. Nó không quan tâm bạn sẽ làm gì với khối lượng kết hợp đó.

Điều này có nghĩa là bạn đang chụp nhanh 500 GB dữ liệu. LVM không hiểu phần nào của ảnh chụp nhanh này có ý nghĩa và đáng được bảo tồn và phần nào không.

Những gì bạn muốn đạt được là có thể ở cấp hệ thống tệp bằng hình ảnh. Một số phần mềm, chẳng hạn như partclone miễn phí, hiểu cấu trúc của hệ thống tệp và có thể tạo một hình ảnh - về cơ bản là một tệp thưa thớt chỉ chứa các phần của hệ thống tệp đang được sử dụng. Vấn đề ở đây là thiết bị đích ít nhất phải có cùng kích thước với nguồn, vì partclone không điều chỉnh hình dạng của hệ thống tệp: tất cả các phần được lưu trữ phải đi vào vị trí ban đầu của chúng khi hình ảnh đang được khôi phục.

Vậy kế hoạch sẽ như sau:

  • Thay đổi kích thước hệ thống tệp nguồn thành 25 GB (điều này không yêu cầu thay đổi kích thước LV!)
  • Hình ảnh nó với partclone hoặc một cái gì đó tương tự
  • Tạo lại LV trên mục tiêu theo cách thủ công
  • Khôi phục hệ thống tập tin từ hình ảnh

Một biến thể của điều này sẽ là thay đổi kích thước hệ thống tệp thành 25 GB và sau đó gửi ảnh chụp nhanh LVM. Nó sẽ báo lỗi "không còn dung lượng trống trên thiết bị" vì bạn vẫn đang gửi toàn bộ 500 GB , nhưng không sao, vì chỉ 25 GB đầu tiên của ổ đĩa sẽ chứa hệ thống tệp.

Dù sao đi nữa, có thể bạn sẽ phải điều chỉnh fstab nếu đây là các ổ đĩa có thể khởi động được, vì vậy hãy chuẩn bị cho điều đó.

Điểm:0
lá cờ dk

Bạn phải sử dụng lvconvert lệnh với --mergesnapshot tùy chọn và tên của ảnh chụp nhanh ổ đĩa logic để khôi phục ổ đĩa logic LVM. Khi mà --mergesnapshot được sử dụng, ảnh chụp nhanh được hợp nhất vào ổ đĩa logic ban đầu và sau đó bị xóa.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.