Centos8にVDOをインストールして設定し、ストレージスペースを最適化する

Centos8にVDOをインストールして設定し、ストレージスペースを最適化する

[[400325]]

Virtual Data Optimizer (VDO) は、透過的なデータ重複排除を提供するブロック仮想化テクノロジーです。冗長なデータ ブロックを排除することで、VDO は実際に使用されるディスク容量を大幅に削減できます。

VDO は 2 つのカーネル モジュールと 2 つのコマンドで構成されています。

次の 2 つのカーネル モジュールで構成されています。

  • kvdo - このモジュールはデバイス マネージャー レイヤーにロードされ、データ重複排除用のブロック ストレージ ボリュームを提供します。
  • uds - このモジュールは、VDO オンディスク ユニバーサル重複排除インデックスとの通信を担当します。

2 つのコマンド ライン ツールが含まれています:

  • vdo - VDO ボリュームの作成、削除、開始、停止、およびその他の構成操作を実行するために使用されます。
  • vdostats - 物理ボリュームの効果的な削減と使用率など、VDO ボリュームのさまざまな側面を報告するために使用されます。

システム環境

セントオス8

VDOをインストールする

次のコマンドは、vdo と関連する依存関係をインストールし、インストールが完了したらシステムを再起動します。

  1. [root@localhost ~]# yum -y install vdo
  2. [root@localhost ~]# 再起動

VDOデバイスを作成する

VDO が使用できる空きディスクまたはパーティションがあることを確認します。 LVM 論理ボリューム上に VDO ボリュームを作成することはできますが、システムを再起動すると起動順序の問題が発生します。したがって、raw ディスク上に vdo ボリュームを作成し、その上に LVM 論理ボリュームを作成します。

次に、20GB のディスク /dev/sda を vdo ボリュームとして使用します。

vdo ボリュームを作成しましょう:

  1. [root@localhost ~]# vdo作成  --name=vdolvm --device /dev/sda --vdoLogicalSize 60G --writePolicy 非同期 
  2. VDO vdolvm の作成
  3. VDO ボリュームは、それぞれ 2 GB の 8 つのデータ スラブ16 GB をアドレス指定できます。
  4. 8192 スラブ最大16 TB物理ストレージ対応できるように拡張できます。
  5. より大きな最大サイズが必要な場合は、より大きなスラブを使用します。
  6. VDO vdolvm の起動
  7. VDO vdolvmでの圧縮の開始
  8. VDO インスタンス 0 ボリュームは/dev/mapper/vdolvm準備完了です

コマンドを分解して、使用されるオプションを見てみましょう。

--device - vdoボリュームを作成するハードディスクを指定します

--vdoLogicalSize - ここでは容量を 60G に指定します。これは実際のディスク サイズの 20G よりもはるかに大きい値です。重複排除によって少なくとも 3:1 の削減が得られると仮定します。これはほとんどのデータに対してはかなり控えめな数値ですが、データに重複があまりない場合は比率が異なります。ログ ファイルやその他のプレーン テキスト ファイルは通常、適切に重複排除され、10:1 以上の重複排除率を達成できる場合があります。ただし、ビデオ、オーディオ、圧縮ファイルなどのバイナリ ファイルは 3:1 よりはるかに小さくなり、場合によっては 1:1 になることもあります。この場合、vdo ボリュームの使用はお勧めしません。

--writePolicy - vdo には 3 つの書き込みポリシーがあります。

同期: VDO ボリュームへの書き込みは、データが物理デバイスに書き込まれた後にのみ確認されます。

非同期: データはキャッシュに書き込まれた後に確認されます。デバイスの障害や電源喪失の前にキャッシュをフラッシュしないと、データが失われる可能性があります。

auto: このデフォルトモードでは、VDO はストレージデバイスをチェックし、フラッシュをサポートしているかどうかを判断します。その場合、VDO は非同期モードを使用します。そうでない場合は、同期モードが使用されます。

新しく作成されたVDOボリュームに関する情報を表示します

前の手順の出力からわかるように、VDO は /dev/mapper/vdolvm という名前の新しい dm デバイスを作成しました。これは、lvm ボリューム グループを作成するときに使用するデバイスです。

  1. [root@localhost ~]# ll /dev/mapper/vdolvm
  2. lrwxrwxrwx 1 ルート ルート 7 3月 4 13:31 /dev/mapper/vdolvm -> ../dm-2

vdostats を使用して vdo ボリュームについてどのような情報を取得できるかを見てみましょう。

  1. [root@localhost ~]# vdostats --hu  
  2. デバイスサイズ使用済み 使用可能使用率スペース節約率
  3. /dev/mapper/vdolvm 20.0G 4.0G 16.0G 20% 該当なし

ボリュームにまだデータを書き込んでいないため、Spacesaving% フィールドは N/A です。後でデータを書き込むときに、ここでさらに役立つ情報が表示されます。

上の図を見ると、まだデータを書き込んでいないのに、すでに 4GB、つまり 20% のスペースが使用されていることがわかります。これは、「ユニバーサル重複排除インデックス」がディスクに書き込まれているためです。これは基本的に、スラブの指紋とその位置を記録するデータベースです。これにより、データの重複排除が可能になります。

VDOボリュームを通常のディスクデバイスとして設定する

VDO デバイスを作成したので、これをパーティション分割してフォーマットしたり、この VOD ボリューム上に LVM 論理ボリュームを作成したりできます。次に論理ボリュームを作成します。

  1. # 物理ボリュームを作成する
  2. [root@localhost ~]# pvcreate /dev/mapper/vdolvm
  3. 物理ボリューム「/dev/mapper/vdolvm」が正常に作成されました。
  4. # ボリュームグループ vdo_vg を作成する
  5. [root@localhost ~]# vgcreate vdo_vg /dev/mapper/vdolvm
  6. ボリュームグループ  「vdo_vg」が正常に作成されました
  7. # vdo_vgボリュームグループの情報を表示します
  8. [root@localhost ~]# vgdisplay vdo_vg
  9. --- ボリュームグループ ---  
  10. VGvdo_vg
  11. システムID
  12. lvm2をフォーマットする
  13. メタデータ領域 1
  14. メタデータシーケンス  1
  15. VGアクセス読み取り/書き込み
  16. VGステータスサイズ変更可能
  17. 最大レベル0
  18. カー LV 0
  19. オープンLV0
  20. 最大PV 0
  21. 現在のPV 1
  22. 第1幕
  23. VGサイズ<60.00 GiB
  24. PEサイズ4.00 MiB
  25. 合計PE 15359
  26. 割り当て PE /サイズ0 / 0
  27. 空きPE/サイズ15359/<60.00 GiB
  28. VG UUID qfPiH6-eMCU-Z6kr-eeCu-jd0J-8lmf-49daZX

上記のように、ベース ディスクが 40 GB しかないことがわかっているにもかかわらず、lvm はベース ディスクが 120 GB であると認識しています。 LVM は VDO バックエンド ディスクのサイズを認識しないためです。

次に、いくつかの論理ボリュームを作成しましょう。

  1. [root@localhost ~]# lvcreate -n vdo_lv01 -L 15G vdo_vg
  2. [root@localhost ~]# lvcreate -L 15G -n vdo_lv02 vdo_vg
  3. [root@localhost ~]# lvcreate -L 15G -n vdo_lv03 vdo_vg
  4. # 作成された論理ボリュームを表示する
  5. [root@localhost ~]# lvs -o +デバイス

マウントポイントを作成し、ファイルシステムをマウントする

通常、ファイル システムが作成された後、デバイス上で Trim 操作が実行されます。ディスク容量はオンデマンドで割り当てられるため、VDO を使用する場合はこれは理想的ではありません。したがって、ファイルシステムの作成プロセス中にブロックを破棄しないように mkfs に指示する必要があります。 XFS の場合は -K オプションを使用します。 EXT4 の場合は -E nodiscard を使用します。以下は、for ループを使用して 3 つの論理ボリュームを XFS ファイル システムとしてフォーマットします。

  1. [root@localhost ~]# i`seq 1 3`の場合; mkfs.xfs -K /dev/vdo_vg/vdo_lv0$i; を実行します。終わり
  2. メタデータ=/dev/vdo_vg/vdo_lv01 isize=512 agcount=4、agsize=983040 blks
  3. = sectsz=4096 属性=2、projid32bit=1
  4. = crc=1 finobt=1、スパース=1、rmapbt=0
  5. =参照リンク=1
  6. データ = bsize=4096 ブロック=3932160、imaxpct=25
  7. = 単位=0 幅=0 ブロック
  8. 命名 =バージョン 2 bsize=4096 ascii-ci=0, ftype=1
  9. ログ =内部ログ bsize=4096 ブロック=2560、バージョン=2
  10. = sectsz=4096 sunit=1 blks、lazy- count =1
  11. リアルタイム =なし extsz=4096 ブロック=0、rtextents=0
  12. メタデータ=/dev/vdo_vg/vdo_lv02 isize=512 agcount=4、agsize=983040 blks
  13. = sectsz=4096 属性=2、projid32bit=1
  14. = crc=1 finobt=1、スパース=1、rmapbt=0
  15. =参照リンク=1
  16. データ = bsize=4096 ブロック=3932160、imaxpct=25
  17. = 単位=0 幅=0 ブロック
  18. 命名 =バージョン 2 bsize=4096 ascii-ci=0, ftype=1
  19. ログ =内部ログ bsize=4096 ブロック=2560、バージョン=2
  20. = sectsz=4096 sunit=1 blks、lazy- count =1
  21. リアルタイム =なし extsz=4096 ブロック=0、rtextents=0
  22. メタデータ=/dev/vdo_vg/vdo_lv03 isize=512 agcount=4、agsize=983040 blks
  23. = sectsz=4096 属性=2、projid32bit=1
  24. = crc=1 finobt=1、スパース=1、rmapbt=0
  25. =参照リンク=1
  26. データ = bsize=4096 ブロック=3932160、imaxpct=25
  27. = 単位=0 幅=0 ブロック
  28. 命名 =バージョン 2 bsize=4096 ascii-ci=0, ftype=1
  29. ログ =内部ログ bsize=4096 ブロック=2560、バージョン=2
  30. = sectsz=4096 sunit=1 blks、lazy- count =1
  31. リアルタイム =なし extsz=4096 ブロック=0、rtextents=0

新しいファイルシステムをマウント ポイントにマウントするときに、XFS にブロックを破棄するように指示します。これにより、ファイルの削除が大幅に高速化されます。

  1. [root@localhost ~]# mkdir -p /data/{01..03}
  2. [root@localhost ~]# i`seq 1 3`の場合; mount -o destroy /dev/vdo_vg/vdo_lv0$i /data/0$i を実行します。終わり

デバイスに少量のデータを書き込んだので、VDO ボリュームを再度チェックして状況が変わったかどうかを確認できます。

  1. [root@localhost ~]# vdostats --hu  
  2. デバイスサイズ使用済み 使用可能使用率スペース節約率
  3. /dev/mapper/vdolvm 20.0G 4.0G 16.0G 20% 86%

起動時に開始するように設定する

次に、起動時に起動するように 3 つの論理ボリュームを設定します。 fstab ファイルに x-systemd.device-timeout=0 と x-systemd.requires=vdo.service を追加する必要があります。

blkid を使用して、3 つの論理ボリュームの UUID を表示します。

上記で取得した UUID を使用して、/etc/fstab ファイルに追加します。

  1. [root@localhost systemd]# vim /etc/fstab
  2.  
  3. UUID= "bd2c1c61-4656-4065-b5a0-3ca53ef0f949" /data/01 xfs デフォルト、x-systemd.device-timeout=0、x-systemd.requires=vdo.service 0 0
  4. UUID= "1e53579b-f1da-4f77-80e6-d61a40515525" /data/02 xfs デフォルト、x-systemd.device-timeout=0、x-systemd.requires=vdo.service 0 0
  5. UUID= "d41bf7e2-bf75-4db7-b323-a923375f6a6e" /data/03 xfs デフォルト、x-systemd.device-timeout=0、x-systemd.requires=vdo.service 0 0

この記事はWeChatの公開アカウント「これがLinuxの学び方です」から転載したものです。下のQRコードからフォローできます。この記事を転載する場合は、Linux 公式アカウントまでご連絡ください。

<<:  ファーウェイ中国エコシステムカンファレンス産業クラウドフォーラムが成功裏に開催:産業とデジタルの融合時代における地域産業クラスターのデジタル変革の新たな機会を探る

>>:  etcdと分散ロックに関する記事

推薦する

2021 年のクラウド コンピューティングの 12 の主要なトレンド

[[418244]]テクノロジーの急速な発展により、人々の仕事や生活は大きく変化しています。クラウド...

まだ余裕のある「ホスト」を逃がさないでください! 「ウェブマスター推奨 - 仮想ホスト」!

かつて、仮想ホスティングは、ウェブサイトを構築するときに最初に推奨される製品でした。いつから始まった...

cn2 gia+cuii に接続された hostyun の「[Los Angeles kr-native]」VPS シリーズの簡単なレビュー

Hostyun は、ロサンゼルス KR データセンターにかなりの数のマシンを導入しています。VPS ...

Mituo テンプレート: 運転学校のウェブサイト テンプレートの推奨

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています現代人の車...

SEOを学んでいる初心者はフォーラムには近づかないでください

私は長年 SEO に取り組んでおり、さまざまな規模の SEO フォーラムやウェブマスター フォーラム...

ウェブサイト分析: Google の新しいナビゲーション バーはどんどん大きくなり、使いにくくなっています

RWW ウェブマスターの Jared Smith が Google の新しいナビゲーション バーのス...

Google の中国ウェブマスター向けチュートリアルにおけるリンク構造の重要性についての簡単な説明

コアヒント: .リンク アーキテクチャは Web サイト計画の重要な部分であり、Web サイトが検索...

Yoast ウェブサイト SEO ツール

Yoast SEO は最も人気のある WordPress プラグインの 1 つです。個人ブログを運営...

多くの APP 起業家はこのステップのやり方を知りません。LOGO Design Network がそのやり方を教えます!

月給5,000~50,000のこれらのプロジェクトはあなたの将来ですスマートフォンの普及に伴い、モバ...

desivps: 新しいロサンゼルス NVMe シリーズ VPS、年間 20 ドルから、1G メモリ/1 コア/10gNVMe/1.5T トラフィック/1Gbps 帯域幅

desivps はロサンゼルスのコンピュータ ルームに NVMe SSD シリーズ VPS を新たに...

チェック・ポイント・ソフトウェア・テクノロジーズ、統合クラウドネイティブプラットフォームを拡張し、Alibaba Cloudをサポート

組織は、継続的なコンプライアンスを維持しながら、クラウド インフラストラクチャ全体にわたる高度なセキ...

サービスメッシュが必要なのは誰ですか?

[[433819]]クラウド ネイティブ時代の到来により、マイクロサービス アーキテクチャを使用する...

photonvps-$8.76/Win2003/512m メモリ/20g SSD/2T トラフィック/ロサンゼルス

Photonvps (通称 Fantong) は、すべての VPS に対して 20% オフのプロモー...

Google Inをチェック

インハウス SEO とは何ですか? 企業が自社内で SEO 作業を行うことを意味し、これをインハウス...

友達リンク交換内のページを変更しますか?

私は SEO 業界に 3 か月しかいません。この 3 か月の間に、時間の 3 分の 1 をフレンドリ...