Target Core Module (TCM), juga dikenal sebagai Linux-IO Target (LIO), adalah target Internet Small Computer Systems Interface (iSCSI) di dalam kernel. TCM in Userspace (TCMU) merupakan implementasi LIO di ruang pengguna yang memungkinkan program ruang pengguna berkoordinasi dengan berbagai backend ruang pengguna secara efisien. Dengan menggunakan kerangka kerja TCMU dan modul loopback LIO (tcm_loop), Anda dapat mengimplementasikan target iSCSI ruang pengguna dengan mudah. Topik ini menjelaskan cara mengonfigurasi parameter perangkat tcm_loop di Alibaba Cloud Linux 3 untuk mengoptimalkan Kinerja I/O bersama backend ruang pengguna.
Batasan
Sistem operasi: Alibaba Cloud Linux 3
Versi kernel:
5.10.134-17atau lebih baru
Parameter perangkat tcm_loop
Anda dapat mengonfigurasi parameter perangkat tcm_loop saat memuat modul tcm_loop. Konfigurasi ini berlaku untuk semua perangkat tcm_loop. Modul tcm_loop mendukung parameter konfigurasi berikut:
nr_hw_queues: menentukan jumlah antrian perangkat keras dari perangkat tcm_loop. Nilai default: 1.
can_queue: menentukan kedalaman antrian setiap antrian perangkat keras. Nilai default: 1.024.
cmd_per_lun: menentukan jumlah maksimum perintah yang dapat dijalankan oleh perangkat Small Computer System Interface (SCSI) per nomor unit logis (LUN). Nilai default: 1.024.
sg_tablesize: menentukan ukuran maksimum tabel scatter-gather untuk perangkat tcm-loop. Nilai default: 256.
Metode 1: Konfigurasikan parameter perangkat tcm_loop saat memuat modul tcm_loop
Jika modul
tcm_looptelah dimuat, jalankan perintah berikut untuk menghapus modul:sudo modprobe -r tcm_loopJalankan perintah
modprobeuntuk memuat modultcm_loop.Ganti <nr_hw_queues>, <can_queue>, <cmd_per_lun>, dan <sg_tablesize> dengan nilai yang ingin Anda tentukan.
sudo modprobe tcm_loop nr_hw_queues=<nr_hw_queues> can_queue=<can_queue> cmd_per_lun=<cmd_per_lun> sg_tablesize=<sg_tablesize>Sebagai contoh, atur
nr_hw_queuesmenjadi 4,can_queuemenjadi 2.048,cmd_per_lunmenjadi 2.048, dansg_tablesizemenjadi 512.sudo modprobe tcm_loop nr_hw_queues=4 can_queue=2048 cmd_per_lun=2048 sg_tablesize=512Periksa apakah konfigurasi parameter telah diterapkan.
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
Metode 2: Konfigurasikan parameter perangkat tcm_loop menggunakan file konfigurasi
Jika modul
tcm_looptelah dimuat, jalankan perintah berikut untuk menghapus modul:sudo modprobe -r tcm_loopBuat dan konfigurasikan sebuah file.
Ganti <tcm_loop.conf>, <nr_hw_queues>, <can_queue>, <cmd_per_lun>, dan <sg_tablesize> dengan nilai yang ingin Anda tentukan.
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"Sebagai contoh, jalankan perintah berikut untuk mengonfigurasi nilai parameter perangkat tcm_loop dengan membuat file konfigurasi bernama
tcm_loop.confdi direktori/etc/modprobe.d: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"Jalankan perintah
modprobeuntuk memuat modultcm_loop.sudo modprobe tcm_loopPeriksa apakah konfigurasi parameter telah diterapkan.
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