42
Conceitos do Barramento SCSI

Curso de SCSI

Embed Size (px)

Citation preview

Conceitos do Barramento SCSI

Introdução Com a chegada de controladores de dispositivos inteligentes e a demanda crescente por

dispositivos de I/O de grande performance, se fez necessária a criação de uma arquitetura de storage.

SCSI é a sigla para Small Computer System Interface No início dos anos 80, a NCR Corporation e Shugart Associates, se uniram para desenvolver uma

arquitetura de storage padrão de indústria. Este foi o nascimento do SCSI, que mais tarde tornou-se um padrão da American National Standard ANSI X3.131-1986.

Este padrão define todos os requisitos mecânicos, elétricos e funcional do barramento SCSI.

Descrição O que é o SCSI?

É um barramento de I/O paralelo que permite a conexão de uma variedade de periféricos aos computadores, mantendo independência dentro da classe de dispositivos. Isto inclui discos, fitas, modems, impressoras, scanners, dispositivos óticos e equipamentos de teste, que podem ser conectados aos computadores sem requerer modificações no hardware genérico do computador, bastando para isso a instalação de um host adapter, pois os controladores dos periféricos já fazem parte dos dispositivos.

Evolução do barramento SCSIA primeira implementação foi denominada de SCSI-1. Ela implementava poucos comandos mandatórios e deixava a maioria deles como opcionais para serem implementados pelos vendors da maneira que cada um desejasse. Isso levou a vários problemas de compatibilidade.

Para esclarecer e melhorar a especificação do barramento SCSI, surgiu, então, o SCSI-2. Foi definido um conjunto de comandos chamado de CCS (Common Command Set) como parte do SCSI-2. Ele é um subconjunto de dezoito comandos dentro do conjunto de comandos do SCSI para ajudar a resolver os problemas de compatibilidade que apareceram entre os diversos fabricantes de dispositivos SCSI.

Barramento MultidropO barramento SCSI não é igual a configuração radial de barramento, onde o controlador localizado no host, fornece um interface separado para cada dispositivo. O barramento SCSI provê um único interface para todos os dispositivos.

Descrição (cont.) Barramento Multidrop x Barramento Radial

Descrição (cont.) Localização dos Controladores dos Dispositivos

Como já vimos anteriormente, os dispositivos são dotados de inteligência e são responsáveis por operações como “head seeks” (posicionamento das cabeças sobre uma determinada trilha em um disco), movimentação de fita e etc.Como o controlador do dispositivo está embutido no próprio dispositivo, em oposição ao método tradicional de colocar o controlador no host, isto faz com que o host não tenha que se ocupar das funções de baixo nível do dispositivo, ganhando tempo para fazer tarefas mais importantes.

Configuração Típica de um Bus SCSIO bus SCSI é conectado ao host através de um adaptador, capaz de manipular múltiplos dispositivos em um único barramento. Em um dos seus extremos, o adaptador se comunica com o bus do sistema e no outro se comunica com os controladores SCSI embutidos nos dispositivos.

Número Máximo de Dispositivos SuportadosAté oito dispositivos SCSI são suportados em um único SCSI bus (dezesseis com Wide SCSI).Cada dispositivo é denominado como nó. O adaptador SCSI também conta como um nó do bus SCSI, logo o bus SCSI suporta um adaptador e até sete dispositivos (quinze no Wide SCSI).

Descrição (cont.) Diagrama de uma Configuração Típica

Comunicação no Bus SCSI Targets e Initiators

Quando os dispositivos SCSI se comunicam, um dispositivo é o initiator e o outro é o target. Um initiator é um dispositivo capaz de iniciar uma operação e é tipicamente um adaptador ou um controlador no host. Um target é um dispositivo SCSI que executa a operação. Dispositivos SCSI de armazenamento têm um papel fixo, geralmente como targets.

Técnica de Arbitração no Bus SCSIPara definir quem irá utilizar o barramento, o SCSI utiliza uma técnica de arbitração. A arbitração é baseada num sistema de prioridade, que garante o controle do barramento ao interface que estiver pedindo para usá-lo e que tiver a mais alta prioridade.No bus SCSI a decisão de quem irá usar o bus é feita da seguinte maneira:o dispositivo que desejar utilizar o bus, assim que terminar a transação corrente, monitora o bus e, assim que ele estiver livre, ativa o sinal bus busy e seu ID no barramento. Após um pequeno atraso (arbitration delay), ele verifica no barramento de dados se há algum dispositivo com um ID maior que o seu. Se houver, ele retira o seu ID e tentará de novo mais tarde. Caso contrário, ele terá o direito de usar o bus.O ID dos dispositivos são configurados geralmente por meio de switches ou jumpers. Em alguns subsistemas de storage, como o StorageWorks, o ID dos dispositivos é dado pela sua posição física dentro do gabinete (shelf) onde ele é instalado.

O Barramento Físico Sinais do Bus SCSI

O bus SCSI tem um total de 18 sinais que são divididos em duas partes, a saber:sinais de dados + paridade e sinais de controle.As linhas de dados transferem dados, comandos, informação de mensagens e de estado. Elas são bidirecionais. A determinação de quando e em que direção os dados serão transferidos, é uma função dos sinais de controle e das fases do barramento.O padrão SCSI também define um método opcional de implementar o que se chama de WIDE SCSI, que consiste em aumentar as linhas de dados para dezesseis.

Descrição dos Sinais do Bus SCSISinal DescriçãoBSY (BUSY) Uma ligação “OR” de sinais, que indica que o bus está em uso.SEL (SELECT) Um sinal usado pelo initiator para selecionar um target, ou por um target para reselecionar um initiator.C/D (CONTROL/DATA) Um sinal usado pelo target para indicar se as informações que

estão no barramento de dados são de controle ou de dados. Verdadeiro (True) indica controle.

I/O (INPUT/OUTPUT) Um sinal usado pelo target para controlar a direção do fluxo de dados no barramento de dados. Verdadeiro (True) significa entrada de dados para o initiator. Este sinal também é usado para distinguir entre uma fase de Seleção e Reseleção.

MSG (MESSAGE) Um sinal usado pelo target durante a fase de Message.

O Barramento Físico (cont.)

Sinal DescriçãoREQ (REQUEST) Um sinal usado pelo target para pedir uma transferência de dados utilizando o “handshake” REQ/ACK

ACK (ACKNOWLEDGE) Um sinal usado pelo initiator para reconhecer uma transferência de dados usando o “handshake”REQ/ACK.

ATN (ATTENTION) Um sinal usado pelo initiator para indicar uma condição de Attention (o initiator tem uma mensagem para o target).

RST (RESET) Uma ligação de sinais em “OR” que causa um Reset no bus

DB (7-0,P) (DATA BUS) São os sinais que compõe os oito bits de dados mais a paridade. O DB (7) é o bit mais significativo e que tem a maior prioridade durante a fase de Arbitração (Arbitration Phase). O número do bit, significância e prioridade, decresce em direção ao DB (0). Um bit de dado é definido como “1 ” quando o sinal é verdadeiro e

definido como “0” quando o sinal é falso.

A paridade dos dados DB (P) é ímpar, mas esta linha é indefinida durante a fase de Arbitração.

O Barramento Físico (cont.)Configuração Single-endedO bus SCSI suporta duas especificações elétricas, single-ended e diferencial (differential).

O driver single-ended usa níveis de lógica TTL e foi concebido para ser utilizado em aplicações que usam um gabinete. Ele é a implementação elétrica mais comum do barramento. O nível lógico dos sinais do barramento é definido pelo nível de voltagem com relação ao terra (ground). Um sinal é alto (high) se seu nível de voltagem é +2,5 VDC e baixo (low) se seu nível de voltagem é menor que +0,4VDC

SCSI single-ended é ativo “low”. Isto significa que o nível lógico “1” é representado por um nível de voltagem baixo e o nível lógico “0” é representado por uma voltagem alta.

O comprimento do bus SCSI é limitado a 6 metros (3 metros no SCSI-2).

Configuração DiferencialO driver diferencial utiliza sinais do EIA RS-485. Cada sinal é, na realidade, definido por um par de linhas denominadas +SIGNAL e –SIGNAL. O nível lógico de um sinal é determinado pela diferença de voltagem entre as duas linhas. Se o +SIGNAL for mais positivo que o –SIGNAL, então o sinal será verdadeiro. Se o –SIGNAL for mais positivo do que o +SIGNAL, então o sinal será falso.

Esta implementação foi concebida para ser utilizada em aplicações que tipicamente necessitam de distâncias maiores entre os adaptadores e os dispositivos. O comprimento do barramento é limitado a 25 metros.

O Barramento Físico (cont.)Conversores (Converters)Os barramentos single-ended e diferencial são incompatíveis. Dispositivos, adaptadores e terminadores para as duas implementações não podem ser misturados no mesmo bus SCSI. Por isso, conversores são necessários quando certas configurações requerem, por exemplo, dispositivos single-ended de 8 bits (narrow) conectados a um adaptador diferencial de 16 bits(wide)

Conversores de sinais permitem a conexão destes dois barramentos, sem termos que modificar os dispositivos. Como exemplo, podemos citar os conversores DWZZA e DWZZB.

Terminação (Terminator)Os sinais do bus SCSI necessitam ser terminados nas extremidades do barramento. O bus é terminado para evitar reflexão e falsos sinais. Deve haver dois terminadores no bus SCSI, nem mais, nem menos.

Esta terminação consiste de uma malha de resistores para cada linha de sinal. A malha de resistores fornece uma impedância constante para o bus. A malha inclui um resistor de 220 ohm conectado entre +5 Volts e a linha de sinal, e um resistor de 330 ohm conectado entre a linha de sinal e o terra (ground).

O fornecimento da tensão de +5 Volts, também chamada de TERMPWR, é essencial para o bom funcionamento do bus SCSI. Caso ele esteja num nível marginal, a performance do bus e seus dispositivos é imprevisível. O mesmo pode ocorrer se o bus não estiver propriamente terminado.

Há dois tipos de terminação, a passiva e a ativa. A passiva é a mais empregada e a mais barata, pois utiliza apenas uma malha de resistores. A ativa inclui também um regulador de voltagem, para manter um nível correto de voltagem na linha TERMPWR.

O Barramento Físico (cont.)Transferência de Dados Assíncrona e SíncronaO SCSI define dois métodos de protocolo, assíncrono e síncrono. Assíncrono é o método padrão e síncrono é comumente referenciado como FAST SCSI.

Durante as transferências de dados assíncronas, targets e initiators utilizam as linhas REQ e ACK para coordenarem a transferência de cada byte. Cada transferência de um byte deve ser completada antes que outra comece. A taxa máxima é de 5MB/s.

SCSI-2 define um protocolo que permite transferências síncronas de dados a taxas maiores do que 5MB/s. Antes da transferência de dados, os dois dispositivos negociam entre si a taxa de transferência que ambos suportam. Cada dispositivo determina a quantidade de bytes que será transferida e irá comutar a linha de controle de handshaking a cada byte transmitido até atingir o número previamente determinado.

Com o emprego do FAST SCSI, chega-se a taxa máxima de 10MB/s.

SCSI IDSCSI IDs (7-0) são assinalados tanto para o adaptador como para cada dispositivo. O ID do dispositivo passa a ser o seu endereço dentro do bus SCSI.

Tipicamente os initiators são configurados para SCSI ID 7 ou 6. Os dispositivos mais lentos são configurados com ID’s de prioridade mais alta que os dos dispositivos mais rápidos, para se evitar que um dispositivo mais rápido monopolize o barramento. É por isso que CD-ROMs e fitas magnéticas são configuradas para ID’s 5 ou 4 e os discos começam com ID’s 0 em diante.

Como Funciona o Bus SCSI Processo típico de uma transação

Certas funções no bus SCSI são atribuídas tanto para o initiator quanto para o target. Abaixo segue a descrição típica de uma transação no bus SCSI:

1. O initiator arbitra o bus SCSI e seleciona um determinado target2. O target requisita a transferência do comando, dado, status ou outra informação no barramento

de dados e em alguns casos, arbitra o bus SCSI e reseleciona o initiator para continuar a operação.

Transferências de informações que se fazem pelo barramento de dados são assíncronas e obedecem ao handshake de REQ/ACK, transferindo um byte de cada vez. Quanto às transferência de dados, elas têm a opção de serem síncronas.

Atividade do Bus

Enquanto um dispositivo estiver usando o bus, os outros podem estar fazendo alguma atividade interna. Dispositivos não utilizam o bus a não ser que estejam envolvidos numa transferência de dados, comando ou tenha uma informação de estado para reportar. Dispositivos podem se desconectar do bus enquanto estiverem executando atividades internas que consumam tempo. Tão logo o dispositivo esteja pronto para reiniciar a comunicação, ele pode arbitrar o bus para se reconectar com o host. Antes de utilizar o barramento SCSI, os dispositivos devem primeiro disputá-lo entre si (arbitração), aí, então, um caminho lógico será estabelecido entre o initiator e o target.

Como Funciona o Bus SCSIFases do Bus SCSITodas as atividades no bus SCSI ocorrem em uma das oito fases. As fases do bus determinam

a direção da transferência e o tipo de informação que é colocada nas linhas de dados.

As últimas quatro fases são coletivamente conhecidas como a fase de Transferência de Informação,

porque elas são usadas para transferir dados ou informação de controle. Cabe notar que o bus SCSI

não pode estar em mais de uma fase por vez.

Fases do Bus DescriçãoBus Free A fase Bus Free indica que não há nenhum dispositivo utilizando o bus.

Antes

que um dispositivo possa iniciar uma fase de arbitração, o bus deve estar livre

Arbitration Esta fase permite que os dispositivos ganhem acesso ao bus para assumir o papel de initiator ou target. Assim que o initiator reconhece que o bus está livre, ele levanta o sinal BSY e seu próprio ID no bus. Após um tempo, o initiator verifica as linhas de dados e retira o seu ID, se ele encontrar um ID

de maior prioridade.

Selection Esta fase permite que o initiator selecione um target para executar uma função

tal como, um comando de leitura ou gravação. Ele (initiator) faz isso levantando o sinal SEL e colocando nas linhas de dados o ID do target e o

seu próprio ID.

Reselection Durante esta fase, o target que venceu a arbitração, reconecta-se ao initiator

para dar continuidade a uma transação previamente estabelecida.

Como Funciona o Bus SCSI (cont.)Fases do Bus DescriçãoCommand Esta fase permite que o target requisite a informação do comando do initiator.

A informação do comando é uma coleção de bytes agrupados num pacote de dados, chamado de Command Descriptor Block (CDB).

Data In Permite que o target requisite uma transferência de dados para o initiator.

Data Out Permite que o target requisiste uma transferência de dados do initiator.

Status Esta fase permite que o target requisite que o estado de informação seja transferido para o initiator.

Message Permite que o target peça que uma mensagem seja enviada para o initiator.Mensagens são utilizadas para indicar erros, comandos abortados ou avisar ao initiator que o dispositivo target vai se desconectar.

Sinais de ControleAs fases do bus SCSI são determinadas conforme o estado destas linhas.

As seguintes linhas são controladas pelo initiator:RST (Reset), BSY (Busy) , SEL (Select), ACK (Acknowledge), ATN (Attention).

As seguintes linhas são controladas pelo target:RST (Reset) , BSY (Busy), C/D (Control or Data), I/O (Direction of Data), MSG (Message), REQ (Request), SEL (Select)

Como Funciona o Bus SCSI (cont.)Fase de Transferência de Informação

As fases de Comando, Dados, Estado e Mensagens são coletivamente chamadas de fase detransferência de informação. Ela é utilizada para transferir dados ou informação de controle usando aslinhas de dados.Os sinais C/D, I/O e MSG são usados para fazer a distinção das fases dentro de uma fase detransferência de informação. Por exemplo, um initiator pode requisitar uma fase Message Outlevantando o sinal ATN ou o target pode causar uma fase Bus Free, baixando os sinais MSG, C/D,I/O e BSY.

Exemplo das Fases no Barramento SCSI

Processo de Arbitração

Tipos de Cabos

Este tipo de cabo possui 50 pinos e é conhecido como 50 pinos low-density (50LD) ou conector centronics

Este tipo de cabo possui 50 pinos e é conhecido como 50 pinos high-density (50HD) ou conector honda

Tipos de Cabos (cont.)

Este tipo tipo de cabo possui 68 pinos e é conhecido como 68 pinos high-density (68HD)

Este tipo de cabo possui 68 pinos e é conhecido como 68 pinos very high density (68VHDCI)

Existem também os cabos que chamamos de “transition cables” (cabos de transição), que servem para adaptar conectores de tipos diferentes, como por exemplo fazer a ligação entre um dispositivo que tenha um conector 50LD e um adaptador que tenha um conector 50HD.

No PROSIC (http://prosic.inet.cpqcorp.net/STORAGE/SCSI/CABLES/DEC/index.html), você encontrará uma página sobre os vários tipos de cabos e seus respectivos part numbers.

Reportando ErrosReportando uma Condição de FalhaSe uma condição de falha for detectada durante a execução de um comando, o target irá reportaresta condição para o initiator, retornando um byte de estado com um código de Check Condition ou Command Terminated.O initiator, sob controle do sistema operacional, irá enviar um comando de REQUEST SENSE para otarget para receber os sense data bytes do target. Os sense data bytes incluem uma informaçãodetalhada sobre o erro detectado pelo dispositivo e contém informação importante para a análise dafalha e para o gerenciamento entre o target e o host.O target envia uma menssagem de Command Complete para o initiator para sinalizar que ele

acaboude processar um comando. Isto não significa que a operação foi bem sucedida, simplesmente indica o final do processamento do comando.

Check Condition StatusPode resultar de uma falha do hardware ou do software. Command Status é enviado para o initiatordurante a fase de Status no témino de um comando. A exceção acontecerá quando o comando forterminado por uma das seguintes condições: Mensagem de Abort Mensagem de Bus Device Reset Condição de Hard Reset Condição de Unexpected Bus Free

Reportando Erros (cont.)Sense DataA exata natureza da condição de check detectada pelo target é definida pelo SENSE DATA. Como

mencionado anteriormente, o SENSE DATA relacionado com o erro é armazenado pelo target e é

enviado para o initiator em resposta a um comando REQUEST SENSE.

Protocolo de Mensagens SCSI MessagesO sistema de mensagens permite que o initiator e o target se comuniquem para gerenciarem ocaminho físico. As mensagens são enviadas durante a fase de Messages e todos os dispositivosSCSI devem implementar a mensagem Command Complete. Algumas mensagens indicam erros quetipicamente resultam de falhas físicas no barramento SCSI ou durante o protocolo do bus SCSI.

Protocolo de Mensagens (cont.)Unexpected Bus FreeEm algumas circunstâncias o target pode retirar o sinal BSY e entrar na fase Bus Free para indicarpara o initiator que um erro ocorreu. O initiator irá gerenciar esta condição como uma operação deI/O má sucedida. O target termina a operação de I/O, fazendo uma retirada dos dados pendentes eda informação de estado da unidade lógica afetada. O target pode, opcionalmente, preparar ossense bytes que poderão ser lidos por um comando de Request Sense emitido pelo initiator.Esta exceção é causada tipicamente por um problema de timing no barramento ou por um erro deprotocolo SCSI durante uma transação. Este erro faz com que o target aborte o comando.

Selection Timeout

A fase de Seleção permite a um initiator selecionar um target para que ele execute alguma função(por exemplo, um comando de leitura ou gravação). O Selection Timeout ocorrerá se o target não responder devido a: erro de paridade no bus, ou mais do que dois bits de SCSI ID estiverem ligados no barramento de dados.

Reselection Timeout

Reselection é uma fase opcional que permite ao target se reconectar a um initiator. Reselectioné um meio pelo qual alguma operação, que foi previamente iniciada pelo initiator, e suspensa pelotarget, possa continuar. Por exemplo, o target se desconecta para permitir uma fase de Bus Freeantes que a operação se complete. O Reselection Timeout ocorrerá se o initiator não responder devido a: erro de paridade no bus, ou mais do que dois bits de SCSI ID estiverem ligados no barramento de dados.

Protocolo de Mensagens (cont.)Reset Condition A condição de Reset é assíncrona e é utilizada para zerar imediatamente todos os dispositivos do

bus SCSI. Ela tem precedência sobre todas as outras fases e condições do bus. Qualquer dispositivo

SCSI pode criar uma condição de Reset, basta levantar o sinal RST.

A fase Bus Free sempre vem após uma condição de Reset. A condição de Reset é usada para: Zerar o bus em condições excepcionais, tais como Selection e Reselection Timeout Terminar uma operação de I/O, onde o initiator não consiga terminá-la normalmente, após a

detecção de um erro.

Bus Device Reset Message O initiator envia uma mensagem de Bus Device Reset (BDR) para que o target zere todos os

comandos que tinham sido enviados para ele. Isto força um hard reset para o dispositivo selecionado.

O target vai para a fase de Bus Free após o recebimento desta mensagem. A diferença entre o BDR

e o RST é que a condição de RST faz com que todos os dispositivos do bus SCSI se zerem(reset).

Initiator Detected Error

Esta mensagem é enviada do initiator para o target a fim de informá-lo que um erro ocorreu, como por

exemplo, um erro de paridade. Entretanto, ela não impede que o target refaça a operação. A fonte do

erro pode estar relacionada à uma atividade prévia no bus SCSI ou interna no initiator.

Protocolo de Mensagens (cont.)Message Parity Errors Esta mensagem é enviada do initiator para o target para indicar que o último byte da mensagem que

ele recebeu, continha um erro de paridade. O target reagirá aos erros de paridade de uma das

seguintes maneiras: irá para a fase de Bus Free executará a operação novamente reportará um estado de condição de check (check condition status)

É importante notar que se o estado de condição de check estiver ligado, a informação fornecida pelo

Additional Sense Code e o Additional Sense Code Qualifier (ASC/ASCQ) ajudará a identificar a causa

do erro.

Message Reject O initiator ou o target enviam esta mensagem para indicar que a última mensagem que foi recebida

era inapropriada, não suportada ou não foi implementada.

Host Software InterfacePara compreendermos como o software do host se comunica com o subsistema SCSI, é necessárioque compreendamos as funções suportadas pelo Class Driver e pelo Port Driver do host.

Class Driver

O Class Driver é responsável por formatar os comandos, interpretar status e gerenciar o dado dousuário. Ele não tem conhecimento dos protocolos do bus, do hardware ou da estrutura de alto níveldos arquivos. O Class Driver manipula o controle a nível de dispositivo e é escrito para servir a umaclasse de dispositivos, tais como hard disk drives. Há diferentes Class Drivers para manipulardiferentes tipos de dispositivos (fitas, CD/ROM, etc.).

SCSI Port Driver O SCSI Port Driver é puramente um caminho de comunicação. Ele entende as fases do bus e sabecomo enviar e receber informações de um ponto para outro. O Port Driver monitora e controla asmudanças de fases do bus SCSI e envia e recebe mensagens de controle de caminho do SCSI.O Port Driver se interliga diretamente com o firmware do Port SCSI do sistema, o qual se comunicacom o firmware do dispositivo SCSI.

SCSI Port Interface Juntos, o Class e o Port Drivers compõem o SCSI Port Interface (SPI). O SPI usa um conjunto de 11rotinas ou funções que são evocadas pelos SCSI Class Drivers e são implementadas pelos SCSI

PortDrivers. Estas rotinas estabelecem as conexões do SCSI, alocam posições de memória necessáriaspara passar e receber informações do subsistema SCSI e enviam comandos para o SCSI. Outrasfunções podem causar um reset no bus, mudar as características de um dispositivo SCSI e abortar comandos.

TroubleshootingPara pesquisar problemas com o bus SCSI, você terá que definir primeiro a natureza doproblema e os eventos que o levam a ele. Abaixo estão boas fontes de identificação de problemas: O cliente Indicadores dos dispositivos e controladores Inspeção física do barramento SCSI Error Logs.

ClienteConversar com o cliente é uma boa maneira de se obter valiosas informações, pois é ele que opera osistema e, normalmente, está presente quando os erros se manifestam. Siga estes passos: procure saber se houve alguma modificação recente na configuração do SCSI verifique com o cliente a seqüência de operações que levaram ao erro verifique se o erro pode ser recriado com uma(s) determinada(s) operação(ões)

Indicadores dos Dispositivos e ControladoresInspecione os dispositivos e os controladores e verifique se eles possuem indicadores. Em casoafirmativo, verifique se os indicadores estão sinalizando alguma condição de falha.

Inspeção do Barramento SCSIFaça uma inspeção no barramento SCSI. Verifique se os cabos, dispositivos e terminadores estãobem encaixados, pois podem existir maus contactos nos conectores.Verifique se a terminação está correta. Lembre-se que o barramento SCSI tem que ser terminadosomente nas suas extremidades. A falta ou excesso de terminação ocasiona erros imprevisíveis.Verifique o comprimento total do bus SCSI, pois o comprimento fora do padrão também causa errosestranhos.

Troubleshooting (cont).Arquivo de Error Log

Uma poderosa ferramenta para a pesquisa de problemas é o arquivo de Error Log. Sempre verifique o

Error Log, pois lá você poderá encontrar informações sobre o problema que você está pesquisando. OpenVMS

O arquivo de erro pode ser encontrado em SYS$ERRORLOG: ERRLOG.SYS. Para visualizá-lo use o comando ANALYZE/ERROR. Para maiores detalhes use o help.

Tru64 UnixO arquivo de erro pode ser encontrado em /var/adm/binary.errlog. Para visualizá-lo use oseguinte comando uerf. Para maiores detalhes use o man.

Windows NTO arquivo de erro pode ser visualizado usando a seqüência : start-programs-administrative tools-Event Viewer

Existe uma ferramenta que substitui os visualizadores dos sistemas operacionais, pois a partir dedeterminadas versões dos SO, os visualizadores dos error logs não conseguem transcrever oconteúdo dos registradores. Esta ferramenta é o DECEVENT e ela pode ser encontrada na seguintepágina da Web: http://pinkft.cxo.dec.com/decevent/

A partir do lançamento das famílias Alpha (DS10, DS20, ES40, WildFire), a ferramenta a ser utilizadapara a visualização de erros é o COMPAQ ANALYZE, que pode ser encontrado na Web em: http://pinkft.cxo.dec.com/compaqanalyze/

Troubleshooting (cont.)Exemplo: OpenVMS Error Log ******************************** ENTRY 2 ********************************Logging OS 1. VAX OpenVMSOS version T1.0-FT4Event sequence number 17595.Timestamp of occurrence 13-OCT-1992 17:14:28System uptime in seconds 309.VMS error mask x00000000Misc. VMS flags x0000Host name ADU03AXP HW model 0. Unknown ModelSystem type register x00000002 DEC 4000Unique CPU ID x00000002mpnum x000000FFmperr x000000FFEvent validity 1. ValidEvent severity -1. Unknown severity codeVMS entry type 1.Major Event class 3. IO SubsystemAXP Device Type 0.IO Minor Class 1. Device Error---- Device Profile ----Product Name RZ57

Unit Name ADU03$DKEUnit Number 200.Device Class x0001 DiskArchitecture x0002 SCSI-2

---- SCSI ERROR INFO ----HW Revision 5000VMS SCSI Error Type 5. Extended Sense Data from DeviceSCSI ID X20SCSI LUN x00SCSI SUBLUN x00Port Status x00000001 Success

Direct Access Command x0A WRITECommand Data x00 x00 x01 x01 x00SCSI Status X20 Check ConditionExt Sen Lngt (Byt) 18.Error Code x70 Current Error and "Information Bytes" are Not ValidSegment # x00

Information Bytes x00000000 CMD Specific Info x00000000Sense Key x0B Aborted CommandASC & ASCQ x4700 ASC = x0047 ASCQ = x0000 SCSI Parity ErrorFRU Code xE0

Sense Key Data, Byte 1 x00 Sense Key Data NOT ValidSense Key Data, Byte 2 x00

Exemplo: ULTRIX Error Log

********************************* ENTRY 56. *********************************----- EVENT INFORMATION -----EVENT CLASS ERROR EVENTOS EVENT TYPE 199. CAM SCSISEQUENCE NUMBER 19505.OPERATING SYSTEM ULTRIX 32OCCURRED/LOGGED ON Tue Nov 19 19:52:41 1991 ESTOCCURRED ON SYSTEM camSYSTEM ID x82012001 HW REV: x1 FW REV: x20

CPU TYPE: R2000A/R3000PROCESSOR TYPE KN01----- UNIT INFORMATION -----CLASS DISKSUBSYSTEMBUS # x0000 LUN x0 TARGET x2----- CAM STRING -----ROUTINE NAME cdisk_bbr_done----- CAM STRING ----- cdisk_bbr: Not ECC Correctable Error

_bad block number: 237356----- CAM STRING -----DEVICE NAME DEC RZ23L----- CAM STRING -----ERROR TYPE Soft Error Detected (recovered)----- CAM STRING ----- Active CCB at time of error----- CAM STRING ----- CCB request completed with an error

----- ENT_CCB_SCSIIO -----*MY ADDR xC1068A70

CCB LENGTH x008CFUNC CODE x01PATH ID 0.TARGET ID 2.TARGET LUN 0.CAM FLAGS CAM_DIR_IN*PDRV_PTR xC1068818*NEXT_CCB x00000000*REQ_MAP xC1107E80VOID (*CAM_CBFCNP)() x80167AD0*DATA_PTR x10014BB0DXFER_LEN x00002000

*SENSE_PTR xC1068830SENSE_LEN x40CDB_LEN x06SGLIST_CNT x0000CAM_SCSI_STATUS SCSI_STAT_CHECK_CONDITIONSENSE_RESID x2CRESID x00000000CAM_CDB_IO x0000000000000010219F0308CAM_TIMEOUT x00000005MSGB_LEN x0000VU_FLAGS x0000TAG_ACTION x00

----- CAM STRING ----- Error, exception, or abnormal_condition----- CAM STRING ----- Recovered error (success)

----- ENT_SENSE_DATA -----

ERROR CODE CODE x70

SEGMENT x00

SENSE KEY RECOVER ERR

INFO BYTE 3 x00

INFO BYTE 2 x03

INFO BYTE 1 x9F

INFO BYTE 0 x2C

ADDITION LEN x0C

CMD SPECIFIC 3 x00

CMD SPECIFIC 2 x00

CMD SPECIFIC 1 x00

CMD SPECIFIC 0 x00

ASC x17

ASQ x00

FRU xD0

SENSE SPECIFIC x000000

ADDITIONAL SENSE

0000: 00000000 00000000 00000000 00000000 *................*

0010: 00000000 00000000 00000000 00000000 *................*

0020: 00000000 00000000 00000000 00000000 *................*

0030: 00000000 00000000 00000000 00000000 *................*

***************************************************************************

Exemplo: Tru64 Error Log

**** V3.3 ********************* ENTRY 992 ********************************

Logging OS 2. Digital UNIX

System Architecture 2. Alpha

Event sequence number 35.

Timestamp of occurrence 02-MAY-2001 15:32:36

Host name djocsc

System type register x00000022 Systype 34. (Regatta Family)

Number of CPUs (mpnum) x00000002

CPU logging event (mperr) x00000000

Event validity 1. O/S claims event is valid

Event severity 3. High Priority

Entry type 199. CAM SCSI Event Type

1. - (minor class)

------- Unit Info -------

Bus Number 0.

Unit Number x0030 Target = 6.

LUN = 0.

------- CAM Data -------

Class x01 Tape

Subsystem x01 Tape

Number of Packets 9.

------ Packet Type ------ 258. Module Name String

Routine Name ctape_iodone

------ Packet Type ------ 260. Hardware Error String

Error Type Hard Error Detected

------ Packet Type ------ 257. Device Name String

Device Name DEC TLZ9 (C) DECA035

------ Packet Type ------ 256. Generic String

Active CCB at time of error

------ Packet Type ------ 256. Generic String

CCB request completed with an error

------ Packet Type ------ 1. SCSI I/O Request CCB(CCB_SCSIIO)

Packet Revision 76.

CCB Address xFFFFFC000FEB4800

CCB Length x00C0

XPT Function Code x01 Execute requested SCSI I/O

CAM Status xC4 CCB Request Completed WITH Error

SIM Queue Frozen with this Error

Autosense Data Valid for Target

Path ID 0.

Target ID 6.

Target LUN 0.

CAM Flags x00000040 Data Direction (01: DATA IN)

*pdrv_ptr xFFFFFC000FEB44A8

*next_ccb x0000000000000000

*req_map xFFFFFC000FE73100

void (*cam_cbfcnp)() xFFFFFC00005F1110

*data_ptr x0000000140031800

Data Transfer Length 10240.

*sense_ptr xFFFFFC000FEB44D0

Auotsense Byte Length 64.

CDB Length 6.

Scatter/Gather Entry Cnt 0.

SCSI Status x02 Check Condition

Autosense Residue Length x26

Transfer Residue Length x000013C8

(CDB) Command & Data Buf

15--<-12 11--<-08 07--<-04 03--<-00 :Byte Order

0000: 00000000 00000000 28000008 * ...(........*

Timeout Value x0000012D

*msg_ptr x0000000000000000

Message Length 0.

Vendor Unique Flags x0000

Tag Queue Actions x00

------ Packet Type ------ 256. Generic String

Error, exception, or abnormal condition

------ Packet Type ------ 256. Generic String

MEDIUM ERROR - Nonrecoverable medium error

------ Packet Type ------ 768. SCSI Sense Data

Packet Revision 0.

Error Code xF0 Current Error

Information Bytes are Valid

Segment # x00

Information Byte 3 x00

Byte 2 x00

Byte 1 x28

Byte 0 x00

Sense Key x03 Medium Error

Additional Sense Length x12

CMD Specific Info Byte 3 x00

Byte 2 x00

Byte 1 x00

Byte 0 x00

ASC & ASCQ x1502 ASC = x0015

ASCQ = x0002

Positioning Error Detected by Read of

Medium

FRU Code x00

Sense Key Specific Byte 0 x00 Sense Key Data NOT Valid

Byte 1 x40

Byte 2 x00

Addition Sense Data Size Allocated by Driver

Count of valid bytes: 46.

15--<-12 11--<-08 07--<-04 03--<-00 :Byte Order

0000: 00000000 00000000 70D13900 00000000 *.....9.p........*

0010: 00000000 00000000 00000000 00000000 *................*

0020: 00000000 00000000 00000000 00000000 *................*

Evolução do SCSI

Abaixo segue a definição para os símbolos que aparecem nos dispositivos SCSI.