ฉันใช้ZFS บน Linuxเป็นตัวจัดการโวลุ่มและวิธีการเพิ่มเติมในการป้องกันและการทำงานกับระบบไฟล์แบบดั้งเดิม ซึ่งรวมถึงการนำสแน็ปช็อตระดับบล็อกการจำลองการทำซ้ำการบีบอัดและการแคชขั้นสูงไปยังระบบไฟล์ XFS หรือ ext4
ดู: https://pthree.org/2012/12/21/zfs-administr-part-xiv-zvols/สำหรับคำอธิบายอื่น
ในกรณีที่ใช้บ่อยที่สุดของฉันฉันใช้ประโยชน์จากคุณสมบัติ ZFS zvol เพื่อสร้างปริมาณเบาบางบน zpool ที่มีอยู่ คุณสมบัติของ zvol นั้นสามารถตั้งค่าได้เหมือนกับระบบไฟล์ ZFS ปกติ ในช่วงหัวเลี้ยวหัวต่อนี้คุณสามารถตั้งค่าคุณสมบัติเช่นชนิดการบีบอัดขนาดปริมาณวิธีการแคช ฯลฯ
การสร้าง zvol นี้นำเสนออุปกรณ์บล็อกสำหรับ Linux ที่สามารถจัดรูปแบบด้วยระบบไฟล์ที่คุณเลือก ใช้fdisk
หรือparted
เพื่อสร้างพาร์ติชันของคุณและmkfs
ไดรฟ์ข้อมูลเสร็จ
เมานต์นี้และคุณมีระบบไฟล์ที่สนับสนุนโดย zvol และคุณสมบัติทั้งหมด
นี่คือขั้นตอนการทำงานของฉัน ...
สร้าง zpool ประกอบด้วยดิสก์สี่ตัว:
คุณจะต้องการashift=12
คำสั่งสำหรับประเภทของดิสก์ที่คุณใช้ ชื่อ zpool คือ "vol0" ในกรณีนี้
zpool สร้าง -o ashift = 12 -f vol0 mirror scsi-AccOW140403AS1322043 scsi-AccOW140403AS1322042 กระจก scsi-AccOW140403AS1322013 scsi-AccOW140403AS1322044
ตั้งค่าการตั้งค่าเริ่มต้น zpool:
ฉันตั้งค่าautoexpand=on
ที่ระดับ zpool ในกรณีที่ฉันแทนที่ดิสก์ด้วยไดรฟ์ที่ใหญ่กว่าหรือขยายพูลในการตั้งค่ามิเรอร์ ZFS ฉันมักจะไม่ใช้ ZFS raidz1 / 2/3 เนื่องจากประสิทธิภาพไม่ดีและไม่สามารถขยาย zpool ได้
zpool set autoexpand=on vol0
ตั้งค่าคุณสมบัติระบบไฟล์ zfs เริ่มต้น:
โปรดใช้lz4
อัลกอริทึมการบีบอัดสำหรับการติดตั้ง ZFS ใหม่ ไม่เป็นไรที่จะปล่อยไว้ตลอดเวลา
zfs set compression=lz4 vol0
zfs set atime=off vol0
สร้าง ZFS zvol:
สำหรับ ZFS บน Linux มันสำคัญมากที่คุณจะต้องใช้ขนาดบล็อกใหญ่ -o volblocksize=128k
จำเป็นอย่างยิ่งที่นี่ -s
ตัวเลือกสร้าง zvol เบาบางและไม่กินพื้นที่สระว่ายน้ำจนมันจำเป็น คุณสามารถเขียนทับได้ที่นี่หากคุณรู้จักข้อมูลของคุณดี ในกรณีนี้ฉันมีพื้นที่ดิสก์ที่ใช้งานได้ประมาณ 444GB ในพูล แต่ฉันกำลังแสดงปริมาณ 800GB ให้กับ XFS
zfs create -o volblocksize=128K -s -V 800G vol0/pprovol
พาร์ติชันอุปกรณ์ zvol:
( ควรเป็น / dev / zd0 สำหรับ zvol แรก; / dev / zd16, / dev / zd32 เป็นต้นสำหรับ zvols ที่ตามมา )
fdisk /dev/zd0 # (create new aligned partition with the "c" and "u" parameters)
สร้างและเมานต์ระบบไฟล์:
mkfs.xfs หรือ ext4 บนพาร์ติชันที่สร้างขึ้นใหม่ / dev / zd0p1
mkfs.xfs -f -l size=256m,version=2 -s size=4096 /dev/zd0p1
คว้า UUID ด้วยและปรับเปลี่ยนblkid
/etc/fstab
UUID=455cae52-89e0-4fb3-a896-8f597a1ea402 /ppro xfs noatime,logbufs=8,logbsize=256k 1 2
เมานต์ระบบไฟล์ใหม่
mount /ppro/
ผล...
[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
รายการระบบไฟล์ 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
รายชื่อ ZFS zpool
[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 - - - -
คุณสมบัติ ZFS zvol ( จดreferenced
, compressratio
และ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