全部產品
Search
文件中心

Alibaba Cloud Linux:配置tcm_loop裝置參數

更新時間:Sep 24, 2024

TCM是Linux IO Target即LIO的別稱,是核心態的iSCSI target。TCMU(TCM in Userspace)是LIO的使用者態實現,允許使用者程式方便地對接各種使用者態後端實現。基於TCMU架構和LIO loopback即tcm_loop模組,可以很方便地實現使用者態iSCSI target。本文介紹Alibaba Cloud Linux 3中如何配置tcm_loop裝置參數,以配合使用者態後端最佳化IO效能。

使用限制

  • 作業系統:Alibaba Cloud Linux 3

  • 核心版本:5.10.134-17及以上版本

tcm_loop裝置參數配置說明

通過載入tcm_loop模組時配置相關參數,即可將相應參數配置應用到新建立的tcm_loop裝置。當前tcm_loop模組一共支援4個可配置的參數,分別為:

  • nr_hw_queues,表示裝置的硬體隊列數量,預設值為1。

  • can_queue,表示每個硬體隊列的隊列深度,預設值1024。

  • cmd_per_lun,表示SCSI裝置每個邏輯單元編號(LUN)可執行檔最大命令數量,預設值1024。

  • sg_tablesize,表示裝置最大分散聚集(scatter-gather)表大小,預設值256。

查看當前tcm_loop裝置配置參數

  1. 執行modprobe命令載入tcm_loop模組。

    sudo modprobe tcm_loop
  2. 查看當前配置參數。

    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模組,執行以下命令卸載。

    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=4can_queue=2048cmd_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

方法二:通過設定檔配置

  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,實現模組載入預設參數的修改。

    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