Solusi 1:
Saya menggunakan ZFS di Linux sebagai pengelola volume dan sarana untuk memberikan perlindungan dan fungsionalitas tambahan pada sistem file tradisional. Ini termasuk menghadirkan snapshot tingkat blok, replikasi, deduplikasi, kompresi, dan caching lanjutan ke sistem file XFS atau ext4.
Lihat:https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/ untuk penjelasan lain.
Dalam kasus penggunaan saya yang paling umum, saya memanfaatkan fitur ZFS zvol untuk membuat volume jarang pada zpool yang ada. Properti zvol itu dapat diatur seperti sistem file ZFS normal. Pada titik ini, Anda dapat mengatur properti seperti jenis kompresi, ukuran volume, metode caching, dll.
Membuat zvol ini menghadirkan perangkat blok ke Linux yang dapat diformat dengan sistem file pilihan Anda. Gunakan fdisk
atau parted
untuk membuat partisi dan mkfs
Anda volume selesai.
Pasang ini dan pada dasarnya Anda memiliki sistem file yang didukung oleh zvol dan dengan semua propertinya.
Ini alur kerja saya...
Buat zpool yang terdiri dari empat disk:
Anda akan menginginkan ashift=12
direktif untuk jenis disk yang Anda gunakan. Nama zpool adalah "vol0" dalam hal ini.
zpool buat -o ashift=12 -f vol0 mirrorscsi-AccOW140403AS1322043scsi-AccOW140403AS1322042 mirrorscsi-AccOW140403AS1322013scsi-AccOW140403AS1322044
Tetapkan pengaturan zpool awal:
Saya menetapkan autoexpand=on
di tingkat zpool seandainya saya mengganti disk dengan drive yang lebih besar atau memperluas kumpulan di mirror ZFS mempersiapkan. Saya biasanya tidak menggunakan ZFS raidz1/2/3 karena kinerja yang buruk dan ketidakmampuan untuk memperluas zpool.
zpool set autoexpand=on vol0
Setel properti sistem file zfs awal:
Silakan gunakan lz4
algoritma kompresi untuk instalasi ZFS baru. Tidak apa-apa untuk membiarkannya sepanjang waktu.
zfs set compression=lz4 vol0
zfs set atime=off vol0
Buat ZFS zvol:
Untuk ZFS di Linux, sangat penting bagi Anda untuk menggunakan ukuran blok yang besar. -o volblocksize=128k
sangat penting di sini. -s
opsi membuat zvol yang jarang dan tidak menghabiskan ruang kumpulan sampai diperlukan. Anda dapat melakukan overcommit di sini, jika Anda mengetahui data Anda dengan baik. Dalam hal ini, saya memiliki sekitar 444 GB ruang disk yang dapat digunakan di kumpulan, tetapi saya menghadirkan volume 800 GB ke XFS.
zfs create -o volblocksize=128K -s -V 800G vol0/pprovol
Perangkat zvol partisi:
(harus /dev/zd0 untuk zvol pertama; /dev/zd16, /dev/zd32, dll. untuk zvol berikutnya )
fdisk /dev/zd0 # (create new aligned partition with the "c" and "u" parameters)
Buat dan pasang sistem file:
mkfs.xfs atau ext4 pada partisi yang baru dibuat, /dev/zd0p1.
mkfs.xfs -f -l size=256m,version=2 -s size=4096 /dev/zd0p1
Raih UUID dengan blkid
dan modifikasi /etc/fstab
.
UUID=455cae52-89e0-4fb3-a896-8f597a1ea402 /ppro xfs noatime,logbufs=8,logbsize=256k 1 2
Pasang sistem file baru.
mount /ppro/
Hasil...
[[email protected] ~]# 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
Daftar sistem file ZFS.
[[email protected] ~]# 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
Daftar ZFS zpool.
[[email protected] ~]# 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 - - - -
Properti ZFS zvol (catat referenced
, compressratio
dan volsize
).
[[email protected] ~]# 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
Solusi 2:
Anda juga perlu mengaktifkan pembuangan pada sistem file ext4. Tanpa membuang, zfs tidak merebut kembali ruang saat file dihapus. Hal ini pada akhirnya dapat menyebabkan perbedaan ruang yang besar antara laporan sistem file ext4 dan volume zfs.