すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Linux:tcm_loopデバイスパラメーターの設定

最終更新日:Dec 11, 2024

ターゲットコアモジュール (TCM) は、カーネル内インターネットスモールコンピュータシステムインターフェイス (iSCSI) ターゲットであるLinux-IOターゲット (LIO) の別名です。 ユーザ空間におけるTCM (TCMU) は、LIOのユーザ空間実装である。 TCMUにより、ユーザ空間プログラムは、便利な方法で様々なユーザ空間バックエンド実装と協調することができる。 TCMUフレームワークとLIOループバック (tcm_loop) モジュールに基づいて、ユーザースペースiSCSIターゲットを簡単に実装できます。 このトピックでは、Alibaba Cloud Linux 3でtcm_loopデバイスパラメーターを設定して、ユーザースペースのバックエンドと連携してI/Oパフォーマンスを最適化する方法について説明します。

制限事項

  • オペレーティングシステム: Alibaba Cloud Linux 3

  • カーネルバージョン: 5.10.134-17以降

tcm_loopデバイスパラメータ

tcm_loopモジュールをロードするときに、tcm_loopデバイスパラメータを設定できます。 パラメーター設定は、すべてのtcm_loopデバイスに適用されます。 tcm_loopモジュールは、次の設定可能なパラメータをサポートします。

  • nr_hw_queues: tcm_loopデバイスのハードウェアキューの数を指定します。 デフォルト値は 1 です。

  • can_queue: 各ハードウェアキューのキュー深度を指定します。 デフォルト値: 1024。

  • cmd_per_lun: SCSI (Small Computer System Interface) デバイスが論理ユニット番号 (LUN) ごとに実行できるコマンドの最大数を指定します。 デフォルト値: 1024。

  • sg_tablesize: tcm-loopデバイスのスキャッタギャザーテーブルの最大サイズを指定します。 デフォルト値: 256

tcm_loopデバイスパラメーターの表示

  1. modprobeコマンドを実行してtcm_loopモジュールをロードします。

    sudo modprobe tcm_loop
  2. tcm_loopデバイスパラメータを表示します。

    cat /sys/module/tcm_loop/parameters/nr_hw_queues
    cat /sys/module/tcm_loop/parameters/can_queue
    cat /sys/module/tcm_loop/parameters/cmd_per_lun
    cat /sys/module/tcm_loop/parameters/sg_tablesize

方法1: tcm_loopモジュールをロードするときのtcm_loopデバイスパラメーターの設定

  1. tcm_loopモジュールをロードした場合は、次のコマンドを実行してモジュールを削除します。

    sudo modprobe -r tcm_loop
  2. modprobeコマンドを実行してtcm_loopモジュールをロードします。

    <nr_hw_queues> 、<can_queue> 、<cmd_per_lun> 、および <sg_tablesize> を、指定する値に置き換えます。

    sudo modprobe tcm_loop nr_hw_queues=<nr_hw_queues> can_queue=<can_queue> cmd_per_lun=<cmd_per_lun> sg_tablesize=<sg_tablesize>

    たとえば、nr_hw_queuesを4、can_queueを2048、cmd_per_lunを2048、sg_tablesizeを512に設定します。

    sudo modprobe tcm_loop nr_hw_queues=4 can_queue=2048 cmd_per_lun=2048 sg_tablesize=512
  3. パラメーター設定が有効かどうかを確認します。

    cat /sys/module/tcm_loop/parameters/nr_hw_queues
    cat /sys/module/tcm_loop/parameters/can_queue
    cat /sys/module/tcm_loop/parameters/cmd_per_lun
    cat /sys/module/tcm_loop/parameters/sg_tablesize

方法2: 設定ファイルを使用してtcm_loopデバイスパラメーターを設定

  1. tcm_loopモジュールをロードした場合は、次のコマンドを実行してモジュールを削除します。

    sudo modprobe -r tcm_loop
  2. ファイルを作成して構成します。

    <tcm_loop.conf> 、<nr_hw_queues> 、<can_queue> 、<cmd_per_lun> 、および <sg_tablesize> を、指定する値に置き換えます。

    sudo bash -c "cat > /etc/modprobe.d/<tcm_loop.conf> << EOF
    options tcm_loop nr_hw_queues=<nr_hw_queues> can_queue=<can_queue> cmd_per_lun=<cmd_per_lun> sg_tablesize=<sg_tablesize>
    EOF"

    たとえば、次のコマンドを実行して、/etc/modprobe.dディレクトリにtcm_loop.confという名前の設定ファイルを作成して、tcm_loopデバイスパラメーターの値を設定します。

    sudo bash -c "cat > /etc/modprobe.d/tcm_loop.conf << EOF
    options tcm_loop nr_hw_queues=4 can_queue=2048 cmd_per_lun=2048 sg_tablesize=512
    EOF"
  3. modprobeコマンドを実行してtcm_loopモジュールをロードします。

    sudo modprobe tcm_loop
  4. パラメーター設定が有効かどうかを確認します。

    cat /sys/module/tcm_loop/parameters/nr_hw_queues
    cat /sys/module/tcm_loop/parameters/can_queue
    cat /sys/module/tcm_loop/parameters/cmd_per_lun
    cat /sys/module/tcm_loop/parameters/sg_tablesize