Max-hw-sectors-kb bei MegaRAID Controllern anpassen

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird.
Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar.

Im Linux Block Layer kann man mit dem max_sectors_kb Parameter die Größe eines einzelnen Filesystem Requests limitieren. Der größtmögliche Wert eines Filesystem Requests wird im vom Linux SysFS aus read-only Parameter max_hw_sectors_kb angeführt. Dieser Artikel zeigt, wie der max_hw_sectors_kb und damit auch der max_sectors_kb Parameter bei Logical Disks eines LSI RAID Controllers angepasst werden kann.

Bedeutung

Die Bedeutung dieser SysFS Dateien (Parameter) ist in der Linux Kernel Dokumentation beschrieben:[1]

Queue sysfs files
=================

This text file will detail the queue files that are located in the sysfs tree
for each block device. Note that stacked devices typically do not export
any settings, since their queue merely functions are a remapping target.
These files are the ones found in the /sys/block/xxx/queue/ directory.

Files denoted with a RO postfix are readonly and the RW postfix means
read-write.

hw_sector_size (RO)
-------------------
This is the hardware sector size of the device, in bytes.

max_hw_sectors_kb (RO)
----------------------
This is the maximum number of kilobytes supported in a single data transfer.

max_sectors_kb (RW)
-------------------
This is the maximum number of kilobytes that the block layer will allow
for a filesystem request. Must be smaller than or equal to the maximum
size allowed by the hardware.

[...]

Parameter konfigurieren

Der Treiber für LSI Raidcontroller megaraid_sas hat die Option max_sectors, die es erlaubt den vom Linux Kernel genutzten Wert max_hw_sectors_kb im SysFS zu setzen:

$ modinfo megaraid_sas
filename:       /lib/modules/3.2.0-20-generic/kernel/drivers/scsi/megaraid/megaraid_sas.ko
description:    LSI MegaRAID SAS Driver
author:         megaraidlinux@lsi.com
version:        00.00.06.12-rc1
license:        GPL
srcversion:     B0EE8D562F66C8547CAF07E
alias:          pci:v00001000d0000005Dsv*sd*bc*sc*i*
alias:          pci:v00001000d0000005Bsv*sd*bc*sc*i*
alias:          pci:v00001028d00000015sv*sd*bc*sc*i*
alias:          pci:v00001000d00000413sv*sd*bc*sc*i*
alias:          pci:v00001000d00000071sv*sd*bc*sc*i*
alias:          pci:v00001000d00000073sv*sd*bc*sc*i*
alias:          pci:v00001000d00000079sv*sd*bc*sc*i*
alias:          pci:v00001000d00000078sv*sd*bc*sc*i*
alias:          pci:v00001000d0000007Csv*sd*bc*sc*i*
alias:          pci:v00001000d00000060sv*sd*bc*sc*i*
alias:          pci:v00001000d00000411sv*sd*bc*sc*i*
depends:        
intree:         Y
vermagic:       3.2.0-20-generic SMP mod_unload modversions 
parm:           poll_mode_io:Complete cmds from IO path, (default=0) (int)
parm:           max_sectors:Maximum number of sectors per IO command (int)
parm:           msix_disable:Disable MSI-X interrupt handling. Default: 0 (int)

Beispiel

Das folgende Beispiel (ausgeführt unter Ubuntu 12.04 LTS 64 Bit mit Kernel 3.2) zeigt wie ein modprobe megaraid_sas max_sectors=512 die unterschiedlichen Werte beeinflusst. Beim MegaCLI64 kommt die Version 8.04.07 zum Einsatz.

tktest@cache-server:~/software$ sudo ./MegaCli64 -LDInfo -Lall -aALL
                                     

Adapter 0 -- Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name                :
RAID Level          : Primary-0, Secondary-0, RAID Level Qualifier-0
Size                : 3.637 TB
Parity Size         : 0
State               : Optimal
Strip Size          : 64 KB
Number Of Drives    : 2
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU
Current Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default
Encryption Type     : None
Is VD Cached: No



Exit Code: 0x00
tktest@cache-server:~/software$ cat /proc/partitions 
major minor  #blocks  name

   8        0  117219767 sda
   8        1  104645632 sda1
   8        2          1 sda2
   8        5   12571648 sda5
   8       16 3905945600 sdb
tktest@cache-server:~/software$ cat /sys/block/sda/queue/max_sectors_kb 
512
tktest@cache-server:~/software$ cat /sys/block/sda/queue/max_hw_sectors_kb 
32767
tktest@cache-server:~/software$ cat /sys/block/sdb/queue/max_sectors_kb 
128
tktest@cache-server:~/software$ cat /sys/block/sdb/queue/max_hw_sectors_kb 
128
tktest@cache-server:~/software$ sudo rmmod megaraid_sas
tktest@cache-server:~/software$ cat /proc/partitions 
major minor  #blocks  name

   8        0  117219767 sda
   8        1  104645632 sda1
   8        2          1 sda2
   8        5   12571648 sda5
tktest@cache-server:~/software$ sudo modprobe megaraid_sas max_sectors=512
tktest@cache-server:~/software$ cat /proc/partitions 
major minor  #blocks  name

   8        0  117219767 sda
   8        1  104645632 sda1
   8        2          1 sda2
   8        5   12571648 sda5
   8       16 3905945600 sdb
tktest@cache-server:~/software$ cat /sys/block/sdb/queue/max_hw_sectors_kb 
256
tktest@cache-server:~/software$ cat /sys/block/sdb/queue/max_sectors_kb 
256
tktest@cache-server:~/software$ sudo rmmod megaraid_sas
tktest@cache-server:~/software$ sudo modprobe megaraid_sas max_sectors=1024
tktest@cache-server:~/software$ cat /sys/block/sdb/queue/max_sectors_kb 
512
tktest@cache-server:~/software$ 

Einzelnachweise


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

Firmware Update eines X9DR7-LN4F onboard LSI SAS 2308 Controllers
LSI RAID Monitoring Plugin unter Windows Server 2012 einrichten
RAID-Controller Rebuild manuell starten