Upozornění na zákazníky v úložišti služby SC: Systém Linux velké vstupně-výstupní kapacity může mít vliv na dostupnost svazků iSCSI.
Summary: Do distribuce systému Oracle Enterprise Linux byla zavedena nedávný změna jádra, která mění chování limitů vstupně-výstupních operací na zařízeních s blokováním. ...
Symptoms
Výstraha:
Tyto změny jsou uvedeny níže.
Oracle Linux 6/7:
ELSA-2015-3098 – nerušené zabezpečení jádra Enterprise a aktualizace Bugfix.
http://linux.oracle.com/errata/ELSA-2015-3098.html
Datum vydání/ 2015-11-13
[3.8.13-100.el6uek/3.8.13-100.el7uek]
blok: Remove artifical max_hw_sectors Cap (Christoph Hellwig) [Orabug: 21511611]
Oracle Linux 5:
ELBA-2015-3076-jádro rozlehlé sítě Unbreak-chyba oprava aktualizace
http://linux.oracle.com/errata/ELBA-2015-3076.html
Datum vydání/ 2015-08-27
[2.6.39-400.260.1.el5uek]
blok: Remove artifical max_hw_sectors Cap (Jan jin) [Orabug: 21455630]
Přehled:
Každé zařízení typu Block, které existuje v systému Linux, má přiděleno umístění adresáře fronty (na adrese /sys/Block/XXX/Queue/). Tento adresář obsahuje mnoho konfiguračních souborů. Podrobnosti o těchto souborech naleznete na adrese:
https://www.kernel.org/doc/Documentation/block/queue-sysfs.txt
Dva parametry, které jsou relevantní pro tento CSTA:
max_hw_sectors_kb
Maximální počet kilobajtů, který je podporován v rámci jednoho přenosu dat.
Tento parametr je určen jen pro čtení a je zajištěn cílovým úložným zařízením prostřednictvím dotazovací reakce na rozhraní SCSI. Podsystém SCSI Target v rámci operačního systému Storage Center (SCOS) aktuálně reaguje s nulovou hodnotou. To znamená, že server nastaví hodnotu na maximum povolené v rámci dané verze jádra systému Linux (32MB).
max_sectors_kb
Maximální počet kilobajtů, po které bude vrstva bloků umožňovat požadavek na systém souborů.
Tato hodnota je určena ke čtení i zápisu. Tato hodnota musí být nižší nebo rovna hodnotě max_hw_sectors_kb.
Změny jádra Oracle Linux, které byly zavedeny v jádrech 2.6.39-400.260.1. el5uek, 3.8.13-100. el6uek a 3.8.13-100. el7uek mění postup max_sectors_kb vypočtený. V předchozích verzích jádra byla hodnota vždy nastavena na 512KB. Po provedení této změny je hodnota max_sectors_kb nastavena na hodnotu max_hw_sectors_kb. To zcela zvýší maximální velikost jednoho vstupně-výstupní operace do daného blokového zařízení z 512KB na 32MB.
Tato změna se stala problémem s ovladačem úložiště 10Gb iSCSI v případě větších velikostí, než je ~ 8 MB. Proces serveru, který vyrábí velké vstupně-výstupní operace, může zablokovat nebo nemusí být k dispozici kvůli velké vstupně-výstupní velikosti. Problém s ovladačem 10Gb iSCSI může také způsobit, že řadič spotřebovává paměť požadovaný jinými subsystémy Center Storage, což může vést k většímu dopadu.
Zástupné řešení:
Chcete-li předejít tomuto problému, musí být max_sectors_kb každého blokového zařízení dynamicky měněny na serveru Linux. Níže jsou uvedeny příklady příkazů pro zařízení s funkcí Multipath, které je připojeno k systému Linux:
#mpath1:
echo 512 >/sys/Block/DM-6/Queue/max_sectors_kb
echo 512 >/sys/Block/SDC/Queue/max_sectors_kb
echo 512 >/sys/Block/SDE/Queue/max_sectors_kb
echo 512 >/sys/Block/SDK/Queue/max_sectors_kb
echo 512 >/sys/Block/SDM/Queue/max_sectors_kb
Tyto změny nejsou po restartech trvalé. Inicializační skript lze implementovat, když je spuštěn daný server, který změní tento parametr pro všechna zařízení s blokováním iSCSI. Obraťte se na správce Linux nebo na podporu Oracle, podle toho, jak je vhodné implementovat tuto perzistenci v každém prostředí zákazníka.
Následující skript (pravidlo udev) nastaví max_sectors_kb každého připojeného svazku Compellent iSCSI k 512KBi. Využijte tento skript podle vlastního uvážení, protože nejsou implicitně žádné záruky nebo záruky. Doporučujeme, aby byl skript testován, ale měl by pracovat bez problémů.
Vytvořte soubor 99-CML-iSCSI. Rules v adresářovém /etc/udev/rules.d/ s následujícím obsahem:
[root@localhost/] # Cat/etc/udev/rules.d/99-CML-iSCSI.Rules
# Modify max_sectors_kb for Dell Storage Center promapované svazky iSCSI
ACTION = = "Add", \
ENV = = "*-iSCSI-* Compellent *", \
RUN + = "/bin/sh-c ' echo 512 >/sys $ DEVPATH/fronta/max_sectors_kb" "
Dotčené verze:
Všechny SCOS verze mají dopad na využití 10Gb rozhraní iSCSI. Technologie Fibre Channel, 1 GB iSCSI a FCoE nejsou ovlivněny.
Řešení:
Problém s max_sectors_kbbyl vyřešen v SCOS verzích 7.01.12, 7.02.01 a 7.03.01 a vyšší.
Změny jsou k dispozici v SCOS 6.07.03 a vyšších pro řešení problému s spotřebou paměti s ovladačem 10Gb iSCSI.