Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第21章 ソリッドステートディスクデプロイメントのガイドライン

ソリッドステートディスク (SSD)は、NAND フラッシュチップを使用してデータを永続的に保存するストレージデバイスです。これにより、ディスクを以前の生成とは別に設定され、データをローテーション、マジュラッターに保存します。SSD では、完全な論理ブロックアドレス(LBA)範囲間のデータのアクセス時間は一定ですが、ローテーションメディアを使用する古いディスクでは、大型のアドレス範囲にまたがるアクセスパターンが大きすぎるアクセスパターンがあります。そのため、SSD デバイスでは、レイテンシーとスループットが向上します。
パフォーマンス低下は、ディスク使用量を近づけるブロック数として低下します。パフォーマンスへの影響度はベンダーによって大幅に異なります。ただし、すべてのデバイスのパフォーマンスは低下します。
パフォーマンスの低下に対処するために、ホストシステム(Linux カーネルなど)は破棄要求を使用して、特定のブロックの範囲が使用されなくなったことをストレージに通知することができます。SSD はこの情報を使用して、コードレベルの空きブロックを使用して、領域を内部に解放できます。破棄は、ストレージプロトコル(ATA または SCSI の有効)に関してストレージのサポートを公開している場合にのみ発行されます。破棄要求は、ストレージプロトコルに固有のネゴシエートされた discard コマンド(ATA の場合はTRIM コマンド、および UNMAP セットを持つ WRITE SAME、SCSI には UNMAP コマンド)を使用してストレージに発行されます。
破棄サポートを有効にすることは、以下の場合に最も役立ちます。
  • 空き領域は、ファイルシステムで利用できます。
  • 基となるストレージデバイスの論理ブロックの多くが、すでに書き込まれている。
TRIM の詳細は、「Data Set Management T13 Specifications 」を参照してください。
UNMAP の詳細は、SCSI Block Commands 3 T10 Specification のセクション 4.7.3.4 を参照してください。
注記
市場のすべてのソリッドステートデバイスが破棄のサポートがあるわけではありませんソリッドステートデバイスが破棄のサポートがあるかどうかを確認するには 、/sys/block/sda/queue/discard_granularity を確認します。これは、デバイスの内部割り当てユニットのサイズになります。

デプロイメントに関する考慮事項

SSD の内部レイアウトおよび操作により、内部消去ブロック境界でデバイスをパーティションに分割することが推奨されます。Red Hat Enterprise Linux 7 のパーティショニングユーティリティーは、SSD がトポロジー情報をエクスポートすると、sane のデフォルト値を選択します。ただし、デバイスがトポロジー情報をエクスポートしない場合、Red Hat は、1MB の境界で最初のパーティションを作成することを推奨します。
SSD には、選択したベンダーに応じて、さまざまなタイプの TRIM メカニズムがあります。ディスクの初期バージョンは、read コマンドの後にデータリークが侵害されることによってパフォーマンスが向上しました。
以下は TRIM メカニズムのタイプです。
  • 非決定論的 TRIM
  • 決定論的 TRIM (DRAT)
  • TRIM(RZAT)後の決定論的読み取り Zero(RZAT)
最初の 2 種類の TRIM メカニズムにより、TRIM か同じデータを返すと 、read コマンドから LBA にデータリークが発生する可能性があります。RZAT は read コマンドの後にゼロを返し、データリークを回避するために Red Hat はこの TRIM メカニズムを推奨します。これは SSD でのみ影響を受けます。RZAT メカニズムをサポートするディスクを選択します。
使用される TRIM メカニズムのタイプは、ハードウェアの実装によって異なります。ATA で TRIM メカニズムのタイプを見つけるには、hdparm コマンドを使用します。以下の例を参照して、TRIM メカニズムのタイプを見つけます。
# hdparm -I /dev/sda | grep TRIM
Data Set Management TRIM supported (limit 8 block)
Deterministic read data after TRIM
詳細は、man hdparm を参照してください。
LVM が破棄する論理ボリュームマネージャー(LVM)、Device-mapper(DM)ターゲット、および MD(software raid)ターゲット。破棄に対応していない DM ターゲットのみが、dm-snapshot、dm-crypt、および dm-raid45 です。Red Hat Enterprise Linux 6.1 で dm-mirror のサポートが追加されました。7.0 の MD では破棄が対応しています。
SSD で RAID レベル 5 を使用すると、SSD が破棄を適切に処理しない場合にパフォーマンスが低下しますraid456.conf ファイルまたは GRUB2 設定で discard を設定できます。手順については、以下の手順を参照してください。

手順21.1 raid456.conf で discard の設定

devices_handle_discard_safely モジュールパラメーターは、raid456 モジュールで設定されます。raid456.conf ファイルで破棄を有効にするには、次のコマンドを実行します。
  1. お使いのハードウェアが破棄に対応していることを確認します。
    # cat /sys/block/disk-name/queue/discard_zeroes_data
    返された値が 1 の場合は、破棄がサポートされます。コマンドが 0 を返すと、RAID コードはゼロである必要があります。これにはより多くの時間がかかります。
  2. /etc/modprobe.d/raid456.conf ファイルを作成し、以下の行を追加します。
    options raid456 devices_handle_discard_safely=Y
    
  3. dracut -f コマンドを使用して、初期 ramdisk(initrd)を再構築します。
  4. システムを再起動して、変更を有効にします。

手順21.2 GRUB2 設定での破棄の設定

devices_handle_discard_safely モジュールパラメーターは、raid456 モジュールで設定されます。GRUB2 設定で破棄を有効にするには、以下を実行します。
  1. お使いのハードウェアが破棄に対応していることを確認します。
    # cat /sys/block/disk-name/queue/discard_zeroes_data
    返された値が 1 の場合は、破棄がサポートされます。コマンドが 0 を返すと、RAID コードはゼロである必要があります。これにはより多くの時間がかかります。
  2. 以下の行を /etc/default/grub ファイルに追加します。
    raid456.devices_handle_discard_safely=Y
    
  3. GRUB2 設定ファイルの場所は、BIOS ファームウェアが搭載され、UEFI を使用するシステムで異なります。以下のコマンドの 1 つを使用して、GRUB2 設定ファイルを再作成します。
    • BIOS ファームウェアがあるシステムで、以下を使用します。
      # grub2-mkconfig -o /boot/grub2/grub.cfg
    • UEFI ファームウェアを使用しているシステムの場合は以下を使用します。
      # grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
  4. システムを再起動して、変更を有効にします。
注記
Red Hat Enterprise Linux 7 では、破棄は ext4 および XFS のファイルシステムでのみ完全にサポートされています。
Red Hat Enterprise Linux 6.3 以前では、ext4 ファイルシステムのみが破棄を完全にサポートします。Red Hat Enterprise Linux 6.4 以降、ext4 ファイルシステムと XFS ファイルシステムの両方が破棄に完全対応しています。デバイスで discard コマンドを有効にするには、mount コマンドの discard オプションを使用します。たとえば、破棄を有効にして /dev/sda2/mnt にマウントするには、次のコマンドを実行します。
# mount -t ext4 -o discard /dev/sda2 /mnt
デフォルトでは、ext4 は discard コマンドを実行して主に discard コマンドを実行しません。これは、破棄を適切に実装できないデバイスの問題を回避します。Linux swap コードは、有効なデバイスを破棄して破棄するコマンドと、この動作を制御するオプションはありません。

パフォーマンスチューニングに関する留意事項

ソリッドステートディスクに関するパフォーマンスチューニングの考慮事項は、『Red 『Hat Enterprise Linux 7 パフォーマンスチューニングガイド』の「Solid-State Disks 」を参照してください』。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。