Max-hw-sectors-kb bei MegaRAID Controllern anpassen
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
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.
|