Trong hướng dẫn trước, chúng ta đã học cách tạo zpool và hệ thống tệp hoặc tập dữ liệu ZFS. Trong hướng dẫn này, tôi sẽ chỉ cho bạn từng bước cách làm việc với ảnh chụp nhanh, bản sao và sao chép ZFS. Ảnh chụp nhanh, bản sao và sao chép là những tính năng mạnh mẽ nhất của hệ thống tệp ZFS.
Một ví dụ điển hình về cách sử dụng ảnh chụp nhanh là có cách nhanh chóng để sao lưu trạng thái hiện tại của hệ thống tệp khi thực hiện hành động rủi ro như cài đặt phần mềm hoặc nâng cấp hệ thống.
Tạo một nhóm có tên là datapool.
Bây giờ, chúng ta có một nhóm có tên là datapool, tiếp theo chúng ta phải tạo một hệ thống tệp ZFS để mô phỏng tính năng ảnh chụp nhanh.
Để tạo ảnh chụp nhanh của hệ thống tệp, chúng ta có thể sử dụng lệnh zfs snapshot bằng cách chỉ định nhóm và tên ảnh chụp nhanh. Chúng ta có thể sử dụng tùy chọn -r nếu muốn tạo ảnh chụp nhanh theo cách đệ quy. Tên ảnh chụp nhanh phải đáp ứng các yêu cầu đặt tên sau:
Ảnh chụp nhanh cho datapool/docs được tạo.
Để hủy ảnh chụp nhanh, chúng ta có thể sử dụng lệnh zfs destroy như bình thường.
Bây giờ chúng ta thay đổi nội dung của /docs/data.txt
Chúng ta có thể khôi phục hoàn toàn về một snapshot cũ hơn, cho chúng ta bản sao thời điểm snapshot được chụp.
Như chúng ta thấy, nội dung của data.txtđã trở lại nội dung trước đó.
Nếu muốn đổi tên snapshot, chúng ta có thể sử dụng lệnhzfs rename.
Lưu ý: không thể hủy một tập dữ liệu nếu có các bản chụp nhanh của tập dữ liệu này, nhưng chúng ta có thể sử dụng tùy chọn -r để ghi đè lên điều đó.
Bây giờ chúng ta tạo một bản sao từ ảnh chụp nhanh datapool/docs@today
Quá trình sao chép đã hoàn tất, ảnh chụp nhanh datapool/docs@today đã được sao chép vào /datapool/pict.Khi chúng ta kiểm tra nội dung của thư mục/datapool/pict, nội dung phải giống với/datapool/docs.
Sau khi chúng tôi sao chép một ảnh chụp nhanh, ảnh chụp nhanh không thể bị xóa cho đến khi bạn xóa tập dữ liệu.
Cuối cùng, chúng ta có thể hủy ảnh chụp nhanh.
Tạo một nhóm khác có tên là backuppool.
Kiểm tra trạng thái nhóm:
nhóm: backuppool
trạng thái: TRỰC TUYẾN
quét: không có yêu cầu
cấu hình:
TÊN TRẠNG THÁI ĐỌC GHI CKSUM
nhóm dữ liệu sao lưu TRỰC TUYẾN 0 0 0
mirror-0 TRỰC TUYẾN 0 0 0
sde TRỰC TUYẾN 0 0 0
sdf TRỰC TUYẾN 0 0 0
lỗi: Không có lỗi dữ liệu nào được biết đến
Tạo một tập dữ liệu mà chúng ta sẽ sao chép.
Đã đến lúc thực hiện sao chép.
Bộ dữ liệu datapool/docs@todayđã được sao chép thành công vào backuppool/backup.
Để sao chép bộ dữ liệu sang máy khác, chúng ta có thể sử dụng lệnh bên dưới:
Hoàn tất.
Ảnh chụp nhanh ZFS - tổng quan
Ảnh chụp nhanh là một trong những tính năng mạnh mẽ nhất của ZFS, ảnh chụp nhanh cung cấp bản sao chỉ đọc, tại một thời điểm của hệ thống tệp hoặc ổ đĩa không chiếm thêm dung lượng trong nhóm ZFS. Ảnh chụp nhanh chỉ sử dụng dung lượng khi tham chiếu khối thay đổi. Ảnh chụp nhanh bảo toàn dung lượng đĩa bằng cách chỉ ghi lại sự khác biệt giữa tập dữ liệu hiện tại và phiên bản trước đó.Một ví dụ điển hình về cách sử dụng ảnh chụp nhanh là có cách nhanh chóng để sao lưu trạng thái hiện tại của hệ thống tệp khi thực hiện hành động rủi ro như cài đặt phần mềm hoặc nâng cấp hệ thống.
Tạo và hủy ảnh chụp nhanh ZFS
Không thể truy cập trực tiếp ảnh chụp nhanh của ổ đĩa, nhưng có thể sao chép, sao lưu và khôi phục lại. Tạo và hủy một ảnh chụp nhanh ZFS rất dễ, chúng ta có thể sử dụng lệnh zfs snapshot và zfs destroy cho việc đó.Tạo một nhóm có tên là datapool.
Mã:
# zpool create datapool mirror /dev/sdb /dev/sdc
# zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
datapool 1.98G 65K 1.98G - 0% 0% 1.00x ONLINE -
Mã:
# zfs create datapool/docs -o mountpoint=/docs
# zfs list -r datapool
TÊN ĐÃ SỬ DỤNG CÓ SẴN THAM KHẢO ĐIỂM LẮP ĐẶT
datapool 93,5K 1,92G 19K /datapool
datapool/docs 19K 1,92G 19K /docs
Mã:
filesystem@snapnamevolume@snapname
Mã:
# zfs snapshot datapool/docs@version1
# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
datapool/docs@version1 0 - 19.5K -
Để hủy ảnh chụp nhanh, chúng ta có thể sử dụng lệnh zfs destroy như bình thường.
Mã:
# zfs destroy datapool/docs@version1
# zfs list -t snapshot
no datasets available
Hoàn nguyên ảnh chụp nhanh
Đối với mô phỏng, chúng ta cần tạo tệp thử nghiệm trong /docs.
Mã:
# echo "phiên bản 1" > /docs/data.txt
# cat /docs/data.txt
phiên bản 1
Mã:
# zfs snapshot datapool/docs@version1
# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
datapool/docs@version1 9K - 19.5K -
Mã:
# echo "phiên bản 2" > /docs/data.txt
# cat /docs/data.txt
version 2
Mã:
# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
datapool/docs@version1 9,50K - 19,5K -
# zfs rollback datapool/docs@version1
# cat /docs/data.txt
version 1
Nếu muốn đổi tên snapshot, chúng ta có thể sử dụng lệnhzfs rename.
Mã:
# zfs rename datapool/docs@version1 datapool/docs@version2
# zfs list -t snapshot
TÊN ĐÃ SỬ DỤNG CÓ SẴN THAM KHẢO ĐIỂM LẮP ĐẶT
datapool/docs@version2 9,50K - 19,5K -
Mã:
# zfs destroy datapool/docs
không thể hủy 'datapool/docs': hệ thống tệp có các phần tử con
sử dụng '-r' để hủy các tập dữ liệu sau:
datapool/docs@version2
Mã:
# zfs destroy -r datapool/docs
# zfs list -t snapshot
không có tập dữ liệu nào khả dụng
Tổng quan về bản sao ZFS
Bản sao là một ổ đĩa hoặc hệ thống tệp có thể ghi có nội dung ban đầu giống với tập dữ liệu mà nó được tạo ra đã tạo.Tạo và hủy bản sao ZFS
Bản sao chỉ có thể được tạo từ ảnh chụp nhanh và không thể xóa ảnh chụp nhanh cho đến khi bạn xóa bản sao dựa trên ảnh chụp nhanh này. Để tạo bản sao, hãy sử dụng lệnh zfs clone.
Mã:
# zfs create datapool/docs -o mountpoint=/docs
# zfs list -r datapool
NAME USED AVAIL REFER MOUNTPOINT
datapool 93,5K 1,92G 19K /datapool
datapool/docs 19K 1,92G 19K /docs
Mã:
# mkdir /docs/folder{1..5}
# ls /docs/
folder1 folder2 folder3 folder4 folder5
Mã:
# zfs snapshot datapool/docs@today
# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
datapool/docs@today 0 - 19K -
Mã:
# zfs clone datapool/docs@today datapool/pict
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
datapool 166K 1.92G 19K /datapool
datapool/docs 19K 1.92G 19K /docs
datapool/pict 1K 1.92G 19K /datapool/pict
Mã:
# ls /datapool/pict
folder1 folder2 folder3 folder4 folder5
Mã:
# zfs destroy datapool/docs@today
không thể hủy 'datapool/docs@today': snapshot có các bản sao phụ thuộc
sử dụng '-R' để hủy các tập dữ liệu sau:
datapool/pict
Mã:
# zfs destroy datapool/pict
Mã:
# zfs destroy datapool/docs@today
# zfs list -t snapshot
không có tập dữ liệu nào khả dụng
Tổng quan về ZFS Bản sao
Cơ sở cho bản sao ZFS này là một ảnh chụp nhanh, chúng ta có thể tạo một ảnh chụp nhanh bất kỳ lúc nào và chúng ta có thể tạo bao nhiêu ảnh chụp nhanh tùy thích. Bằng cách liên tục tạo, chuyển và khôi phục ảnh chụp nhanh, bạn có thể cung cấp tính năng đồng bộ hóa giữa một hoặc nhiều máy. ZFS cung cấp tính năng tuần tự hóa tích hợp có thể gửi biểu diễn luồng của dữ liệu đến đầu ra chuẩn.Cấu hình bản sao ZFS
Trong phần này, tôi muốn chỉ cho bạn cách sao chép một tập dữ liệu từ datapool sang backuppool, nhưng bạn không chỉ có thể lưu trữ dữ liệu trên một nhóm khác được kết nối với hệ thống cục bộ mà còn có thể gửi dữ liệu qua mạng đến một hệ thống khác. Các lệnh được sử dụng để sao chép dữ liệu là zfs send và zfs receive.Tạo một nhóm khác có tên là backuppool.
Mã:
# zpool create backuppool mirror sde sdf
# zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
backuppool 1.98G 50K 1.98G - 0% 0% 1.00x ONLINE -
datapool 1.98G 568K 1.98G - 0% 0% 1.00x ONLINE -
Mã:
# zpool status
pool: datapool
state: ONLINE
scan: none yêu cầu
cấu hình:
TÊN TRẠNG THÁI ĐỌC GHI CKSUM
nhóm dữ liệu TRỰC TUYẾN 0 0 0
mirror-0 TRỰC TUYẾN 0 0 0
sdb TRỰC TUYẾN 0 0 0
sdc TRỰC TUYẾN 0 0 0
lỗi: Không có lỗi dữ liệu nào được biết đến
trạng thái: TRỰC TUYẾN
quét: không có yêu cầu
cấu hình:
TÊN TRẠNG THÁI ĐỌC GHI CKSUM
nhóm dữ liệu sao lưu TRỰC TUYẾN 0 0 0
mirror-0 TRỰC TUYẾN 0 0 0
sde TRỰC TUYẾN 0 0 0
sdf TRỰC TUYẾN 0 0 0
lỗi: Không có lỗi dữ liệu nào được biết đến
Tạo một tập dữ liệu mà chúng ta sẽ sao chép.
Mã:
# zfs snapshot datapool/docs@today
# zfs list -t snapshot
TÊN ĐÃ SỬ DỤNG CÓ SẴN THAM KHẢO ĐIỂM LẮP ĐẶT
datapool/docs@today 0 - 19K -
# ls /docs/
folder1 folder2 folder3 folder4 folder5
Mã:
# zfs send datapool/docs@today | zfs nhận backuppool/backup
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
backuppool 83K 1.92G 19K /backuppool
backuppool/backup 19K 1.92G 19K /backuppool/backup
datapool 527K 1.92G 19K /datapool
datapool/docs 19K 1.92G 19K /docs
Mã:
# ls /backuppool/backup
folder1 folder2 folder3 folder4 folder5
Để sao chép bộ dữ liệu sang máy khác, chúng ta có thể sử dụng lệnh bên dưới:
Mã:
# zfs gửi datapool/docs@today | ssh otherserver zfs recv backuppool/backup