Tôi sử dụng ZFS trên Linux như một trình quản lý âm lượng và phương tiện để cung cấp các chức năng bảo vệ và chức năng bổ sung cho các hệ thống tệp truyền thống. Điều này bao gồm đưa các ảnh chụp nhanh cấp khối, sao chép, sao chép, nén và lưu trữ nâng cao vào hệ thống tệp XFS hoặc ext4.
Xem: https://pthree.org/2012/12/21/zfs-ad dùng- part-xiv-zvols / để được giải thích khác.
Trong trường hợp sử dụng phổ biến nhất của tôi, tôi tận dụng tính năng ZFS zvol để tạo âm lượng thưa thớt trên một zpool hiện có. Các thuộc tính của zvol đó có thể được đặt giống như các hệ thống tệp ZFS bình thường. Tại thời điểm này, bạn có thể đặt các thuộc tính như loại nén, kích thước âm lượng, phương thức lưu trữ, v.v.
Tạo zvol này trình bày một thiết bị khối cho Linux có thể được định dạng với hệ thống tệp bạn chọn. Sử dụng fdisk
hoặc parted
để tạo phân vùng của bạn và mkfs
khối lượng hoàn thành.
Gắn kết này và về cơ bản bạn có một hệ thống tập tin được hỗ trợ bởi zvol và với tất cả các thuộc tính của nó.
Đây là quy trình làm việc của tôi ...
Tạo một zpool bao gồm bốn đĩa:
Bạn sẽ muốn ashift=12
chỉ thị cho loại đĩa bạn đang sử dụng. Tên zpool là "vol0" trong trường hợp này.
zpool tạo -o ashift = 12 -f vol0 gương scsi-AccOW140403AS1322043 scsi-AccOW140403AS1322042 gương scsi-AccOW140403AS1322013 scsi-AccOW140403AS1322044
Đặt cài đặt zpool ban đầu:
Tôi đặt autoexpand=on
ở cấp độ zpool trong trường hợp tôi từng thay thế các đĩa bằng các ổ đĩa lớn hơn hoặc mở rộng nhóm trong thiết lập nhân bản ZFS . Tôi thường không sử dụng ZFS raidz1 / 2/3 vì hiệu suất kém và không có khả năng mở rộng zpool.
zpool set autoexpand=on vol0
Đặt thuộc tính hệ thống tệp zfs ban đầu:
Vui lòng sử dụng lz4
thuật toán nén để cài đặt ZFS mới. Bạn có thể để nó mọi lúc.
zfs set compression=lz4 vol0
zfs set atime=off vol0
Tạo ZFS zvol:
Đối với ZFS trên Linux, điều quan trọng là bạn phải sử dụng kích thước khối lớn. -o volblocksize=128k
là hoàn toàn cần thiết ở đây. Các -s
tùy chọn tạo ra một zvol thưa thớt và không tiêu tốn không gian hồ bơi cho đến khi nó cần thiết. Bạn có thể thừa ở đây, nếu bạn biết rõ dữ liệu của mình. Trong trường hợp này, tôi có khoảng 444 GB dung lượng đĩa có thể sử dụng trong nhóm, nhưng tôi đang trình bày dung lượng 800 GB cho XFS.
zfs create -o volblocksize=128K -s -V 800G vol0/pprovol
Thiết bị phân vùng zvol:
( nên là / dev / zd0 cho zvol đầu tiên; / dev / zd16, / dev / zd32, v.v. cho các zvols tiếp theo )
fdisk /dev/zd0 # (create new aligned partition with the "c" and "u" parameters)
Tạo và gắn kết hệ thống tập tin:
mkfs.xfs hoặc ext4 trên phân vùng vừa tạo, / dev / zd0p1.
mkfs.xfs -f -l size=256m,version=2 -s size=4096 /dev/zd0p1
Lấy UUID với blkid
và sửa đổi /etc/fstab
.
UUID=455cae52-89e0-4fb3-a896-8f597a1ea402 /ppro xfs noatime,logbufs=8,logbsize=256k 1 2
Gắn kết hệ thống tập tin mới.
mount /ppro/
Các kết quả...
[root@Testa ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sde2 20G 8.9G 9.9G 48% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/sde1 485M 63M 397M 14% /boot
/dev/sde7 2.0G 68M 1.9G 4% /tmp
/dev/sde3 12G 2.6G 8.7G 24% /usr
/dev/sde6 6.0G 907M 4.8G 16% /var
/dev/zd0p1 800G 398G 403G 50% /ppro <-- Compressed ZFS-backed XFS filesystem.
vol0 110G 256K 110G 1% /vol0
Danh sách hệ thống tập tin ZFS.
[root@Testa ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
vol0 328G 109G 272K /vol0
vol0/pprovol 326G 109G 186G - <-- The actual zvol providing the backing for XFS.
vol1 183G 817G 136K /vol1
vol1/images 183G 817G 183G /images
Danh sách zpool ZFS.
[root@Testa ~]# zpool list -v
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
vol0 444G 328G 116G 73% 1.00x ONLINE -
mirror 222G 164G 58.1G -
scsi-AccOW140403AS1322043 - - - -
scsi-AccOW140403AS1322042 - - - -
mirror 222G 164G 58.1G -
scsi-AccOW140403AS1322013 - - - -
scsi-AccOW140403AS1322044 - - - -
Tính ZFS zvol ( take note của referenced
, compressratio
vàvolsize
).
[root@Testa ~]# zfs get all vol0/pprovol
NAME PROPERTY VALUE SOURCE
vol0/pprovol type volume -
vol0/pprovol creation Sun May 11 15:27 2014 -
vol0/pprovol used 326G -
vol0/pprovol available 109G -
vol0/pprovol referenced 186G -
vol0/pprovol compressratio 2.99x -
vol0/pprovol reservation none default
vol0/pprovol volsize 800G local
vol0/pprovol volblocksize 128K -
vol0/pprovol checksum on default
vol0/pprovol compression lz4 inherited from vol0
vol0/pprovol readonly off default
vol0/pprovol copies 1 default
vol0/pprovol refreservation none default
vol0/pprovol primarycache all default
vol0/pprovol secondarycache all default
vol0/pprovol usedbysnapshots 140G -
vol0/pprovol usedbydataset 186G -
vol0/pprovol usedbychildren 0 -
vol0/pprovol usedbyrefreservation 0 -
vol0/pprovol logbias latency default
vol0/pprovol dedup off default
vol0/pprovol mlslabel none default
vol0/pprovol sync standard default
vol0/pprovol refcompressratio 3.32x -
vol0/pprovol written 210M -
vol0/pprovol snapdev hidden default