ストレージの重複排除および圧縮

Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 8 での VDOによるストレージ容量の最適化

Red Hat Customer Content Services

概要

本書は、Red Hat Enterprise Linux 8 で、VDO (Virtual Data Optimizer) を使用して、重複を排除して圧縮したストレージプールを管理する方法を説明します。

Red Hat ドキュメントへのフィードバック

ドキュメントの改善に関するご意見やご要望をお聞かせください。

  • 特定の文章に簡単なコメントを記入する場合は、ドキュメントが Multi-page HTML 形式になっているのを確認してください。コメントを追加する部分を強調表示し、そのテキストの下に表示される Add Feedback ポップアップをクリックし、表示された手順に従ってください。
  • より詳細なフィードバックを行う場合は、Bugzilla のチケットを作成します。

    1. Bugzilla の Web サイトにアクセスします。
    2. Component で Documentation を選択します。
    3. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも記入してください。
    4. Submit Bug をクリックします。

第1章 VDO の使用

システム管理者は、VDO を使用してストレージプールの重複を排除して、圧縮できます。

本章は、VDO デプロイメントのユースケースを説明します。

  • Red Hat Virtualization を使用して構築した場合など、仮想サーバーで直接接続するユースケース
  • Ceph Storage を使用して構築された場合など、オブジェクトベースの分散ストレージクラスターのクラウドストレージのユースケース

この章では、どちらのユースケースにも簡単にデプロイできる、標準の Linux ファイルシステムで使用する VDO の設定例を示します。

1.1. VDO の概要

VDO (Virtual Data Optimizer) は、重複排除、圧縮、およびシンプロビジョニングの形で、Linux でインラインのデータ削減を行います。VDO ボリュームを設定する場合は、VDO ボリュームを構築するブロックデバイスと、作成する論理ストレージのサイズを指定します。

  • アクティブな仮想マシンまたはコンテナーをホストする場合、Red Hat は、物理と論理の割合を 1 対 10 にすることを推奨します。つまり、物理ストレージを 1 TB にした場合は、論理ストレージを 10 TB にします。
  • Ceph が提供するタイプなどのオブジェクトストレージの場合、Red Hat は、物理と論理の割合を 1 対 3 にすることを推奨します。つまり、物理ストレージを 1 TB にした場合は、論理ストレージを 3 TB にします。

いずれの場合も、VDO が作成する論理デバイスにファイルシステムを置くだけで、直接使用することも、分散クラウドストレージアーキテクチャーの一部として使用することもできます。

VDO はシンプロビジョニングされているため、ファイルシステムとアプリケーションは、使用中の論理領域だけを認識し、実際に利用可能な物理領域は認識しません。スクリプトを使用して、実際に利用可能な領域を監視し、使用量がしきい値を超えた場合 (たとえば、VDO ボリュームの使用量が 80% になった場合) にアラートを生成する必要があります。詳細は 「VDO の監視」 を参照してください。

1.2. VDO デプロイメントの例

以下の例は、KVM デプロイメントで VDO を使用する方法を示しています。

KVM を使用した VDO デプロイメント

VDO は、DAS (Direct Attached Storage) を使用して設定した KVM サーバーに正常にデプロイできます。

VDO Deployment with KVM

1.3. VDO のインストール

この手順では、VDO ボリュームの作成、マウント、および管理に必要なソフトウェアをインストールする方法を説明します。

手順

  • vdo パッケージおよび kmod-kvdo パッケージをインストールします。

    # yum install vdo kmod-kvdo

1.4. VDO ボリュームの作成

この手順では、ブロックデバイスに VDO ボリュームを作成する方法を説明します。

複数の VDO ボリュームを、同じマシンにある複数のデバイスに作成できます。この方法を選択する場合は、システムの VDO の各インスタンスに、それぞれ別の名前とデバイスを指定する必要があります。

VDO ボリュームを作成すると、VDO により /etc/vdoconf.yml 設定ファイルにエントリーが追加されます。次に、vdo.service systemd ユニットを使用して、デフォルトでボリュームを起動します。

前提条件

手順

以下のすべての手順で、vdo-name を、VDO ボリュームに使用する識別子 (vdo1 など) に置き換えます。

  1. VDO Manager を使用して VDO ボリュームを作成します。

    # vdo create \
          --name=vdo-name \
          --device=block-device \
          --vdoLogicalSize=logical-size
    • block-device を、VDO ボリュームを作成するブロックデバイスの永続名 (/dev/disk/by-id/scsi-3600508b1001c264ad2af21e903ad031f など) に置き換えます。
    • logical-size を、VDO ボリュームが含まれる論理ストレージのサイズに置き換えます。

      • アクティブな仮想マシンまたはコンテナーストレージの場合は、使用する論理のサイズを、ブロックデバイスの物理サイズの 10 倍になるようにします。たとえば、ブロックデバイスのサイズが 1 TB の場合は、10T を使用します。
      • オブジェクトストレージの場合は、使用する論理のサイズを、ブロックデバイスの物理サイズの 3 倍になるようにします。たとえば、ブロックデバイスのサイズが 1 TB の場合は、3T を使用します。

    例1.1 コンテナーストレージ用に VDO 用の作成

    たとえば、1 TB ブロックデバイスでコンテナーストレージ用に VDO ボリュームを作成するには、次のコマンドを実行します。

    # vdo create \
          --name=vdo1 \
          --device=/dev/disk/by-id/scsi-3600508b1001c264ad2af21e903ad031f \
          --vdoLogicalSize=10T
    警告

    VDO ボリュームの作成中に問題が発生した場合は、ボリュームを削除してクリーンアップします。

  2. VDO ボリュームにファイルシステムを作成します。

    • XFS ファイルの場合:

      # mkfs.xfs -K /dev/mapper/vdo-name
    • ext4 ファイルシステムの場合:

      # mkfs.ext4 -E nodiscard /dev/mapper/vdo-name
  3. 次のコマンドを使用して、システムが新しいデバイスノードを登録するまで待機します。

    # udevadm settle
  4. ファイルシステムをマウントします。

    # mkdir -m 1777 /mnt/vdo-name
    # mount /dev/mapper/vdo-name /mnt/vdo-name
  5. システムの起動時にファイルシステムを自動的にマウントするように設定するには、/etc/fstab ファイルに以下の行を追加します。

    • XFS ファイルの場合:

      /dev/mapper/vdo-name /mnt/vdo-name xfs defaults,_netdev,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0
    • ext4 ファイルシステムの場合:

      /dev/mapper/vdo-name /mnt/vdo-name ext4 defaults,_netdev,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0
  6. VDO デバイスのファイルシステムで discard 機能を有効にします。パッチ操作とオンライン操作の両方が VDO で有効です。

関連資料

  • vdo(8) の man ページ

1.5. VDO の監視

この手順では、VDO ボリュームから、使用方法と性能に関する情報を取得する方法を説明します。

前提条件

手順

  • vdostats ユーティリティーは、VDO ボリュームに関する情報を取得します。

    # vdostats --human-readable
    
    Device                   1K-blocks    Used     Available    Use%    Space saving%
    /dev/mapper/node1osd1    926.5G       21.0G    905.5G       2%      73%
    /dev/mapper/node1osd2    926.5G       28.2G    898.3G       3%      64%

関連資料

  • vdostats(8) の man ページ

法律上の通知

Copyright © 2019 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.