GNU/Linux >> Belajar Linux >  >> Linux

Sistem file kompresi transparan bersama dengan ext4

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.


Linux
  1. Membatalkan Penghapusan File yang Baru Dihapus Di Ext4 Dengan Extundelete?

  2. Sistem File Mana Yang Harus Dicadangkan Yang Terbaik??

  3. Cara Membuat Sistem File ZFS dengan Kompresi File di Linux

  1. Cara Setup ZFS Filesystem di Linux dengan Contoh Perintah zpool

  2. Contoh Perintah mkfs.ext4 di Linux

  3. Kemungkinan:apakah mungkin mengubah ukuran sistem file ext4?

  1. Siapkan ZFS di Linux dengan yum

  2. Kompres file zip dengan kompresi lebih tinggi

  3. Mengapa opsi case-insensitive di ext4 diperlukan?