Làm cách nào để đổi tên một subvolume BTRFS?


24

Tôi có một hệ thống tập tin BTRFS với một tập hợp các subvolume trong đó. Càng xa càng tốt. Tôi cần thay đổi tên của một subvolume, tiếc là btrfschương trình không cho phép tôi đổi tên một subvolume. Tìm kiếm với Google đã mang lại một số kết quả, một người cho biết tôi chỉ có thể mv, người còn lại nói tôi có thể chỉ cần snapshotmột tên mới và xóa subvolume cũ. Trước khi tôi làm hỏng phân vùng của mình và phải tải lại từ bản sao lưu (nó khá lớn), câu hỏi của tôi là:

  • Cách tốt nhất hiện nay để đổi tên một subvolume là gì?
  • Có ổn không khi chỉ mvnó, hoặc nó sẽ làm mất hiệu lực một số cấu trúc nội bộ?
  • Là thực hiện một ảnh chụp nhanh mới và loại bỏ subvolume cũ theo cách này, hoặc có một số nhược điểm?

Tôi biết mọi thứ vẫn đang thử nghiệm, nhưng với mục đích của tôi, nó đã hoạt động khá tốt (cho đến nay, và tôi có các bản sao lưu gia tăng cho mỗi ngày).


1
rất vui khi biết btrfs đang hoạt động tốt cho bạn. Nó hoạt động tốt cho tôi cho đến nay. Không vấn đề gì.
MountainX cho Monica Cellio

Câu trả lời:


16

Chỉ mvcó nó Đó là cách được đề xuất trong tài liệu cộng đồng Ubuntu .

Và để làm rõ hơn tại sao đó là cách đúng đắn để làm điều đó, đây là một trích dẫn từ hướng dẫn btrfs sysadmin:

Ảnh chụp nhanh

Ảnh chụp nhanh chỉ đơn giản là một subvolume chia sẻ dữ liệu của nó (và siêu dữ liệu) với một số subvolume khác, sử dụng các khả năng COW của btrfs. Khi một ảnh chụp nhanh [có thể ghi] được thực hiện, không có sự khác biệt về trạng thái giữa subvolume ban đầu và subvolume snapshot mới. Để quay lại ảnh chụp nhanh, hãy ngắt kết nối mạng con gốc đã sửa đổi và gắn ảnh chụp nhanh vào vị trí của nó. Tại thời điểm này, subvolume ban đầu có thể bị xóa nếu muốn. Vì ảnh chụp nhanh là một ảnh con, ảnh chụp nhanh của ảnh chụp cũng có thể.


8

Có vài điều quan trọng cần lưu ý. Các cách đặt tên:

btrfs Subvolume - insidehệ thống tệp chứa dữ liệu độc lập . Nó được biểu diễn dưới dạng thư mục của FS hiện có. Nếu bạn tạo subvolume mới, nó sẽ trống, sẵn sàng sử dụng khối dữ liệu logic bên trong hệ thống tệp. Rất thuận tiện để sử dụng khi dữ liệu phải được phân tách hợp lý, ví dụ như các máy khách khác nhau của VM hoặc các máy khách khác nhau trên các mạng con khác nhau. Điều này cho phép very fastloại bỏ tất cả các khối dữ liệu logic chỉ bằng lệnh xóa subvolume.

Ảnh chụp nhanh btrfs - một bản sao của existingsubvolume với tất cả dữ liệu của nó tại thời điểm chụp nhanh os được thực hiện. Có thể được sử dụng làm bản sao lưu hoạt động để hoàn nguyên các cài đặt hoặc thay đổi, ví dụ: tạo ảnh chụp nhanh subvolume, thực hiện thay đổi (VM hoặc dữ liệu), kiểm tra xem mọi thứ có ổn không, sau một thời gian ân hạn xóa ảnh chụp nhanh. Điều quan trọng cần lưu ý: ảnh chụp nhanh chỉ có thể được đọc ( -rchuyển đổi) và do đó có thể được sử dụng làm khối tăng thay đổi của FS và có thể được chuyển sang BTRFS hoàn toàn khác!

Các giới hạn BTRFS hiện tại (2016-12-30):

Sao chép hoặc di chuyển dữ liệu giữa các subvolume, ví dụ: mv dir1/dataset1 dir_subvolume1/tạo tất cả io thật để sao chép dữ liệu sang một subvolume khác và trong trường hợp di chuyển, xóa khỏi dữ liệu gốc. Và sao chép rất hiệu quả hàng tấn dữ liệu chỉ bằng cách tham chiếu và do đó sử dụng tính năng COW của BTRFS:

cp -a --reflink=always dir1/dataset1 dir_subvolume1/

và nếu cần:

rm -rf dir1/dataset1

Chỉ có thể đổi tên ảnh chụp nhanh Subvolume mvở cấp thư mục hiện có, nhưng không thể đổi tên / chuyển sang cấp thư mục con khác. ví dụ mv /btrfs/subvol_snap1 /btrfs/.snaphotslà không thể, tạo ra lỗi không được giải thích nhiều : mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system. Để có thể di chuyển một ảnh chụp nhanh như vậy, bạn cần tạo ảnh chụp nhanh chỉ đọc mới của ảnh chụp nhanh chỉ đọc hiện tại đến vị trí ưa thích mới, sau đó xóa ảnh chụp cũ:

btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1

Chỉ để dễ sống hơn:

btrfs sub list /btrfs

Tôi hy vọng điều này sẽ tiết kiệm hàng tấn thời gian cho tất cả người hâm mộ btrfs mới :)


4

Nếu bạn muốn đổi tên ổ đĩa gốc thành một subvolume lồng nhau, bạn sẽ cần phải chụp nhanh nó và sau đó thực hiện find $ROOT_VOL -xdev -deleteđể xóa nội dung trước đó của ổ đĩa gốc. Thao tác đảo ngược (đổi tên một subvolume thành âm lượng gốc) dường như không thể.

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.