Поддерживает ли драйвер mpt2sas TRIM?

3

Я запускаю Ubuntu 13.10 с адаптером LSI 9211-8i SAS с Samsung 840 EVO SSD. Выполняя некоторые тесты производительности, я заметил, что скорость записи значительно снизилась, поэтому я пытался заставить TRIM работать с этим адаптером. SSD поддерживают TRIM:

# hdparm -I /dev/sdc | grep "TRIM supported"
    *   Data Set Management TRIM supported (limit 8 blocks)

Если я переведу SSD в другую систему с другим контроллером, запустите fstrim и верните их в эту систему, ожидаемая производительность будет восстановлена.

Согласно LSI, их прошивки инициатора-цели (ИТ) поддерживают подрезать . Однако поддержка обрезки не работает:

# cat /sys/block/sdc/queue/discard_granularity 
0

# fstrim /srv/node/disk2p1
fstrim: /srv/node/disk2p1: FITRIM ioctl failed: Operation not supported

Я не , используя LVM или криптографию для этих файловых систем. Я пробовал как форматы xfs, так и ufs4, хотя планирую использовать xfs. Вот пример строки fstab:

LABEL=disk2p1 /srv/node/disk2p1 xfs noatime,nodiratime,nobarrier,logbufs=8,discard 0 0

Для прошивки контроллера я попробовал прошивки LSI P14, P16 и P18 (последние). Я также построил LSI, предоставленный драйвер mpt2sas P18, который потребовал небольшой патч для удаления __devexit, но в остальном скомпилирован и работает нормально. Я также попробовал ежедневную сборку снимков Trusty с помощью драйвера mpt2sas.

Вот строки mpt2sas dmesg с удаленным временем:

mpt2sas version 18.00.00.00 loaded
mpt2sas0: 64 BIT PCI BUS DMA ADDRESSING SUPPORTED, total mem (16418600 kB)
mpt2sas0: _base_get_ioc_facts: IOC_STATE(0x22000000)
sd 3:0:0:0: [sda] 7815168 512-byte logical blocks: (4.00 GB/3.72 GiB)
sd 3:0:0:0: [sda] Write Protect is off
sd 3:0:0:0: [sda] Mode Sense: 43 00 00 00
sd 3:0:0:0: [sda] No Caching mode page found
sd 3:0:0:0: [sda] Assuming drive cache: write through
sd 3:0:0:0: [sda] No Caching mode page found
sd 3:0:0:0: [sda] Assuming drive cache: write through
sda: sda1
sd 3:0:0:0: [sda] No Caching mode page found
sd 3:0:0:0: [sda] Assuming drive cache: write through
sd 3:0:0:0: [sda] Attached SCSI removable disk
mpt2sas0: _base_get_ioc_facts: failed going to ready state  (ioc_state=0x20000000)
mpt2sas0: MSI-X vectors supported: 1, no of cores: 16, max_msix_vectors: -1
mpt2sas 0000:04:00.0: irq 79 for MSI/MSI-X
mpt2sas0-msix0: PCI-MSI-X enabled: IRQ 79
mpt2sas0: iomem(0x00000000df2b0000), mapped(0xffffc90011c80000), size(65536)
mpt2sas0: ioport(0x000000000000fc00), size(256)
mpt2sas0: _base_get_ioc_facts: IOC_STATE(0x22000000)
mpt2sas0: _base_get_ioc_facts: failed going to ready state  (ioc_state=0x20000000)
mpt2sas0: sending message unit reset !!
mpt2sas0: message unit reset: SUCCESS
mpt2sas0: Allocated physical memory: size(7445 kB)
mpt2sas0: Current Controller Queue Depth(3307), Max Controller Queue Depth(3432)
mpt2sas0: Scatter Gather Elements per IO(128)
mpt2sas0: overriding NVDATA EEDPTagMode setting
mpt2sas0: LSISAS2008: FWVersion(18.00.00.00), ChipRevision(0x03), BiosVersion(07.35.00.00)
mpt2sas0: Dell 6Gbps SAS HBA: Vendor(0x1000), Device(0x0072), SSVID(0x1028), SSDID(0x1F1C)
mpt2sas0: Protocol=(Initiator,Target), Capabilities=(TLR,EEDP,Snapshot Buffer,Diag Trace Buffer,Task Set Full,NCQ)
mpt2sas0: sending port enable !!
mpt2sas0: host_add: handle(0x0001), sas_addr(0x590b11c027281600), phys(8)
mpt2sas0: port enable: SUCCESS
sd 2:0:1:0: [sdc] 976773168 512-byte logical blocks: (500 GB/465 GiB)
sd 2:0:0:0: [sdb] 143374000 512-byte logical blocks: (73.4 GB/68.3 GiB)
sd 2:0:2:0: [sdd] 976773168 512-byte logical blocks: (500 GB/465 GiB)
sd 2:0:3:0: [sde] 976773168 512-byte logical blocks: (500 GB/465 GiB)
sd 2:0:4:0: [sdf] 976773168 512-byte logical blocks: (500 GB/465 GiB)
sd 2:0:0:0: [sdb] Write Protect is off
sd 2:0:0:0: [sdb] Mode Sense: d7 00 00 08
sd 2:0:5:0: [sdg] 976773168 512-byte logical blocks: (500 GB/465 GiB)
sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sd 2:0:1:0: [sdc] Write Protect is off
sd 2:0:1:0: [sdc] Mode Sense: 7f 00 10 08
sd 2:0:1:0: [sdc] Write cache: enabled, read cache: enabled, supports DPO and FUA
sd 2:0:2:0: [sdd] Write Protect is off
sd 2:0:2:0: [sdd] Mode Sense: 7f 00 10 08
sd 2:0:2:0: [sdd] Write cache: enabled, read cache: enabled, supports DPO and FUA
sd 2:0:3:0: [sde] Write Protect is off
sd 2:0:3:0: [sde] Mode Sense: 7f 00 10 08
sd 2:0:3:0: [sde] Write cache: enabled, read cache: enabled, supports DPO and FUA
sd 2:0:4:0: [sdf] Write Protect is off
sd 2:0:4:0: [sdf] Mode Sense: 7f 00 10 08
sd 2:0:4:0: [sdf] Write cache: enabled, read cache: enabled, supports DPO and FUA
sd 2:0:5:0: [sdg] Write Protect is off
sd 2:0:5:0: [sdg] Mode Sense: 7f 00 10 08
sd 2:0:5:0: [sdg] Write cache: enabled, read cache: enabled, supports DPO and FUA

Это только то, что mpt2sas не поддерживает TRIM (SAS UNMAP)? Может ли кто-нибудь рекомендовать рабочий контроллер для системы в стойке или JBOD, если этот не поддерживает? Мне нужно от 8 до 16 SATA SSD (конфигурация без RAID) в стойке или JBOD в сочетании с контроллером, поддерживающим TRIM.

    
задан Kurt M 05.02.2014 в 20:20
источник

1 ответ

5

Я получил помощь в списке linux-scsi, где было предложено, чтобы для обрезки для работы с контроллерами LSI необходимо детерминированное считывание после обрезки (считайте ноль). Я перешел на SSD Samsung Pro. У них есть детерминированное считывание после обрезки и правильная работа с контроллерами LSI. Таким образом, mpt2sas поддерживает TRIM, когда детерминированное считывание после подстройки поддерживается на SSD.

Кроме того, я нашел Список совместимости LSI , где вы можете проверить, установлен ли SSD поддерживается. Этот список в настоящее время обновляется несколько чаще.     

ответ дан Kurt M 26.03.2014 в 21:45
источник