GNU/Linux >> Linux の 問題 >  >> Linux

ext4 と組み合わせた透過的な圧縮ファイルシステム

解決策 1:

Linux で ZFS を使用しています ボリュームマネージャーとして、また従来のファイルシステムに追加の保護と機能を提供する手段として。これには、ブロック レベルのスナップショット、レプリケーション、重複排除、圧縮、および高度なキャッシングを XFS または ext4 ファイルシステムにもたらすことが含まれます。

別の説明については、https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/ を参照してください。

私の最も一般的な使用例では、ZFS zvol 機能を利用して、既存の zpool にスパース ボリュームを作成します。 zvol のプロパティは、通常の ZFS ファイルシステムと同じように設定できます。この時点で、圧縮タイプ、ボリューム サイズ、キャッシュ方法などのプロパティを設定できます。

この zvol を作成すると、選択したファイルシステムでフォーマットできるブロック デバイスが Linux に提示されます。 fdisk を使用 または parted パーティションと mkfs を作成します

これをマウントすると、基本的に、zvol とそのすべてのプロパティを備えたファイルシステムができます。

これが私のワークフローです...

4 つのディスクで構成される zpool を作成します:
ashift=12 が必要です 使用しているディスクのタイプのディレクティブ。この場合、zpool 名は「vol0」です。

<ブロック引用>

zpool create -o ashift=12 -f vol0 mirrorscsi-AccOW140403AS1322043scsi-AccOW140403AS1322042 mirrorscsi-AccOW140403AS1322013scsi-AccOW140403AS1322044

zpool の初期設定:
autoexpand=on を設定しました ディスクをより大きなドライブに交換したり、ZFS ミラーでプールを拡張したりする場合に備えて、zpool レベルで 設定。パフォーマンスが低く、zpool を拡張できないため、通常は ZFS raidz1/2/3 を使用しません。

zpool set autoexpand=on vol0

zfs ファイルシステムの初期プロパティを設定:
lz4 を使用してください 新しい ZFS インストール用の圧縮アルゴリズム。ずっとつけっぱなしでも大丈夫です。

zfs set compression=lz4 vol0
zfs set atime=off vol0

ZFS zvol を作成:
Linux 上の ZFS では、大きなブロック サイズを使用することが非常に重要です。 -o volblocksize=128k ここでは絶対に不可欠です。 -s オプションは、スパース zvol を作成し、必要になるまでプール スペースを消費しません。データをよく知っている場合は、ここでオーバーコミットできます。この場合、プールには約 444GB の使用可能なディスク容量がありますが、800GB のボリュームを XFS に提示しています。

zfs create -o volblocksize=128K -s -V 800G vol0/pprovol

パーティション zvol デバイス:
(最初の zvol では /dev/zd0、後続の zvol では /dev/zd16、/dev/zd32 など )

fdisk /dev/zd0 # (create new aligned partition with the "c" and "u" parameters)

ファイルシステムを作成してマウントします:
新しく作成されたパーティション /dev/zd0p1 の mkfs.xfs または ext4。

mkfs.xfs -f -l size=256m,version=2 -s size=4096 /dev/zd0p1

blkid で UUID を取得します /etc/fstab を変更します .

UUID=455cae52-89e0-4fb3-a896-8f597a1ea402 /ppro       xfs     noatime,logbufs=8,logbsize=256k 1 2

新しいファイルシステムをマウントします。

mount /ppro/

結果...

[[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

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

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      -      -      -         -

ZFS zvol プロパティ (referenced に注意してください) 、 compressratio および 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

解決策 2:

また、ext4 ファイルシステムで破棄を有効にする必要があります。破棄しないと、ファイルが削除されたときに zfs はスペースを再利用しません。これにより、ext4 ファイルシステムが報告するものと zfs ボリュームが報告するものとの間に大きなスペースの不一致が生じる可能性があります。


Linux
  1. Dfと矛盾するファイルシステムのDu結果?

  2. Linux でファイル圧縮を使用して ZFS ファイルシステムを作成する方法

  3. zpool コマンドの例を使用して Linux で ZFS ファイルシステムをセットアップする方法

  1. Ansible:ext4 ファイルシステムのサイズを変更することは可能ですか?

  2. 新しい Linux マシンのルート ファイルシステムとして ZFS を使用しますか?

  3. より高い圧縮率で zip ファイルを圧縮する

  1. Linuxでyumを使用してZFSをセットアップする

  2. ext4 で大文字と小文字を区別しないオプションが必要だったのはなぜですか?

  3. noatimeでファイルシステムをマウントすることの欠点?