| Red Hat Enterprise Linux 4: Introdução à Administração de Sistemas | ||
|---|---|---|
| Anterior | Capítulo 5. Administrando o Armazenamento | Próxima |
A configuração dos pratos de disco, cabeças e dos braços de acesso possibilita posicionar a cabeça sobre qualquer parte de qualquer superfície de qualquer prato no dispositivo de armazenamento em massa. No entanto, isso não é suficiente; para usar essa capacidade de armazenamento devemos ter algum método para atribuir endereços a partes uniformemente dimensionadas do armazenamento disponível.
Há um aspecto final necessário a este processo. Considere todas as faixas dos diversos cilindros presentes em um típico dispositivo de armazenamento em massa. Como as faixas têm diâmetros variados, suas circunferências também variam. Sendo assim, se o armazenamento estivesse endereçado somente ao nível da faixa, cada faixa teria quantidades diferentes de dados — a faixa #0 (a mais próxima do centro do prato) pode ter 10.827 bytes, enquanto a faixa #1.258 (próxima à extremidade externa do prato) pode ter 15.382 bytes.
A solução é dividir cada faixa em diversos setores ou blocos de segmentos de armazenamento de tamanho consistente (geralmente 512 bytes). O resultado é que cada faixa contém um número definido[1] de setores.
Um efeito colateral disso é que cada faixa contém espaço não-usado — o espaço entre setores. Apesar do número constante de stores em cada faixa, a quantidade de espaço não-usado varia — há relativamente pouco espaço não-usado nas faixas de dentro e uma quantidade bem maior de espaço não-usado nas faixas de fora. Em ambos os casos, este espaço não-usado é desperdiçado, já que não é possível armazenar dados ali.
Em contrapartida, a vantagem deste espaço desperdiçado é que agora é possível mapear efetivamente o armazenamento para um dispositivo de massa. De fato, há dois métodos de mapeamento — mapeamento baseado na geometria e mapeamento baseado no bloco.
O termo mapeamento baseado na geometria refere-se ao fato dos dispositivos de armazenamento em massa realmente armazenarem dados num ponto físico específico no meio de armazenamento. No caso dos dispositivos aqui descritos, isto refere-se a três itens específicos que definem um ponto específico nos pratos do disco do dispositivo:
Cilindro
Cabeça
Setor
As seções a seguir explicam como um endereço hipotético pode descrever uma localidade física específica no meio de armazenamento.
Como afirmado anteriormente, o cilindro indica uma posição específica do braço de acesso (e, portanto, as cabeças de acesso/gravação). Ao especificar um determinado cilindro, estamos eliminando todos os outros cilindros, reduzindo nossa busca a apenas uma faixa de cada superfície no dispositivo de armazenamento em massa.
Na Tabela 5-1, a primeira parte de um endereço baseado na geometria foi preenchido. Ainda há dois componentes indefinidos neste endereço — a cabeça e o setor.
Nós estamos estritamente selecionando um prato específico do disco, mas, como cada superfície tem uma cabeça de acesso/gravação dedicada a ela, é mais fácil pensar em termos de interação com uma determinada cabeça. Na realidade, a essência eletrônica do dispositivo seleciona uma cabeça e — desseleciona o resto — somente interage com a cabeça selecionada durante a operação I/O. Todas as outras faixas que formam o cilindro corrente agora foram eliminadas.
Na Tabela 5-2, as duas primeiras partes do endereço baseado na geometria foram preenchidos. Ainda há um componente final faltando neste endereço — o setor.
Ao especificar um determinado setor, completamos o mapeamento e identificamos unicamente o bloco de dados desejado.
Na Tabela 5-3, o endereço baseado na geometria completo foi preenchido. Este endereço identifica a localidade de um bloco específico dentre todos os blocos deste dispositivo.
Apesar do mapeamento baseado na geometria ser simples, há uma área de ambiguidade que causa problemas — a numeração dos cilindros, cabeças e setores.
É verdade que cada endereço baseado na geometria identifica unicamente um bloco de dados específico, mas isto se aplica somente se o esquema de numeração dos cilindros, cabeças e setores não for alterado. Se o esquema de numeração mudar (como mudar o hardware/software interagindo com o dispositivo de armazenamento), então o mapeamento entre os endereços baseados na geometria e seus blocos de dados correspondentes pode mudar, impossibilitando o acesso aos dados desejados.
Devido esse potencial para ambiguidades, foi desenvolvida uma nova tática de mapeamento. A próxima seção descreve-a com mais detalhes.
O mapeamento baseado no bloco é bem mais simples que o mapeamento baseado na geometria. No mapeamento baseado no bloco, cada bloco de dados recebe um número único. Esse número é passado do computador para o dispositivo de armazenamento em massa, que executa a conversão internamente para o endereço baseado na geometria, necessário pelo circuito de controle do dispositivo.
Como a conversão para um endereço baseado na geometria é sempre feita pelo próprio dispositivo, é sempre consistente e elimina o problema de dar o mapeamento baseado na geometria ao dispositivo.
| [1] | Enquanto os dispositivos de armazenamento em massa mais antigos usam o mesmo número de setores para todas as faixas, os dispositivos mais recentes dividiram a gama de cilindros em "zonas" diferentes, com cada zona contendo um número diferente de setores por faixa. O motivo é tirar proveito do espaço adicional entre os setores nos cilindros mais externos, onde há mais espaço não-utilizado entre os setores. |