超収束ストレージスループットを最大化するためのLVM PEストライピング


このポストは、システム間データプラットフォーム上のデータベースディスクのためのLVM物理的範囲(PE)ストライプを作成することによって、低レイテンシストレージIOのためのベストプラクティス構成の有用なリンクおよび概要を提供するインターシステムズイリス,チャ.
一貫した低レイテンシストレージは、最高のデータベースアプリケーションのパフォーマンスを得るための鍵です.Linux上で実行されているアプリケーションでは、論理ボリュームマネージャ( LVM )は、ボリュームやファイルシステムを拡張したり、オンラインバックアップ用のスナップショットを作成する能力などの理由で、データベースディスクによく使われます.データベースアプリケーションのために、LVM PEストライプ論理ボリュームを使用している書込みの並列性は、また、データI/Oの効率を改良することによって、大きいシーケンシャル読取りおよび書込みのためのパフォーマンスを増やすのを助けることができる.
このポストは、HCIとLVM PEストライプを使用することに焦点を当てて、また、白書の出版によって促されましたSoftware Defined Data Centers (SDDC) and Hyper-Converged Infrastructure (HCI) – Important Considerations for InterSystems Clients ここでコミュニティ.白書は、「複数のディスクグループを横切ってIOを広げるLinux Virtual MachineによるLVM PEストライキの使用」と、「すべてのデータベースのためのRTAIO図書館とLinux仮想マシンでイメージジャーナル(WIJ)ファイルを使っているasync IOの使用)に、推薦されました.このポストはそれらの要件と例にいくつかの文脈を提供します.
注意:

Currently there are multiple Hyper-Converged, Converged and Software Defined vendor platforms, rather than provide detailed instructions for each I have used the configuration of InterSystems IRIS or Caché on Red Hat Enterprise Linux (RHEL) 7.4 running on VMware ESXi and vSAN as the example in this post. However, the basic process is similar for other solutions, especially at the InterSystems IRIS or Caché and operating system level. If you are unsure how to translate these instructions to other platforms, please contact the respective vendor’s support for their best practice. InterSystems technology experts can also advise directly with customers and vendors or through the community.


また、このポストの中でLVM PEストライキに関するガイダンスがHCIと「伝統的な」記憶装置に適用されることができる点に注意してください.

LVMのストライプを使用する必要がありますか?
ディスクアレイのような伝統的なストレージについては、短い答えです.これは特に、最新のすべてのフラッシュストレージアレイでは、あなたのパフォーマンスを今すぐにして、LVMの要件を持っていない場合は、データベースのディスクのためのLVMストライプボリュームを実行する必須ではありませんし、変更する必要はありません.
しかし、前述の通りLVMストライプは、NutanixとVMWare Vsanのようなハイパー・コントラクトとストレージ・ソリューションのデータベース・ディスクに対して、ホスト・ノードとディスク・グループがIO操作で使用できるようにすることを推奨します.

なぜデータプラットフォーム用のLVMストライプを使うのか?
LVMのストライプは、特にアーキテクチャのいくつかの機能のパフォーマンスオーバーヘッドを軽減するために、HCI上のデータベースディスクに推奨されます.例えば、データベース書き込みとジャーナル書き込みの書き込みデーモン(WD)の影響を軽減するためです.LVMストライプを使用すると、より多くのディスクデバイスと複数のディスクグループ間でデータベースの書き込みバーストを広げる.さらに、このポストは、他のIOSのための待ち時間への影響を軽減する大きなIO - Size WriteイメージJournal(WIJ)の並列性を増やす方法を示します.

Note: In this post when I say “disk” I mean NVMe, Optane, SATA or SAS SSD, or any other flash storage devices.



VSANストレージアーキテクチャ概要
例えば、HCIストレージは、VsanでESXIを実行するとき、2つのディスクティアを使用しますキャッシュ層と容量層.すべてのフラッシュアーキテクチャ(すべてのフラッシュを使用する必要があります-回転ディスクを使用しないでください!)全てのライトはデータ層を持つキャッシュ層に移動し、最終的に容量層に到達する.読み込みは容量層(またはキャッシュ層上のキャッシュから)から来ます.HCIクラスタの各ホストは1つ以上のディスクグループを持つことができます.ディスクグループが存在する場合、例えばVsanでは、各ディスクグループはキャッシュディスクと多容量ディスクから構成される.例えば、キャッシュディスクは単一のNVMEディスクであり、容量ディスクは3つ以上の書き込み集中SAS SSDディスクである.
VSANディスクグループを含むHCIの詳細についてはHyper-Converged Infrastructure (HCI) on the community またはあなたのHCIベンダーにお問い合わせください.

LVMストライプ論理ボリューム概要
Linux LVMの良い概要はRed Hat Support ウェブサイトother places, for example, this tutorial for system administrators is very good .

データプラットフォーム
システム間のデータプラットフォームで生成されるIOの型を理解することが重要です.の概要storage IO patterns is available on the community .

LVM PEストライプを作成するプロセス

前提条件と手順
我々がプロセスに飛び込む前に、あなたは他の変数が遊びに影響を及ぼすことができることを覚えていなければなりませんその記憶性能.単にLVMストライプを作成することは最適パフォーマンスの保証でありません、また、あなたは記憶タイプを考慮しなければなりません、そして、IO待ち行列と待ち行列深さを含む全体のIO経路.
この例はvmwareInterSystems IRIS VMware best practice guide また、読むと推奨事項を適用する必要があります.特にPVSCSIコントローラ間のストレージIOタイプの分離などのストレージに関する考慮事項.

概要
以下の例は、VMware ESXIとVsan 6.7で実行されているRed Hat Enterprise Linux ( RHEL ) 7.4のシステム間イリスまたはCach - esを使ったベストプラクティスです.
以下の手順を以下に概説する
  • ESXI設定
  • RHERの設定
  • システム間アイリス構成

  • ESXI設定

    ディスクを作成する
    ディスクを作成する必要がありますInterSystems IRIS VMware best practice guide ; データベース、ジャーナルとWIJは別々のPVSCI装置にあります.
    あなたのサイジング要件に応じてVMDKSの数を作成します.この例では、データベースファイルシステムは、データベースファイルシステム用の900 GBの論理ディスクを作成するために一緒にストライプされる4つの256 GBのVMDKディスクで構成されます.

    手順:
  • VMDKSを加える前にVMから電源を切ってください.
  • Vcenterコンソールでは、各々のLVMストライプの各々の複数のディスク(VMDKS)を作成して、一つのLVMストライプのすべてのディスクは同じPVSCSIコントローラと関連しなければなりません.
  • VMの電源.電源の間、新しいディスクはオペレーティングシステムでつくられます/dev/sdi など
  • Why create multiple 255 GB VMDKs? in vSAN storage components are created in chunks of 256GB, keeping the VMDK size just under 256 GB we are trying force the components to be on separate disk groups. Enforcing another level of striping (This has been the case in my testing, but I cannot guarantee that vSAN will actually do this).


    注意:作成中に、vsanはすべてのホストとディスクグループ間でディスクコンポーネントを展開します.例えば、(FTT)を2に設定するのが失敗した場合には、それぞれのディスクコンポーネントの3つのコピーと2つの小さな証人コンポーネントが別々のホスト上にあります.ディスクグループ、ホストまたはネットワーク故障の場合、アプリケーションは残りのディスク構成要素を使用しているデータ損失なしで続きます.このプロセスを熟考することは可能です!VSANのようなHCIソリューションを使用すると、VMDKSを構成するコンポーネントがどの時点の時点でどの物理ディスクに存在するかを制御できません.実際には、メンテナンス、再同期、または再構築のため、VMDKSは別のディスクグループまたはホストに時間をかけて移動することができます.これはいい.

    RHERの設定

    A ) RHEL IOスケジューラを確認します.
    最も良い練習はesxiカーネルのスケジューラを使うことです.スケジューラの設定の詳細についてはRed Hat knowledge base article . ブート時にすべてのデバイスに設定するオプションを使うことをお勧めします.スケジューラを正しく設定すると、ディスクデバイスの現在の設定を表示できます/dev/sdi 以下の通り.
    [root@db1 ~]# cat /sys/block/sdi/queue/scheduler
    [noop] deadline cfq
    
    noopが有効になっているのを見ることができます.なぜなら、それは角括弧の間で強調表示されるからです.

    ストライプのLVMとXFSファイルシステムを作る
    現在、RLVでLVMストライプとデータベースファイルシステムを作成する準備が整いました.以下の手順では、vgmydb、lvmydb 01、およびpath/mydb/dbという名前を作ります.

    ステップ
    1 .新しいディスクデバイスを使用してボリュームグループを作成するvgcreate コマンド.
    vgcreate -s 4M <vg name> <list of all disks just created>
    
    例えば、/dev/sdh、/dev/sdi、/dev/sdj、/dev/sdkが作成された場合、
    vgcreate -s 4M vgmydb /dev/sd[h-k]
    
    2 .ストライプを使用した論理ボリュームの作成lvcreate コマンド.最低4枚のディスクをお勧めします.しかし、非常に大きな論理ボリュームで、あなたは16 Mのようなより大きなサイズのために促されるかもしれません.
    lvcreate -n <lv name> -L <size of LV> -i <number of disks in volume group> -I 4MB <vg name>
    
    例えば、4 GBのストライプとストライプサイズの900 GBのディスクを作成するには、次の手順に従います.
    lvcreate -n lvmydb01 -L 900G -i 4 -I 4M vgmydb
    
    3 .データベースファイルシステムの作成mkfs コマンド.
    mkfs.xfs -K <logical volume device>
    
    例えば、
    mkfs.xfs -K /dev/vgmydb/lvmydb01
    
    4 .ファイルシステムのマウントポイントを作成します.
    mkdir /mydb/db
    
    5 .編集/etc/fstab mountエントリに従ってファイルシステムをマウントします.例えば、
    /dev/mapper/vgmydb-lvmydb01 /mydb/db xfs defaults 0 0
    
    6 .新しいファイルシステムをマウントします.
    mount /mydb/db
    

    第3章CATE/Intersystem IRIS構成
    この章では次のように設定します.
  • データベースとWijにおける最適書込み性能のための非同期および直接IOこれはまた、データベースの読み出し操作のための直接IOを可能にします.
  • NOTE: Because direct IO bypasses filesystem cache, OS file copy operations including Caché Online Backup will be VERY slow when direct IO is configured.


    WHEJでのWHEJの追加性能と最低の待ち時間( SUSE 9以降のSUSEではサポートされていません).
  • 利用rtkaio CHERを用いたRHELシステム用ライブラリ注意:アイリスはこのライブラリを必要としません.
  • NOTE: For Caché, Ensemble, and HealthShare distributions beginning with version 2017.1.0. on Linux (only if a backup or async mirror member is configured to use the rtkaio library) you must apply RJF264, available via Ad Hoc distribution from InterSystems Worldwide Response Center (WRC).
     

    Steps


    手順は
  • シャットダウン
  • エディット<install_directory>/cache.cpf ファイル
  • cchを再起動します.
  • キャッシュで.次の3行を[config] 以下の例に示すように、他の行を変更しないでください.
    [config]
    wduseasyncio=1
    asyncwij=8
    
    Rhel - Cach - es(Irisでない)のために、以下を加えてください[config] セクション
    LibPath=/lib64/rtkaio/
    
    注:Cachを再起動すると、行はアルファベット順にソートされます[config] スタンザ.

    概要
    このポストは、900 GBのLVM PEストライプを作成して、Vsanの上でデータベースディスクのためにファイルシステムをつくる例を与えました.LVMストライプから最高のパフォーマンスを得るために、また、データベース書込みとWIJのための非同期IOのためにCach - Le/Intersystem Irisを構成する方法を学びました.