4.5. Dispositivos do Arquivo de Configuração

Tabela 4.3, “Funções do Dispositivo” exibe as funções que você pode estabelecer para cada dispositivo de armazenamento individual na seção devices do arquivo de configuração multipath.conf. Estas funções são usadas pelo DM-Multipath, a menos que sejam sobrescritas pelas funções especificadas na seção multipaths do arquivo multipath.conf para caminhos que contenham o dispositivo. Estas funções sobrescrevem as funções configuradas na seção defaults do arquivo multipath.conf.
Muitos dispositivos que suportam o multipathing estão inclusos por padrão em uma configuração multipath. Os valores para os dispositivos que são suportados pelo padrão estão listados no arquivo multipath.conf.defaults. Você provavelmente não precisará modificar os valores destes dispositivos, mas se o fizer, você pode sobrescrever os valores padrão incluindo uma entrada no arquivo de configuração apra o dispositivo que sobrescreve estes valores. Copie os padrões da configuração do dispositivo a partir do arquivo multipath.conf.defaults para o dispositivo e sobrescreva os valores que você deseja modificar.
Para adicionar um dispositivo para esta seção do arquivo de configuração que não esteja configurado automaticamente por padrão, você precisa configurar os parâmetros do fabricante e produto. Você pode encontrar estes valores em /sys/block/device_name>/device/vendor e /sys/block/device_name>/device/model onde device_name é o dispositivo a ser colocado em multipath, como o exemplo a seguir:
# cat /sys/block/sda/device/vendor
WINSYS  
# cat /sys/block/sda/device/model
SF2372
Os parâmetros adicionais para especificar dependem de seu dispositivo específico. Se o dispositivo estiver ativo/ativo, você provavelmente não precisa configurar os parâmetros adicionais. Você pode querer configurar o path_grouping_policy para multibus. Outros parâmetros que você precise configurar são no_path_retry e rr_min_io, como descritos na Tabela 4.3, “Funções do Dispositivo”.
Se o dispositivo for ativo/passivo, mas ele alternar automaticamente os caminhos com E/S para caminho passivo, você precisará mudar a função do verificador para um que não envie a E/S ao caminho para teste, se etiver funcionando (caso contrário, seu dispositivo continuará falhando). Isto quase sempre significa que você configurou o path_checker para tur. Isto funciona quase sempre para todos os dispositivos do SCSI que suportam o comando de Unidade de Teste Pronta.
Se o dispositivo precisar de um comando especial para alterar caminhos, então configurar este dispositivo para o multipath requer um manuseador de hardware do módulo kernel. Os manuseadores do hardware atuais são emc. Se não for o suficiente para seu dispositivo, talvez você não consiga configurar o dispositivo para o multipath.

Tabela 4.3. Funções do Dispositivo

Funções Descrição
vendor Especifica o nome do fabricante do dispositivo do armazenamento para o qual as funções do device de aplicam, por exemplo COMPAQ.
product Especifica o nome do produto do dispositivo do armazenamento para o qual as funções do device se aplicam, por exemplo HSV110 (C)COMPAQ.
revision Especifica o identificador da revisão do produto no dispositivo do armazenamento.
product_blacklist Especifica uma expressão regular para desautorizar os dispositivos pelo produto.
hardware_handler
Especifica um módulo que será usado para realizar ações específicas do hardware ao alterar grupos de caminho ou manusear erros de E/S. Os valores possíveis incluem:
1 emc: manuseador do hardware para matrizes de armazenamento do EMC.
1 alua: manuseador do hardware para matrizes do SCSI-3 ALUA arrays.
1 hp_sw: manuseador do hardware para controladores do Compaq/HP.
1 rdac: manuseador do hardware para os controladores do LSI/Engenio RDAC.
path_grouping_policy
Especifica a política de agrupamento do caminho padrão para aplicar em multipaths não especificados. Valores possíveis incluem:
failover = 1 caminho por grupo prioritário
multibus = todos os caminhos em um grupo prioritário
group_by_serial = 1 grupo prioritário por número em série detectado
group_by_prio = 1 grupo prioritário por valor prioritário do caminho
group_by_node_name = 1 grupo prioritário por nome de nó alvo
getuid_callout Especifica o programa padrão e argumentos para chamar para obter um identificador de caminho único. É necessário um caminho absoluto.
path_selector
Especifica o algorítmo padrão para usar ao determinar qual caminho usar para a próxima operação de E/S. Valores possíveis incluem:
round-robin 0: Volta por todos os caminhos dentro do grupo de caminho, enviando a mesma quantia de E/S para cada um.
queue-length 0: Envia a proxima quantia de E/S pelo caminho com o mínimo de requisições de E/S restantes.
service-time 0: Envia o próximo pacote de E/S pelo caminho com o tempo de serviço mais curto estimado, o qual é determinado dividindo o tamanho total das E/S restantes para cada caminho pela entrada relevante.
path_checker
Especifica o método padrão usado para determinar o estado dos caminhos. Valores possíveis incluem:
readsector0:Lê o primeiro setor do dispositivo.
tur: Emite um TEST UNIT READY no dispositivo.
emc_clariion: Pesquisa a página EVPD específica do EMC Clariion 0xC0 para determinar o caminho.
hp_sw: Verifica o estado do caminho para as diretrizes de armazenamento da HP com o firmware Ativo/Standby.
rdac: Verifica o stat do caminho para o controlador de armazenamento do LSI/Engenio RDAC.
directio: Lê o primeiro setor com E/S diretas.
recursos Os recursos extras do dispositivo do multipath. O único recurso existente é queue_if_no_path, o que é o mesmo que configurar no_path_retry para queue. Para informações sobre problemas que possam surgir ao usar este recurso, veja Seção 5.6, “Problemas com o recurso queue_if_no_path”.
prio
Especifica o programa padrão e argumentos para chamar e obter um valor do caminho prioritário. Por exemplo, a parte ALUA em SPC-3 fornece um valor prio explorável. Valores possíveis incluem:
const: Define uma prioridade de 1 caminho para todos.
emc: Gera o caminho por grupo prioritário para diretrizes EMC.
alua: Gera a prioridade de caminho baseado em configurações de SCSI-3 ALUA.
tpg_pref: Gera a prioridade de caminho baseada nas configurações do SCSI-3 ALUA, usando o bit de porta preferida.
ontap: Gera o caminho prioritário para diretrizes NetApp.
rdac: Gera a prioridade de caminho para o controlador LSI/Engenio RDAC.
hp_sw: Gera a prioridade do caminho para o controlador Compaq/HP em modo ativo/standby.
hds: Gera a prioridade de caminho para as diretrizes de armazenamento do Hitachi HDS Modular
failback
Especifica o failback do grupo do caminho.
O valor 0 ou immediate especifica um failback imediato para um grupo de caminho com a prioridade mais alta que contenha caminhos ativos.
Um valor de manual especifica que o failback não deve ser imediato e que pode acontecer somente com a intervenção do operador.
Um valor de followover especifica que failback automático deve ser realizado quando o primeiro caminho de um grupo de caminho se torna ativo. Isto evita que um nó retorne automaticamente quando outro nó requisitar o failover.
Um valor numérico maior que zero, especifica o retorno de falha deferido, expressado em segundos.
rr_weight Caso seja configurado para priorities, ao invés de enviar requisições de rr_min_io para um caminho antes de chamar o path_selector para escolher um próximo caminho, o número de requisições a enviar é determinado pelo rr_min_io vezes a prioridade do caminho, como determinado pelo programa prio. Se estiver definido para .uniform, todos os caminhos possuem o mesmo peso.
no_path_retry
Um valor numérico para esta função especifica o número de vezes que o sistema deve tentar usar um caminho falho antes de habilitar o enfileiramento.
O valor de fail indica falha imediata, sem enfileirar.
Um valor de queue indica que o enfileiramento não deve parar até que o caminho seja reparado.
rr_min_io Especifica o número de requisições de E/S para rotear para um caminho antes de mudar para o próximo caminho no grupo de caminho atual. Esta configuração funciona somente para sistemas que executam os kernels anteriores ao 2.6.31. Os sistemas mais novos devem utilizar o rr_min_io_rq. O valor padrão é 1000.
rr_min_io_rq Especifica o número de requisições de E/S para rotear em um caminho antes de alterar para o próximo caminho no grupo atual do caminho, utilizando o device-mapper-multipath baseado em requisção. Esta configuração deve ser utilizada em sistemas que executam os kernels atuais. Em sistemas que executam kernels anteriores ao 2.6.31, utilize o rr_min_io. O valor padrão é 1.
fast_io_fail_tmo A quantidade de segundos que a camada do SCSI irá esperar após um problema que tenha sido detectado em uma porta remota FC antes de falhar E/S em dispositivos naquela porta remota. Este valor deve ser menor do que o valor em dev_loss_tmo. Configurar este para off irá desabilitar o timeout.
dev_loss_tmo A quantidade de segundos que a camada SCSI irá esperar após um problema ter sido detectado na porta FC remota antes de removê-lo do sistema. Definir esta quantidade para infinito definirá a quantidade para 2147483647 segundos ou 68 anos.
flush_on_last_del Se configurado para yes, o daemon multipathd desabilitará a fila quando o último caminho para um dispositivo tiver sido removido.
user_friendly_names Caso seja configurado para yes, especifica que o sistema deve usar o arquivo /etc/multipath/bindings para atribuir um álias persistente e único ao multipath, na forma mpathn. Se configurado para no, especifica que o sistema deveria usar o WWID como o aliás para o multipath. Em qualquer dos casos, o que é especificado aqui será sobrescrito por qualquer dispositivo específico na seção multipaths do arquivo de configuração. O valor padrão é no.
retain_attached_hw_handler (Red Hat Enterprise Linux Release 6.4 e posteriores) se este parâmetro estiver definido para yes e a camada scsi já possuir um manuseador de hardware anexado a um dispositivo de caminho, o multipath não irá forçar o dispositivo a utilizar o hardware_handler especificado pelo arquivo mutipath.conf. Se a camada scsi ainda não possuir um hardware handler (manuseador de hardware), o multipath continuará a utilizar seu manuseador de hardware como geralmente faz.
detect_prio (Red Hat Enterprise Linux Release 6.4 e posteriores) se este parâmetro estiver definido para yes o multipath irá primeiro verificar se o dispositivo suporta o ALUA, e caso suporte, ele atribuirá automaticamente ao dispositivo o prioritizador alua. Caso o dispotivo não suporte o ALUA, ele irá determinar o prioritizador como sempre faz.
O exemplo a seguir exibe uma entrada do device no arquivo de configuração do multipath.
#	}
#	device {
#		vendor			"COMPAQ  "
#		product			"MSA1000         "
#		path_grouping_policy	multibus
#		path_checker		tur
#		rr_weight		priorities
#	}
#}