13.5. kernel samepage merging (KSM) のアクティブ化


OpenShift Virtualization は、ノードが過負荷になると kernel samepage merging (KSM) をアクティブ化できます。KSM は、仮想マシンのメモリーページにある同一データの重複を排除します。非常によく似た仮想マシンがある場合に KSM を使用すると、シングルノード上で多くの仮想マシンをスケジュールできるようになります。

重要

KSM は、必ず信頼できるワークロードでのみ使用してください。

13.5.1. 前提条件

  • OpenShift Virtualization が KSM をアクティブ化するノード上で、管理者が KSM サポートを設定していることを確認する。

13.5.2. OpenShift Virtualization を使用して KSM をアクティブ化する

ノードでメモリーの過負荷が発生した場合に kernel samepage merging (KSM) をアクティブ化するように、OpenShift Virtualization を設定できます。

13.5.2.1. 設定方法

OpenShift Container Platform Web コンソールを使用するか、HyperConverged カスタムリソース (CR) を編集することで、すべてのノードの KSM アクティブ化機能を有効または無効にできます。HyperConverged CR は、より詳細な設定をサポートしています。

CR 設定

HyperConverged CR の spec.configuration.ksmConfiguration スタンザを編集することで、KSM アクティブ化機能を設定できます。

  • この機能を有効にして設定するには、ksmConfiguration スタンザを編集します。
  • この機能を無効にするには、ksmConfiguration スタンザを削除します。
  • ノード選択構文を ksmConfiguration.nodeLabelSelector フィールドに追加すると、OpenShift Virtualization はノードのサブセットのみで KSM を有効化できます。
注記

管理者は、OpenShift Virtualization で KSM アクティブ化機能が無効になっている場合でも、それをサポートするノードでは KSM を有効化できます。

13.5.2.2. KSM ノードのラベル

OpenShift Virtualization は、KSM をサポートするように設定されたノードを識別し、次のノードラベルを適用します。

kubevirt.io/ksm-handler-managed: "false"
メモリーの過負荷が発生しているノード上で OpenShift Virtualization が KSM をアクティブ化すると、このラベルが "true" に設定されます。管理者が KSM をアクティブ化した場合、このラベルは "true" に設定されません。
kubevirt.io/ksm-enabled: "false"
OpenShift Virtualization が KSM をアクティブ化しなかった場合でも、KSM がノード上でアクティブ化されると、このラベルは "true" に設定されます。

このラベルは、KSM をサポートしていないノードには適用されません。

13.5.3. Web コンソールを使用して KSM のアクティブ化を設定する

OpenShift Container Platform Web コンソールを使用して、OpenShift Virtualization がクラスター内のすべてのノードで kernel samepage merging (KSM) をアクティブ化できるように設定できます。

手順

  1. サイドメニューから、Virtualization Overview をクリックします。
  2. Settings タブを選択します。
  3. Cluster タブを選択します。
  4. Resource management を展開します。
  5. すべてのノードの機能を有効または無効にします。

    • Kernel Samepage Merging (KSM) をオンに設定します。
    • Kernel Samepage Merging (KSM) をオフに設定します。

13.5.4. CLI を使用して KSM のアクティブ化を設定する

HyperConverged カスタムリソース (CR) を編集することで、OpenShift Virtualization の kernel samepage merging (KSM) アクティブ化機能を有効または無効にできます。OpenShift Virtualization がノードのサブセットのみで KSM をアクティブ化するように設定する場合は、この方法を使用します。

手順

  1. 以下のコマンドを実行して、デフォルトのエディターで HyperConverged CR を開きます。

    $ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
  2. ksmConfiguration スタンザを編集します。

    • すべてのノードで KSM アクティブ化機能を有効にするには、nodeLabelSelector の値を {} に設定します。以下に例を示します。

      apiVersion: hco.kubevirt.io/v1beta1
      kind: HyperConverged
      metadata:
        name: kubevirt-hyperconverged
        namespace: openshift-cnv
      spec:
        configuration:
          ksmConfiguration:
            nodeLabelSelector: {}
      # ...
    • ノードのサブセットで KSM アクティブ化機能を有効にするには、nodeLabelSelector フィールドを編集します。OpenShift Virtualization が KSM を有効にするノードに一致する構文を追加します。たとえば次の設定では、OpenShift Virtualization は <first_example_key><second_example_key> の両方が "true" に設定されているノードで KSM を有効にできます。

      apiVersion: hco.kubevirt.io/v1beta1
      kind: HyperConverged
      metadata:
        name: kubevirt-hyperconverged
        namespace: openshift-cnv
      spec:
        configuration:
          ksmConfiguration:
            nodeLabelSelector:
              matchLabels:
                <first_example_key>: "true"
                <second_example_key>: "true"
      # ...
    • KSM アクティブ化機能を無効にするには、ksmConfiguration スタンザを削除します。以下に例を示します。

      apiVersion: hco.kubevirt.io/v1beta1
      kind: HyperConverged
      metadata:
        name: kubevirt-hyperconverged
        namespace: openshift-cnv
      spec:
        configuration:
      # ...
  3. ファイルを保存します。

13.5.5. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.