に紹介される RedHat NS RHEL 7.5 以降、 VDO の略 仮想日付オプティマイザー は、ブロックデバイスレベルでデータのインライン重複排除と圧縮を提供するブロック仮想化テクノロジーです。
重複排除の考え方は非常に単純です。重複データのコピーを削除し、1つのコピーだけを残すことです。 同一のファイルがブロックデバイスに追加されると、そのファイルは重複としてマークされ、代わりに元のファイルが参照されます。 そうすることで、 VDO ブロックボリュームのスペースを節約するのに役立ちます。
このチュートリアルでは、を作成する方法を学習します VDO 上のストレージデバイスのボリューム RHEL 8 システム。
開始するには、サーバーにログインして更新します RHEL を使用して dnfコマンド.
$ sudo dnf update-y。
パッケージとカーネルの更新が完了したら、次に進んでインストールします。 VDO コマンドを使用したカーネルモジュールと依存関係。
$ sudo dnf install kmod-kvdovdo。
インストールが正常に完了したら、開始、有効化、および検証します。 vdo デーモン。
$ sudo systemctl startvdo。 $ sudo systemctl enablevdo。 $ sudo systemctl statusvdo。
作成する前に vdo ボリューム、システムに追加のハードドライブがあることを確認してください。 このチュートリアルでは、追加のボリュームを添付しました xvdb
. これは、を実行することで実証できます。 lsblkコマンド 下。
$ lsblk。
出力から、2番目のディスクの容量が 100GB.
今、私たちは空のaneを作成します VDO ボリュームオン /dev/xvdb
ディスク。
$ sudo vdo create --name = vdo1 --device = / dev / xvdb --vdoLogicalSize = 300G。
表示されたエラーが発生します。
これは一般的なバグであり、回避策はサーバーを再起動することです。
$ sudoreboot。
2回目の試行では、コマンドが実行され、空が作成されます VDO デバイスの音量 /dev/xvdb
.
$ sudo vdo create --name = vdo1 --device = / dev / xvdb --vdoLogicalSize = 300G。
コマンドを分解して、使用されているオプションを見てみましょう。
新しい VDO ボリュームはで作成されました /dev/mapper/vdo1
前のステップで見た出力を見ていきます。 使用できます lsコマンド ファイルのアクセス許可と所有権を調査するために示されているように。
$ ls -l / dev / mapper / vdo1。
より洞察に満ちた情報を取得するには、 vdostats ボリュームのサイズと使用状況に関する統計を取得するコマンド。
$ vdostats--hu。
NS --hu
フラグは、人間が読める形式、つまり、はるかに読みやすく、解読しやすい形式で情報を表示します。 デバイス名、追加ディスクのサイズ、使用済みおよび使用可能なスペースなどの属性を、 %
利用方法。
注意深く観察してください %
保存は次のように示されます 該当なし(N / A).
また、すでにボリュームの使用量があることに注意してください 4.1G これは 4% まだボリュームには何も書いていません。 何故ですか? これは、ユニバーサル重複排除がすでにディスクに書き込まれており、それが重複排除を可能にするためです。
NS vdostats コマンドは、 -詳細
示されているように、より詳細な情報を取得するためのフラグ:
$ sudo vdostats --verbose / dev / mapper / vdo1 | grep-B6「節約率」
表示されるのは、基本的に前の例と同じデータですが、形式が異なります。
ボリュームから十分な洞察を得た後、ボリュームをパーティション分割し、後で通常のディスクとして使用できるようにファイルシステムを作成する必要があります。
図のように物理ボリュームとボリュームグループを作成して、次のコマンドを実行します。
$ sudo pvcreate / dev / mapper / vdo1。 $ sudo vgcreate vdo1vg / dev / mapper / vdo1。
ボリュームグループの実行の統計を表示するには、次の手順に従います。
$ sudo vgdisplayvdo1vg。
ここで、それぞれが次の容量を持つ2つの同じサイズの論理ボリュームを作成します。 50グラム.
$ sudo lvcreate -n vdo1v01 -L 50Gvdo1vg。 $ sudo lvcreate -n vdo1v02 -L 50Gvdo1vg。
コマンドを実行すると、後で新しく作成されたボリュームの統計を表示できます。
$ sudolvs。
通常、ファイルシステムが作成されると、デバイスでトリム操作が実行されます。 これは、 VDO. を使用してフォーマットする場合 mkfs コマンド、を使用して -K
ファイルシステムの作成中にブロックを破棄しないようにコマンドに指示するオプション。
$ sudo mkfs.xfs -K / dev / vdo1vg / vdo1v01。 $ sudo mkfs.xfs -K / dev / vdo1vg / vdo1v02。
使用している場合 EXT $ ファイルシステム、「-E nodiscard" オプション。
ボリュームをマウントするためのマウントポイントを作成します。
$ sudo mkdir / data / v01。 $ sudo mkdir / data / v02。
次に、図のようにファイルシステムをマウントポイントにマウントします。
$ sudo mount -o Discard / dev / vdo1vg / vdo1v01 / data / v01。 $ sudo mount -o Discard / dev / vdo1vg / vdo1v02 / data / v02。
今、あなたが検査するとき VDO ボリュームに気付くでしょう %
保存はに変更されました 99% これは非常に印象的です。 これは、重複排除が期待どおりに機能していることを意味します。
$ sudo vdostats--hu。
あなたはさらに調査することができます df-Thコマンド. 下部のセクションに、マウントされているファイルシステムが表示されます /data/v01
と /data/v02
それぞれ。
$ df-hT。
このチュートリアルでは、上の追加のストレージデバイスからVDOボリュームを作成する方法を示しました。 RHEL 8. その後、さらにボリュームを作成し、それらのボリュームからファイルシステムを作成する方法を示しました。