Em um sistema de arquivos, como o arquivo “block” é usado?

0

Vamos usar o exemplo de um sistema Linux moderno com HDDs modernos de drives SATA3 típicos. Quando o sistema operacional decide gravar um arquivo em um disco rígido:

Quem divide o arquivo em blocos? O "Virtual File System" no kernel?

E quem traduz essas construções de software em cilindros / cabeçotes endereça para que o HDD saiba como apontar a cabeça e girar as placas? O "Virtual File System" para o driver do HDD? Ou o HDD se expôs apenas como "blocos" abstratos para "Virtual File System" e o controlador no HDD físico faz a tradução?

    
por eliu 07.07.2017 / 01:00

1 resposta

1

Tenha em atenção que "bloco" tem muitos usos e significados na tecnologia informática.

When the OS decides to write a file to a HDD:

Who breaks up the file into blocks? The "Virtual File System" in kernel?

Você precisa fazer backup um pouco.
Anteriormente, o sistema de arquivos era montado e, antes disso, o sistema de arquivos era criado em um dispositivo de bloco (ou seja, um dispositivo que executa E / S em unidades de dados de tamanho fixo). Portanto, esse arquivo sendo gravado está associado a um sistema de arquivos de atributos conhecidos e um dispositivo de bloco de atributos conhecidos.

O sistema de arquivos terá seu conceito de um bloco lógico. O tamanho desse bloco lógico pode ser um múltiplo do tamanho do bloco de E / S.
O sistema de arquivos armazenará em buffer os dados do usuário em seus tamanhos de bloco lógicos e executará E / S no tamanho do dispositivo de bloco.

And who translate those software constructs into cylinders/heads address so the HDD knows how to point the head and spin the plates?

O endereçamento de cilindro / cabeça / setor foi preterido em favor do endereçamento de bloco lógico (também conhecido como LBA) algumas revisões atrás da ATAPI.
Independentemente disso, os sistemas de arquivos normalmente usam endereços de bloco lógico ou de setor para facilitar os cálculos.

O sistema de arquivos é responsável por mapear seus blocos lógicos para blocos "físicos" do dispositivo de bloco. Observe que o dispositivo de bloco é tipicamente uma abstração, ou seja, um volume ou partição em um dispositivo físico. Isso significa que os endereços de bloco físico de que o sistema de arquivos está ciente são, na verdade, apenas relativos ao volume, e a camada do gerenciador de volume deve traduzir esses endereços de bloco relativos para endereços de bloco de dispositivo, ou seja, os LBAs da unidade.

Or the HDD exposed itself only as abstract "blocks" to "Virtual File System" already and the controller in the physical HDD does the translation?

O moderno drive ATA é essencialmente uma coleção de blocos endereçados pelo LBA (logical block addressing). Unidades legadas usam um bloco de 512 bytes (setor) e unidades de disco rígido de formato avançado (aka 512E) têm setores de 4 KB, mas emulam o tamanho de setor de 512 bytes. Unidades de grande capacidade modernas usarão um setor de 4KB para armazenamento e para E / S.

O controlador integrado da unidade moderna realiza o mapeamento do LBA para o setor físico. O cilindro, a cabeça e o setor reais mapeados para um determinado LBA são conhecidos apenas pela unidade, de modo que qualquer tipo de gravação de bit de zona e realocação para setores defeituosos possa ser implementado pela unidade de disco.

ADENDO

Normalmente, o tamanho do bloco lógico do sistema de arquivos é também a unidade de alocação. Consulte Desvantagens de um pequeno tamanho da unidade de alocação .
Em relação aos setores de disco, consulte Para quais setores do disco?

    
por 07.07.2017 / 06:43