Kullandığım Linux üzerinde ZFS'yi bir hacim yöneticisi olarak ve bir araç geleneksel dosya sistemleri için ek koruma ve işlevsellik sağlamak için. Bu, blok düzeyinde anlık görüntüler, çoğaltma, veri tekilleştirme, sıkıştırma ve XFS veya ext4 dosya sistemlerine gelişmiş önbellekleme getirmeyi içerir.
Başka bir açıklama için bkz: https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/ .
En yaygın kullanım durumumda, varolan bir zpool'da seyrek bir hacim oluşturmak için ZFS zvol özelliğini kullanırım. Bu zvol'un özellikleri normal bir ZFS dosya sistemininki gibi ayarlanabilir. Bu noktada, sıkıştırma türü, cilt boyutu, önbellekleme yöntemi vb. Özellikleri ayarlayabilirsiniz.
Bu zvol'ü oluşturmak Linux'a seçtiğiniz dosya sistemiyle formatlanabilecek bir blok cihaz sunar. Bölümünüzü ve bitmiş birimi oluşturmak için fdisk
veya parted
düğmesini kullanın mkfs
.
Bunu monte edin, aslında bir zvol tarafından desteklenen ve tüm özelliklerine sahip bir dosya sistemine sahipsiniz.
İşte iş akışım ...
Dört disklerin oluşan bir zpool oluşturun:
Sen isteyeceksinizashift=12
olduğunuz disk türü yönergeyi . Bu durumda zpool adı "vol0" dır.
zpool -o ashift = 12 -f vol0 aynası oluşturma scsi-AccOW140403AS1322043 scsi-AccOW140403AS1322042 ayna scsi-AccOW140403AS1322013
İlk zpool ayarlarını belirleyin:
belirlediğim autoexpand=on
şimdiye kadar büyük sürücülerle diskleri değiştirmek veya bir havuzdan genişletmek durumunda zpool düzeyinde ZFS aynalar kurulum. ZFS raidz1 / 2 / 3'ü genellikle düşük performans ve zpool'u genişletemediğim için kullanmıyorum.
zpool set autoexpand=on vol0
İlk zfs dosya sistemi özelliklerini ayarlayın:
Lütfen yeni ZFS kurulumları için lz4
sıkıştırma algoritmasını kullanın . Her zaman açık bırakman sorun değil.
zfs set compression=lz4 vol0
zfs set atime=off vol0
ZFS Oluştur zvol:
Linux'ta ZFS için, büyük bir blok boyutu kullanmanız çok önemlidir. -o volblocksize=128k
burada kesinlikle şarttır. -s
Seçenek seyrek zvol oluşturur ve ihtiyaç olana kadar havuz alanı tüketmez. Verilerinizi iyi biliyorsanız, buradan fazla ödeyebilirsiniz. Bu durumda, havuzda yaklaşık 444GB kullanılabilir disk alanım var, ancak XFS'ye 800 GB'lik bir birim sunuyorum.
zfs create -o volblocksize=128K -s -V 800G vol0/pprovol
Zvol aygıtı bölümü:
( ilk zvol için / dev / zd0; sonraki zvols için / dev / zd16, / dev / zd32, vb. Olmalıdır )
fdisk /dev/zd0 # (create new aligned partition with the "c" and "u" parameters)
Yeni oluşturulan bölümde, / dev / zd0p1 dosya sisteminde mkfs.xfs veya ext4 dosya sistemini oluşturun ve bağlayın.
mkfs.xfs -f -l size=256m,version=2 -s size=4096 /dev/zd0p1
UUID'yi al blkid
ve değiştir /etc/fstab
.
UUID=455cae52-89e0-4fb3-a896-8f597a1ea402 /ppro xfs noatime,logbufs=8,logbsize=256k 1 2
Yeni dosya sistemini bağlayın.
mount /ppro/
Sonuçlar...
[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 dosya sistemi listesi.
[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 listesi.
[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 özellikleri ( take notu referenced
, compressratio
vevolsize
).
[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