Notificação de cliente de armazenamento SC: Linux grandes tamanhos de i/o podem afetar iSCSI disponibilidade do volume

Riepilogo: Uma alteração recente do kernel foi introduzida na distribuição Oracle Enterprise Linux que altera o comportamento de como os limites de i/o são calculados em dispositivos de Block. ...

Questo articolo si applica a Questo articolo non si applica a Questo articolo non è legato a un prodotto specifico. Non tutte le versioni del prodotto sono identificate in questo articolo.

Sintomi

Alerta:

Essas alterações são descritas a seguir.

Oracle Linux 6/7:

 

ELSA-2015-3098-Bugfix a segurança do kernel corporativo e atualização do

http://linux.oracle.com/errata/ELSA-2015-3098.html

Data da versão/ 2015-11-13

[3.8.13-100.el6uek/3.8.13-100.el7uek]

Block: Remove artifical max_hw_sectors Cap (Christoph Hellwig) [Orabug: 21511611]

 

 

Oracle Linux 5:

 

ELBA-2015-3076 – atualização de correção de erro de kernel corporativo inquebrável

http://linux.oracle.com/errata/ELBA-2015-3076.html

Data da versão/ 2015-08-27

[2.6.39-400.260.1.el5uek]

Block: remover artifical max_hw_sectors Cap (Joe Jin) [Orabug: 21455630]

 

 

 

Visão geral:

Cada dispositivo de Block que existe em um sistema Linux é alocado um diretório de fila (localizado em /Sys/Block/xxx/Queue/). Esse diretório contém um número de arquivos de configuração. Os detalhes desses arquivos podem ser encontrados em:

 

https://www.kernel.org/doc/Documentation/block/queue-sysfs.txt

 

Os dois parâmetros relevantes a esse CSTA:

 

max_hw_sectors_kb

O número máximo de kilobytes compatíveis em uma única transferência de dados.

Esse parâmetro é somente leitura e fornecido pelo dispositivo de armazenamento de destino por meio de SCSI resposta à consulta. O subsistema de destino SCSI no sistema operacional do Storage Center (SCOS) atualmente responde com um zero. Isso indica que não há limite, portanto, o servidor define o valor como o máximo permitido nesta versão do kernel do Linux (32MB).

 

max_sectors_kb

O número máximo de kilobytes que a camada de Block permitirá para uma solicitação de File System.

Esse valor é leitura/gravação. Esse valor deve ser menor ou igual ao valor max_hw_sectors_kb.

 

As alterações no kernel de Linux do Oracle que foram introduzidos em kernels 2.6.39-400.260.1. el5uek, 3.8.13-100. el6uek e 3.8.13-100. o el7uek alterou a maneira como o max_sectors_kb é calculado. Em versões anteriores do kernel, o valor era sempre definido como 512KB. Depois dessa alteração, o valor de max_sectors_kb é definido como o valor de max_hw_sectors_kb. Isso aumenta basicamente o tamanho máximo de uma única transferência de i/o para um determinado dispositivo de Block de 512KB para 32MB.

 

Essa alteração expôs um problema com o driver de iSCSI do Storage Center 10Gb para tamanhos de i/o maiores que ~ 8MB. O processo do servidor produzindo o grande IO pode travar ou o volume pode ficar indisponível devido ao tamanho grande de i/o. Além disso, o problema de driver de iSCSI 10Gb pode fazer com que a controladora consuma memória exigida por outros subsistemas do Storage Center, o que pode levar a um impacto maior.

 

 

 

Solução temporária:

Para evitar esse problema, os max_sectors_kb de cada dispositivo de Block devem ser alterados dinamicamente no servidor de Linux. A seguir, há exemplos de comandos para um dispositivo de Block de múltiplos caminhos conectados a um sistema Linux:

 

#mpath1:

Eco 512 >/sys/Block/DM-6/Queue/max_sectors_kb

Eco 512 >/sys/Block/SDC/Queue/max_sectors_kb

Eco 512 >/sys/Block/SDE/Queue/max_sectors_kb

Eco 512 >/sys/Block/SDK/Queue/max_sectors_kb

Eco 512 >/sys/Block/SDM/Queue/max_sectors_kb

 

Essas alterações não são persistentes por meio de reinicializações. Um script de inicialização pode ser implementado para ser executado quando um determinado servidor for inicializado, o que modificará esse parâmetro para todos os dispositivos de Block do iSCSI. Consulte um administrador do Linux ou Oracle suporte sobre a melhor maneira de implementar essa persistência para cada ambiente do cliente.

 

O seguinte script (regra udev) definirá o max_sectors_kb de cada iSCSI volume do Compellent anexado para 512kb. Use esse script a seu critério, pois nenhuma garantia ou garantia foi implícita. É recomendável testar o script, mas ele deve funcionar sem problemas.

 

Crie o arquivo 99-CML-iSCSI. Rules no diretório /etc/udev/rules.d/ com o seguinte conteúdo:

[root@localhost/] # gato/etc/udev/rules.d/99-CML-iSCSI.Rules

# Modify max_sectors_kb for Dell Storage Center iSCSI volumes mapeados

AÇÃO = = "Adicionar", \

ENV = = "*-iSCSI-* Compellent *", \

Execute + = "/bin/sh-c ' echo 512 >/sys $ DEVPATH/Queue/max_sectors_kb '"

 

 

Versões afetadas:

Todas as versões do SCOS são afetadas por utilizar interfaces de 10 GbE iSCSI. Fibre Channel, 1 GB iSCSI e FCoE não são afetados.

 

 

Resolução:

O problema de max_sectors_kbfoi resolvido no SCOS versões 7.01.12, 7.02.01 e 7.03.01 e superior.

 

As alterações estão disponíveis no SCOS 6.07.03 e superiores para resolver o problema de consumo de memória com o driver de iSCSI de 10 GbE.

Causa

 

Risoluzione

 

Prodotti interessati

Entry Level & Midrange, Compellent (SC, SCv & FS Series), Dell Compellent SC4020, Dell Storage SC8000, Dell Compellent Series 40, Dell Storage SCv2000, Dell Storage SCv2020, Dell Storage SCv2080, Dell Storage SC9000
Proprietà dell'articolo
Numero articolo: 000137348
Tipo di articolo: Solution
Ultima modifica: 03 mag 2021
Versione:  4
Trova risposta alle tue domande dagli altri utenti Dell
Support Services
Verifica che il dispositivo sia coperto dai Servizi di supporto.